#include "AliAnalysisTaskCFTree.h"
#include "AliCFParticle.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliMCEvent.h"
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "AliCentrality.h"
#include "AliAnalysisFilter.h"
#include "AliVMultiplicity.h"
#include "AliAnalysisUtils.h"
#include "TMath.h"
#include "TFile.h"
#include "TList.h"
#include "TH1I.h"
#include "TChain.h"
#include "TTree.h"
#include "TClonesArray.h"
ClassImp(AliAnalysisTaskCFTree)
AliAnalysisTaskCFTree::AliAnalysisTaskCFTree(const char* name) :
AliAnalysisTaskSE(name),
fTrackFilter(0x0),
fHybridConstrainedMask(0),
fTPConlyConstrainedMask(0),
fUtils(0x0),
fListOfHistos(0x0),
fEventStatistics(0x0),
fTree(0x0),
fTracks(0x0),
fTracklets(0x0),
fMuons(0x0),
fMcParticles(0x0),
fField(0),
fCentrality(),
fVtxZ(0),
fVtxTPConly(0),
fVtxContributors(0),
fPeriod(0),
fOrbit(),
fBc(),
fSelectMask(0),
fIsPileupSPD(0),
fIsPileupMV(0),
fSelectBit(AliVEvent::kAny),
fZVertexCut(10.),
fTrackFilterBit(0xffffffff),
fTrackEtaCut(1.0),
fPtMin(0.15),
fSharedClusterCut(0.4),
fCrossedRowsCut(100),
fFoundFractionCut(0.8),
fDphiCut(1.e9),
fStoreTracks(0),
fStoreTracklets(0),
fStoreMuons(0),
fStoreMcTracks(0),
fStoreMcTracklets(0),
fStoreMcMuons(0),
fStorePidInfo(0)
{
Info("AliAnalysisTaskCFTree","Calling Constructor");
DefineInput(0,TChain::Class());
DefineOutput(1,TList::Class());
DefineOutput(2,TTree::Class());
}
void AliAnalysisTaskCFTree::UserCreateOutputObjects(){
fListOfHistos = new TList();
fListOfHistos->SetOwner();
fEventStatistics = new TH1I("fEventStatistics","",10,0,10);
fEventStatistics->SetBit(TH1::kCanRebin);
fListOfHistos->Add(fEventStatistics);
if (fStoreTracks) fTracks = new TClonesArray("AliCFParticle",2000);
if (fStoreTracklets) fTracklets = new TClonesArray("AliCFParticle",2000);
if (fStoreMuons) fMuons = new TClonesArray("AliCFParticle",2000);
if (fStoreMcTracks) fMcParticles = new TClonesArray("AliCFParticle",2000);
TDirectory *owd = gDirectory;
OpenFile(1);
fTree = new TTree("events","events");
owd->cd();
fTree->Branch("cent",&fCentrality,"fCentrality[6]/F");
fTree->Branch("vtxz",&fVtxZ);
fTree->Branch("vtxTPConly",&fVtxTPConly);
fTree->Branch("vtxContributors",&fVtxContributors);
fTree->Branch("field",&fField);
fTree->Branch("run",&fCurrentRunNumber);
fTree->Branch("period",&fPeriod);
fTree->Branch("orbit",&fOrbit);
fTree->Branch("bc",&fBc);
fTree->Branch("mask",&fSelectMask);
fTree->Branch("pileupspd",&fIsPileupSPD);
fTree->Branch("pileupmv",&fIsPileupMV);
if (fTracks) fTree->Branch("tracks",&fTracks);
if (fTracklets) fTree->Branch("tracklets",&fTracklets);
if (fMuons) fTree->Branch("muons",&fMuons);
if (fMcParticles) fTree->Branch("mcparticles",&fMcParticles);
fUtils = new AliAnalysisUtils();
PostData(1,fListOfHistos);
PostData(2,fTree);
}
void AliAnalysisTaskCFTree::UserExec(Option_t *){
fEventStatistics->Fill("before cuts",1);
if (!fInputEvent) return;
fEventStatistics->Fill("after event check",1);
fSelectMask = fInputHandler->IsEventSelected();
if (!(fSelectMask & fSelectBit)) return;
fEventStatistics->Fill("after physics selection",1);
fPeriod = fInputEvent->GetPeriodNumber();
fOrbit = fInputEvent->GetOrbitNumber();
fBc = fInputEvent->GetBunchCrossNumber();
fField = fInputEvent->GetMagneticField();
fCentrality[0] = fInputEvent->GetCentrality()->GetCentralityPercentile("V0M");
fCentrality[1] = fInputEvent->GetCentrality()->GetCentralityPercentile("V0A");
fCentrality[2] = fInputEvent->GetCentrality()->GetCentralityPercentile("V0C");
fCentrality[3] = fInputEvent->GetCentrality()->GetCentralityPercentile("CL1");
fCentrality[4] = fInputEvent->GetCentrality()->GetCentralityPercentile("ZNA");
fCentrality[5] = fInputEvent->GetCentrality()->GetCentralityPercentile("ZNC");
fIsPileupSPD = fUtils->IsPileUpSPD(fInputEvent);
fIsPileupMV = fUtils->IsPileUpMV(fInputEvent);
const AliVVertex* vertex = fInputEvent->GetPrimaryVertex();
fVtxZ = vertex->GetZ();
fVtxTPConly = TString(vertex->GetName()).CompareTo("PrimaryVertex") && TString(vertex->GetName()).CompareTo("SPDVertex");
fVtxContributors = vertex->GetNContributors();
if (TMath::Abs(fVtxZ) >= fZVertexCut) return;
fEventStatistics->Fill("after vertex cut",1);
if (fTracks) {
fTracks->Clear();
for (Int_t ipart=0;ipart<fInputEvent->GetNumberOfTracks();ipart++){
AliVTrack* track = (AliVTrack*) fInputEvent->GetTrack(ipart);
if (!track) continue;
UInt_t mask = GetFilterMap(track);
if (!(mask & fTrackFilterBit)) continue;
if (track->InheritsFrom("AliAODTrack")) AddTrack(track,mask,0);
else if (track->InheritsFrom("AliESDtrack")) {
if (mask) AddTrack(track,mask,1);
if (mask & fHybridConstrainedMask) AddTrack(track,mask,2);
if (mask & fTPConlyConstrainedMask) AddTrack(track,mask,3);
}
}
}
if (fTracklets){
fTracklets->Clear();
AliVMultiplicity* mult = fInputEvent->GetMultiplicity();
Int_t nTracklets = mult->GetNumberOfTracklets();
for (Int_t i=0;i<nTracklets;i++){
Float_t phi = mult->GetPhi(i);
Float_t eta = -TMath::Log(TMath::Tan(mult->GetTheta(i)/2));
Float_t dphi = mult->GetDeltaPhi(i);
if (TMath::Abs(dphi)>fDphiCut) continue;
AliCFParticle* tracklet = new ((*fTracklets)[fTracklets->GetEntriesFast()]) AliCFParticle(dphi,eta,phi,0,0,fStoreMcTracklets?4:0);
if (!fStoreMcTracklets || !fMCEvent) continue;
Int_t label1 = mult->GetLabel(i,0);
Int_t label2 = mult->GetLabel(i,1);
if (label1!=label2) continue;
AliVParticle* particle = fMCEvent->GetTrack(label1);
if (!particle) continue;
Short_t charge = particle->Charge();
Float_t ptMC = particle->Pt();
Float_t etaMC = particle->Eta();
Float_t phiMC = particle->Phi();
Float_t pdg = particle->PdgCode();
tracklet->SetCharge(charge);
tracklet->SetAt(ptMC,0);
tracklet->SetAt(etaMC,1);
tracklet->SetAt(phiMC,2);
tracklet->SetAt(pdg,3);
}
}
AliAODEvent* aod = dynamic_cast<AliAODEvent*> (fInputEvent);
if (fMuons && aod){
fMuons->Clear();
for (Int_t iTrack = 0; iTrack < aod->GetNumberOfTracks(); iTrack++) {
AliAODTrack* track = dynamic_cast<AliAODTrack*>(aod->GetTrack(iTrack));
if(!track) AliFatal("Not a standard AOD");
if (!track->IsMuonTrack()) continue;
Float_t pt = track->Pt();
Float_t eta = track->Eta();
Float_t phi = track->Phi();
Short_t charge = track->Charge();
Float_t dca = track->DCA();
Float_t chi2 = track->Chi2perNDF();
Float_t rabs = track->GetRAtAbsorberEnd();
Int_t mask = track->GetMatchTrigger();
if (rabs < 17.6 || rabs > 89.5) continue;
if (eta < -4 || eta > -2.5) continue;
AliCFParticle* part = new ((*fMuons)[fMuons->GetEntriesFast()]) AliCFParticle(pt,eta,phi,charge,mask,fStoreMcMuons?11:3);
part->SetAt(dca,0);
part->SetAt(chi2,1);
part->SetAt(rabs,2);
if (!fStoreMcMuons || !fMCEvent) continue;
Int_t label = TMath::Abs(track->GetLabel());
AliVParticle* mcpart = fMCEvent->GetTrack(label);
if (!mcpart) continue;
Int_t mcpdg = mcpart->PdgCode();
Float_t mcpt = mcpart->Pt();
Float_t mceta = mcpart->Eta();
Float_t mcphi = mcpart->Phi();
part->SetAt(mcpt,3);
part->SetAt(mceta,4);
part->SetAt(mcphi,5);
part->SetAt(mcpdg,6);
part->SetAt(0,10);
Bool_t isPrimary = fMCEvent->IsPhysicalPrimary(label);
if (isPrimary) continue;
label = mcpart->GetMother();
while (!isPrimary && label>=0) {
mcpart = (AliVParticle*) fMCEvent->GetTrack(label);
label = mcpart->GetMother();
isPrimary = fMCEvent->IsPhysicalPrimary(label);
}
if (!mcpart) continue;
Float_t mcprimarypt = mcpart->Pt();
Float_t mcprimaryeta = mcpart->Eta();
Float_t mcprimaryphi = mcpart->Phi();
Int_t mcprimarypdg = mcpart->PdgCode();
part->SetAt(mcprimarypt,7);
part->SetAt(mcprimaryeta,8);
part->SetAt(mcprimaryphi,9);
part->SetAt(mcprimarypdg,10);
}
}
if (fMcParticles && fMCEvent) {
fMcParticles->Clear();
TString gen;
for (Int_t ipart=0;ipart<fMCEvent->GetNumberOfTracks();ipart++){
AliVParticle* part = fMCEvent->GetTrack(ipart);
Bool_t isCocktail = fMCEvent->GetCocktailGenerator(ipart,gen);
if (isCocktail && !gen.Contains("Pythia") && !gen.Contains("Hijing") && !gen.Contains("AMPT") && !gen.Contains("DPMJET")) continue;
Float_t pt = part->Pt();
Float_t eta = part->Eta();
Float_t phi = part->Phi();
Char_t charge = part->Charge();
Int_t mask = part->PdgCode();
new ((*fMcParticles)[fMcParticles->GetEntriesFast()]) AliCFParticle(pt,eta,phi,charge,mask);
}
}
fTree->Fill();
PostData(1,fListOfHistos);
PostData(2,fTree);
}
UInt_t AliAnalysisTaskCFTree::GetFilterMap(AliVTrack* track){
UInt_t mask = 0;
if (track->InheritsFrom("AliAODTrack")) {
AliAODTrack* part = (AliAODTrack*) track;
mask = part->GetFilterMap();
Double_t nCrossedRaws = part->GetTPCNCrossedRows();
Double_t nFindableClusters = part->GetTPCNclsF();
Double_t nSharedClusters = part->GetTPCnclsS();
Double_t nClusters = part->GetTPCncls();
Bool_t itsRefit = part->GetStatus() & AliVTrack::kITSrefit;
if (nCrossedRaws/nFindableClusters > fFoundFractionCut) mask |= (1 << 26);
if (nCrossedRaws>fCrossedRowsCut) mask |= (1 << 27);
if (itsRefit) mask |= (1 << 28);
if (nSharedClusters/nClusters<=fSharedClusterCut) mask |= (1 << 29);
if (part->GetLabel()<0) mask |= (1 << 31);
} else if (track->InheritsFrom("AliESDtrack")){
AliESDtrack* part = (AliESDtrack*) track;
if (!fTrackFilter) AliFatal("Track filter undefined");
mask |= fTrackFilter->IsSelected(part);
}
return mask;
}
AliCFParticle* AliAnalysisTaskCFTree::AddTrack(AliVTrack* track, UInt_t mask, UInt_t flag){
Char_t charge = track->Charge();
if (charge==0) return NULL;
Float_t pt=0,eta=0,phi=0;
if (flag==0 || flag==1){
pt = track->Pt();
eta = track->Eta();
phi = track->Phi();
if (flag==1) mask &= (~fHybridConstrainedMask) & (~fTPConlyConstrainedMask);
}
else if (flag==2) {
AliESDtrack* part = (AliESDtrack*) track;
const AliExternalTrackParam* param = part->GetConstrainedParam();
pt = param->Pt();
eta = param->Eta();
phi = param->Phi();
mask &= fHybridConstrainedMask;
}
else if (flag==3) {
AliESDtrack* part = (AliESDtrack*) track;
AliESDtrack tpcTrack;
if (!part->FillTPCOnlyTrack(tpcTrack)) return NULL;
AliExternalTrackParam param;
const AliESDVertex* vtxSPD = ((AliESDEvent*) fInputEvent)->GetPrimaryVertexSPD();
if (!tpcTrack.RelateToVertexTPC(vtxSPD,fField,1.e30,¶m)) return NULL;
pt = param.Pt();
eta = param.Eta();
phi = param.Phi();
mask &= fTPConlyConstrainedMask;
}
if (pt < fPtMin || TMath::Abs(eta) > fTrackEtaCut) return NULL;
AliCFParticle* cftrack = new ((*fTracks)[fTracks->GetEntriesFast()]) AliCFParticle(pt,eta,phi,charge,mask,fStorePidInfo ? 3: 0);
if (!fStorePidInfo) return cftrack;
Float_t ncl = track->GetTPCsignalN();
Float_t dedx = track->GetTPCsignalTunedOnData(); if (dedx<=0) dedx = track->GetTPCsignal();
Float_t beta = -99;
if (track->GetStatus()&AliESDtrack::kTOFpid){
Double_t tof[5];
track->GetIntegratedTimes(tof);
beta = tof[0]/track->GetTOFsignal();
}
cftrack->SetAt(ncl,0);
cftrack->SetAt(dedx,1);
cftrack->SetAt(beta,2);
return cftrack;
}
AliAnalysisTaskCFTree.cxx:1 AliAnalysisTaskCFTree.cxx:2 AliAnalysisTaskCFTree.cxx:3 AliAnalysisTaskCFTree.cxx:4 AliAnalysisTaskCFTree.cxx:5 AliAnalysisTaskCFTree.cxx:6 AliAnalysisTaskCFTree.cxx:7 AliAnalysisTaskCFTree.cxx:8 AliAnalysisTaskCFTree.cxx:9 AliAnalysisTaskCFTree.cxx:10 AliAnalysisTaskCFTree.cxx:11 AliAnalysisTaskCFTree.cxx:12 AliAnalysisTaskCFTree.cxx:13 AliAnalysisTaskCFTree.cxx:14 AliAnalysisTaskCFTree.cxx:15 AliAnalysisTaskCFTree.cxx:16 AliAnalysisTaskCFTree.cxx:17 AliAnalysisTaskCFTree.cxx:18 AliAnalysisTaskCFTree.cxx:19 AliAnalysisTaskCFTree.cxx:20 AliAnalysisTaskCFTree.cxx:21 AliAnalysisTaskCFTree.cxx:22 AliAnalysisTaskCFTree.cxx:23 AliAnalysisTaskCFTree.cxx:24 AliAnalysisTaskCFTree.cxx:25 AliAnalysisTaskCFTree.cxx:26 AliAnalysisTaskCFTree.cxx:27 AliAnalysisTaskCFTree.cxx:28 AliAnalysisTaskCFTree.cxx:29 AliAnalysisTaskCFTree.cxx:30 AliAnalysisTaskCFTree.cxx:31 AliAnalysisTaskCFTree.cxx:32 AliAnalysisTaskCFTree.cxx:33 AliAnalysisTaskCFTree.cxx:34 AliAnalysisTaskCFTree.cxx:35 AliAnalysisTaskCFTree.cxx:36 AliAnalysisTaskCFTree.cxx:37 AliAnalysisTaskCFTree.cxx:38 AliAnalysisTaskCFTree.cxx:39 AliAnalysisTaskCFTree.cxx:40 AliAnalysisTaskCFTree.cxx:41 AliAnalysisTaskCFTree.cxx:42 AliAnalysisTaskCFTree.cxx:43 AliAnalysisTaskCFTree.cxx:44 AliAnalysisTaskCFTree.cxx:45 AliAnalysisTaskCFTree.cxx:46 AliAnalysisTaskCFTree.cxx:47 AliAnalysisTaskCFTree.cxx:48 AliAnalysisTaskCFTree.cxx:49 AliAnalysisTaskCFTree.cxx:50 AliAnalysisTaskCFTree.cxx:51 AliAnalysisTaskCFTree.cxx:52 AliAnalysisTaskCFTree.cxx:53 AliAnalysisTaskCFTree.cxx:54 AliAnalysisTaskCFTree.cxx:55 AliAnalysisTaskCFTree.cxx:56 AliAnalysisTaskCFTree.cxx:57 AliAnalysisTaskCFTree.cxx:58 AliAnalysisTaskCFTree.cxx:59 AliAnalysisTaskCFTree.cxx:60 AliAnalysisTaskCFTree.cxx:61 AliAnalysisTaskCFTree.cxx:62 AliAnalysisTaskCFTree.cxx:63 AliAnalysisTaskCFTree.cxx:64 AliAnalysisTaskCFTree.cxx:65 AliAnalysisTaskCFTree.cxx:66 AliAnalysisTaskCFTree.cxx:67 AliAnalysisTaskCFTree.cxx:68 AliAnalysisTaskCFTree.cxx:69 AliAnalysisTaskCFTree.cxx:70 AliAnalysisTaskCFTree.cxx:71 AliAnalysisTaskCFTree.cxx:72 AliAnalysisTaskCFTree.cxx:73 AliAnalysisTaskCFTree.cxx:74 AliAnalysisTaskCFTree.cxx:75 AliAnalysisTaskCFTree.cxx:76 AliAnalysisTaskCFTree.cxx:77 AliAnalysisTaskCFTree.cxx:78 AliAnalysisTaskCFTree.cxx:79 AliAnalysisTaskCFTree.cxx:80 AliAnalysisTaskCFTree.cxx:81 AliAnalysisTaskCFTree.cxx:82 AliAnalysisTaskCFTree.cxx:83 AliAnalysisTaskCFTree.cxx:84 AliAnalysisTaskCFTree.cxx:85 AliAnalysisTaskCFTree.cxx:86 AliAnalysisTaskCFTree.cxx:87 AliAnalysisTaskCFTree.cxx:88 AliAnalysisTaskCFTree.cxx:89 AliAnalysisTaskCFTree.cxx:90 AliAnalysisTaskCFTree.cxx:91 AliAnalysisTaskCFTree.cxx:92 AliAnalysisTaskCFTree.cxx:93 AliAnalysisTaskCFTree.cxx:94 AliAnalysisTaskCFTree.cxx:95 AliAnalysisTaskCFTree.cxx:96 AliAnalysisTaskCFTree.cxx:97 AliAnalysisTaskCFTree.cxx:98 AliAnalysisTaskCFTree.cxx:99 AliAnalysisTaskCFTree.cxx:100 AliAnalysisTaskCFTree.cxx:101 AliAnalysisTaskCFTree.cxx:102 AliAnalysisTaskCFTree.cxx:103 AliAnalysisTaskCFTree.cxx:104 AliAnalysisTaskCFTree.cxx:105 AliAnalysisTaskCFTree.cxx:106 AliAnalysisTaskCFTree.cxx:107 AliAnalysisTaskCFTree.cxx:108 AliAnalysisTaskCFTree.cxx:109 AliAnalysisTaskCFTree.cxx:110 AliAnalysisTaskCFTree.cxx:111 AliAnalysisTaskCFTree.cxx:112 AliAnalysisTaskCFTree.cxx:113 AliAnalysisTaskCFTree.cxx:114 AliAnalysisTaskCFTree.cxx:115 AliAnalysisTaskCFTree.cxx:116 AliAnalysisTaskCFTree.cxx:117 AliAnalysisTaskCFTree.cxx:118 AliAnalysisTaskCFTree.cxx:119 AliAnalysisTaskCFTree.cxx:120 AliAnalysisTaskCFTree.cxx:121 AliAnalysisTaskCFTree.cxx:122 AliAnalysisTaskCFTree.cxx:123 AliAnalysisTaskCFTree.cxx:124 AliAnalysisTaskCFTree.cxx:125 AliAnalysisTaskCFTree.cxx:126 AliAnalysisTaskCFTree.cxx:127 AliAnalysisTaskCFTree.cxx:128 AliAnalysisTaskCFTree.cxx:129 AliAnalysisTaskCFTree.cxx:130 AliAnalysisTaskCFTree.cxx:131 AliAnalysisTaskCFTree.cxx:132 AliAnalysisTaskCFTree.cxx:133 AliAnalysisTaskCFTree.cxx:134 AliAnalysisTaskCFTree.cxx:135 AliAnalysisTaskCFTree.cxx:136 AliAnalysisTaskCFTree.cxx:137 AliAnalysisTaskCFTree.cxx:138 AliAnalysisTaskCFTree.cxx:139 AliAnalysisTaskCFTree.cxx:140 AliAnalysisTaskCFTree.cxx:141 AliAnalysisTaskCFTree.cxx:142 AliAnalysisTaskCFTree.cxx:143 AliAnalysisTaskCFTree.cxx:144 AliAnalysisTaskCFTree.cxx:145 AliAnalysisTaskCFTree.cxx:146 AliAnalysisTaskCFTree.cxx:147 AliAnalysisTaskCFTree.cxx:148 AliAnalysisTaskCFTree.cxx:149 AliAnalysisTaskCFTree.cxx:150 AliAnalysisTaskCFTree.cxx:151 AliAnalysisTaskCFTree.cxx:152 AliAnalysisTaskCFTree.cxx:153 AliAnalysisTaskCFTree.cxx:154 AliAnalysisTaskCFTree.cxx:155 AliAnalysisTaskCFTree.cxx:156 AliAnalysisTaskCFTree.cxx:157 AliAnalysisTaskCFTree.cxx:158 AliAnalysisTaskCFTree.cxx:159 AliAnalysisTaskCFTree.cxx:160 AliAnalysisTaskCFTree.cxx:161 AliAnalysisTaskCFTree.cxx:162 AliAnalysisTaskCFTree.cxx:163 AliAnalysisTaskCFTree.cxx:164 AliAnalysisTaskCFTree.cxx:165 AliAnalysisTaskCFTree.cxx:166 AliAnalysisTaskCFTree.cxx:167 AliAnalysisTaskCFTree.cxx:168 AliAnalysisTaskCFTree.cxx:169 AliAnalysisTaskCFTree.cxx:170 AliAnalysisTaskCFTree.cxx:171 AliAnalysisTaskCFTree.cxx:172 AliAnalysisTaskCFTree.cxx:173 AliAnalysisTaskCFTree.cxx:174 AliAnalysisTaskCFTree.cxx:175 AliAnalysisTaskCFTree.cxx:176 AliAnalysisTaskCFTree.cxx:177 AliAnalysisTaskCFTree.cxx:178 AliAnalysisTaskCFTree.cxx:179 AliAnalysisTaskCFTree.cxx:180 AliAnalysisTaskCFTree.cxx:181 AliAnalysisTaskCFTree.cxx:182 AliAnalysisTaskCFTree.cxx:183 AliAnalysisTaskCFTree.cxx:184 AliAnalysisTaskCFTree.cxx:185 AliAnalysisTaskCFTree.cxx:186 AliAnalysisTaskCFTree.cxx:187 AliAnalysisTaskCFTree.cxx:188 AliAnalysisTaskCFTree.cxx:189 AliAnalysisTaskCFTree.cxx:190 AliAnalysisTaskCFTree.cxx:191 AliAnalysisTaskCFTree.cxx:192 AliAnalysisTaskCFTree.cxx:193 AliAnalysisTaskCFTree.cxx:194 AliAnalysisTaskCFTree.cxx:195 AliAnalysisTaskCFTree.cxx:196 AliAnalysisTaskCFTree.cxx:197 AliAnalysisTaskCFTree.cxx:198 AliAnalysisTaskCFTree.cxx:199 AliAnalysisTaskCFTree.cxx:200 AliAnalysisTaskCFTree.cxx:201 AliAnalysisTaskCFTree.cxx:202 AliAnalysisTaskCFTree.cxx:203 AliAnalysisTaskCFTree.cxx:204 AliAnalysisTaskCFTree.cxx:205 AliAnalysisTaskCFTree.cxx:206 AliAnalysisTaskCFTree.cxx:207 AliAnalysisTaskCFTree.cxx:208 AliAnalysisTaskCFTree.cxx:209 AliAnalysisTaskCFTree.cxx:210 AliAnalysisTaskCFTree.cxx:211 AliAnalysisTaskCFTree.cxx:212 AliAnalysisTaskCFTree.cxx:213 AliAnalysisTaskCFTree.cxx:214 AliAnalysisTaskCFTree.cxx:215 AliAnalysisTaskCFTree.cxx:216 AliAnalysisTaskCFTree.cxx:217 AliAnalysisTaskCFTree.cxx:218 AliAnalysisTaskCFTree.cxx:219 AliAnalysisTaskCFTree.cxx:220 AliAnalysisTaskCFTree.cxx:221 AliAnalysisTaskCFTree.cxx:222 AliAnalysisTaskCFTree.cxx:223 AliAnalysisTaskCFTree.cxx:224 AliAnalysisTaskCFTree.cxx:225 AliAnalysisTaskCFTree.cxx:226 AliAnalysisTaskCFTree.cxx:227 AliAnalysisTaskCFTree.cxx:228 AliAnalysisTaskCFTree.cxx:229 AliAnalysisTaskCFTree.cxx:230 AliAnalysisTaskCFTree.cxx:231 AliAnalysisTaskCFTree.cxx:232 AliAnalysisTaskCFTree.cxx:233 AliAnalysisTaskCFTree.cxx:234 AliAnalysisTaskCFTree.cxx:235 AliAnalysisTaskCFTree.cxx:236 AliAnalysisTaskCFTree.cxx:237 AliAnalysisTaskCFTree.cxx:238 AliAnalysisTaskCFTree.cxx:239 AliAnalysisTaskCFTree.cxx:240 AliAnalysisTaskCFTree.cxx:241 AliAnalysisTaskCFTree.cxx:242 AliAnalysisTaskCFTree.cxx:243 AliAnalysisTaskCFTree.cxx:244 AliAnalysisTaskCFTree.cxx:245 AliAnalysisTaskCFTree.cxx:246 AliAnalysisTaskCFTree.cxx:247 AliAnalysisTaskCFTree.cxx:248 AliAnalysisTaskCFTree.cxx:249 AliAnalysisTaskCFTree.cxx:250 AliAnalysisTaskCFTree.cxx:251 AliAnalysisTaskCFTree.cxx:252 AliAnalysisTaskCFTree.cxx:253 AliAnalysisTaskCFTree.cxx:254 AliAnalysisTaskCFTree.cxx:255 AliAnalysisTaskCFTree.cxx:256 AliAnalysisTaskCFTree.cxx:257 AliAnalysisTaskCFTree.cxx:258 AliAnalysisTaskCFTree.cxx:259 AliAnalysisTaskCFTree.cxx:260 AliAnalysisTaskCFTree.cxx:261 AliAnalysisTaskCFTree.cxx:262 AliAnalysisTaskCFTree.cxx:263 AliAnalysisTaskCFTree.cxx:264 AliAnalysisTaskCFTree.cxx:265 AliAnalysisTaskCFTree.cxx:266 AliAnalysisTaskCFTree.cxx:267 AliAnalysisTaskCFTree.cxx:268 AliAnalysisTaskCFTree.cxx:269 AliAnalysisTaskCFTree.cxx:270 AliAnalysisTaskCFTree.cxx:271 AliAnalysisTaskCFTree.cxx:272 AliAnalysisTaskCFTree.cxx:273 AliAnalysisTaskCFTree.cxx:274 AliAnalysisTaskCFTree.cxx:275 AliAnalysisTaskCFTree.cxx:276 AliAnalysisTaskCFTree.cxx:277 AliAnalysisTaskCFTree.cxx:278 AliAnalysisTaskCFTree.cxx:279 AliAnalysisTaskCFTree.cxx:280 AliAnalysisTaskCFTree.cxx:281 AliAnalysisTaskCFTree.cxx:282 AliAnalysisTaskCFTree.cxx:283 AliAnalysisTaskCFTree.cxx:284 AliAnalysisTaskCFTree.cxx:285 AliAnalysisTaskCFTree.cxx:286 AliAnalysisTaskCFTree.cxx:287 AliAnalysisTaskCFTree.cxx:288 AliAnalysisTaskCFTree.cxx:289 AliAnalysisTaskCFTree.cxx:290 AliAnalysisTaskCFTree.cxx:291 AliAnalysisTaskCFTree.cxx:292 AliAnalysisTaskCFTree.cxx:293 AliAnalysisTaskCFTree.cxx:294 AliAnalysisTaskCFTree.cxx:295 AliAnalysisTaskCFTree.cxx:296 AliAnalysisTaskCFTree.cxx:297 AliAnalysisTaskCFTree.cxx:298 AliAnalysisTaskCFTree.cxx:299 AliAnalysisTaskCFTree.cxx:300 AliAnalysisTaskCFTree.cxx:301 AliAnalysisTaskCFTree.cxx:302 AliAnalysisTaskCFTree.cxx:303 AliAnalysisTaskCFTree.cxx:304 AliAnalysisTaskCFTree.cxx:305 AliAnalysisTaskCFTree.cxx:306 AliAnalysisTaskCFTree.cxx:307 AliAnalysisTaskCFTree.cxx:308 AliAnalysisTaskCFTree.cxx:309 AliAnalysisTaskCFTree.cxx:310 AliAnalysisTaskCFTree.cxx:311 AliAnalysisTaskCFTree.cxx:312 AliAnalysisTaskCFTree.cxx:313 AliAnalysisTaskCFTree.cxx:314 AliAnalysisTaskCFTree.cxx:315 AliAnalysisTaskCFTree.cxx:316 AliAnalysisTaskCFTree.cxx:317 AliAnalysisTaskCFTree.cxx:318 AliAnalysisTaskCFTree.cxx:319 AliAnalysisTaskCFTree.cxx:320 AliAnalysisTaskCFTree.cxx:321 AliAnalysisTaskCFTree.cxx:322 AliAnalysisTaskCFTree.cxx:323 AliAnalysisTaskCFTree.cxx:324 AliAnalysisTaskCFTree.cxx:325 AliAnalysisTaskCFTree.cxx:326 AliAnalysisTaskCFTree.cxx:327 AliAnalysisTaskCFTree.cxx:328 AliAnalysisTaskCFTree.cxx:329 AliAnalysisTaskCFTree.cxx:330 AliAnalysisTaskCFTree.cxx:331 AliAnalysisTaskCFTree.cxx:332 AliAnalysisTaskCFTree.cxx:333 AliAnalysisTaskCFTree.cxx:334 AliAnalysisTaskCFTree.cxx:335 AliAnalysisTaskCFTree.cxx:336 AliAnalysisTaskCFTree.cxx:337 AliAnalysisTaskCFTree.cxx:338 AliAnalysisTaskCFTree.cxx:339 AliAnalysisTaskCFTree.cxx:340 AliAnalysisTaskCFTree.cxx:341 AliAnalysisTaskCFTree.cxx:342 AliAnalysisTaskCFTree.cxx:343 AliAnalysisTaskCFTree.cxx:344 AliAnalysisTaskCFTree.cxx:345 AliAnalysisTaskCFTree.cxx:346 AliAnalysisTaskCFTree.cxx:347 AliAnalysisTaskCFTree.cxx:348 AliAnalysisTaskCFTree.cxx:349 AliAnalysisTaskCFTree.cxx:350 AliAnalysisTaskCFTree.cxx:351 AliAnalysisTaskCFTree.cxx:352 AliAnalysisTaskCFTree.cxx:353 AliAnalysisTaskCFTree.cxx:354 AliAnalysisTaskCFTree.cxx:355 AliAnalysisTaskCFTree.cxx:356 AliAnalysisTaskCFTree.cxx:357 AliAnalysisTaskCFTree.cxx:358 AliAnalysisTaskCFTree.cxx:359 AliAnalysisTaskCFTree.cxx:360 AliAnalysisTaskCFTree.cxx:361 AliAnalysisTaskCFTree.cxx:362 AliAnalysisTaskCFTree.cxx:363 AliAnalysisTaskCFTree.cxx:364 AliAnalysisTaskCFTree.cxx:365 AliAnalysisTaskCFTree.cxx:366 AliAnalysisTaskCFTree.cxx:367 AliAnalysisTaskCFTree.cxx:368 AliAnalysisTaskCFTree.cxx:369 AliAnalysisTaskCFTree.cxx:370 AliAnalysisTaskCFTree.cxx:371 AliAnalysisTaskCFTree.cxx:372 AliAnalysisTaskCFTree.cxx:373 AliAnalysisTaskCFTree.cxx:374 AliAnalysisTaskCFTree.cxx:375 AliAnalysisTaskCFTree.cxx:376 AliAnalysisTaskCFTree.cxx:377 AliAnalysisTaskCFTree.cxx:378 AliAnalysisTaskCFTree.cxx:379 AliAnalysisTaskCFTree.cxx:380 AliAnalysisTaskCFTree.cxx:381 AliAnalysisTaskCFTree.cxx:382 AliAnalysisTaskCFTree.cxx:383 AliAnalysisTaskCFTree.cxx:384 AliAnalysisTaskCFTree.cxx:385 AliAnalysisTaskCFTree.cxx:386 AliAnalysisTaskCFTree.cxx:387 AliAnalysisTaskCFTree.cxx:388 AliAnalysisTaskCFTree.cxx:389 AliAnalysisTaskCFTree.cxx:390 AliAnalysisTaskCFTree.cxx:391 AliAnalysisTaskCFTree.cxx:392 AliAnalysisTaskCFTree.cxx:393 AliAnalysisTaskCFTree.cxx:394 AliAnalysisTaskCFTree.cxx:395 AliAnalysisTaskCFTree.cxx:396 AliAnalysisTaskCFTree.cxx:397 AliAnalysisTaskCFTree.cxx:398 AliAnalysisTaskCFTree.cxx:399 AliAnalysisTaskCFTree.cxx:400 AliAnalysisTaskCFTree.cxx:401 AliAnalysisTaskCFTree.cxx:402 AliAnalysisTaskCFTree.cxx:403 AliAnalysisTaskCFTree.cxx:404 AliAnalysisTaskCFTree.cxx:405