#include "Riostream.h" //needed as include
#include "TChain.h"
#include "TTree.h"
#include "TFile.h" //needed as include
#include "TList.h"
#include "TF1.h"
#include "TH2F.h"
#include "TRandom3.h"
#include "TTimeStamp.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTaskSE.h"
#include "AliESDtrackCuts.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliCFManager.h"
#include "AliGenCocktailEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliGenGeVSimEventHeader.h"
#include "AliGenEposEventHeader.h"
#include "TObjArray.h"
#include "AliFlowCandidateTrack.h"
#include "AliFlowEvent.h"
#include "AliFlowTrackCuts.h"
#include "AliFlowEventCuts.h"
#include "AliFlowCommonConstants.h"
#include "AliAnalysisTaskFlowEvent.h"
#include "AliLog.h"
using std::cout;
using std::endl;
ClassImp(AliAnalysisTaskFlowEvent)
AliAnalysisTaskFlowEvent::AliAnalysisTaskFlowEvent() :
AliAnalysisTaskSE(),
fAnalysisType("AUTOMATIC"),
fRPType("Global"),
fCFManager1(NULL),
fCFManager2(NULL),
fCutsEvent(NULL),
fCutsRP(NULL),
fCutsPOI(NULL),
fCutContainer(NULL),
fQAList(NULL),
fMinMult(0),
fMaxMult(10000000),
fMinA(-1.0),
fMaxA(-0.01),
fMinB(0.01),
fMaxB(1.0),
fQAon(kFALSE),
fLoadCandidates(kFALSE),
fNbinsMult(10000),
fNbinsPt(100),
fNbinsPhi(100),
fNbinsEta(200),
fNbinsQ(500),
fNbinsMass(1),
fMultMin(0.),
fMultMax(10000.),
fPtMin(0.),
fPtMax(10.),
fPhiMin(0.),
fPhiMax(TMath::TwoPi()),
fEtaMin(-5.),
fEtaMax(5.),
fQMin(0.),
fQMax(3.),
fMassMin(-1.),
fMassMax(0.),
fHistWeightvsPhiMin(0.),
fHistWeightvsPhiMax(3.),
fExcludedEtaMin(0.),
fExcludedEtaMax(0.),
fExcludedPhiMin(0.),
fExcludedPhiMax(0.),
fAfterburnerOn(kFALSE),
fNonFlowNumberOfTrackClones(0),
fV1(0.),
fV2(0.),
fV3(0.),
fV4(0.),
fV5(0.),
fDifferentialV2(0),
fFlowEvent(NULL),
fShuffleTracks(kFALSE),
fMyTRandom3(NULL)
{
AliDebug(2,"AliAnalysisTaskFlowEvent::AliAnalysisTaskFlowEvent()");
}
AliAnalysisTaskFlowEvent::AliAnalysisTaskFlowEvent(const char *name, TString RPtype, Bool_t on, UInt_t iseed, Bool_t bCandidates) :
AliAnalysisTaskSE(name),
fAnalysisType("AUTOMATIC"),
fRPType(RPtype),
fCFManager1(NULL),
fCFManager2(NULL),
fCutsEvent(NULL),
fCutsRP(NULL),
fCutsPOI(NULL),
fCutContainer(new TList()),
fQAList(NULL),
fMinMult(0),
fMaxMult(10000000),
fMinA(-1.0),
fMaxA(-0.01),
fMinB(0.01),
fMaxB(1.0),
fQAon(on),
fLoadCandidates(bCandidates),
fNbinsMult(10000),
fNbinsPt(100),
fNbinsPhi(100),
fNbinsEta(200),
fNbinsQ(500),
fNbinsMass(1),
fMultMin(0.),
fMultMax(10000.),
fPtMin(0.),
fPtMax(10.),
fPhiMin(0.),
fPhiMax(TMath::TwoPi()),
fEtaMin(-5.),
fEtaMax(5.),
fQMin(0.),
fQMax(3.),
fMassMin(-1.),
fMassMax(0.),
fHistWeightvsPhiMin(0.),
fHistWeightvsPhiMax(3.),
fExcludedEtaMin(0.),
fExcludedEtaMax(0.),
fExcludedPhiMin(0.),
fExcludedPhiMax(0.),
fAfterburnerOn(kFALSE),
fNonFlowNumberOfTrackClones(0),
fV1(0.),
fV2(0.),
fV3(0.),
fV4(0.),
fV5(0.),
fDifferentialV2(0),
fFlowEvent(NULL),
fShuffleTracks(kFALSE),
fMyTRandom3(NULL)
{
AliDebug(2,"AliAnalysisTaskFlowEvent::AliAnalysisTaskFlowEvent(const char *name, Bool_t on, UInt_t iseed)");
fMyTRandom3 = new TRandom3(iseed);
gRandom->SetSeed(fMyTRandom3->Integer(65539));
int availableINslot=1;
if (strcmp(RPtype,"FMD")==0) {
DefineInput(availableINslot++, TList::Class());
}
if( fLoadCandidates )
DefineInput(availableINslot, TObjArray::Class());
DefineOutput(1, AliFlowEventSimple::Class());
DefineOutput(2, TList::Class());
}
AliAnalysisTaskFlowEvent::~AliAnalysisTaskFlowEvent()
{
delete fMyTRandom3;
delete fFlowEvent;
delete fCutsEvent;
delete fQAList;
if (fCutContainer) fCutContainer->Delete(); delete fCutContainer;
}
void AliAnalysisTaskFlowEvent::NotifyRun()
{
if (fCutsRP) fCutsRP->SetRunsMuon(fInputHandler);
if (fCutsPOI) fCutsPOI->SetRunsMuon(fInputHandler);
AliESDEvent* fESD = dynamic_cast<AliESDEvent*> (InputEvent());
if (!fESD) return;
Int_t run = fESD->GetRunNumber();
AliInfo(Form("Stariting run #%i",run));
}
void AliAnalysisTaskFlowEvent::UserCreateOutputObjects()
{
AliDebug(2,"AliAnalysisTaskFlowEvent::CreateOutputObjects()");
if (!(fAnalysisType == "AOD" || fAnalysisType == "ESD" || fAnalysisType == "ESDMCkineESD" || fAnalysisType == "ESDMCkineMC" || fAnalysisType == "MC" || fAnalysisType == "AUTOMATIC"))
{
AliError("WRONG ANALYSIS TYPE! only ESD, ESDMCkineESD, ESDMCkineMC, AOD, MC and AUTOMATIC are allowed.");
exit(1);
}
AliFlowCommonConstants* cc = AliFlowCommonConstants::GetMaster();
cc->SetNbinsMult(fNbinsMult);
cc->SetNbinsPt(fNbinsPt);
cc->SetNbinsPhi(fNbinsPhi);
cc->SetNbinsEta(fNbinsEta);
cc->SetNbinsQ(fNbinsQ);
cc->SetNbinsMass(fNbinsMass);
cc->SetMultMin(fMultMin);
cc->SetMultMax(fMultMax);
cc->SetPtMin(fPtMin);
cc->SetPtMax(fPtMax);
cc->SetPhiMin(fPhiMin);
cc->SetPhiMax(fPhiMax);
cc->SetEtaMin(fEtaMin);
cc->SetEtaMax(fEtaMax);
cc->SetQMin(fQMin);
cc->SetQMax(fQMax);
cc->SetMassMin(fMassMin);
cc->SetMassMax(fMassMax);
cc->SetHistWeightvsPhiMax(fHistWeightvsPhiMax);
cc->SetHistWeightvsPhiMin(fHistWeightvsPhiMin);
fFlowEvent = new AliFlowEvent(10000);
if (fQAon)
{
fQAList=new TList();
fQAList->SetOwner();
fQAList->SetName(Form("%s QA",GetName()));
if (fCutsEvent->GetQA()) fQAList->Add(fCutsEvent->GetQA());
if (fCutsRP->GetQA()) fQAList->Add(fCutsRP->GetQA());
if (fCutsPOI->GetQA())fQAList->Add(fCutsPOI->GetQA());
fQAList->Add(new TH1F("event plane angle","event plane angle;angle [rad];",100,0.,TMath::TwoPi()));
PostData(2,fQAList);
}
}
void AliAnalysisTaskFlowEvent::UserExec(Option_t *)
{
AliMCEvent* mcEvent = MCEvent();
AliESDEvent* myESD = dynamic_cast<AliESDEvent*>(InputEvent());
AliAODEvent* myAOD = dynamic_cast<AliAODEvent*>(InputEvent());
AliMultiplicity* myTracklets = NULL;
AliESDPmdTrack* pmdtracks = NULL;
int availableINslot=1;
if (!(fCutsRP&&fCutsPOI&&fCutsEvent))
{
AliError("cuts not set");
return;
}
if (fAnalysisType == "AUTOMATIC")
{
if (InputEvent() && !fCutsEvent->IsSelected(InputEvent(),MCEvent()))
return;
fCutsRP->SetEvent( InputEvent(), MCEvent() );
fCutsPOI->SetEvent( InputEvent(), MCEvent() );
fFlowEvent->Fill( fCutsRP, fCutsPOI );
fFlowEvent->SetReferenceMultiplicity(fCutsEvent->GetReferenceMultiplicity(InputEvent(),mcEvent));
fFlowEvent->SetCentrality(fCutsEvent->GetCentrality(InputEvent(),mcEvent));
if (mcEvent && mcEvent->GenEventHeader()) fFlowEvent->SetMCReactionPlaneAngle(mcEvent);
}
else if (fAnalysisType == "MC")
{
if (!(fCFManager1&&fCFManager2))
{
AliError("ERROR: No pointer to correction framework cuts! ");
return;
}
if (!mcEvent)
{
AliError("ERROR: Could not retrieve MC event");
return;
}
fCFManager1->SetMCEventInfo(mcEvent);
fCFManager2->SetMCEventInfo(mcEvent);
AliInfo(Form("Number of MC particles: %d", mcEvent->GetNumberOfTracks()));
if (!fCFManager1->CheckEventCuts(AliCFManager::kEvtGenCuts,mcEvent))
{
AliWarning("Event does not pass multiplicity cuts"); return;
}
fFlowEvent = new AliFlowEvent(mcEvent,fCFManager1,fCFManager2);
}
else if (fAnalysisType == "ESD")
{
if (!(fCFManager1&&fCFManager2))
{
AliError("ERROR: No pointer to correction framework cuts!");
return;
}
if (!myESD)
{
AliError("ERROR: ESD not available");
return;
}
AliInfo(Form("ESD has %d tracks", fInputEvent->GetNumberOfTracks()));
if (!fCFManager1->CheckEventCuts(AliCFManager::kEvtRecCuts,myESD))
{
AliWarning("Event does not pass multiplicity cuts"); return;
}
if (fRPType == "Global") {
fFlowEvent = new AliFlowEvent(myESD,fCFManager1,fCFManager2);
}
else if (fRPType == "TPCOnly") {
fFlowEvent = new AliFlowEvent(myESD,fCFManager2,kFALSE);
}
else if (fRPType == "TPCHybrid") {
fFlowEvent = new AliFlowEvent(myESD,fCFManager2,kTRUE);
}
else if (fRPType == "Tracklet"){
fFlowEvent = new AliFlowEvent(myESD,myTracklets,fCFManager2);
}
else if (fRPType == "FMD"){
TList* dataFMD = dynamic_cast<TList*>(GetInputData(availableINslot++));
if(!dataFMD) {
cout<<" No dataFMD "<<endl;
return;
}
TH2F* histFMD = dynamic_cast<TH2F*>(dataFMD->FindObject("dNdetadphiHistogramTrVtx"));
if (!histFMD) {
cout<< "No histFMD"<<endl;
return;
}
fFlowEvent = new AliFlowEvent(myESD,histFMD,fCFManager2);
}
else if (fRPType == "PMD"){
fFlowEvent = new AliFlowEvent(myESD,pmdtracks,fCFManager2);
}
else return;
if (mcEvent && mcEvent->GenEventHeader()) fFlowEvent->SetMCReactionPlaneAngle(mcEvent);
fFlowEvent->SetReferenceMultiplicity(AliESDtrackCuts::GetReferenceMultiplicity(myESD,kTRUE));
}
else if (fAnalysisType == "ESDMCkineESD" || fAnalysisType == "ESDMCkineMC" )
{
if (!(fCFManager1&&fCFManager2))
{
AliError("ERROR: No pointer to correction framework cuts! ");
return;
}
if (!myESD)
{
AliError("ERROR: ESD not available");
return;
}
AliInfo(Form("There are %d tracks in this event", fInputEvent->GetNumberOfTracks()));
if (!mcEvent)
{
AliError("ERROR: Could not retrieve MC event");
return;
}
fCFManager1->SetMCEventInfo(mcEvent);
fCFManager2->SetMCEventInfo(mcEvent);
if (!fCFManager1->CheckEventCuts(AliCFManager::kEvtRecCuts,myESD))
{
AliWarning("Event does not pass multiplicity cuts"); return;
}
if (fAnalysisType == "ESDMCkineESD")
{
fFlowEvent = new AliFlowEvent(myESD, mcEvent, AliFlowEvent::kESDkine, fCFManager1, fCFManager2 );
}
else if (fAnalysisType == "ESDMCkineMC")
{
fFlowEvent = new AliFlowEvent(myESD, mcEvent, AliFlowEvent::kMCkine, fCFManager1, fCFManager2 );
}
if (!fFlowEvent) return;
if (mcEvent && mcEvent->GenEventHeader()) fFlowEvent->SetMCReactionPlaneAngle(mcEvent);
fFlowEvent->SetReferenceMultiplicity(AliESDtrackCuts::GetReferenceMultiplicity(myESD,kTRUE));
}
else if (fAnalysisType == "AOD")
{
if (!myAOD)
{
AliError("ERROR: AOD not available");
return;
}
AliInfo(Form("AOD has %d tracks", myAOD->GetNumberOfTracks()));
fFlowEvent = new AliFlowEvent(myAOD);
}
if(fLoadCandidates) {
TObjArray* candidates = dynamic_cast<TObjArray*>(GetInputData(availableINslot++));
if (candidates)
{
for(int iCand=0; iCand!=candidates->GetEntriesFast(); ++iCand ) {
AliFlowCandidateTrack *cand = dynamic_cast<AliFlowCandidateTrack*>(candidates->At(iCand));
if (!cand) continue;
for(int iDau=0; iDau!=cand->GetNDaughters(); ++iDau) {
for(int iRPs=0; iRPs!=fFlowEvent->NumberOfTracks(); ++iRPs ) {
AliFlowTrack *iRP = dynamic_cast<AliFlowTrack*>(fFlowEvent->GetTrack( iRPs ));
if (!iRP) continue;
if( !iRP->InRPSelection() )
continue;
if( cand->GetIDDaughter(iDau) == iRP->GetID() ) {
iRP->SetForRPSelection(kFALSE);
fFlowEvent->SetNumberOfRPs( fFlowEvent->GetNumberOfRPs() -1 );
}
}
}
cand->SetForPOISelection(kTRUE);
fFlowEvent->InsertTrack( ((AliFlowTrack*) cand) );
}
}
}
if (!fFlowEvent) return;
Int_t mult = fFlowEvent->NumberOfTracks();
if (mult<fMinMult || mult>fMaxMult)
{
AliWarning("FlowEvent cut on multiplicity"); return;
}
fFlowEvent->DefineDeadZone(fExcludedEtaMin, fExcludedEtaMax, fExcludedPhiMin, fExcludedPhiMax );
if (fAfterburnerOn)
{
if (!fFlowEvent->IsSetMCReactionPlaneAngle())
fFlowEvent->SetMCReactionPlaneAngle(gRandom->Uniform(0.0,TMath::TwoPi()));
if(fDifferentialV2)
fFlowEvent->AddV2(fDifferentialV2);
else
fFlowEvent->AddFlow(fV1,fV2,fV3,fV4,fV5);
fFlowEvent->CloneTracks(fNonFlowNumberOfTrackClones);
}
fFlowEvent->TagSubeventsInEta(fMinA,fMaxA,fMinB,fMaxB);
if (fQAon)
{
TH1* h1 = static_cast<TH1*>(fQAList->FindObject("event plane angle"));
h1->Fill(fFlowEvent->GetMCReactionPlaneAngle());
}
fFlowEvent->SetShuffleTracks(fShuffleTracks);
fFlowEvent->FindDaughters();
PostData(1,fFlowEvent);
}
void AliAnalysisTaskFlowEvent::Terminate(Option_t *)
{
}
AliAnalysisTaskFlowEvent.cxx:1 AliAnalysisTaskFlowEvent.cxx:2 AliAnalysisTaskFlowEvent.cxx:3 AliAnalysisTaskFlowEvent.cxx:4 AliAnalysisTaskFlowEvent.cxx:5 AliAnalysisTaskFlowEvent.cxx:6 AliAnalysisTaskFlowEvent.cxx:7 AliAnalysisTaskFlowEvent.cxx:8 AliAnalysisTaskFlowEvent.cxx:9 AliAnalysisTaskFlowEvent.cxx:10 AliAnalysisTaskFlowEvent.cxx:11 AliAnalysisTaskFlowEvent.cxx:12 AliAnalysisTaskFlowEvent.cxx:13 AliAnalysisTaskFlowEvent.cxx:14 AliAnalysisTaskFlowEvent.cxx:15 AliAnalysisTaskFlowEvent.cxx:16 AliAnalysisTaskFlowEvent.cxx:17 AliAnalysisTaskFlowEvent.cxx:18 AliAnalysisTaskFlowEvent.cxx:19 AliAnalysisTaskFlowEvent.cxx:20 AliAnalysisTaskFlowEvent.cxx:21 AliAnalysisTaskFlowEvent.cxx:22 AliAnalysisTaskFlowEvent.cxx:23 AliAnalysisTaskFlowEvent.cxx:24 AliAnalysisTaskFlowEvent.cxx:25 AliAnalysisTaskFlowEvent.cxx:26 AliAnalysisTaskFlowEvent.cxx:27 AliAnalysisTaskFlowEvent.cxx:28 AliAnalysisTaskFlowEvent.cxx:29 AliAnalysisTaskFlowEvent.cxx:30 AliAnalysisTaskFlowEvent.cxx:31 AliAnalysisTaskFlowEvent.cxx:32 AliAnalysisTaskFlowEvent.cxx:33 AliAnalysisTaskFlowEvent.cxx:34 AliAnalysisTaskFlowEvent.cxx:35 AliAnalysisTaskFlowEvent.cxx:36 AliAnalysisTaskFlowEvent.cxx:37 AliAnalysisTaskFlowEvent.cxx:38 AliAnalysisTaskFlowEvent.cxx:39 AliAnalysisTaskFlowEvent.cxx:40 AliAnalysisTaskFlowEvent.cxx:41 AliAnalysisTaskFlowEvent.cxx:42 AliAnalysisTaskFlowEvent.cxx:43 AliAnalysisTaskFlowEvent.cxx:44 AliAnalysisTaskFlowEvent.cxx:45 AliAnalysisTaskFlowEvent.cxx:46 AliAnalysisTaskFlowEvent.cxx:47 AliAnalysisTaskFlowEvent.cxx:48 AliAnalysisTaskFlowEvent.cxx:49 AliAnalysisTaskFlowEvent.cxx:50 AliAnalysisTaskFlowEvent.cxx:51 AliAnalysisTaskFlowEvent.cxx:52 AliAnalysisTaskFlowEvent.cxx:53 AliAnalysisTaskFlowEvent.cxx:54 AliAnalysisTaskFlowEvent.cxx:55 AliAnalysisTaskFlowEvent.cxx:56 AliAnalysisTaskFlowEvent.cxx:57 AliAnalysisTaskFlowEvent.cxx:58 AliAnalysisTaskFlowEvent.cxx:59 AliAnalysisTaskFlowEvent.cxx:60 AliAnalysisTaskFlowEvent.cxx:61 AliAnalysisTaskFlowEvent.cxx:62 AliAnalysisTaskFlowEvent.cxx:63 AliAnalysisTaskFlowEvent.cxx:64 AliAnalysisTaskFlowEvent.cxx:65 AliAnalysisTaskFlowEvent.cxx:66 AliAnalysisTaskFlowEvent.cxx:67 AliAnalysisTaskFlowEvent.cxx:68 AliAnalysisTaskFlowEvent.cxx:69 AliAnalysisTaskFlowEvent.cxx:70 AliAnalysisTaskFlowEvent.cxx:71 AliAnalysisTaskFlowEvent.cxx:72 AliAnalysisTaskFlowEvent.cxx:73 AliAnalysisTaskFlowEvent.cxx:74 AliAnalysisTaskFlowEvent.cxx:75 AliAnalysisTaskFlowEvent.cxx:76 AliAnalysisTaskFlowEvent.cxx:77 AliAnalysisTaskFlowEvent.cxx:78 AliAnalysisTaskFlowEvent.cxx:79 AliAnalysisTaskFlowEvent.cxx:80 AliAnalysisTaskFlowEvent.cxx:81 AliAnalysisTaskFlowEvent.cxx:82 AliAnalysisTaskFlowEvent.cxx:83 AliAnalysisTaskFlowEvent.cxx:84 AliAnalysisTaskFlowEvent.cxx:85 AliAnalysisTaskFlowEvent.cxx:86 AliAnalysisTaskFlowEvent.cxx:87 AliAnalysisTaskFlowEvent.cxx:88 AliAnalysisTaskFlowEvent.cxx:89 AliAnalysisTaskFlowEvent.cxx:90 AliAnalysisTaskFlowEvent.cxx:91 AliAnalysisTaskFlowEvent.cxx:92 AliAnalysisTaskFlowEvent.cxx:93 AliAnalysisTaskFlowEvent.cxx:94 AliAnalysisTaskFlowEvent.cxx:95 AliAnalysisTaskFlowEvent.cxx:96 AliAnalysisTaskFlowEvent.cxx:97 AliAnalysisTaskFlowEvent.cxx:98 AliAnalysisTaskFlowEvent.cxx:99 AliAnalysisTaskFlowEvent.cxx:100 AliAnalysisTaskFlowEvent.cxx:101 AliAnalysisTaskFlowEvent.cxx:102 AliAnalysisTaskFlowEvent.cxx:103 AliAnalysisTaskFlowEvent.cxx:104 AliAnalysisTaskFlowEvent.cxx:105 AliAnalysisTaskFlowEvent.cxx:106 AliAnalysisTaskFlowEvent.cxx:107 AliAnalysisTaskFlowEvent.cxx:108 AliAnalysisTaskFlowEvent.cxx:109 AliAnalysisTaskFlowEvent.cxx:110 AliAnalysisTaskFlowEvent.cxx:111 AliAnalysisTaskFlowEvent.cxx:112 AliAnalysisTaskFlowEvent.cxx:113 AliAnalysisTaskFlowEvent.cxx:114 AliAnalysisTaskFlowEvent.cxx:115 AliAnalysisTaskFlowEvent.cxx:116 AliAnalysisTaskFlowEvent.cxx:117 AliAnalysisTaskFlowEvent.cxx:118 AliAnalysisTaskFlowEvent.cxx:119 AliAnalysisTaskFlowEvent.cxx:120 AliAnalysisTaskFlowEvent.cxx:121 AliAnalysisTaskFlowEvent.cxx:122 AliAnalysisTaskFlowEvent.cxx:123 AliAnalysisTaskFlowEvent.cxx:124 AliAnalysisTaskFlowEvent.cxx:125 AliAnalysisTaskFlowEvent.cxx:126 AliAnalysisTaskFlowEvent.cxx:127 AliAnalysisTaskFlowEvent.cxx:128 AliAnalysisTaskFlowEvent.cxx:129 AliAnalysisTaskFlowEvent.cxx:130 AliAnalysisTaskFlowEvent.cxx:131 AliAnalysisTaskFlowEvent.cxx:132 AliAnalysisTaskFlowEvent.cxx:133 AliAnalysisTaskFlowEvent.cxx:134 AliAnalysisTaskFlowEvent.cxx:135 AliAnalysisTaskFlowEvent.cxx:136 AliAnalysisTaskFlowEvent.cxx:137 AliAnalysisTaskFlowEvent.cxx:138 AliAnalysisTaskFlowEvent.cxx:139 AliAnalysisTaskFlowEvent.cxx:140 AliAnalysisTaskFlowEvent.cxx:141 AliAnalysisTaskFlowEvent.cxx:142 AliAnalysisTaskFlowEvent.cxx:143 AliAnalysisTaskFlowEvent.cxx:144 AliAnalysisTaskFlowEvent.cxx:145 AliAnalysisTaskFlowEvent.cxx:146 AliAnalysisTaskFlowEvent.cxx:147 AliAnalysisTaskFlowEvent.cxx:148 AliAnalysisTaskFlowEvent.cxx:149 AliAnalysisTaskFlowEvent.cxx:150 AliAnalysisTaskFlowEvent.cxx:151 AliAnalysisTaskFlowEvent.cxx:152 AliAnalysisTaskFlowEvent.cxx:153 AliAnalysisTaskFlowEvent.cxx:154 AliAnalysisTaskFlowEvent.cxx:155 AliAnalysisTaskFlowEvent.cxx:156 AliAnalysisTaskFlowEvent.cxx:157 AliAnalysisTaskFlowEvent.cxx:158 AliAnalysisTaskFlowEvent.cxx:159 AliAnalysisTaskFlowEvent.cxx:160 AliAnalysisTaskFlowEvent.cxx:161 AliAnalysisTaskFlowEvent.cxx:162 AliAnalysisTaskFlowEvent.cxx:163 AliAnalysisTaskFlowEvent.cxx:164 AliAnalysisTaskFlowEvent.cxx:165 AliAnalysisTaskFlowEvent.cxx:166 AliAnalysisTaskFlowEvent.cxx:167 AliAnalysisTaskFlowEvent.cxx:168 AliAnalysisTaskFlowEvent.cxx:169 AliAnalysisTaskFlowEvent.cxx:170 AliAnalysisTaskFlowEvent.cxx:171 AliAnalysisTaskFlowEvent.cxx:172 AliAnalysisTaskFlowEvent.cxx:173 AliAnalysisTaskFlowEvent.cxx:174 AliAnalysisTaskFlowEvent.cxx:175 AliAnalysisTaskFlowEvent.cxx:176 AliAnalysisTaskFlowEvent.cxx:177 AliAnalysisTaskFlowEvent.cxx:178 AliAnalysisTaskFlowEvent.cxx:179 AliAnalysisTaskFlowEvent.cxx:180 AliAnalysisTaskFlowEvent.cxx:181 AliAnalysisTaskFlowEvent.cxx:182 AliAnalysisTaskFlowEvent.cxx:183 AliAnalysisTaskFlowEvent.cxx:184 AliAnalysisTaskFlowEvent.cxx:185 AliAnalysisTaskFlowEvent.cxx:186 AliAnalysisTaskFlowEvent.cxx:187 AliAnalysisTaskFlowEvent.cxx:188 AliAnalysisTaskFlowEvent.cxx:189 AliAnalysisTaskFlowEvent.cxx:190 AliAnalysisTaskFlowEvent.cxx:191 AliAnalysisTaskFlowEvent.cxx:192 AliAnalysisTaskFlowEvent.cxx:193 AliAnalysisTaskFlowEvent.cxx:194 AliAnalysisTaskFlowEvent.cxx:195 AliAnalysisTaskFlowEvent.cxx:196 AliAnalysisTaskFlowEvent.cxx:197 AliAnalysisTaskFlowEvent.cxx:198 AliAnalysisTaskFlowEvent.cxx:199 AliAnalysisTaskFlowEvent.cxx:200 AliAnalysisTaskFlowEvent.cxx:201 AliAnalysisTaskFlowEvent.cxx:202 AliAnalysisTaskFlowEvent.cxx:203 AliAnalysisTaskFlowEvent.cxx:204 AliAnalysisTaskFlowEvent.cxx:205 AliAnalysisTaskFlowEvent.cxx:206 AliAnalysisTaskFlowEvent.cxx:207 AliAnalysisTaskFlowEvent.cxx:208 AliAnalysisTaskFlowEvent.cxx:209 AliAnalysisTaskFlowEvent.cxx:210 AliAnalysisTaskFlowEvent.cxx:211 AliAnalysisTaskFlowEvent.cxx:212 AliAnalysisTaskFlowEvent.cxx:213 AliAnalysisTaskFlowEvent.cxx:214 AliAnalysisTaskFlowEvent.cxx:215 AliAnalysisTaskFlowEvent.cxx:216 AliAnalysisTaskFlowEvent.cxx:217 AliAnalysisTaskFlowEvent.cxx:218 AliAnalysisTaskFlowEvent.cxx:219 AliAnalysisTaskFlowEvent.cxx:220 AliAnalysisTaskFlowEvent.cxx:221 AliAnalysisTaskFlowEvent.cxx:222 AliAnalysisTaskFlowEvent.cxx:223 AliAnalysisTaskFlowEvent.cxx:224 AliAnalysisTaskFlowEvent.cxx:225 AliAnalysisTaskFlowEvent.cxx:226 AliAnalysisTaskFlowEvent.cxx:227 AliAnalysisTaskFlowEvent.cxx:228 AliAnalysisTaskFlowEvent.cxx:229 AliAnalysisTaskFlowEvent.cxx:230 AliAnalysisTaskFlowEvent.cxx:231 AliAnalysisTaskFlowEvent.cxx:232 AliAnalysisTaskFlowEvent.cxx:233 AliAnalysisTaskFlowEvent.cxx:234 AliAnalysisTaskFlowEvent.cxx:235 AliAnalysisTaskFlowEvent.cxx:236 AliAnalysisTaskFlowEvent.cxx:237 AliAnalysisTaskFlowEvent.cxx:238 AliAnalysisTaskFlowEvent.cxx:239 AliAnalysisTaskFlowEvent.cxx:240 AliAnalysisTaskFlowEvent.cxx:241 AliAnalysisTaskFlowEvent.cxx:242 AliAnalysisTaskFlowEvent.cxx:243 AliAnalysisTaskFlowEvent.cxx:244 AliAnalysisTaskFlowEvent.cxx:245 AliAnalysisTaskFlowEvent.cxx:246 AliAnalysisTaskFlowEvent.cxx:247 AliAnalysisTaskFlowEvent.cxx:248 AliAnalysisTaskFlowEvent.cxx:249 AliAnalysisTaskFlowEvent.cxx:250 AliAnalysisTaskFlowEvent.cxx:251 AliAnalysisTaskFlowEvent.cxx:252 AliAnalysisTaskFlowEvent.cxx:253 AliAnalysisTaskFlowEvent.cxx:254 AliAnalysisTaskFlowEvent.cxx:255 AliAnalysisTaskFlowEvent.cxx:256 AliAnalysisTaskFlowEvent.cxx:257 AliAnalysisTaskFlowEvent.cxx:258 AliAnalysisTaskFlowEvent.cxx:259 AliAnalysisTaskFlowEvent.cxx:260 AliAnalysisTaskFlowEvent.cxx:261 AliAnalysisTaskFlowEvent.cxx:262 AliAnalysisTaskFlowEvent.cxx:263 AliAnalysisTaskFlowEvent.cxx:264 AliAnalysisTaskFlowEvent.cxx:265 AliAnalysisTaskFlowEvent.cxx:266 AliAnalysisTaskFlowEvent.cxx:267 AliAnalysisTaskFlowEvent.cxx:268 AliAnalysisTaskFlowEvent.cxx:269 AliAnalysisTaskFlowEvent.cxx:270 AliAnalysisTaskFlowEvent.cxx:271 AliAnalysisTaskFlowEvent.cxx:272 AliAnalysisTaskFlowEvent.cxx:273 AliAnalysisTaskFlowEvent.cxx:274 AliAnalysisTaskFlowEvent.cxx:275 AliAnalysisTaskFlowEvent.cxx:276 AliAnalysisTaskFlowEvent.cxx:277 AliAnalysisTaskFlowEvent.cxx:278 AliAnalysisTaskFlowEvent.cxx:279 AliAnalysisTaskFlowEvent.cxx:280 AliAnalysisTaskFlowEvent.cxx:281 AliAnalysisTaskFlowEvent.cxx:282 AliAnalysisTaskFlowEvent.cxx:283 AliAnalysisTaskFlowEvent.cxx:284 AliAnalysisTaskFlowEvent.cxx:285 AliAnalysisTaskFlowEvent.cxx:286 AliAnalysisTaskFlowEvent.cxx:287 AliAnalysisTaskFlowEvent.cxx:288 AliAnalysisTaskFlowEvent.cxx:289 AliAnalysisTaskFlowEvent.cxx:290 AliAnalysisTaskFlowEvent.cxx:291 AliAnalysisTaskFlowEvent.cxx:292 AliAnalysisTaskFlowEvent.cxx:293 AliAnalysisTaskFlowEvent.cxx:294 AliAnalysisTaskFlowEvent.cxx:295 AliAnalysisTaskFlowEvent.cxx:296 AliAnalysisTaskFlowEvent.cxx:297 AliAnalysisTaskFlowEvent.cxx:298 AliAnalysisTaskFlowEvent.cxx:299 AliAnalysisTaskFlowEvent.cxx:300 AliAnalysisTaskFlowEvent.cxx:301 AliAnalysisTaskFlowEvent.cxx:302 AliAnalysisTaskFlowEvent.cxx:303 AliAnalysisTaskFlowEvent.cxx:304 AliAnalysisTaskFlowEvent.cxx:305 AliAnalysisTaskFlowEvent.cxx:306 AliAnalysisTaskFlowEvent.cxx:307 AliAnalysisTaskFlowEvent.cxx:308 AliAnalysisTaskFlowEvent.cxx:309 AliAnalysisTaskFlowEvent.cxx:310 AliAnalysisTaskFlowEvent.cxx:311 AliAnalysisTaskFlowEvent.cxx:312 AliAnalysisTaskFlowEvent.cxx:313 AliAnalysisTaskFlowEvent.cxx:314 AliAnalysisTaskFlowEvent.cxx:315 AliAnalysisTaskFlowEvent.cxx:316 AliAnalysisTaskFlowEvent.cxx:317 AliAnalysisTaskFlowEvent.cxx:318 AliAnalysisTaskFlowEvent.cxx:319 AliAnalysisTaskFlowEvent.cxx:320 AliAnalysisTaskFlowEvent.cxx:321 AliAnalysisTaskFlowEvent.cxx:322 AliAnalysisTaskFlowEvent.cxx:323 AliAnalysisTaskFlowEvent.cxx:324 AliAnalysisTaskFlowEvent.cxx:325 AliAnalysisTaskFlowEvent.cxx:326 AliAnalysisTaskFlowEvent.cxx:327 AliAnalysisTaskFlowEvent.cxx:328 AliAnalysisTaskFlowEvent.cxx:329 AliAnalysisTaskFlowEvent.cxx:330 AliAnalysisTaskFlowEvent.cxx:331 AliAnalysisTaskFlowEvent.cxx:332 AliAnalysisTaskFlowEvent.cxx:333 AliAnalysisTaskFlowEvent.cxx:334 AliAnalysisTaskFlowEvent.cxx:335 AliAnalysisTaskFlowEvent.cxx:336 AliAnalysisTaskFlowEvent.cxx:337 AliAnalysisTaskFlowEvent.cxx:338 AliAnalysisTaskFlowEvent.cxx:339 AliAnalysisTaskFlowEvent.cxx:340 AliAnalysisTaskFlowEvent.cxx:341 AliAnalysisTaskFlowEvent.cxx:342 AliAnalysisTaskFlowEvent.cxx:343 AliAnalysisTaskFlowEvent.cxx:344 AliAnalysisTaskFlowEvent.cxx:345 AliAnalysisTaskFlowEvent.cxx:346 AliAnalysisTaskFlowEvent.cxx:347 AliAnalysisTaskFlowEvent.cxx:348 AliAnalysisTaskFlowEvent.cxx:349 AliAnalysisTaskFlowEvent.cxx:350 AliAnalysisTaskFlowEvent.cxx:351 AliAnalysisTaskFlowEvent.cxx:352 AliAnalysisTaskFlowEvent.cxx:353 AliAnalysisTaskFlowEvent.cxx:354 AliAnalysisTaskFlowEvent.cxx:355 AliAnalysisTaskFlowEvent.cxx:356 AliAnalysisTaskFlowEvent.cxx:357 AliAnalysisTaskFlowEvent.cxx:358 AliAnalysisTaskFlowEvent.cxx:359 AliAnalysisTaskFlowEvent.cxx:360 AliAnalysisTaskFlowEvent.cxx:361 AliAnalysisTaskFlowEvent.cxx:362 AliAnalysisTaskFlowEvent.cxx:363 AliAnalysisTaskFlowEvent.cxx:364 AliAnalysisTaskFlowEvent.cxx:365 AliAnalysisTaskFlowEvent.cxx:366 AliAnalysisTaskFlowEvent.cxx:367 AliAnalysisTaskFlowEvent.cxx:368 AliAnalysisTaskFlowEvent.cxx:369 AliAnalysisTaskFlowEvent.cxx:370 AliAnalysisTaskFlowEvent.cxx:371 AliAnalysisTaskFlowEvent.cxx:372 AliAnalysisTaskFlowEvent.cxx:373 AliAnalysisTaskFlowEvent.cxx:374 AliAnalysisTaskFlowEvent.cxx:375 AliAnalysisTaskFlowEvent.cxx:376 AliAnalysisTaskFlowEvent.cxx:377 AliAnalysisTaskFlowEvent.cxx:378 AliAnalysisTaskFlowEvent.cxx:379 AliAnalysisTaskFlowEvent.cxx:380 AliAnalysisTaskFlowEvent.cxx:381 AliAnalysisTaskFlowEvent.cxx:382 AliAnalysisTaskFlowEvent.cxx:383 AliAnalysisTaskFlowEvent.cxx:384 AliAnalysisTaskFlowEvent.cxx:385 AliAnalysisTaskFlowEvent.cxx:386 AliAnalysisTaskFlowEvent.cxx:387 AliAnalysisTaskFlowEvent.cxx:388 AliAnalysisTaskFlowEvent.cxx:389 AliAnalysisTaskFlowEvent.cxx:390 AliAnalysisTaskFlowEvent.cxx:391 AliAnalysisTaskFlowEvent.cxx:392 AliAnalysisTaskFlowEvent.cxx:393 AliAnalysisTaskFlowEvent.cxx:394 AliAnalysisTaskFlowEvent.cxx:395 AliAnalysisTaskFlowEvent.cxx:396 AliAnalysisTaskFlowEvent.cxx:397 AliAnalysisTaskFlowEvent.cxx:398 AliAnalysisTaskFlowEvent.cxx:399 AliAnalysisTaskFlowEvent.cxx:400 AliAnalysisTaskFlowEvent.cxx:401 AliAnalysisTaskFlowEvent.cxx:402 AliAnalysisTaskFlowEvent.cxx:403 AliAnalysisTaskFlowEvent.cxx:404 AliAnalysisTaskFlowEvent.cxx:405 AliAnalysisTaskFlowEvent.cxx:406 AliAnalysisTaskFlowEvent.cxx:407 AliAnalysisTaskFlowEvent.cxx:408 AliAnalysisTaskFlowEvent.cxx:409 AliAnalysisTaskFlowEvent.cxx:410 AliAnalysisTaskFlowEvent.cxx:411 AliAnalysisTaskFlowEvent.cxx:412 AliAnalysisTaskFlowEvent.cxx:413 AliAnalysisTaskFlowEvent.cxx:414 AliAnalysisTaskFlowEvent.cxx:415 AliAnalysisTaskFlowEvent.cxx:416 AliAnalysisTaskFlowEvent.cxx:417 AliAnalysisTaskFlowEvent.cxx:418 AliAnalysisTaskFlowEvent.cxx:419 AliAnalysisTaskFlowEvent.cxx:420 AliAnalysisTaskFlowEvent.cxx:421 AliAnalysisTaskFlowEvent.cxx:422 AliAnalysisTaskFlowEvent.cxx:423 AliAnalysisTaskFlowEvent.cxx:424 AliAnalysisTaskFlowEvent.cxx:425 AliAnalysisTaskFlowEvent.cxx:426 AliAnalysisTaskFlowEvent.cxx:427 AliAnalysisTaskFlowEvent.cxx:428 AliAnalysisTaskFlowEvent.cxx:429 AliAnalysisTaskFlowEvent.cxx:430 AliAnalysisTaskFlowEvent.cxx:431 AliAnalysisTaskFlowEvent.cxx:432 AliAnalysisTaskFlowEvent.cxx:433 AliAnalysisTaskFlowEvent.cxx:434 AliAnalysisTaskFlowEvent.cxx:435 AliAnalysisTaskFlowEvent.cxx:436 AliAnalysisTaskFlowEvent.cxx:437 AliAnalysisTaskFlowEvent.cxx:438 AliAnalysisTaskFlowEvent.cxx:439 AliAnalysisTaskFlowEvent.cxx:440 AliAnalysisTaskFlowEvent.cxx:441 AliAnalysisTaskFlowEvent.cxx:442 AliAnalysisTaskFlowEvent.cxx:443 AliAnalysisTaskFlowEvent.cxx:444 AliAnalysisTaskFlowEvent.cxx:445 AliAnalysisTaskFlowEvent.cxx:446 AliAnalysisTaskFlowEvent.cxx:447 AliAnalysisTaskFlowEvent.cxx:448 AliAnalysisTaskFlowEvent.cxx:449 AliAnalysisTaskFlowEvent.cxx:450 AliAnalysisTaskFlowEvent.cxx:451 AliAnalysisTaskFlowEvent.cxx:452 AliAnalysisTaskFlowEvent.cxx:453 AliAnalysisTaskFlowEvent.cxx:454 AliAnalysisTaskFlowEvent.cxx:455 AliAnalysisTaskFlowEvent.cxx:456 AliAnalysisTaskFlowEvent.cxx:457 AliAnalysisTaskFlowEvent.cxx:458 AliAnalysisTaskFlowEvent.cxx:459 AliAnalysisTaskFlowEvent.cxx:460 AliAnalysisTaskFlowEvent.cxx:461 AliAnalysisTaskFlowEvent.cxx:462 AliAnalysisTaskFlowEvent.cxx:463 AliAnalysisTaskFlowEvent.cxx:464 AliAnalysisTaskFlowEvent.cxx:465 AliAnalysisTaskFlowEvent.cxx:466 AliAnalysisTaskFlowEvent.cxx:467 AliAnalysisTaskFlowEvent.cxx:468 AliAnalysisTaskFlowEvent.cxx:469 AliAnalysisTaskFlowEvent.cxx:470 AliAnalysisTaskFlowEvent.cxx:471 AliAnalysisTaskFlowEvent.cxx:472 AliAnalysisTaskFlowEvent.cxx:473 AliAnalysisTaskFlowEvent.cxx:474 AliAnalysisTaskFlowEvent.cxx:475 AliAnalysisTaskFlowEvent.cxx:476 AliAnalysisTaskFlowEvent.cxx:477 AliAnalysisTaskFlowEvent.cxx:478 AliAnalysisTaskFlowEvent.cxx:479 AliAnalysisTaskFlowEvent.cxx:480 AliAnalysisTaskFlowEvent.cxx:481 AliAnalysisTaskFlowEvent.cxx:482 AliAnalysisTaskFlowEvent.cxx:483 AliAnalysisTaskFlowEvent.cxx:484 AliAnalysisTaskFlowEvent.cxx:485 AliAnalysisTaskFlowEvent.cxx:486 AliAnalysisTaskFlowEvent.cxx:487 AliAnalysisTaskFlowEvent.cxx:488 AliAnalysisTaskFlowEvent.cxx:489 AliAnalysisTaskFlowEvent.cxx:490 AliAnalysisTaskFlowEvent.cxx:491 AliAnalysisTaskFlowEvent.cxx:492 AliAnalysisTaskFlowEvent.cxx:493 AliAnalysisTaskFlowEvent.cxx:494 AliAnalysisTaskFlowEvent.cxx:495 AliAnalysisTaskFlowEvent.cxx:496 AliAnalysisTaskFlowEvent.cxx:497 AliAnalysisTaskFlowEvent.cxx:498 AliAnalysisTaskFlowEvent.cxx:499 AliAnalysisTaskFlowEvent.cxx:500 AliAnalysisTaskFlowEvent.cxx:501 AliAnalysisTaskFlowEvent.cxx:502 AliAnalysisTaskFlowEvent.cxx:503 AliAnalysisTaskFlowEvent.cxx:504 AliAnalysisTaskFlowEvent.cxx:505 AliAnalysisTaskFlowEvent.cxx:506 AliAnalysisTaskFlowEvent.cxx:507 AliAnalysisTaskFlowEvent.cxx:508 AliAnalysisTaskFlowEvent.cxx:509 AliAnalysisTaskFlowEvent.cxx:510 AliAnalysisTaskFlowEvent.cxx:511 AliAnalysisTaskFlowEvent.cxx:512 AliAnalysisTaskFlowEvent.cxx:513 AliAnalysisTaskFlowEvent.cxx:514 AliAnalysisTaskFlowEvent.cxx:515 AliAnalysisTaskFlowEvent.cxx:516 AliAnalysisTaskFlowEvent.cxx:517 AliAnalysisTaskFlowEvent.cxx:518 AliAnalysisTaskFlowEvent.cxx:519 AliAnalysisTaskFlowEvent.cxx:520 AliAnalysisTaskFlowEvent.cxx:521 AliAnalysisTaskFlowEvent.cxx:522 AliAnalysisTaskFlowEvent.cxx:523 AliAnalysisTaskFlowEvent.cxx:524 AliAnalysisTaskFlowEvent.cxx:525 AliAnalysisTaskFlowEvent.cxx:526 AliAnalysisTaskFlowEvent.cxx:527 AliAnalysisTaskFlowEvent.cxx:528 AliAnalysisTaskFlowEvent.cxx:529 AliAnalysisTaskFlowEvent.cxx:530 AliAnalysisTaskFlowEvent.cxx:531 AliAnalysisTaskFlowEvent.cxx:532 AliAnalysisTaskFlowEvent.cxx:533 AliAnalysisTaskFlowEvent.cxx:534 AliAnalysisTaskFlowEvent.cxx:535 AliAnalysisTaskFlowEvent.cxx:536 AliAnalysisTaskFlowEvent.cxx:537 AliAnalysisTaskFlowEvent.cxx:538 AliAnalysisTaskFlowEvent.cxx:539 AliAnalysisTaskFlowEvent.cxx:540 AliAnalysisTaskFlowEvent.cxx:541 AliAnalysisTaskFlowEvent.cxx:542 AliAnalysisTaskFlowEvent.cxx:543 AliAnalysisTaskFlowEvent.cxx:544 AliAnalysisTaskFlowEvent.cxx:545 AliAnalysisTaskFlowEvent.cxx:546 AliAnalysisTaskFlowEvent.cxx:547 AliAnalysisTaskFlowEvent.cxx:548 AliAnalysisTaskFlowEvent.cxx:549 AliAnalysisTaskFlowEvent.cxx:550 AliAnalysisTaskFlowEvent.cxx:551 AliAnalysisTaskFlowEvent.cxx:552 AliAnalysisTaskFlowEvent.cxx:553 AliAnalysisTaskFlowEvent.cxx:554 AliAnalysisTaskFlowEvent.cxx:555 AliAnalysisTaskFlowEvent.cxx:556 AliAnalysisTaskFlowEvent.cxx:557 AliAnalysisTaskFlowEvent.cxx:558 AliAnalysisTaskFlowEvent.cxx:559 AliAnalysisTaskFlowEvent.cxx:560 AliAnalysisTaskFlowEvent.cxx:561 AliAnalysisTaskFlowEvent.cxx:562 AliAnalysisTaskFlowEvent.cxx:563 AliAnalysisTaskFlowEvent.cxx:564 AliAnalysisTaskFlowEvent.cxx:565 AliAnalysisTaskFlowEvent.cxx:566 AliAnalysisTaskFlowEvent.cxx:567 AliAnalysisTaskFlowEvent.cxx:568 AliAnalysisTaskFlowEvent.cxx:569 AliAnalysisTaskFlowEvent.cxx:570 AliAnalysisTaskFlowEvent.cxx:571 AliAnalysisTaskFlowEvent.cxx:572 AliAnalysisTaskFlowEvent.cxx:573 AliAnalysisTaskFlowEvent.cxx:574 AliAnalysisTaskFlowEvent.cxx:575 AliAnalysisTaskFlowEvent.cxx:576 AliAnalysisTaskFlowEvent.cxx:577 AliAnalysisTaskFlowEvent.cxx:578 AliAnalysisTaskFlowEvent.cxx:579 AliAnalysisTaskFlowEvent.cxx:580