ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */
//---------------------------------------------------------------------------------------
//     Analysis Task that uses the Soft K-Means Algorithm to find clusters in
//     the eta-phi space of Minimum Bias. No pt information is used for the clustering.
//     
//
//     Author: Andreas Morsch (CERN)
//     andreas.morsch@cern.ch
//---------------------------------------------------------------------------------------



#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)

{
  //

  // Constructor
  //
    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)

{
  //
  // Constructor
  //
    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)
{
    // Dummy copy constructor
    for (Int_t i=0; i< 10; i++) {
	fA[i] = 0;
	fB[i] = 0;
    }
}

AliAnalysisTaskKMeans& AliAnalysisTaskKMeans::operator=(const AliAnalysisTaskKMeans& /*trclass*/)
{
    // Dummy assignment operator
    return *this;
}



//________________________________________________________________________
void AliAnalysisTaskKMeans::UserCreateOutputObjects()
{
  // Create histograms
  // Called once
    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 *) 
{
  // Main loop
  // Called for each event
    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;
  
  //
  // Fill eta-phi positions
  //

  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++;
      }
  } //track loop 

  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);
    }
  }

  //
  // Cluster
  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) {
    // Analysis
    //
    // Cluster Multiplicity
    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);  
    }
    //
    // Random cluster position
    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);
  }
    //
    // Randomized phi
    //
  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];    

    //
    // Cluster Multiplicity
    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