void runFlowReaderExample( Int_t maxNumberOfEvents = 1000, const char* inputDataFiles="/Users/snelling/alice_data/jthomas/testData/")
{
gSystem->Load("libTree.so");
gSystem->Load("libVMC.so");
gSystem->Load("libPhysics.so");
gSystem->Load("libPWGflowBase");
TStopwatch timer;
timer.Start();
//define reference particles
AliStarTrackCuts* rpCuts = AliStarTrackCuts::StandardCuts();
rpCuts->SetPtMin(0.05);
rpCuts->SetPtMax(10.);
//define particles of interest
AliStarTrackCuts* poiCuts = AliStarTrackCuts::StandardCuts();
poiCuts->SetPtMin(0.05);
poiCuts->SetPtMax(10.);
//define event cuts
AliStarEventCuts* starEventCuts = AliStarEventCuts::StandardCuts();
starEventCuts-> SetCentralityIDMax(3);
starEventCuts-> SetCentralityIDMin(3);
AliFlowAnalysisWithMCEventPlane *mcep = new AliFlowAnalysisWithMCEventPlane();
AliFlowAnalysisWithQCumulants* qc = new AliFlowAnalysisWithQCumulants(); //mcep->SetHarmonic(2); // default is v2
mcep->Init(); qc->Init();
Int_t i=0;
AliStarEventReader starReader(inputDataFiles) ;
while ( starReader.GetNextEvent() ) // Get next event
{
AliStarEvent* starEvent = starReader.GetEvent();
if ( !starEventCuts->PassesCuts(starEvent) ) continue; // Test if the event is good
AliFlowEventSimple* flowEvent = new AliFlowEventStar(starEvent,rpCuts,poiCuts); // make a flow event from a star event
// do flow analysis for various methods
mcep->Make(flowEvent);
qc->Make(flowEvent);
delete flowEvent;
i++;
cout <<"Event: " << i << "\r"; cout.flush();
if (i>maxNumberOfEvents) break;
}
//---------------------------------------------------------------------------------------
// create a new file which will hold the final results of all methods:
TString outputFileName = "AnalysisResults.root";
TFile *outputFile = new TFile(outputFileName.Data(),"RECREATE");
// create a new file for each method wich will hold list with final results:
const Int_t nMethods = 2;
TString method[nMethods] = {"MCEP","QC"};
TDirectoryFile *dirFileFinal[nMethods] = {NULL};
TString fileName[nMethods];
for(Int_t i=0;i<nMethods;i++)
{
// form a file name for each method:
fileName[i]+="output";
fileName[i]+=method[i].Data();
fileName[i]+="analysis";
dirFileFinal[i] = new TDirectoryFile(fileName[i].Data(),fileName[i].Data());
}
// calculating and storing the final results of default flow analysis:
mcep->Finish(); mcep->WriteHistograms(dirFileFinal[0]);
qc->Finish(); qc->WriteHistograms(dirFileFinal[1]);
//---------------------------------------------------------------------------------------
outputFile->Close();
delete outputFile;
timer.Stop();
cout << endl;
timer.Print();
delete rpCuts;
delete poiCuts;
delete starEventCuts;
}
runFlowReaderExample.C:10 runFlowReaderExample.C:11 runFlowReaderExample.C:12 runFlowReaderExample.C:13 runFlowReaderExample.C:14 runFlowReaderExample.C:15 runFlowReaderExample.C:16 runFlowReaderExample.C:17 runFlowReaderExample.C:18 runFlowReaderExample.C:19 runFlowReaderExample.C:20 runFlowReaderExample.C:21 runFlowReaderExample.C:22 runFlowReaderExample.C:23 runFlowReaderExample.C:24 runFlowReaderExample.C:25 runFlowReaderExample.C:26 runFlowReaderExample.C:27 runFlowReaderExample.C:28 runFlowReaderExample.C:29 runFlowReaderExample.C:30 runFlowReaderExample.C:31 runFlowReaderExample.C:32 runFlowReaderExample.C:33 runFlowReaderExample.C:34 runFlowReaderExample.C:35 runFlowReaderExample.C:36 runFlowReaderExample.C:37 runFlowReaderExample.C:38 runFlowReaderExample.C:39 runFlowReaderExample.C:40 runFlowReaderExample.C:41 runFlowReaderExample.C:42 runFlowReaderExample.C:43 runFlowReaderExample.C:44 runFlowReaderExample.C:45 runFlowReaderExample.C:46 runFlowReaderExample.C:47 runFlowReaderExample.C:48 runFlowReaderExample.C:49 runFlowReaderExample.C:50 runFlowReaderExample.C:51 runFlowReaderExample.C:52 runFlowReaderExample.C:53 runFlowReaderExample.C:54 runFlowReaderExample.C:55 runFlowReaderExample.C:56 runFlowReaderExample.C:57 runFlowReaderExample.C:58 runFlowReaderExample.C:59 runFlowReaderExample.C:60 runFlowReaderExample.C:61 runFlowReaderExample.C:62 runFlowReaderExample.C:63 runFlowReaderExample.C:64 runFlowReaderExample.C:65 runFlowReaderExample.C:66 runFlowReaderExample.C:67 runFlowReaderExample.C:68 runFlowReaderExample.C:69 runFlowReaderExample.C:70 runFlowReaderExample.C:71 runFlowReaderExample.C:72 runFlowReaderExample.C:73 runFlowReaderExample.C:74 runFlowReaderExample.C:75 runFlowReaderExample.C:76 runFlowReaderExample.C:77 runFlowReaderExample.C:78 runFlowReaderExample.C:79 runFlowReaderExample.C:80 runFlowReaderExample.C:81 runFlowReaderExample.C:82 runFlowReaderExample.C:83 runFlowReaderExample.C:84