#include "TChain.h"
#include "TFile.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TProfile.h"
#include "TList.h"
#include "TParticle.h"
#include "TParticlePDG.h"
#include "TProfile.h"
#include "TMath.h"
#include "TRandom.h"
#include "TObjArray.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliExternalTrackParam.h"
#include "AliStack.h"
#include "AliESDVertex.h"
#include "AliESDInputHandler.h"
#include "AliESDtrackCuts.h"
#include "AliMultiplicity.h"
#include "AliMCParticle.h"
#include "AliMCEvent.h"
#include "AliAnalysisTaskKMeans.h"
#include "AliTrackReference.h"
#include "AliStack.h"
#include "AliHeader.h"
#include "AliKMeansClustering.h"
ClassImp(AliAnalysisTaskKMeans)
AliAnalysisTaskKMeans::AliAnalysisTaskKMeans()
: AliAnalysisTaskSE()
,fK(0)
,fNMin(0)
,fHists(0)
,fH1CEta(0)
,fH1CPhi(0)
,fH1CEtaR(0)
,fH2N1N2(0)
,fH1Pt(0)
,fH1PtC(0)
,fH1PtC1(0)
,fH1PtC2(0)
,fH1PtAS(0)
,fH1PtR(0)
,fH1SPt(0)
,fH1SPtC(0)
,fH1DPhi(0)
,fH1DR(0)
,fH1DRR(0)
,fH2DPhiEta(0)
,fH2DPhiEtaR(0)
,fH2DPhiEtaL(0)
,fH2DPhiEtaLR(0)
,fH2DPhiEtaC(0)
,fH2DPhiEtaCR(0)
,fH1Resp(0)
,fH1RespR(0)
,fH2Sigma(0)
,fH2SigmaR(0)
,fHDensity(0)
,fHCSize(0)
,fHNCluster(0)
,fHPtDensity(0)
,fHDPhi(0)
,fH2EtaPhi(0)
,fH2REtaPhi(0)
,fCuts(0)
{
for (Int_t i=0; i< 10; i++) {
fA[i] = 0;
fB[i] = 0;
}
}
AliAnalysisTaskKMeans::AliAnalysisTaskKMeans(const char *name)
: AliAnalysisTaskSE(name)
,fK(0)
,fNMin(0)
,fHists(0)
,fH1CEta(0)
,fH1CPhi(0)
,fH1CEtaR(0)
,fH2N1N2(0)
,fH1Pt(0)
,fH1PtC(0)
,fH1PtC1(0)
,fH1PtC2(0)
,fH1PtAS(0)
,fH1PtR(0)
,fH1SPt(0)
,fH1SPtC(0)
,fH1DPhi(0)
,fH1DR(0)
,fH1DRR(0)
,fH2DPhiEta(0)
,fH2DPhiEtaR(0)
,fH2DPhiEtaL(0)
,fH2DPhiEtaLR(0)
,fH2DPhiEtaC(0)
,fH2DPhiEtaCR(0)
,fH1Resp(0)
,fH1RespR(0)
,fH2Sigma(0)
,fH2SigmaR(0)
,fHDensity(0)
,fHCSize(0)
,fHNCluster(0)
,fHPtDensity(0)
,fHDPhi(0)
,fH2EtaPhi(0)
,fH2REtaPhi(0)
,fCuts(0)
{
for (Int_t i=0; i< 10; i++) {
fA[i] = 0;
fB[i] = 0;
}
DefineOutput(1, TList::Class());
}
AliAnalysisTaskKMeans::AliAnalysisTaskKMeans(const AliAnalysisTaskKMeans &res)
: AliAnalysisTaskSE(res)
,fK(0)
,fNMin(0)
,fHists(0)
,fH1CEta(0)
,fH1CPhi(0)
,fH1CEtaR(0)
,fH2N1N2(0)
,fH1Pt(0)
,fH1PtC(0)
,fH1PtC1(0)
,fH1PtC2(0)
,fH1PtAS(0)
,fH1PtR(0)
,fH1SPt(0)
,fH1SPtC(0)
,fH1DPhi(0)
,fH1DR(0)
,fH1DRR(0)
,fH2DPhiEta(0)
,fH2DPhiEtaR(0)
,fH2DPhiEtaL(0)
,fH2DPhiEtaLR(0)
,fH2DPhiEtaC(0)
,fH2DPhiEtaCR(0)
,fH1Resp(0)
,fH1RespR(0)
,fH2Sigma(0)
,fH2SigmaR(0)
,fHDensity(0)
,fHCSize(0)
,fHNCluster(0)
,fHPtDensity(0)
,fHDPhi(0)
,fH2EtaPhi(0)
,fH2REtaPhi(0)
,fCuts(0)
{
for (Int_t i=0; i< 10; i++) {
fA[i] = 0;
fB[i] = 0;
}
}
AliAnalysisTaskKMeans& AliAnalysisTaskKMeans::operator=(const AliAnalysisTaskKMeans& )
{
return *this;
}
void AliAnalysisTaskKMeans::UserCreateOutputObjects()
{
fHists = new TList();
fH1CEta = new TH1F("fH1CEta", "eta distribution of clusters", 90, -1.5, 1.5);
fH1CEtaR = new TH1F("fH1CEtaR", "eta distribution of clusters", 90, -1.5, 1.5);
fH1CPhi = new TH1F("fH1CPhi", "phi distribution of clusters", 157, 0.0, 2. * TMath::Pi());
fH2N1N2 = new TH2F("fH2N1N2", "multiplicity distribution", 50, 0., 50., 50, 0., 50.);
fH1Pt = new TH1F("fH1Pt", "pt distribution",50, 0., 10.);
fH1PtC = new TH1F("fH1PtC", "pt distribution",50, 0., 10.);
fH1PtC1 = new TH1F("fH1PtC1", "pt distribution",50, 0., 10.);
fH1PtC2 = new TH1F("fH1PtC2", "pt distribution",50, 0., 10.);
fH1PtAS = new TH1F("fH1PtAS", "pt distribution",50, 0., 10.);
fH1PtR = new TH1F("fH1PtR", "pt distribution",50, 0., 10.);
fH1SPt = new TH1F("fH1SPt", "sum pt distribution",50, 0., 10.);
fH1SPtC = new TH1F("fH1SPtC", "sum pt distribution",50, 0., 10.);
fH1DR = new TH1F("fH1DR", "dR distribution", 50, 0., 5.);
fH1DPhi = new TH1F("fH1DPhi", "dPhi distribution", 31, 0., TMath::Pi());
fH2DPhiEta = new TH2F("fH2DPhiEta","eta phi distribution", 31, 0., TMath::Pi(), 20, 0., 2.);
fH2DPhiEtaR = new TH2F("fH2DPhiEtaR","eta phi distribution", 31, 0., TMath::Pi(), 20, 0., 2.);
fH2DPhiEtaL = new TH2F("fH2DPhiEtaL","eta phi distribution", 31, 0., TMath::Pi(), 20, 0., 2.);
fH2DPhiEtaLR = new TH2F("fH2DPhiEtaLR","eta phi distribution", 31, 0., TMath::Pi(), 20, 0., 2.);
fH2DPhiEtaC = new TH2F("fH2DPhiEtaC","eta phi distribution", 31, 0., TMath::Pi(), 20, 0., 2.);
fH2DPhiEtaCR = new TH2F("fH2DPhiEtaCR","eta phi distribution", 31, 0., TMath::Pi(), 20, 0., 2.);
fH1DRR = new TH1F("fH1DRR", "dR distribution", 50, 0., 5.);
fH1Resp = new TH1F("fH1Resp", "Responsibility", 50, 0., 1.);
fH1RespR = new TH1F("fH1RespR", "Responsibility", 50, 0., 1.);
fH2Sigma = new TH2F("fH2Sigma", "Sigma", 31, 0., TMath::Pi(), 20, 0., 2.);
fH2SigmaR = new TH2F("fH2SigmaR", "Sigma", 31, 0., TMath::Pi(), 20, 0., 2.);
fHDensity = new TH1F("fHDensity", "density distribution", 100, 0., 20.);
fHCSize = new TH1F("fHCSize", "cluster size", 20, -0.5, 19.5);
fHNCluster = new TH1F("fHNCluster", "Number of clusters", 11, -0.5, 10.5);
fHPtDensity = new TH2F("fHPtDensity", "Pt vs density", 100, 0., 20., 50, 0., 10.);
fHDPhi = new TH1F("fHDPhi", "phi correlation", 100, 0., 0.5);
fH2EtaPhi = new TH2F("fH2EtaPhi", "Eta Phi", 200, -1., 1., 628, 0., 2. * TMath::Pi());
fHists->SetOwner();
fHists->Add(fH1CEta);
fHists->Add(fH1CEtaR);
fHists->Add(fH1CPhi);
fHists->Add(fH2N1N2);
fHists->Add(fH1Pt);
fHists->Add(fH1PtR);
fHists->Add(fH1PtC);
fHists->Add(fH1PtC1);
fHists->Add(fH1PtC2);
fHists->Add(fH1PtAS);
fHists->Add(fH1DR);
fHists->Add(fH1SPtC);
fHists->Add(fH1SPt);
fHists->Add(fH1DPhi);
fHists->Add(fH2DPhiEta);
fHists->Add(fH2DPhiEtaR);
fHists->Add(fH2DPhiEtaL);
fHists->Add(fH2DPhiEtaLR);
fHists->Add(fH2DPhiEtaC);
fHists->Add(fH2DPhiEtaCR);
fHists->Add(fH1DRR);
fHists->Add(fH1RespR);
fHists->Add(fH1Resp);
fHists->Add(fH2Sigma);
fHists->Add(fH2SigmaR);
fHists->Add(fHCSize);
fHists->Add(fHDensity);
fHists->Add(fHNCluster);
fHists->Add(fHPtDensity);
fHists->Add(fHDPhi);
fHists->Add(fH2EtaPhi);
for (Int_t i = 0; i < 10; i++) {
fA[i] = new AliKMeansResult(i+1);
fB[i] = new AliKMeansResult(i+1);
}
}
void AliAnalysisTaskKMeans::UserExec(Option_t *)
{
Double_t phi [500] = {0};
Double_t phiR[500] = {0};
Double_t eta[500] = {0};
Double_t etaR[500] = {0};
Double_t pt [500] = {0};
if (!fInputEvent) {
Printf("ERROR: fESD not available");
return;
}
Int_t ic = 0;
Double_t ptmax = 0.;
Int_t icmax = -1;
for (Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++) {
AliVParticle* track = fInputEvent->GetTrack(iTracks);
if ((fCuts->AcceptTrack((AliESDtrack*)track)))
{
const AliExternalTrackParam * tpcT = ((AliESDtrack*) track)->GetTPCInnerParam();
if (!tpcT) continue;
if (TMath::Abs(tpcT->Eta()) > 0.9) continue;
phi [ic] = tpcT->Phi();
eta [ic] = tpcT->Eta();
pt [ic] = tpcT->Pt();
if (fH2REtaPhi) {
fH2REtaPhi->GetRandom2(etaR[ic], phiR[ic]);
} else {
phiR[ic] = 2. * TMath::Pi() * gRandom->Rndm();
etaR[ic] = 1.8 * gRandom->Rndm() - 0.9;
}
if (pt[ic] > ptmax) {
ptmax = pt[ic];
icmax = ic;
}
fH2EtaPhi->Fill(eta[ic], phi[ic]);
ic++;
}
}
for (Int_t i = 0; i < ic; i++) {
for (Int_t j = i+1; j < ic; j++) {
Double_t dphi = TMath::Abs(phi[i] - phi[j]);
fHDPhi->Fill(dphi);
}
}
if (ic < fNMin) {
PostData(1, fHists);
return;
}
Double_t rk0[10];
AliKMeansResult* res = 0;
AliKMeansResult best(10);
Float_t rmaxG = -1.;
for (Int_t k = 0; k < 20; k++) {
Float_t rmax = -1.;
Int_t imax = 0;
for (Int_t i = 0; i < fK; i++) {
res = fA[i];
AliKMeansClustering::SoftKMeans2(i+1, ic, phi, eta, res->GetMx(),res->GetMy(), res->GetSigma2(), res->GetRk());
res->Sort(ic, phi, eta);
Int_t j = (res->GetInd())[0];
rk0[i] = (res->GetTarget())[j];
if (rk0[i] > rmax) {
rmax = rk0[i];
imax = i;
}
}
if (rmax > rmaxG) {
rmaxG = rmax;
best.CopyResults(fA[imax]);
}
}
Double_t* mPhi = best.GetMx();
Double_t* mEta = best.GetMy();
Double_t* sigma2 = best.GetSigma2();
Int_t nk = best.GetK();
Int_t im = (best.GetInd())[0];
Double_t etaC = mEta[im];
fHDensity->Fill(rmaxG / TMath::Pi());
fHCSize->Fill(2.28 * rmaxG * sigma2[im]);
fHNCluster->Fill(Float_t(nk));
Double_t dphic, detac;
if (rmaxG > 0. && TMath::Abs(etaC) < 0.4) {
Int_t mult[2] = {0, 0};
if (nk > 1) {
dphic = DeltaPhi(mPhi[0], mPhi[1]);
detac = TMath::Abs(mEta[0] - mEta[1]);
fH2DPhiEtaC->Fill(dphic, detac);
}
Int_t ir = Int_t(Float_t(ic) * gRandom->Rndm());
Double_t crPhi = phi[ir];
Double_t crEta = eta[ir];
Double_t sumPt = 0;
Double_t sumPtC = 0;
for (Int_t i = 0; i < 1; i++) {
fH1CEta->Fill(mEta[im]);
fH1CPhi->Fill(mPhi[im]);
for (Int_t j = 0; j < ic; j++) {
Double_t r = DeltaR(mPhi[im], mEta[im], phi[j], eta[j]);
Double_t dphi = DeltaPhi(mPhi[im], phi[j]);
Double_t deta = mEta[im] - eta[j];
Double_t rr = DeltaR(crPhi, crEta, phi[j], eta[j]);
fH1DR->Fill(r);
fH1DPhi->Fill(dphi);
fH2DPhiEta->Fill(dphi, TMath::Abs(deta));
if (j == icmax) fH2DPhiEtaL->Fill(dphi, TMath::Abs(deta));
if (r < 0.2) {
fH1PtC2->Fill(pt[j]);
}
if (r < 0.3) {
fH1PtC1->Fill(pt[j]);
fHPtDensity->Fill(rmaxG/TMath::Pi(), pt[j]);
}
if (rr < 0.3) {
fH1PtR->Fill(pt[j]);
}
if (r < 0.4) {
sumPtC += pt[j];
mult[i]++;
fH1PtC->Fill(pt[j]);
}
if (r > 0.7 && dphi < (TMath::Pi() - 0.3)) {
fH1Pt->Fill(pt[j]);
}
if (r > 0.7 && r < 1.) {
sumPt += pt[j];
}
if (dphi > (TMath::Pi() - 0.3)) {
fH1PtAS->Fill(pt[j], 1.);
}
}
}
fH2N1N2->Fill(Float_t(mult[0]), Float_t(mult[1]));
fH1SPt ->Fill(sumPt);
fH1SPtC->Fill(sumPtC);
}
rmaxG = -1.;
for (Int_t k = 0; k < 20; k++) {
Float_t rmax = -1.;
Int_t imax = 0;
for (Int_t i = 0; i < fK; i++) {
res = fB[i];
AliKMeansClustering::SoftKMeans2(i+1, ic, phiR, etaR, res->GetMx(),res->GetMy(), res->GetSigma2(), res->GetRk());
res->Sort(ic, phiR, etaR);
Int_t j = (res->GetInd())[0];
rk0[i] = (res->GetTarget())[j];
if (rk0[i] > rmax) {
rmax = rk0[i];
imax = i;
}
}
if (rmax > rmaxG) {
rmaxG = rmax;
best.CopyResults(fB[imax]);
}
}
mPhi = best.GetMx();
mEta = best.GetMy();
nk = best.GetK();
im = (best.GetInd())[0];
etaC = mEta[im];
if (rmaxG > 0. && TMath::Abs(etaC) < 0.4) {
for (Int_t i = 0; i < 1; i++) {
im = (best.GetInd())[i];
fH1CEtaR->Fill(mEta[im]);
}
for (Int_t i = 0; i < 1; i++) {
im = (best.GetInd())[i];
for (Int_t j = 0; j < ic; j++) {
Double_t dphi = DeltaPhi(mPhi[im], phiR[j]);
Double_t deta = mEta[im] - etaR[j];
Double_t r = DeltaR(mPhi[im], mEta[im], phiR[j], etaR[j]);
fH1DRR->Fill(r);
fH2DPhiEtaR->Fill(dphi, TMath::Abs(deta));
if (j == icmax) fH2DPhiEtaLR->Fill(dphi, TMath::Abs(deta));
}
}
if (nk > 1) {
dphic = DeltaPhi(mPhi[0], mPhi[1]);
detac = TMath::Abs(mEta[0] - mEta[1]);
fH2DPhiEtaCR->Fill(dphic, detac);
}
}
PostData(1, fHists);
}
Double_t AliAnalysisTaskKMeans::DeltaPhi(Double_t phi1, Double_t phi2)
{
Double_t dphi = TMath::Abs(phi1 - phi2);
if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;
return dphi;
}
Double_t AliAnalysisTaskKMeans::DeltaR(Double_t phi1, Double_t eta1, Double_t phi2, Double_t eta2)
{
Double_t dphi = DeltaPhi(phi1, phi2);
Double_t deta = eta1 - eta2;
return (TMath::Sqrt(dphi * dphi + deta * deta));
}
void AliAnalysisTaskKMeans::Terminate(Option_t *)
{
}
AliAnalysisTaskKMeans.cxx:1 AliAnalysisTaskKMeans.cxx:2 AliAnalysisTaskKMeans.cxx:3 AliAnalysisTaskKMeans.cxx:4 AliAnalysisTaskKMeans.cxx:5 AliAnalysisTaskKMeans.cxx:6 AliAnalysisTaskKMeans.cxx:7 AliAnalysisTaskKMeans.cxx:8 AliAnalysisTaskKMeans.cxx:9 AliAnalysisTaskKMeans.cxx:10 AliAnalysisTaskKMeans.cxx:11 AliAnalysisTaskKMeans.cxx:12 AliAnalysisTaskKMeans.cxx:13 AliAnalysisTaskKMeans.cxx:14 AliAnalysisTaskKMeans.cxx:15 AliAnalysisTaskKMeans.cxx:16 AliAnalysisTaskKMeans.cxx:17 AliAnalysisTaskKMeans.cxx:18 AliAnalysisTaskKMeans.cxx:19 AliAnalysisTaskKMeans.cxx:20 AliAnalysisTaskKMeans.cxx:21 AliAnalysisTaskKMeans.cxx:22 AliAnalysisTaskKMeans.cxx:23 AliAnalysisTaskKMeans.cxx:24 AliAnalysisTaskKMeans.cxx:25 AliAnalysisTaskKMeans.cxx:26 AliAnalysisTaskKMeans.cxx:27 AliAnalysisTaskKMeans.cxx:28 AliAnalysisTaskKMeans.cxx:29 AliAnalysisTaskKMeans.cxx:30 AliAnalysisTaskKMeans.cxx:31 AliAnalysisTaskKMeans.cxx:32 AliAnalysisTaskKMeans.cxx:33 AliAnalysisTaskKMeans.cxx:34 AliAnalysisTaskKMeans.cxx:35 AliAnalysisTaskKMeans.cxx:36 AliAnalysisTaskKMeans.cxx:37 AliAnalysisTaskKMeans.cxx:38 AliAnalysisTaskKMeans.cxx:39 AliAnalysisTaskKMeans.cxx:40 AliAnalysisTaskKMeans.cxx:41 AliAnalysisTaskKMeans.cxx:42 AliAnalysisTaskKMeans.cxx:43 AliAnalysisTaskKMeans.cxx:44 AliAnalysisTaskKMeans.cxx:45 AliAnalysisTaskKMeans.cxx:46 AliAnalysisTaskKMeans.cxx:47 AliAnalysisTaskKMeans.cxx:48 AliAnalysisTaskKMeans.cxx:49 AliAnalysisTaskKMeans.cxx:50 AliAnalysisTaskKMeans.cxx:51 AliAnalysisTaskKMeans.cxx:52 AliAnalysisTaskKMeans.cxx:53 AliAnalysisTaskKMeans.cxx:54 AliAnalysisTaskKMeans.cxx:55 AliAnalysisTaskKMeans.cxx:56 AliAnalysisTaskKMeans.cxx:57 AliAnalysisTaskKMeans.cxx:58 AliAnalysisTaskKMeans.cxx:59 AliAnalysisTaskKMeans.cxx:60 AliAnalysisTaskKMeans.cxx:61 AliAnalysisTaskKMeans.cxx:62 AliAnalysisTaskKMeans.cxx:63 AliAnalysisTaskKMeans.cxx:64 AliAnalysisTaskKMeans.cxx:65 AliAnalysisTaskKMeans.cxx:66 AliAnalysisTaskKMeans.cxx:67 AliAnalysisTaskKMeans.cxx:68 AliAnalysisTaskKMeans.cxx:69 AliAnalysisTaskKMeans.cxx:70 AliAnalysisTaskKMeans.cxx:71 AliAnalysisTaskKMeans.cxx:72 AliAnalysisTaskKMeans.cxx:73 AliAnalysisTaskKMeans.cxx:74 AliAnalysisTaskKMeans.cxx:75 AliAnalysisTaskKMeans.cxx:76 AliAnalysisTaskKMeans.cxx:77 AliAnalysisTaskKMeans.cxx:78 AliAnalysisTaskKMeans.cxx:79 AliAnalysisTaskKMeans.cxx:80 AliAnalysisTaskKMeans.cxx:81 AliAnalysisTaskKMeans.cxx:82 AliAnalysisTaskKMeans.cxx:83 AliAnalysisTaskKMeans.cxx:84 AliAnalysisTaskKMeans.cxx:85 AliAnalysisTaskKMeans.cxx:86 AliAnalysisTaskKMeans.cxx:87 AliAnalysisTaskKMeans.cxx:88 AliAnalysisTaskKMeans.cxx:89 AliAnalysisTaskKMeans.cxx:90 AliAnalysisTaskKMeans.cxx:91 AliAnalysisTaskKMeans.cxx:92 AliAnalysisTaskKMeans.cxx:93 AliAnalysisTaskKMeans.cxx:94 AliAnalysisTaskKMeans.cxx:95 AliAnalysisTaskKMeans.cxx:96 AliAnalysisTaskKMeans.cxx:97 AliAnalysisTaskKMeans.cxx:98 AliAnalysisTaskKMeans.cxx:99 AliAnalysisTaskKMeans.cxx:100 AliAnalysisTaskKMeans.cxx:101 AliAnalysisTaskKMeans.cxx:102 AliAnalysisTaskKMeans.cxx:103 AliAnalysisTaskKMeans.cxx:104 AliAnalysisTaskKMeans.cxx:105 AliAnalysisTaskKMeans.cxx:106 AliAnalysisTaskKMeans.cxx:107 AliAnalysisTaskKMeans.cxx:108 AliAnalysisTaskKMeans.cxx:109 AliAnalysisTaskKMeans.cxx:110 AliAnalysisTaskKMeans.cxx:111 AliAnalysisTaskKMeans.cxx:112 AliAnalysisTaskKMeans.cxx:113 AliAnalysisTaskKMeans.cxx:114 AliAnalysisTaskKMeans.cxx:115 AliAnalysisTaskKMeans.cxx:116 AliAnalysisTaskKMeans.cxx:117 AliAnalysisTaskKMeans.cxx:118 AliAnalysisTaskKMeans.cxx:119 AliAnalysisTaskKMeans.cxx:120 AliAnalysisTaskKMeans.cxx:121 AliAnalysisTaskKMeans.cxx:122 AliAnalysisTaskKMeans.cxx:123 AliAnalysisTaskKMeans.cxx:124 AliAnalysisTaskKMeans.cxx:125 AliAnalysisTaskKMeans.cxx:126 AliAnalysisTaskKMeans.cxx:127 AliAnalysisTaskKMeans.cxx:128 AliAnalysisTaskKMeans.cxx:129 AliAnalysisTaskKMeans.cxx:130 AliAnalysisTaskKMeans.cxx:131 AliAnalysisTaskKMeans.cxx:132 AliAnalysisTaskKMeans.cxx:133 AliAnalysisTaskKMeans.cxx:134 AliAnalysisTaskKMeans.cxx:135 AliAnalysisTaskKMeans.cxx:136 AliAnalysisTaskKMeans.cxx:137 AliAnalysisTaskKMeans.cxx:138 AliAnalysisTaskKMeans.cxx:139 AliAnalysisTaskKMeans.cxx:140 AliAnalysisTaskKMeans.cxx:141 AliAnalysisTaskKMeans.cxx:142 AliAnalysisTaskKMeans.cxx:143 AliAnalysisTaskKMeans.cxx:144 AliAnalysisTaskKMeans.cxx:145 AliAnalysisTaskKMeans.cxx:146 AliAnalysisTaskKMeans.cxx:147 AliAnalysisTaskKMeans.cxx:148 AliAnalysisTaskKMeans.cxx:149 AliAnalysisTaskKMeans.cxx:150 AliAnalysisTaskKMeans.cxx:151 AliAnalysisTaskKMeans.cxx:152 AliAnalysisTaskKMeans.cxx:153 AliAnalysisTaskKMeans.cxx:154 AliAnalysisTaskKMeans.cxx:155 AliAnalysisTaskKMeans.cxx:156 AliAnalysisTaskKMeans.cxx:157 AliAnalysisTaskKMeans.cxx:158 AliAnalysisTaskKMeans.cxx:159 AliAnalysisTaskKMeans.cxx:160 AliAnalysisTaskKMeans.cxx:161 AliAnalysisTaskKMeans.cxx:162 AliAnalysisTaskKMeans.cxx:163 AliAnalysisTaskKMeans.cxx:164 AliAnalysisTaskKMeans.cxx:165 AliAnalysisTaskKMeans.cxx:166 AliAnalysisTaskKMeans.cxx:167 AliAnalysisTaskKMeans.cxx:168 AliAnalysisTaskKMeans.cxx:169 AliAnalysisTaskKMeans.cxx:170 AliAnalysisTaskKMeans.cxx:171 AliAnalysisTaskKMeans.cxx:172 AliAnalysisTaskKMeans.cxx:173 AliAnalysisTaskKMeans.cxx:174 AliAnalysisTaskKMeans.cxx:175 AliAnalysisTaskKMeans.cxx:176 AliAnalysisTaskKMeans.cxx:177 AliAnalysisTaskKMeans.cxx:178 AliAnalysisTaskKMeans.cxx:179 AliAnalysisTaskKMeans.cxx:180 AliAnalysisTaskKMeans.cxx:181 AliAnalysisTaskKMeans.cxx:182 AliAnalysisTaskKMeans.cxx:183 AliAnalysisTaskKMeans.cxx:184 AliAnalysisTaskKMeans.cxx:185 AliAnalysisTaskKMeans.cxx:186 AliAnalysisTaskKMeans.cxx:187 AliAnalysisTaskKMeans.cxx:188 AliAnalysisTaskKMeans.cxx:189 AliAnalysisTaskKMeans.cxx:190 AliAnalysisTaskKMeans.cxx:191 AliAnalysisTaskKMeans.cxx:192 AliAnalysisTaskKMeans.cxx:193 AliAnalysisTaskKMeans.cxx:194 AliAnalysisTaskKMeans.cxx:195 AliAnalysisTaskKMeans.cxx:196 AliAnalysisTaskKMeans.cxx:197 AliAnalysisTaskKMeans.cxx:198 AliAnalysisTaskKMeans.cxx:199 AliAnalysisTaskKMeans.cxx:200 AliAnalysisTaskKMeans.cxx:201 AliAnalysisTaskKMeans.cxx:202 AliAnalysisTaskKMeans.cxx:203 AliAnalysisTaskKMeans.cxx:204 AliAnalysisTaskKMeans.cxx:205 AliAnalysisTaskKMeans.cxx:206 AliAnalysisTaskKMeans.cxx:207 AliAnalysisTaskKMeans.cxx:208 AliAnalysisTaskKMeans.cxx:209 AliAnalysisTaskKMeans.cxx:210 AliAnalysisTaskKMeans.cxx:211 AliAnalysisTaskKMeans.cxx:212 AliAnalysisTaskKMeans.cxx:213 AliAnalysisTaskKMeans.cxx:214 AliAnalysisTaskKMeans.cxx:215 AliAnalysisTaskKMeans.cxx:216 AliAnalysisTaskKMeans.cxx:217 AliAnalysisTaskKMeans.cxx:218 AliAnalysisTaskKMeans.cxx:219 AliAnalysisTaskKMeans.cxx:220 AliAnalysisTaskKMeans.cxx:221 AliAnalysisTaskKMeans.cxx:222 AliAnalysisTaskKMeans.cxx:223 AliAnalysisTaskKMeans.cxx:224 AliAnalysisTaskKMeans.cxx:225 AliAnalysisTaskKMeans.cxx:226 AliAnalysisTaskKMeans.cxx:227 AliAnalysisTaskKMeans.cxx:228 AliAnalysisTaskKMeans.cxx:229 AliAnalysisTaskKMeans.cxx:230 AliAnalysisTaskKMeans.cxx:231 AliAnalysisTaskKMeans.cxx:232 AliAnalysisTaskKMeans.cxx:233 AliAnalysisTaskKMeans.cxx:234 AliAnalysisTaskKMeans.cxx:235 AliAnalysisTaskKMeans.cxx:236 AliAnalysisTaskKMeans.cxx:237 AliAnalysisTaskKMeans.cxx:238 AliAnalysisTaskKMeans.cxx:239 AliAnalysisTaskKMeans.cxx:240 AliAnalysisTaskKMeans.cxx:241 AliAnalysisTaskKMeans.cxx:242 AliAnalysisTaskKMeans.cxx:243 AliAnalysisTaskKMeans.cxx:244 AliAnalysisTaskKMeans.cxx:245 AliAnalysisTaskKMeans.cxx:246 AliAnalysisTaskKMeans.cxx:247 AliAnalysisTaskKMeans.cxx:248 AliAnalysisTaskKMeans.cxx:249 AliAnalysisTaskKMeans.cxx:250 AliAnalysisTaskKMeans.cxx:251 AliAnalysisTaskKMeans.cxx:252 AliAnalysisTaskKMeans.cxx:253 AliAnalysisTaskKMeans.cxx:254 AliAnalysisTaskKMeans.cxx:255 AliAnalysisTaskKMeans.cxx:256 AliAnalysisTaskKMeans.cxx:257 AliAnalysisTaskKMeans.cxx:258 AliAnalysisTaskKMeans.cxx:259 AliAnalysisTaskKMeans.cxx:260 AliAnalysisTaskKMeans.cxx:261 AliAnalysisTaskKMeans.cxx:262 AliAnalysisTaskKMeans.cxx:263 AliAnalysisTaskKMeans.cxx:264 AliAnalysisTaskKMeans.cxx:265 AliAnalysisTaskKMeans.cxx:266 AliAnalysisTaskKMeans.cxx:267 AliAnalysisTaskKMeans.cxx:268 AliAnalysisTaskKMeans.cxx:269 AliAnalysisTaskKMeans.cxx:270 AliAnalysisTaskKMeans.cxx:271 AliAnalysisTaskKMeans.cxx:272 AliAnalysisTaskKMeans.cxx:273 AliAnalysisTaskKMeans.cxx:274 AliAnalysisTaskKMeans.cxx:275 AliAnalysisTaskKMeans.cxx:276 AliAnalysisTaskKMeans.cxx:277 AliAnalysisTaskKMeans.cxx:278 AliAnalysisTaskKMeans.cxx:279 AliAnalysisTaskKMeans.cxx:280 AliAnalysisTaskKMeans.cxx:281 AliAnalysisTaskKMeans.cxx:282 AliAnalysisTaskKMeans.cxx:283 AliAnalysisTaskKMeans.cxx:284 AliAnalysisTaskKMeans.cxx:285 AliAnalysisTaskKMeans.cxx:286 AliAnalysisTaskKMeans.cxx:287 AliAnalysisTaskKMeans.cxx:288 AliAnalysisTaskKMeans.cxx:289 AliAnalysisTaskKMeans.cxx:290 AliAnalysisTaskKMeans.cxx:291 AliAnalysisTaskKMeans.cxx:292 AliAnalysisTaskKMeans.cxx:293 AliAnalysisTaskKMeans.cxx:294 AliAnalysisTaskKMeans.cxx:295 AliAnalysisTaskKMeans.cxx:296 AliAnalysisTaskKMeans.cxx:297 AliAnalysisTaskKMeans.cxx:298 AliAnalysisTaskKMeans.cxx:299 AliAnalysisTaskKMeans.cxx:300 AliAnalysisTaskKMeans.cxx:301 AliAnalysisTaskKMeans.cxx:302 AliAnalysisTaskKMeans.cxx:303 AliAnalysisTaskKMeans.cxx:304 AliAnalysisTaskKMeans.cxx:305 AliAnalysisTaskKMeans.cxx:306 AliAnalysisTaskKMeans.cxx:307 AliAnalysisTaskKMeans.cxx:308 AliAnalysisTaskKMeans.cxx:309 AliAnalysisTaskKMeans.cxx:310 AliAnalysisTaskKMeans.cxx:311 AliAnalysisTaskKMeans.cxx:312 AliAnalysisTaskKMeans.cxx:313 AliAnalysisTaskKMeans.cxx:314 AliAnalysisTaskKMeans.cxx:315 AliAnalysisTaskKMeans.cxx:316 AliAnalysisTaskKMeans.cxx:317 AliAnalysisTaskKMeans.cxx:318 AliAnalysisTaskKMeans.cxx:319 AliAnalysisTaskKMeans.cxx:320 AliAnalysisTaskKMeans.cxx:321 AliAnalysisTaskKMeans.cxx:322 AliAnalysisTaskKMeans.cxx:323 AliAnalysisTaskKMeans.cxx:324 AliAnalysisTaskKMeans.cxx:325 AliAnalysisTaskKMeans.cxx:326 AliAnalysisTaskKMeans.cxx:327 AliAnalysisTaskKMeans.cxx:328 AliAnalysisTaskKMeans.cxx:329 AliAnalysisTaskKMeans.cxx:330 AliAnalysisTaskKMeans.cxx:331 AliAnalysisTaskKMeans.cxx:332 AliAnalysisTaskKMeans.cxx:333 AliAnalysisTaskKMeans.cxx:334 AliAnalysisTaskKMeans.cxx:335 AliAnalysisTaskKMeans.cxx:336 AliAnalysisTaskKMeans.cxx:337 AliAnalysisTaskKMeans.cxx:338 AliAnalysisTaskKMeans.cxx:339 AliAnalysisTaskKMeans.cxx:340 AliAnalysisTaskKMeans.cxx:341 AliAnalysisTaskKMeans.cxx:342 AliAnalysisTaskKMeans.cxx:343 AliAnalysisTaskKMeans.cxx:344 AliAnalysisTaskKMeans.cxx:345 AliAnalysisTaskKMeans.cxx:346 AliAnalysisTaskKMeans.cxx:347 AliAnalysisTaskKMeans.cxx:348 AliAnalysisTaskKMeans.cxx:349 AliAnalysisTaskKMeans.cxx:350 AliAnalysisTaskKMeans.cxx:351 AliAnalysisTaskKMeans.cxx:352 AliAnalysisTaskKMeans.cxx:353 AliAnalysisTaskKMeans.cxx:354 AliAnalysisTaskKMeans.cxx:355 AliAnalysisTaskKMeans.cxx:356 AliAnalysisTaskKMeans.cxx:357 AliAnalysisTaskKMeans.cxx:358 AliAnalysisTaskKMeans.cxx:359 AliAnalysisTaskKMeans.cxx:360 AliAnalysisTaskKMeans.cxx:361 AliAnalysisTaskKMeans.cxx:362 AliAnalysisTaskKMeans.cxx:363 AliAnalysisTaskKMeans.cxx:364 AliAnalysisTaskKMeans.cxx:365 AliAnalysisTaskKMeans.cxx:366 AliAnalysisTaskKMeans.cxx:367 AliAnalysisTaskKMeans.cxx:368 AliAnalysisTaskKMeans.cxx:369 AliAnalysisTaskKMeans.cxx:370 AliAnalysisTaskKMeans.cxx:371 AliAnalysisTaskKMeans.cxx:372 AliAnalysisTaskKMeans.cxx:373 AliAnalysisTaskKMeans.cxx:374 AliAnalysisTaskKMeans.cxx:375 AliAnalysisTaskKMeans.cxx:376 AliAnalysisTaskKMeans.cxx:377 AliAnalysisTaskKMeans.cxx:378 AliAnalysisTaskKMeans.cxx:379 AliAnalysisTaskKMeans.cxx:380 AliAnalysisTaskKMeans.cxx:381 AliAnalysisTaskKMeans.cxx:382 AliAnalysisTaskKMeans.cxx:383 AliAnalysisTaskKMeans.cxx:384 AliAnalysisTaskKMeans.cxx:385 AliAnalysisTaskKMeans.cxx:386 AliAnalysisTaskKMeans.cxx:387 AliAnalysisTaskKMeans.cxx:388 AliAnalysisTaskKMeans.cxx:389 AliAnalysisTaskKMeans.cxx:390 AliAnalysisTaskKMeans.cxx:391 AliAnalysisTaskKMeans.cxx:392 AliAnalysisTaskKMeans.cxx:393 AliAnalysisTaskKMeans.cxx:394 AliAnalysisTaskKMeans.cxx:395 AliAnalysisTaskKMeans.cxx:396 AliAnalysisTaskKMeans.cxx:397 AliAnalysisTaskKMeans.cxx:398 AliAnalysisTaskKMeans.cxx:399 AliAnalysisTaskKMeans.cxx:400 AliAnalysisTaskKMeans.cxx:401 AliAnalysisTaskKMeans.cxx:402 AliAnalysisTaskKMeans.cxx:403 AliAnalysisTaskKMeans.cxx:404 AliAnalysisTaskKMeans.cxx:405 AliAnalysisTaskKMeans.cxx:406 AliAnalysisTaskKMeans.cxx:407 AliAnalysisTaskKMeans.cxx:408 AliAnalysisTaskKMeans.cxx:409 AliAnalysisTaskKMeans.cxx:410 AliAnalysisTaskKMeans.cxx:411 AliAnalysisTaskKMeans.cxx:412 AliAnalysisTaskKMeans.cxx:413 AliAnalysisTaskKMeans.cxx:414 AliAnalysisTaskKMeans.cxx:415 AliAnalysisTaskKMeans.cxx:416 AliAnalysisTaskKMeans.cxx:417 AliAnalysisTaskKMeans.cxx:418 AliAnalysisTaskKMeans.cxx:419 AliAnalysisTaskKMeans.cxx:420 AliAnalysisTaskKMeans.cxx:421 AliAnalysisTaskKMeans.cxx:422 AliAnalysisTaskKMeans.cxx:423 AliAnalysisTaskKMeans.cxx:424 AliAnalysisTaskKMeans.cxx:425 AliAnalysisTaskKMeans.cxx:426 AliAnalysisTaskKMeans.cxx:427 AliAnalysisTaskKMeans.cxx:428 AliAnalysisTaskKMeans.cxx:429 AliAnalysisTaskKMeans.cxx:430 AliAnalysisTaskKMeans.cxx:431 AliAnalysisTaskKMeans.cxx:432 AliAnalysisTaskKMeans.cxx:433 AliAnalysisTaskKMeans.cxx:434 AliAnalysisTaskKMeans.cxx:435 AliAnalysisTaskKMeans.cxx:436 AliAnalysisTaskKMeans.cxx:437 AliAnalysisTaskKMeans.cxx:438 AliAnalysisTaskKMeans.cxx:439 AliAnalysisTaskKMeans.cxx:440 AliAnalysisTaskKMeans.cxx:441 AliAnalysisTaskKMeans.cxx:442 AliAnalysisTaskKMeans.cxx:443 AliAnalysisTaskKMeans.cxx:444 AliAnalysisTaskKMeans.cxx:445 AliAnalysisTaskKMeans.cxx:446 AliAnalysisTaskKMeans.cxx:447 AliAnalysisTaskKMeans.cxx:448 AliAnalysisTaskKMeans.cxx:449 AliAnalysisTaskKMeans.cxx:450 AliAnalysisTaskKMeans.cxx:451 AliAnalysisTaskKMeans.cxx:452 AliAnalysisTaskKMeans.cxx:453 AliAnalysisTaskKMeans.cxx:454 AliAnalysisTaskKMeans.cxx:455 AliAnalysisTaskKMeans.cxx:456 AliAnalysisTaskKMeans.cxx:457 AliAnalysisTaskKMeans.cxx:458 AliAnalysisTaskKMeans.cxx:459 AliAnalysisTaskKMeans.cxx:460 AliAnalysisTaskKMeans.cxx:461 AliAnalysisTaskKMeans.cxx:462 AliAnalysisTaskKMeans.cxx:463 AliAnalysisTaskKMeans.cxx:464 AliAnalysisTaskKMeans.cxx:465 AliAnalysisTaskKMeans.cxx:466 AliAnalysisTaskKMeans.cxx:467 AliAnalysisTaskKMeans.cxx:468 AliAnalysisTaskKMeans.cxx:469 AliAnalysisTaskKMeans.cxx:470 AliAnalysisTaskKMeans.cxx:471 AliAnalysisTaskKMeans.cxx:472 AliAnalysisTaskKMeans.cxx:473 AliAnalysisTaskKMeans.cxx:474 AliAnalysisTaskKMeans.cxx:475 AliAnalysisTaskKMeans.cxx:476 AliAnalysisTaskKMeans.cxx:477 AliAnalysisTaskKMeans.cxx:478 AliAnalysisTaskKMeans.cxx:479 AliAnalysisTaskKMeans.cxx:480 AliAnalysisTaskKMeans.cxx:481 AliAnalysisTaskKMeans.cxx:482 AliAnalysisTaskKMeans.cxx:483 AliAnalysisTaskKMeans.cxx:484 AliAnalysisTaskKMeans.cxx:485 AliAnalysisTaskKMeans.cxx:486 AliAnalysisTaskKMeans.cxx:487 AliAnalysisTaskKMeans.cxx:488 AliAnalysisTaskKMeans.cxx:489 AliAnalysisTaskKMeans.cxx:490 AliAnalysisTaskKMeans.cxx:491 AliAnalysisTaskKMeans.cxx:492 AliAnalysisTaskKMeans.cxx:493 AliAnalysisTaskKMeans.cxx:494 AliAnalysisTaskKMeans.cxx:495 AliAnalysisTaskKMeans.cxx:496 AliAnalysisTaskKMeans.cxx:497 AliAnalysisTaskKMeans.cxx:498 AliAnalysisTaskKMeans.cxx:499 AliAnalysisTaskKMeans.cxx:500 AliAnalysisTaskKMeans.cxx:501 AliAnalysisTaskKMeans.cxx:502 AliAnalysisTaskKMeans.cxx:503 AliAnalysisTaskKMeans.cxx:504 AliAnalysisTaskKMeans.cxx:505 AliAnalysisTaskKMeans.cxx:506 AliAnalysisTaskKMeans.cxx:507 AliAnalysisTaskKMeans.cxx:508 AliAnalysisTaskKMeans.cxx:509 AliAnalysisTaskKMeans.cxx:510 AliAnalysisTaskKMeans.cxx:511 AliAnalysisTaskKMeans.cxx:512 AliAnalysisTaskKMeans.cxx:513 AliAnalysisTaskKMeans.cxx:514 AliAnalysisTaskKMeans.cxx:515 AliAnalysisTaskKMeans.cxx:516 AliAnalysisTaskKMeans.cxx:517 AliAnalysisTaskKMeans.cxx:518 AliAnalysisTaskKMeans.cxx:519 AliAnalysisTaskKMeans.cxx:520 AliAnalysisTaskKMeans.cxx:521 AliAnalysisTaskKMeans.cxx:522 AliAnalysisTaskKMeans.cxx:523 AliAnalysisTaskKMeans.cxx:524 AliAnalysisTaskKMeans.cxx:525 AliAnalysisTaskKMeans.cxx:526 AliAnalysisTaskKMeans.cxx:527 AliAnalysisTaskKMeans.cxx:528 AliAnalysisTaskKMeans.cxx:529 AliAnalysisTaskKMeans.cxx:530 AliAnalysisTaskKMeans.cxx:531 AliAnalysisTaskKMeans.cxx:532 AliAnalysisTaskKMeans.cxx:533 AliAnalysisTaskKMeans.cxx:534 AliAnalysisTaskKMeans.cxx:535 AliAnalysisTaskKMeans.cxx:536 AliAnalysisTaskKMeans.cxx:537 AliAnalysisTaskKMeans.cxx:538 AliAnalysisTaskKMeans.cxx:539 AliAnalysisTaskKMeans.cxx:540 AliAnalysisTaskKMeans.cxx:541 AliAnalysisTaskKMeans.cxx:542 AliAnalysisTaskKMeans.cxx:543 AliAnalysisTaskKMeans.cxx:544 AliAnalysisTaskKMeans.cxx:545 AliAnalysisTaskKMeans.cxx:546 AliAnalysisTaskKMeans.cxx:547 AliAnalysisTaskKMeans.cxx:548 AliAnalysisTaskKMeans.cxx:549 AliAnalysisTaskKMeans.cxx:550 AliAnalysisTaskKMeans.cxx:551 AliAnalysisTaskKMeans.cxx:552 AliAnalysisTaskKMeans.cxx:553 AliAnalysisTaskKMeans.cxx:554 AliAnalysisTaskKMeans.cxx:555 AliAnalysisTaskKMeans.cxx:556 AliAnalysisTaskKMeans.cxx:557 AliAnalysisTaskKMeans.cxx:558 AliAnalysisTaskKMeans.cxx:559