#include "TMath.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TSeqCollection.h"
#include "TObjArray.h"
#include "TObjArray.h"
#include "TChain.h"
#include "TMCProcess.h"
#include "TLorentzVector.h"
#include "TDirectory.h"
#include "TROOT.h"
#include "TNtuple.h"
#include "AliLog.h"
#include "AliVParticle.h"
#include "AliMCParticle.h"
#include "AliStack.h"
#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliMCEvent.h"
#include "AliESDVZERO.h"
#include "AliESDZDC.h"
#include "AliESDtrack.h"
#include "AliFlowTrackCuts.h"
#include "AliFlowEventCuts.h"
#include "AliMultiplicity.h"
#include "AliESDtrackCuts.h"
#include "AliVertex.h"
#include "AliFlowEventSimple.h"
#include "AliFlowEvent.h"
#include "AliFlowVector.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliAnalysisTaskQAflow.h"
ClassImp(AliAnalysisTaskQAflow)
AliAnalysisTaskQAflow::AliAnalysisTaskQAflow()
: AliAnalysisTaskSE(),
fOutput(NULL),
fFillNtuple(kFALSE),
fDoCorrelations(kFALSE),
fNtuple(NULL),
fEventCuts(NULL),
fTrackCuts(NULL)
{
}
AliAnalysisTaskQAflow::AliAnalysisTaskQAflow(const char* name)
: AliAnalysisTaskSE(name),
fOutput(NULL),
fFillNtuple(kFALSE),
fDoCorrelations(kFALSE),
fNtuple(NULL),
fEventCuts(NULL),
fTrackCuts(NULL)
{
DefineInput(1, AliFlowEventSimple::Class());
DefineOutput(1, TObjArray::Class());
DefineOutput(2,TNtuple::Class());
}
void AliAnalysisTaskQAflow::UserCreateOutputObjects()
{
fOutput=new TObjArray();
fNtuple = new TNtuple("flowQAtree","flowQAtree","mpt:qx:qy:mul:rmul:phys:vtxtpcx:vtxtpcy:vtxtpcz:ntra:ntrc:mv0a:mv0c:zdcp1:zdcn1:zdcp2:zdcn2:zdcpart1:zdcpart2:t1:t2:t3:t4:t5:vtxspdx:vtxspdy:vtxspdz:vtxx:vtxy:vtxz:rawmeanpt:maxpt:qxp:qyp:qxn:qyn:qxa:qya:qxb:qyb:qm:qmp:qmn:qma:qmb");
TObjArray* before = new TObjArray();
TObjArray* after = new TObjArray();
fOutput->Add(before);
fOutput->Add(after);
TH1* hist;
hist = new TH1I("all_tracklet_multiplicity","all tracklets",5000,0,5000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("rptrack_multiplicity", "RP selection track multiplicity",5000,0,5000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("rprefmult","RP selection refmult",30000, 0,30000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("SPD_clusters","SPD clusters",10000,0,10000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("primary_vertexZ","primary vertex z",1000,-20,20);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("ITS_clusters_on_track", "ITS clusters on track", 8, 0, 8);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("TPC_clusters_on_track", "TPC clusters on track", 159, 1, 160);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("TPC_chi2_per_cluster","TPC #chi^{2}/cluster",1000,0.0,5.0);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("DCA_xy","DCA xy", 1000, -5.0, 5.0 );
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("DCA_z","DCA z", 1000, -5.0, 5.0 );
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("phi_tracklets","#phi tracklets", 1000, 0.0, TMath::TwoPi() );
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("phi_tracks","#phi tracks", 1000, 0.0, TMath::TwoPi() );
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("eta_tracklets","#eta tracklets", 1000, -2.0, 2.0 );
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("eta_tracks","#eta tracks", 1000, -2.0, 2.0 );
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("TPC_vertex_z", "TPC vertex z", 1000,-20.0,20.0);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("ptyield", "p_{t} spectrum", 10000,0.0,10.0);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("ptyieldplus", "p_{t} spectrum +", 10000,0.0,10.0);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("ptyieldneg", "p_{t} spectrum -", 10000,0.0,10.0);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("charges", "charge distribution", 5,-2.5,2.5);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1D("dphivsdeta", "#Delta#phi separation", 10000,-TMath::PiOver2(),TMath::Pi()+TMath::PiOver2());
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("standardTPC_multiplicity", "standard TPC track multiplicity",10000,0,10000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("standardV0_multiplicity", "standard V0 multiplicity",30000,0,30000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("standardSPD1clusters_multiplicity", "standard SPD1 clusters multiplicity",30000,0,30000);
before->Add(hist); after->Add(hist->Clone());
hist = new TH1I("standardSPDtracklets_multiplicity", "standard SPD tracklets multiplicity",30000,0,30000);
before->Add(hist); after->Add(hist->Clone());
PostData(1, fOutput);
PostData(2, fNtuple);
}
void AliAnalysisTaskQAflow::UserExec(Option_t *)
{
AliESDEvent* event = dynamic_cast<AliESDEvent*>(InputEvent());
if (!event)
{
AliFatal("no ESD event");
return;
}
fTrackCuts->SetEvent(event);
TObjArray* before = (TObjArray*)fOutput->At(0);
TObjArray* after = (TObjArray*)fOutput->At(1);
TH1* htrackletmultB = static_cast<TH1*>(before->At(0));
TH1* htrackletmultA = static_cast<TH1*>(after->At(0));
TH1* htrackmultB = static_cast<TH1*>(before->At(1));
TH1* htrackmultA = static_cast<TH1*>(after->At(1));
TH1* hrefmultB = static_cast<TH1*>(before->At(2));
TH1* hrefmultA = static_cast<TH1*>(after->At(2));
TH1* hspdclustersB = static_cast<TH1*>(before->At(3));
TH1* hspdclustersA = static_cast<TH1*>(after->At(3));
TH1* hprimvtxzB = static_cast<TH1*>(before->At(4));
TH1* hprimvtxzA = static_cast<TH1*>(after->At(4));
TH1* hITSclsB = static_cast<TH1*>(before->At(5));
TH1* hITSclsA = static_cast<TH1*>(after->At(5));
TH1* hTPCclsB = static_cast<TH1*>(before->At(6));
TH1* hTPCclsA = static_cast<TH1*>(after->At(6));
TH1* hTPCchi2B = static_cast<TH1*>(before->At(7));
TH1* hTPCchi2A = static_cast<TH1*>(after->At(7));
TH1* hdcaxyB = static_cast<TH1*>(before->At(8));
TH1* hdcaxyA = static_cast<TH1*>(after->At(8));
TH1* hdcazB = static_cast<TH1*>(before->At(9));
TH1* hdcazA = static_cast<TH1*>(after->At(9));
TH1* hphitrackletsB = static_cast<TH1*>(before->At(10));
TH1* hphitrackletsA = static_cast<TH1*>(after->At(10));
TH1* hphitracksB = static_cast<TH1*>(before->At(11));
TH1* hphitracksA = static_cast<TH1*>(after->At(11));
TH1* hetatrackletsB = static_cast<TH1*>(before->At(12));
TH1* hetatrackletsA = static_cast<TH1*>(after->At(12));
TH1* hetatracksB = static_cast<TH1*>(before->At(13));
TH1* hetatracksA = static_cast<TH1*>(after->At(13));
TH1* hprimvtxzTPCB = static_cast<TH1*>(before->At(14));
TH1* hprimvtxzTPCA = static_cast<TH1*>(after->At(14));
TH1* hptyieldB = static_cast<TH1*>(before->At(15));
TH1* hptyieldA = static_cast<TH1*>(after->At(15));
TH1* hptyieldplusB = static_cast<TH1*>(before->At(16));
TH1* hptyieldplusA = static_cast<TH1*>(after->At(16));
TH1* hptyieldnegB = static_cast<TH1*>(before->At(17));
TH1* hptyieldnegA = static_cast<TH1*>(after->At(17));
TH1* hchargesB = static_cast<TH1*>(before->At(18));
TH1* hchargesA = static_cast<TH1*>(after->At(18));
TH1* hphisepB = static_cast<TH1*>(before->At(19));
TH1* hphisepA = static_cast<TH1*>(after->At(19));
TH1* hstdtpcmultB = static_cast<TH1*>(before->At(20));
TH1* hstdtpcmultA = static_cast<TH1*>(after->At(20));
TH1* hstdv0multB = static_cast<TH1*>(before->At(21));
TH1* hstdv0multA = static_cast<TH1*>(after->At(21));
TH1* hstdspd1clsmultB = static_cast<TH1*>(before->At(22));
TH1* hstdspd1clsmultA = static_cast<TH1*>(after->At(22));
TH1* hstdspdtrmultB = static_cast<TH1*>(before->At(23));
TH1* hstdspdtrmultA = static_cast<TH1*>(after->At(23));
Bool_t passevent = fEventCuts->IsSelected(event,0x0);
Bool_t isSelectedEventSelection = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
AliMultiplicity* tracklets = const_cast<AliMultiplicity*>(event->GetMultiplicity());
Int_t ntracklets=0;
Int_t nspdclusters=0;
Int_t ntrackletsA=0;
Int_t ntrackletsC=0;
if (tracklets)
{
ntracklets = tracklets->GetNumberOfTracklets();
nspdclusters = tracklets->GetNumberOfITSClusters(0,1);
for (Int_t i=0; i<tracklets->GetNumberOfTracklets(); i++)
{
Bool_t pass=fTrackCuts->IsSelected(tracklets,i);
Float_t phi=tracklets->GetPhi(i);
Float_t eta=tracklets->GetEta(i);
hphitrackletsB->Fill(phi); if (pass) hphitrackletsA->Fill(phi);
hetatrackletsB->Fill(eta); if (pass) hetatrackletsA->Fill(eta);
if (eta>0) ntrackletsC++;
else ntrackletsA++;
}
}
AliFlowEventCuts stdtpcrefmultcuts;
stdtpcrefmultcuts.SetRefMultMethod(AliFlowEventCuts::kTPConly);
AliFlowEventCuts stdv0refmultcuts;
stdv0refmultcuts.SetRefMultMethod(AliFlowEventCuts::kV0);
AliFlowEventCuts stdspd1refmult;
stdspd1refmult.SetRefMultMethod(AliFlowEventCuts::kSPD1clusters);
AliFlowEventCuts stdspdrefmult;
stdspdrefmult.SetRefMultMethod(AliFlowEventCuts::kSPDtracklets);
AliFlowEventSimple* flowevent=NULL;
AliFlowEventSimple* floweventin = dynamic_cast<AliFlowEventSimple*>(GetInputData(1));
if (!floweventin) flowevent = new AliFlowEvent(fTrackCuts,fTrackCuts);
else flowevent = new AliFlowEventSimple(*floweventin);
Int_t rpmult = flowevent->GetReferenceMultiplicity();
Int_t refmult = fEventCuts->RefMult(event);
Int_t refmultv0 = stdv0refmultcuts.RefMult(event);
Int_t refmulttpc = stdtpcrefmultcuts.RefMult(event);
Int_t refmultspdtr = stdspdrefmult.RefMult(event);
Int_t refmultspdcls = stdspd1refmult.RefMult(event);
htrackletmultB->Fill(ntracklets); if (passevent) htrackletmultA->Fill(ntracklets);
htrackmultB->Fill(rpmult); if (passevent) htrackmultA->Fill(rpmult);
hrefmultB->Fill(refmult); if (passevent) hrefmultA->Fill( refmult);
hstdv0multB->Fill(refmultv0); if (passevent) hstdv0multA->Fill( refmultv0);
hstdtpcmultB->Fill(refmulttpc); if (passevent) hstdtpcmultA->Fill( refmulttpc);
hstdspd1clsmultB->Fill(refmultspdcls); if (passevent) hstdspd1clsmultA->Fill( refmultspdcls);
hstdspdtrmultB->Fill(refmultspdtr); if (passevent) hstdspdtrmultA->Fill( refmultspdtr);
hspdclustersB->Fill(nspdclusters); if (passevent) hspdclustersA->Fill( nspdclusters);
const AliVertex* vertex = event->GetPrimaryVertex();
Float_t vtxz=0.0;
Float_t vtxx=0.0;
Float_t vtxy=0.0;
if (vertex)
{
vtxz = vertex->GetZ();
vtxx = vertex->GetX();
vtxy = vertex->GetY();
hprimvtxzB->Fill(vtxz); if (passevent) hprimvtxzA->Fill(vtxz);
}
const AliVertex* vertextpc = event->GetPrimaryVertexTPC();
Float_t vtxTPCx=0.0;
Float_t vtxTPCy=0.0;
Float_t vtxTPCz=0.0;
if (vertextpc)
{
vtxTPCx = vertextpc->GetX();
vtxTPCy = vertextpc->GetY();
vtxTPCz = vertextpc->GetZ();
hprimvtxzTPCB->Fill(vtxTPCz); if (passevent) hprimvtxzTPCA->Fill(vtxTPCz);
}
const AliVertex* vertexspd = event->GetPrimaryVertexSPD();
Float_t vtxSPDx=0.0;
Float_t vtxSPDy=0.0;
Float_t vtxSPDz=0.0;
if (vertexspd)
{
vtxSPDx = vertexspd->GetX();
vtxSPDy = vertexspd->GetY();
vtxSPDz = vertexspd->GetZ();
}
AliESDVZERO* vzero=event->GetVZEROData();
AliESDZDC* zdc=event->GetESDZDC();
Float_t mv0a=vzero->GetMTotV0A();
Float_t mv0c=vzero->GetMTotV0C();
Float_t zdcp1=zdc->GetZDCP1Energy();
Float_t zdcn1=zdc->GetZDCN1Energy();
Float_t zdcp2=zdc->GetZDCP2Energy();
Float_t zdcn2=zdc->GetZDCN2Energy();
Float_t zdcpart1=zdc->GetZDCPartSideA();
Float_t zdcpart2=zdc->GetZDCPartSideC();
Float_t meanpt=0.;
Float_t rawmeanpt=0.;
Float_t maxpt=0.0;
Int_t ntracks=fTrackCuts->GetNumberOfInputObjects();
Int_t nselected=0;
for (Int_t i=0; i<ntracks; i++)
{
TObject* obj = fTrackCuts->GetInputObject(i);
if (!obj) continue;
Bool_t pass = fTrackCuts->IsSelected(obj,i);
if (pass) nselected++;
Float_t dcaxy=0.0;
Float_t dcaz=0.0;
Float_t tpcchi2=0.0;
Float_t tpcchi2percls=0.0;
Int_t ntpccls=0;
Int_t nitscls=0;
Float_t eta=0.0;
Float_t phi=0.0;
Float_t pt=0.0;
Short_t charge=0;
AliESDtrack* track = dynamic_cast<AliESDtrack*>(fTrackCuts->GetTrack());
if (track)
{
track->GetImpactParameters(dcaxy,dcaz);
tpcchi2=track->GetTPCchi2();
ntpccls=track->GetTPCNcls();
eta=track->Eta();
phi=track->Phi();
pt=track->Pt();
if (pt>maxpt) maxpt=pt;
charge=track->Charge();
rawmeanpt+=pt;
if (pass) meanpt+=pt;
tpcchi2percls= (ntpccls==0)?0.0:tpcchi2/ntpccls;
nitscls = track->GetNcls(0);
hITSclsB->Fill(nitscls); if (pass) hITSclsA->Fill( nitscls);
hTPCclsB->Fill(ntpccls); if (pass) hTPCclsA->Fill( ntpccls);
hTPCchi2B->Fill(tpcchi2percls); if (pass) hTPCchi2A->Fill( tpcchi2percls);
hdcaxyB->Fill(dcaxy); if (pass) hdcaxyA->Fill( dcaxy);
hdcazB->Fill(dcaz); if (pass) hdcazA->Fill(dcaz);
hetatracksB->Fill(eta); if (pass) hetatracksA->Fill(eta);
hphitracksB->Fill(phi); if (pass) hphitracksA->Fill(phi);
hptyieldB->Fill(pt); if (pass) hptyieldA->Fill(pt);
if (charge>0) {hptyieldplusB->Fill(pt); if (pass) hptyieldplusA->Fill(pt);}
if (charge<0) {hptyieldnegB->Fill(pt); if (pass) hptyieldnegA->Fill(pt);}
hchargesB->Fill(charge); if (pass) hchargesA->Fill(charge);
if (fDoCorrelations)
{
for (Int_t j=i+1; j<ntracks; j++)
{
TObject* obj2 = fTrackCuts->GetInputObject(j);
if (!obj2) continue;
Bool_t pass2 = fTrackCuts->IsSelected(obj2,j);
AliESDtrack* track2 = dynamic_cast<AliESDtrack*>(fTrackCuts->GetTrack());
if (track2)
{
Double_t dphi = phi-track2->Phi();
hphisepB->Fill(dphi); if (pass&&pass2) hphisepA->Fill(dphi);
}
}
}
}
}
if (nselected!=0) meanpt = meanpt/nselected;
if (ntracks!=0) rawmeanpt = rawmeanpt/ntracks;
if (fFillNtuple)
{
Double_t qx = 0.0;
Double_t qy = 0.0;
Double_t qm = 0.0;
Double_t qxp = 0.0;
Double_t qyp = 0.0;
Double_t qmp = 0.0;
Double_t qxn = 0.0;
Double_t qyn = 0.0;
Double_t qmn = 0.0;
Double_t qxa = 0.0;
Double_t qya = 0.0;
Double_t qma = 0.0;
Double_t qxb = 0.0;
Double_t qyb = 0.0;
Double_t qmb = 0.0;
AliFlowVector qvec[2];
qvec[0] = flowevent->GetQ(2);
qx = qvec[0].X();
qy = qvec[0].Y();
qm = qvec[0].GetMult();
flowevent->TagSubeventsByCharge();
flowevent->Get2Qsub(qvec,2);
qxp = qvec[0].X();
qyp = qvec[0].Y();
qmp = qvec[0].GetMult();
qxn = qvec[1].X();
qyn = qvec[1].Y();
qmn = qvec[1].GetMult();
flowevent->TagSubeventsInEta(-0.8,-0.1,0.1,0.8);
flowevent->Get2Qsub(qvec,2);
qxa = qvec[0].X();
qya = qvec[0].Y();
qma = qvec[0].GetMult();
qxb = qvec[1].X();
qyb = qvec[1].Y();
qmb = qvec[1].GetMult();
Float_t x[45];
x[0]=meanpt; x[1]=qx; x[2]=qy; x[3]=rpmult; x[4]=refmult; x[5]=(isSelectedEventSelection)?1:0;
x[6]=vtxTPCx; x[7]=vtxTPCy; x[8]=vtxTPCz; x[9]=ntrackletsA; x[10]=ntrackletsC;
x[11]=mv0a; x[12]=mv0c; x[13]=zdcp1; x[14]=zdcn1; x[15]=zdcp2; x[16]=zdcn2;
x[17]=zdcpart1; x[18]=zdcpart2;
x[19]=0; if (event->IsTriggerClassFired("CMBAC-B-NOPF-ALL")) x[19]=1;
x[20]=0; if (event->IsTriggerClassFired("CMBS2C-B-NOPF-ALL")) x[20]=1;
x[21]=0; if (event->IsTriggerClassFired("CMBS2A-B-NOPF-ALL")) x[21]=1;
x[22]=0; if (event->IsTriggerClassFired("CMBAC-A-NOPF-ALL")) x[22]=1;
x[23]=0; if (event->IsTriggerClassFired("CMBAC-C-NOPF-ALL")) x[23]=1;
x[24]=vtxSPDx;
x[25]=vtxSPDy;
x[26]=vtxSPDz;
x[27]=vtxx;
x[28]=vtxy;
x[29]=vtxz;
x[30]=rawmeanpt;
x[31]=maxpt;
x[32]=qxp;
x[33]=qyp;
x[34]=qxn;
x[35]=qyn;
x[36]=qxa;
x[37]=qya;
x[38]=qxb;
x[39]=qyb;
x[40]=qm;
x[41]=qmp;
x[42]=qmn;
x[43]=qma;
x[44]=qmb;
fNtuple->Fill(x);
}
delete flowevent;
}
void AliAnalysisTaskQAflow::Terminate(Option_t *)
{
}
AliAnalysisTaskQAflow::~AliAnalysisTaskQAflow()
{
delete fTrackCuts;
delete fEventCuts;
}
AliAnalysisTaskQAflow.cxx:1 AliAnalysisTaskQAflow.cxx:2 AliAnalysisTaskQAflow.cxx:3 AliAnalysisTaskQAflow.cxx:4 AliAnalysisTaskQAflow.cxx:5 AliAnalysisTaskQAflow.cxx:6 AliAnalysisTaskQAflow.cxx:7 AliAnalysisTaskQAflow.cxx:8 AliAnalysisTaskQAflow.cxx:9 AliAnalysisTaskQAflow.cxx:10 AliAnalysisTaskQAflow.cxx:11 AliAnalysisTaskQAflow.cxx:12 AliAnalysisTaskQAflow.cxx:13 AliAnalysisTaskQAflow.cxx:14 AliAnalysisTaskQAflow.cxx:15 AliAnalysisTaskQAflow.cxx:16 AliAnalysisTaskQAflow.cxx:17 AliAnalysisTaskQAflow.cxx:18 AliAnalysisTaskQAflow.cxx:19 AliAnalysisTaskQAflow.cxx:20 AliAnalysisTaskQAflow.cxx:21 AliAnalysisTaskQAflow.cxx:22 AliAnalysisTaskQAflow.cxx:23 AliAnalysisTaskQAflow.cxx:24 AliAnalysisTaskQAflow.cxx:25 AliAnalysisTaskQAflow.cxx:26 AliAnalysisTaskQAflow.cxx:27 AliAnalysisTaskQAflow.cxx:28 AliAnalysisTaskQAflow.cxx:29 AliAnalysisTaskQAflow.cxx:30 AliAnalysisTaskQAflow.cxx:31 AliAnalysisTaskQAflow.cxx:32 AliAnalysisTaskQAflow.cxx:33 AliAnalysisTaskQAflow.cxx:34 AliAnalysisTaskQAflow.cxx:35 AliAnalysisTaskQAflow.cxx:36 AliAnalysisTaskQAflow.cxx:37 AliAnalysisTaskQAflow.cxx:38 AliAnalysisTaskQAflow.cxx:39 AliAnalysisTaskQAflow.cxx:40 AliAnalysisTaskQAflow.cxx:41 AliAnalysisTaskQAflow.cxx:42 AliAnalysisTaskQAflow.cxx:43 AliAnalysisTaskQAflow.cxx:44 AliAnalysisTaskQAflow.cxx:45 AliAnalysisTaskQAflow.cxx:46 AliAnalysisTaskQAflow.cxx:47 AliAnalysisTaskQAflow.cxx:48 AliAnalysisTaskQAflow.cxx:49 AliAnalysisTaskQAflow.cxx:50 AliAnalysisTaskQAflow.cxx:51 AliAnalysisTaskQAflow.cxx:52 AliAnalysisTaskQAflow.cxx:53 AliAnalysisTaskQAflow.cxx:54 AliAnalysisTaskQAflow.cxx:55 AliAnalysisTaskQAflow.cxx:56 AliAnalysisTaskQAflow.cxx:57 AliAnalysisTaskQAflow.cxx:58 AliAnalysisTaskQAflow.cxx:59 AliAnalysisTaskQAflow.cxx:60 AliAnalysisTaskQAflow.cxx:61 AliAnalysisTaskQAflow.cxx:62 AliAnalysisTaskQAflow.cxx:63 AliAnalysisTaskQAflow.cxx:64 AliAnalysisTaskQAflow.cxx:65 AliAnalysisTaskQAflow.cxx:66 AliAnalysisTaskQAflow.cxx:67 AliAnalysisTaskQAflow.cxx:68 AliAnalysisTaskQAflow.cxx:69 AliAnalysisTaskQAflow.cxx:70 AliAnalysisTaskQAflow.cxx:71 AliAnalysisTaskQAflow.cxx:72 AliAnalysisTaskQAflow.cxx:73 AliAnalysisTaskQAflow.cxx:74 AliAnalysisTaskQAflow.cxx:75 AliAnalysisTaskQAflow.cxx:76 AliAnalysisTaskQAflow.cxx:77 AliAnalysisTaskQAflow.cxx:78 AliAnalysisTaskQAflow.cxx:79 AliAnalysisTaskQAflow.cxx:80 AliAnalysisTaskQAflow.cxx:81 AliAnalysisTaskQAflow.cxx:82 AliAnalysisTaskQAflow.cxx:83 AliAnalysisTaskQAflow.cxx:84 AliAnalysisTaskQAflow.cxx:85 AliAnalysisTaskQAflow.cxx:86 AliAnalysisTaskQAflow.cxx:87 AliAnalysisTaskQAflow.cxx:88 AliAnalysisTaskQAflow.cxx:89 AliAnalysisTaskQAflow.cxx:90 AliAnalysisTaskQAflow.cxx:91 AliAnalysisTaskQAflow.cxx:92 AliAnalysisTaskQAflow.cxx:93 AliAnalysisTaskQAflow.cxx:94 AliAnalysisTaskQAflow.cxx:95 AliAnalysisTaskQAflow.cxx:96 AliAnalysisTaskQAflow.cxx:97 AliAnalysisTaskQAflow.cxx:98 AliAnalysisTaskQAflow.cxx:99 AliAnalysisTaskQAflow.cxx:100 AliAnalysisTaskQAflow.cxx:101 AliAnalysisTaskQAflow.cxx:102 AliAnalysisTaskQAflow.cxx:103 AliAnalysisTaskQAflow.cxx:104 AliAnalysisTaskQAflow.cxx:105 AliAnalysisTaskQAflow.cxx:106 AliAnalysisTaskQAflow.cxx:107 AliAnalysisTaskQAflow.cxx:108 AliAnalysisTaskQAflow.cxx:109 AliAnalysisTaskQAflow.cxx:110 AliAnalysisTaskQAflow.cxx:111 AliAnalysisTaskQAflow.cxx:112 AliAnalysisTaskQAflow.cxx:113 AliAnalysisTaskQAflow.cxx:114 AliAnalysisTaskQAflow.cxx:115 AliAnalysisTaskQAflow.cxx:116 AliAnalysisTaskQAflow.cxx:117 AliAnalysisTaskQAflow.cxx:118 AliAnalysisTaskQAflow.cxx:119 AliAnalysisTaskQAflow.cxx:120 AliAnalysisTaskQAflow.cxx:121 AliAnalysisTaskQAflow.cxx:122 AliAnalysisTaskQAflow.cxx:123 AliAnalysisTaskQAflow.cxx:124 AliAnalysisTaskQAflow.cxx:125 AliAnalysisTaskQAflow.cxx:126 AliAnalysisTaskQAflow.cxx:127 AliAnalysisTaskQAflow.cxx:128 AliAnalysisTaskQAflow.cxx:129 AliAnalysisTaskQAflow.cxx:130 AliAnalysisTaskQAflow.cxx:131 AliAnalysisTaskQAflow.cxx:132 AliAnalysisTaskQAflow.cxx:133 AliAnalysisTaskQAflow.cxx:134 AliAnalysisTaskQAflow.cxx:135 AliAnalysisTaskQAflow.cxx:136 AliAnalysisTaskQAflow.cxx:137 AliAnalysisTaskQAflow.cxx:138 AliAnalysisTaskQAflow.cxx:139 AliAnalysisTaskQAflow.cxx:140 AliAnalysisTaskQAflow.cxx:141 AliAnalysisTaskQAflow.cxx:142 AliAnalysisTaskQAflow.cxx:143 AliAnalysisTaskQAflow.cxx:144 AliAnalysisTaskQAflow.cxx:145 AliAnalysisTaskQAflow.cxx:146 AliAnalysisTaskQAflow.cxx:147 AliAnalysisTaskQAflow.cxx:148 AliAnalysisTaskQAflow.cxx:149 AliAnalysisTaskQAflow.cxx:150 AliAnalysisTaskQAflow.cxx:151 AliAnalysisTaskQAflow.cxx:152 AliAnalysisTaskQAflow.cxx:153 AliAnalysisTaskQAflow.cxx:154 AliAnalysisTaskQAflow.cxx:155 AliAnalysisTaskQAflow.cxx:156 AliAnalysisTaskQAflow.cxx:157 AliAnalysisTaskQAflow.cxx:158 AliAnalysisTaskQAflow.cxx:159 AliAnalysisTaskQAflow.cxx:160 AliAnalysisTaskQAflow.cxx:161 AliAnalysisTaskQAflow.cxx:162 AliAnalysisTaskQAflow.cxx:163 AliAnalysisTaskQAflow.cxx:164 AliAnalysisTaskQAflow.cxx:165 AliAnalysisTaskQAflow.cxx:166 AliAnalysisTaskQAflow.cxx:167 AliAnalysisTaskQAflow.cxx:168 AliAnalysisTaskQAflow.cxx:169 AliAnalysisTaskQAflow.cxx:170 AliAnalysisTaskQAflow.cxx:171 AliAnalysisTaskQAflow.cxx:172 AliAnalysisTaskQAflow.cxx:173 AliAnalysisTaskQAflow.cxx:174 AliAnalysisTaskQAflow.cxx:175 AliAnalysisTaskQAflow.cxx:176 AliAnalysisTaskQAflow.cxx:177 AliAnalysisTaskQAflow.cxx:178 AliAnalysisTaskQAflow.cxx:179 AliAnalysisTaskQAflow.cxx:180 AliAnalysisTaskQAflow.cxx:181 AliAnalysisTaskQAflow.cxx:182 AliAnalysisTaskQAflow.cxx:183 AliAnalysisTaskQAflow.cxx:184 AliAnalysisTaskQAflow.cxx:185 AliAnalysisTaskQAflow.cxx:186 AliAnalysisTaskQAflow.cxx:187 AliAnalysisTaskQAflow.cxx:188 AliAnalysisTaskQAflow.cxx:189 AliAnalysisTaskQAflow.cxx:190 AliAnalysisTaskQAflow.cxx:191 AliAnalysisTaskQAflow.cxx:192 AliAnalysisTaskQAflow.cxx:193 AliAnalysisTaskQAflow.cxx:194 AliAnalysisTaskQAflow.cxx:195 AliAnalysisTaskQAflow.cxx:196 AliAnalysisTaskQAflow.cxx:197 AliAnalysisTaskQAflow.cxx:198 AliAnalysisTaskQAflow.cxx:199 AliAnalysisTaskQAflow.cxx:200 AliAnalysisTaskQAflow.cxx:201 AliAnalysisTaskQAflow.cxx:202 AliAnalysisTaskQAflow.cxx:203 AliAnalysisTaskQAflow.cxx:204 AliAnalysisTaskQAflow.cxx:205 AliAnalysisTaskQAflow.cxx:206 AliAnalysisTaskQAflow.cxx:207 AliAnalysisTaskQAflow.cxx:208 AliAnalysisTaskQAflow.cxx:209 AliAnalysisTaskQAflow.cxx:210 AliAnalysisTaskQAflow.cxx:211 AliAnalysisTaskQAflow.cxx:212 AliAnalysisTaskQAflow.cxx:213 AliAnalysisTaskQAflow.cxx:214 AliAnalysisTaskQAflow.cxx:215 AliAnalysisTaskQAflow.cxx:216 AliAnalysisTaskQAflow.cxx:217 AliAnalysisTaskQAflow.cxx:218 AliAnalysisTaskQAflow.cxx:219 AliAnalysisTaskQAflow.cxx:220 AliAnalysisTaskQAflow.cxx:221 AliAnalysisTaskQAflow.cxx:222 AliAnalysisTaskQAflow.cxx:223 AliAnalysisTaskQAflow.cxx:224 AliAnalysisTaskQAflow.cxx:225 AliAnalysisTaskQAflow.cxx:226 AliAnalysisTaskQAflow.cxx:227 AliAnalysisTaskQAflow.cxx:228 AliAnalysisTaskQAflow.cxx:229 AliAnalysisTaskQAflow.cxx:230 AliAnalysisTaskQAflow.cxx:231 AliAnalysisTaskQAflow.cxx:232 AliAnalysisTaskQAflow.cxx:233 AliAnalysisTaskQAflow.cxx:234 AliAnalysisTaskQAflow.cxx:235 AliAnalysisTaskQAflow.cxx:236 AliAnalysisTaskQAflow.cxx:237 AliAnalysisTaskQAflow.cxx:238 AliAnalysisTaskQAflow.cxx:239 AliAnalysisTaskQAflow.cxx:240 AliAnalysisTaskQAflow.cxx:241 AliAnalysisTaskQAflow.cxx:242 AliAnalysisTaskQAflow.cxx:243 AliAnalysisTaskQAflow.cxx:244 AliAnalysisTaskQAflow.cxx:245 AliAnalysisTaskQAflow.cxx:246 AliAnalysisTaskQAflow.cxx:247 AliAnalysisTaskQAflow.cxx:248 AliAnalysisTaskQAflow.cxx:249 AliAnalysisTaskQAflow.cxx:250 AliAnalysisTaskQAflow.cxx:251 AliAnalysisTaskQAflow.cxx:252 AliAnalysisTaskQAflow.cxx:253 AliAnalysisTaskQAflow.cxx:254 AliAnalysisTaskQAflow.cxx:255 AliAnalysisTaskQAflow.cxx:256 AliAnalysisTaskQAflow.cxx:257 AliAnalysisTaskQAflow.cxx:258 AliAnalysisTaskQAflow.cxx:259 AliAnalysisTaskQAflow.cxx:260 AliAnalysisTaskQAflow.cxx:261 AliAnalysisTaskQAflow.cxx:262 AliAnalysisTaskQAflow.cxx:263 AliAnalysisTaskQAflow.cxx:264 AliAnalysisTaskQAflow.cxx:265 AliAnalysisTaskQAflow.cxx:266 AliAnalysisTaskQAflow.cxx:267 AliAnalysisTaskQAflow.cxx:268 AliAnalysisTaskQAflow.cxx:269 AliAnalysisTaskQAflow.cxx:270 AliAnalysisTaskQAflow.cxx:271 AliAnalysisTaskQAflow.cxx:272 AliAnalysisTaskQAflow.cxx:273 AliAnalysisTaskQAflow.cxx:274 AliAnalysisTaskQAflow.cxx:275 AliAnalysisTaskQAflow.cxx:276 AliAnalysisTaskQAflow.cxx:277 AliAnalysisTaskQAflow.cxx:278 AliAnalysisTaskQAflow.cxx:279 AliAnalysisTaskQAflow.cxx:280 AliAnalysisTaskQAflow.cxx:281 AliAnalysisTaskQAflow.cxx:282 AliAnalysisTaskQAflow.cxx:283 AliAnalysisTaskQAflow.cxx:284 AliAnalysisTaskQAflow.cxx:285 AliAnalysisTaskQAflow.cxx:286 AliAnalysisTaskQAflow.cxx:287 AliAnalysisTaskQAflow.cxx:288 AliAnalysisTaskQAflow.cxx:289 AliAnalysisTaskQAflow.cxx:290 AliAnalysisTaskQAflow.cxx:291 AliAnalysisTaskQAflow.cxx:292 AliAnalysisTaskQAflow.cxx:293 AliAnalysisTaskQAflow.cxx:294 AliAnalysisTaskQAflow.cxx:295 AliAnalysisTaskQAflow.cxx:296 AliAnalysisTaskQAflow.cxx:297 AliAnalysisTaskQAflow.cxx:298 AliAnalysisTaskQAflow.cxx:299 AliAnalysisTaskQAflow.cxx:300 AliAnalysisTaskQAflow.cxx:301 AliAnalysisTaskQAflow.cxx:302 AliAnalysisTaskQAflow.cxx:303 AliAnalysisTaskQAflow.cxx:304 AliAnalysisTaskQAflow.cxx:305 AliAnalysisTaskQAflow.cxx:306 AliAnalysisTaskQAflow.cxx:307 AliAnalysisTaskQAflow.cxx:308 AliAnalysisTaskQAflow.cxx:309 AliAnalysisTaskQAflow.cxx:310 AliAnalysisTaskQAflow.cxx:311 AliAnalysisTaskQAflow.cxx:312 AliAnalysisTaskQAflow.cxx:313 AliAnalysisTaskQAflow.cxx:314 AliAnalysisTaskQAflow.cxx:315 AliAnalysisTaskQAflow.cxx:316 AliAnalysisTaskQAflow.cxx:317 AliAnalysisTaskQAflow.cxx:318 AliAnalysisTaskQAflow.cxx:319 AliAnalysisTaskQAflow.cxx:320 AliAnalysisTaskQAflow.cxx:321 AliAnalysisTaskQAflow.cxx:322 AliAnalysisTaskQAflow.cxx:323 AliAnalysisTaskQAflow.cxx:324 AliAnalysisTaskQAflow.cxx:325 AliAnalysisTaskQAflow.cxx:326 AliAnalysisTaskQAflow.cxx:327 AliAnalysisTaskQAflow.cxx:328 AliAnalysisTaskQAflow.cxx:329 AliAnalysisTaskQAflow.cxx:330 AliAnalysisTaskQAflow.cxx:331 AliAnalysisTaskQAflow.cxx:332 AliAnalysisTaskQAflow.cxx:333 AliAnalysisTaskQAflow.cxx:334 AliAnalysisTaskQAflow.cxx:335 AliAnalysisTaskQAflow.cxx:336 AliAnalysisTaskQAflow.cxx:337 AliAnalysisTaskQAflow.cxx:338 AliAnalysisTaskQAflow.cxx:339 AliAnalysisTaskQAflow.cxx:340 AliAnalysisTaskQAflow.cxx:341 AliAnalysisTaskQAflow.cxx:342 AliAnalysisTaskQAflow.cxx:343 AliAnalysisTaskQAflow.cxx:344 AliAnalysisTaskQAflow.cxx:345 AliAnalysisTaskQAflow.cxx:346 AliAnalysisTaskQAflow.cxx:347 AliAnalysisTaskQAflow.cxx:348 AliAnalysisTaskQAflow.cxx:349 AliAnalysisTaskQAflow.cxx:350 AliAnalysisTaskQAflow.cxx:351 AliAnalysisTaskQAflow.cxx:352 AliAnalysisTaskQAflow.cxx:353 AliAnalysisTaskQAflow.cxx:354 AliAnalysisTaskQAflow.cxx:355 AliAnalysisTaskQAflow.cxx:356 AliAnalysisTaskQAflow.cxx:357 AliAnalysisTaskQAflow.cxx:358 AliAnalysisTaskQAflow.cxx:359 AliAnalysisTaskQAflow.cxx:360 AliAnalysisTaskQAflow.cxx:361 AliAnalysisTaskQAflow.cxx:362 AliAnalysisTaskQAflow.cxx:363 AliAnalysisTaskQAflow.cxx:364 AliAnalysisTaskQAflow.cxx:365 AliAnalysisTaskQAflow.cxx:366 AliAnalysisTaskQAflow.cxx:367 AliAnalysisTaskQAflow.cxx:368 AliAnalysisTaskQAflow.cxx:369 AliAnalysisTaskQAflow.cxx:370 AliAnalysisTaskQAflow.cxx:371 AliAnalysisTaskQAflow.cxx:372 AliAnalysisTaskQAflow.cxx:373 AliAnalysisTaskQAflow.cxx:374 AliAnalysisTaskQAflow.cxx:375 AliAnalysisTaskQAflow.cxx:376 AliAnalysisTaskQAflow.cxx:377 AliAnalysisTaskQAflow.cxx:378 AliAnalysisTaskQAflow.cxx:379 AliAnalysisTaskQAflow.cxx:380 AliAnalysisTaskQAflow.cxx:381 AliAnalysisTaskQAflow.cxx:382 AliAnalysisTaskQAflow.cxx:383 AliAnalysisTaskQAflow.cxx:384 AliAnalysisTaskQAflow.cxx:385 AliAnalysisTaskQAflow.cxx:386 AliAnalysisTaskQAflow.cxx:387 AliAnalysisTaskQAflow.cxx:388 AliAnalysisTaskQAflow.cxx:389 AliAnalysisTaskQAflow.cxx:390 AliAnalysisTaskQAflow.cxx:391 AliAnalysisTaskQAflow.cxx:392 AliAnalysisTaskQAflow.cxx:393 AliAnalysisTaskQAflow.cxx:394 AliAnalysisTaskQAflow.cxx:395 AliAnalysisTaskQAflow.cxx:396 AliAnalysisTaskQAflow.cxx:397 AliAnalysisTaskQAflow.cxx:398 AliAnalysisTaskQAflow.cxx:399 AliAnalysisTaskQAflow.cxx:400 AliAnalysisTaskQAflow.cxx:401 AliAnalysisTaskQAflow.cxx:402 AliAnalysisTaskQAflow.cxx:403 AliAnalysisTaskQAflow.cxx:404 AliAnalysisTaskQAflow.cxx:405 AliAnalysisTaskQAflow.cxx:406 AliAnalysisTaskQAflow.cxx:407 AliAnalysisTaskQAflow.cxx:408 AliAnalysisTaskQAflow.cxx:409 AliAnalysisTaskQAflow.cxx:410 AliAnalysisTaskQAflow.cxx:411 AliAnalysisTaskQAflow.cxx:412 AliAnalysisTaskQAflow.cxx:413 AliAnalysisTaskQAflow.cxx:414 AliAnalysisTaskQAflow.cxx:415 AliAnalysisTaskQAflow.cxx:416 AliAnalysisTaskQAflow.cxx:417 AliAnalysisTaskQAflow.cxx:418 AliAnalysisTaskQAflow.cxx:419 AliAnalysisTaskQAflow.cxx:420 AliAnalysisTaskQAflow.cxx:421 AliAnalysisTaskQAflow.cxx:422 AliAnalysisTaskQAflow.cxx:423 AliAnalysisTaskQAflow.cxx:424 AliAnalysisTaskQAflow.cxx:425 AliAnalysisTaskQAflow.cxx:426 AliAnalysisTaskQAflow.cxx:427 AliAnalysisTaskQAflow.cxx:428 AliAnalysisTaskQAflow.cxx:429 AliAnalysisTaskQAflow.cxx:430 AliAnalysisTaskQAflow.cxx:431 AliAnalysisTaskQAflow.cxx:432 AliAnalysisTaskQAflow.cxx:433 AliAnalysisTaskQAflow.cxx:434 AliAnalysisTaskQAflow.cxx:435 AliAnalysisTaskQAflow.cxx:436 AliAnalysisTaskQAflow.cxx:437 AliAnalysisTaskQAflow.cxx:438 AliAnalysisTaskQAflow.cxx:439 AliAnalysisTaskQAflow.cxx:440 AliAnalysisTaskQAflow.cxx:441 AliAnalysisTaskQAflow.cxx:442 AliAnalysisTaskQAflow.cxx:443 AliAnalysisTaskQAflow.cxx:444 AliAnalysisTaskQAflow.cxx:445 AliAnalysisTaskQAflow.cxx:446 AliAnalysisTaskQAflow.cxx:447 AliAnalysisTaskQAflow.cxx:448 AliAnalysisTaskQAflow.cxx:449 AliAnalysisTaskQAflow.cxx:450 AliAnalysisTaskQAflow.cxx:451 AliAnalysisTaskQAflow.cxx:452 AliAnalysisTaskQAflow.cxx:453 AliAnalysisTaskQAflow.cxx:454 AliAnalysisTaskQAflow.cxx:455 AliAnalysisTaskQAflow.cxx:456 AliAnalysisTaskQAflow.cxx:457 AliAnalysisTaskQAflow.cxx:458 AliAnalysisTaskQAflow.cxx:459 AliAnalysisTaskQAflow.cxx:460 AliAnalysisTaskQAflow.cxx:461 AliAnalysisTaskQAflow.cxx:462 AliAnalysisTaskQAflow.cxx:463 AliAnalysisTaskQAflow.cxx:464 AliAnalysisTaskQAflow.cxx:465 AliAnalysisTaskQAflow.cxx:466 AliAnalysisTaskQAflow.cxx:467 AliAnalysisTaskQAflow.cxx:468 AliAnalysisTaskQAflow.cxx:469 AliAnalysisTaskQAflow.cxx:470 AliAnalysisTaskQAflow.cxx:471 AliAnalysisTaskQAflow.cxx:472 AliAnalysisTaskQAflow.cxx:473 AliAnalysisTaskQAflow.cxx:474 AliAnalysisTaskQAflow.cxx:475 AliAnalysisTaskQAflow.cxx:476 AliAnalysisTaskQAflow.cxx:477 AliAnalysisTaskQAflow.cxx:478 AliAnalysisTaskQAflow.cxx:479 AliAnalysisTaskQAflow.cxx:480 AliAnalysisTaskQAflow.cxx:481 AliAnalysisTaskQAflow.cxx:482 AliAnalysisTaskQAflow.cxx:483