1 //type of analysis can be: ESD, AOD, MC, ESDMC0, ESDMC1
2 //const TString type = "ESD";
4 enum libModes {mLocal,mLocalSource};
5 //mLocal: Analyze data on your computer using aliroot
6 //mLocalSource: Analyze data on your computer using root + source files
8 //void compareFlowResults(TString type="",Int_t mode=mLocalSource)
9 void compareFlowResults(TString type="",Int_t mode=mLocal)
12 // load needed libraries:
13 LoadPlotLibraries(mode);
15 Bool_t plotLegendIntFlow = kTRUE; // plot legend with average multiplicity and number of events for each method in all plots for integrated flow
17 //==================================================================================
18 // set here which plots will be shown by default
19 //==================================================================================
20 Bool_t plotIntFlow = kTRUE; // integrated flow (no-name) // to be improved
21 Bool_t plotIntFlowRelativeToMC = kTRUE; // plot |v{MC}-v{method}/v{MC}| for integrated flow (no-name) // to be improved
22 // RP = particles used to determine the reaction plane
23 Bool_t plotIntFlowRP = kTRUE; // integrated flow RP
24 Bool_t plotIntFlowRelativeToMCRP = kTRUE; // plot |v{MC}-v{method}/v{MC}| for integrated flow (RP) // to be improved
25 Bool_t plotDiffFlowPtRP = kTRUE; // differential flow (Pt,RP)
26 Bool_t plotDiffFlowEtaRP = kTRUE; // differential flow (Eta,RP)
27 Bool_t plotDiffFlowPtRelativeToMCRP = kTRUE; // plot |v{MC}-v{method}/v{MC}| as a function of pt for RPs
28 // POI = particle of interest
29 Bool_t plotIntFlowPOI = kTRUE; // integrated flow POI
30 Bool_t plotIntFlowRelativeToMCPOI = kTRUE; // plot |v{MC}-v{method}/v{MC}| for integrated flow (POI) // to be improved
31 Bool_t plotDiffFlowPtPOI = kTRUE; // differential flow (Pt,POI)
32 Bool_t plotDiffFlowEtaPOI = kTRUE; // differential flow (Eta,POI)
33 //==================================================================================
36 //==================================================================================
37 // set here which methods will be plotted by default for differential flow (Pt,RP):
38 Bool_t plotMCPtRP = kFALSE;
39 Bool_t plotSPPtRP = kTRUE;
40 Bool_t plotGFC2PtRP = kTRUE;
41 Bool_t plotGFC4PtRP = kTRUE;
42 Bool_t plotGFC6PtRP = kTRUE;
43 Bool_t plotGFC8PtRP = kTRUE;
44 Bool_t plotQC2PtRP = kTRUE;
45 Bool_t plotQC4PtRP = kTRUE;
46 Bool_t plotQC6PtRP = kFALSE; // not calculated yet
47 Bool_t plotQC8PtRP = kFALSE; // not calculated yet
48 Bool_t plotLYZ2SUMPtRP = kTRUE;
49 Bool_t plotLYZ2PRODPtRP = kTRUE;
50 Bool_t plotLYZEPPtRP = kTRUE;
52 // set here which methods will be plotted by default for differential flow (Eta,RP):
53 Bool_t plotMCEtaRP = kFALSE;
54 Bool_t plotSPEtaRP = kTRUE;
55 Bool_t plotGFC2EtaRP = kTRUE;
56 Bool_t plotGFC4EtaRP = kTRUE;
57 Bool_t plotGFC6EtaRP = kTRUE;
58 Bool_t plotGFC8EtaRP = kTRUE;
59 Bool_t plotQC2EtaRP = kTRUE;
60 Bool_t plotQC4EtaRP = kTRUE;
61 Bool_t plotQC6EtaRP = kFALSE; // not calculated yet
62 Bool_t plotQC8EtaRP = kFALSE; // not calculated yet
63 Bool_t plotLYZ2SUMEtaRP = kTRUE;
64 Bool_t plotLYZ2PRODEtaRP = kTRUE;
65 Bool_t plotLYZEPEtaRP = kTRUE;
67 // set here which methods will be plotted by default for |v{MC}-v{method}/v{MC}| as a function of pt for RPs
68 Bool_t plotSPRelativeToMCRP = kTRUE;
69 Bool_t plotGFC2RelativeToMCRP = kTRUE;
70 Bool_t plotGFC4RelativeToMCRP = kTRUE;
71 Bool_t plotGFC6RelativeToMCRP = kTRUE;
72 Bool_t plotGFC8RelativeToMCRP = kTRUE;
73 Bool_t plotQC2RelativeToMCRP = kTRUE;
74 Bool_t plotQC4RelativeToMCRP = kTRUE;
75 Bool_t plotQC6RelativeToMCRP = kFALSE; // not calculated yet
76 Bool_t plotQC8RelativeToMCRP = kFALSE; // not calculated yet
77 Bool_t plotLYZ2SUMRelativeToMCRP = kTRUE;
78 Bool_t plotLYZ2PRODRelativeToMCRP = kTRUE;
79 Bool_t plotLYZEPRelativeToMCRP = kTRUE;
81 // set here which methods will be plotted by default for differential flow (Pt,POI):
82 Bool_t plotMCPtPOI = kFALSE;
83 Bool_t plotSPPtPOI = kTRUE;
84 Bool_t plotGFC2PtPOI = kTRUE;
85 Bool_t plotGFC4PtPOI = kTRUE;
86 Bool_t plotGFC6PtPOI = kTRUE;
87 Bool_t plotGFC8PtPOI = kTRUE;
88 Bool_t plotQC2PtPOI = kTRUE;
89 Bool_t plotQC4PtPOI = kTRUE;
90 Bool_t plotQC6PtPOI = kFALSE; // not calculated yet
91 Bool_t plotQC8PtPOI = kFALSE; // not calculated yet
92 Bool_t plotLYZ2SUMPtPOI = kTRUE;
93 Bool_t plotLYZ2PRODPtPOI = kTRUE;
94 Bool_t plotLYZEPPtPOI = kTRUE;
96 // set here which methods will be plotted by default for differential flow (Eta,POI):
97 Bool_t plotMCEtaPOI = kFALSE;
98 Bool_t plotSPEtaPOI = kTRUE;
99 Bool_t plotGFC2EtaPOI = kTRUE;
100 Bool_t plotGFC4EtaPOI = kTRUE;
101 Bool_t plotGFC6EtaPOI = kTRUE;
102 Bool_t plotGFC8EtaPOI = kTRUE;
103 Bool_t plotQC2EtaPOI = kTRUE;
104 Bool_t plotQC4EtaPOI = kTRUE;
105 Bool_t plotQC6EtaPOI = kFALSE; // not calculated yet
106 Bool_t plotQC8EtaPOI = kFALSE; // not calculated yet
107 Bool_t plotLYZ2SUMEtaPOI = kTRUE;
108 Bool_t plotLYZ2PRODEtaPOI = kTRUE;
109 Bool_t plotLYZEPEtaPOI = kTRUE;
110 //==================================================================================
113 //==================================================================================
114 // cosmetics: marker style (see TMarker) and color (see TAttFill) for each method:
116 Int_t markerStyleMC = 20; // full circle
117 Int_t markerColorMC = kRed;
119 Int_t markerStyleSP = 3; // star
120 Int_t markerColorSP = kViolet-6;
122 Int_t markerStyleGFC2 = 21; // full square
123 Int_t markerColorGFC2 = kAzure-7;
125 Int_t markerStyleGFC4 = 20; // full circle
126 Int_t markerColorGFC4 = kAzure+3;
128 Int_t markerStyleGFC6 = 25; // open square
129 Int_t markerColorGFC6 = kAzure-7;
131 Int_t markerStyleGFC8 = 24; // open circle
132 Int_t markerColorGFC8 = kAzure+3;
134 Int_t markerStyleQC2 = 21; // full square
135 Int_t markerColorQC2 = kOrange-7;
137 Int_t markerStyleQC4 = 20; // full circle
138 Int_t markerColorQC4 = kOrange+3;
140 Int_t markerStyleQC6 = 25; // open square
141 Int_t markerColorQC6 = kOrange-7;
143 Int_t markerStyleQC8 = 24; // open circle
144 Int_t markerColorQC8 = kOrange+3;
146 Int_t markerStyleLYZ2SUM = 22; // full triangle
147 Int_t markerColorLYZ2SUM = kYellow+3;
149 Int_t markerStyleLYZ2PROD = 22; // full triangle
150 Int_t markerColorLYZ2PROD = kGreen+3;
152 Int_t markerStyleLYZEP = 26; // open triangle
153 Int_t markerColorLYZEP = kYellow+3;
154 //==================================================================================
157 //==================================================================================
158 // set here which result goes in which bin in the plot for integrated flow (no-name)
182 Int_t binLYZ1SUM = 12;
184 Int_t binLYZ1PROD = 13;
187 //==================================================================================
190 //==================================================================================
191 // set here which result goes in which bin in the plot for integrated flow (RP)
215 Int_t binLYZ2SUMRP = 12;
217 Int_t binLYZ2PRODRP = 13;
219 Int_t binLYZEPRP = 14;
220 //==================================================================================
223 //==================================================================================
224 // set here which result goes in which bin in the plot for integrated flow (POI)
230 Int_t binGFC2POI = 3;
232 Int_t binGFC4POI = 5;
234 Int_t binGFC6POI = 7;
236 Int_t binGFC8POI = 9;
244 Int_t binQC8POI = 10;
246 Int_t binFQDPOI = 11;
248 Int_t binLYZ2SUMPOI = 12;
250 Int_t binLYZ2PRODPOI = 13;
252 Int_t binLYZEPPOI = 14;
253 //==================================================================================
256 //==================================================================================
257 // accessing output files
258 //==================================================================================
259 TString outputFileName = "AnalysisResults.root"; // final output file name holding final results for large statistics sample
260 // access the merged, large statistics file obtained with macro mergeOutput.C:
261 TString pwd(gSystem->pwd());
263 pwd+=outputFileName.Data();
264 TFile *outputFile = NULL;
265 if(gSystem->AccessPathName(pwd.Data(),kFileExists))
267 cout<<"WARNING: You do not have an output file:"<<endl;
268 cout<<" "<<pwd.Data()<<endl;
272 outputFile = TFile::Open(pwd.Data(),"READ");
275 //open the output files for each method:
276 TString inputFileNameMCEP = "outputMCEPanalysis";
277 TFile* fileMCEP = (TFile*)outputFile->FindObjectAny((inputFileNameMCEP.Append(type)).Data());
279 TString inputFileNameSP = "outputSPanalysis";
280 TFile* fileSP = (TFile*)outputFile->FindObjectAny((inputFileNameSP.Append(type)).Data());
282 TString inputFileNameLYZ1SUM = "outputLYZ1SUManalysis";
283 TFile* fileLYZ1SUM = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ1SUM.Append(type)).Data());
285 TString inputFileNameLYZ2SUM = "outputLYZ2SUManalysis";
286 TFile* fileLYZ2SUM = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ2SUM.Append(type)).Data());
288 TString inputFileNameLYZ1PROD = "outputLYZ1PRODanalysis";
289 TFile* fileLYZ1PROD = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ1PROD.Append(type)).Data());
291 TString inputFileNameLYZ2PROD = "outputLYZ2PRODanalysis";
292 TFile* fileLYZ2PROD = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ2PROD.Append(type)).Data());
294 TString inputFileNameLYZEP = "outputLYZEPanalysis";
295 TFile* fileLYZEP = (TFile*)outputFile->FindObjectAny((inputFileNameLYZEP.Append(type)).Data());
297 TString inputFileNameFQD = "outputFQDanalysis";
298 TFile* fileFQD = (TFile*)outputFile->FindObjectAny((inputFileNameFQD.Append(type)).Data());
300 TString inputFileNameGFC = "outputGFCanalysis";
301 TFile* fileGFC = (TFile*)outputFile->FindObjectAny((inputFileNameGFC.Append(type)).Data());
303 TString inputFileNameQC = "outputQCanalysis";
304 TFile* fileQC = (TFile*)outputFile->FindObjectAny((inputFileNameQC.Append(type)).Data());
305 //==================================================================================
310 //==================================================================================
312 //==================================================================================
313 //removing the title and stat. box from all histograms:
314 gStyle->SetOptTitle(0);
315 gStyle->SetOptStat(0);
317 // plot for 'no-name' integrated flow:
318 // choosing the style and color of mesh for MC error bands
319 Int_t meshStyle = 1001;
320 Int_t meshColor = kGray;
322 // marker style and color
323 Int_t markerStyle = 21;
324 Int_t markerColor = kBlack;
326 // plot for RP's integrated flow:
327 // choosing the style and color of mesh for MC error bands
328 Int_t meshStyleRP = 1001;
329 Int_t meshColorRP = kRed-10;
331 // marker style and color
332 Int_t markerStyleRP = 21;
333 Int_t markerColorRP = kRed-3;
335 // plot for POI's integrated flow:
336 // choosing the style and color of mesh for MC error bands
337 Int_t meshStylePOI = 1001;
338 Int_t meshColorPOI = kBlue-10;
340 // marker style and color
341 Int_t markerStylePOI = 21;
342 Int_t markerColorPOI = kBlue-3;
344 // choosing the style and color of mesh for MC error bands in the plots for diff. flow
345 // plot for differential flow (Pt,RP):
346 Int_t meshStyleDiffFlowPtRP = 1001;
347 Int_t meshColorDiffFlowPtRP = kRed-10;
349 // plot for differential flow (Eta,RP):
350 Int_t meshStyleDiffFlowEtaRP = 1001;
351 Int_t meshColorDiffFlowEtaRP = kRed-10;
353 // plot for differential flow (Pt,POI):
354 Int_t meshStyleDiffFlowPtPOI = 1001;
355 Int_t meshColorDiffFlowPtPOI = kRed-10;
357 // plot for differential flow (Eta,POI):
358 Int_t meshStyleDiffFlowEtaPOI = 1001;
359 Int_t meshColorDiffFlowEtaPOI = kRed-10;
360 //==================================================================================
365 //==================================================================================
366 // INTEGRATED FLOW (no-name, RP and POI)
367 //==================================================================================
368 // the number of different methods:
369 const Int_t nMethods=14;
371 // booking the histogram for the integrated flow results from all methods:
372 TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods);
373 if(!plotLegendIntFlow) intFlowAll->SetLabelSize(0.044,"X");
374 // intFlowAll->SetLabelSize(0.036,"Y");
375 intFlowAll->SetMarkerStyle(markerStyle);
376 intFlowAll->SetMarkerColor(markerColor);
377 (intFlowAll->GetXaxis())->SetBinLabel(binMC,"v_{2}{MC}");
378 (intFlowAll->GetXaxis())->SetBinLabel(binSP,"v_{2}{SP}");
379 (intFlowAll->GetXaxis())->SetBinLabel(binGFC2,"v_{2}{2,GFC}");
380 (intFlowAll->GetXaxis())->SetBinLabel(binQC2,"v_{2}{2,QC}");
381 (intFlowAll->GetXaxis())->SetBinLabel(binGFC4,"v_{2}{4,GFC}");
382 (intFlowAll->GetXaxis())->SetBinLabel(binQC4,"v_{2}{4,QC}");
383 (intFlowAll->GetXaxis())->SetBinLabel(binGFC6,"v_{2}{6,GFC}");
384 (intFlowAll->GetXaxis())->SetBinLabel(binQC6,"v_{2}{6,QC}");
385 (intFlowAll->GetXaxis())->SetBinLabel(binGFC8,"v_{2}{8,GFC}");
386 (intFlowAll->GetXaxis())->SetBinLabel(binQC8,"v_{2}{8,QC}");
387 (intFlowAll->GetXaxis())->SetBinLabel(binFQD,"v_{2}{FQD}");
388 (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1SUM,"v_{2}{LYZ,sum}");
389 (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1PROD,"v_{2}{LYZ,prod}");
390 (intFlowAll->GetXaxis())->SetBinLabel(binLYZEP,"v_{2}{LYZEP}");
392 // booking the graph to store flow values and errors from all methods:
393 Double_t x[nMethods] = {0.};
394 for(Int_t i=0;i<nMethods;i++)
398 Double_t xError[nMethods] = {0.};
399 Double_t flowValue[nMethods] = {0.};
400 Double_t flowError[nMethods] = {0.};
401 Double_t flowValueRP[nMethods] = {0.};
402 Double_t flowErrorRP[nMethods] = {0.};
403 Double_t flowValuePOI[nMethods] = {0.};
404 Double_t flowErrorPOI[nMethods] = {0.};
406 // accessing the results for integrated flow for each method:
407 // MCEP = Monte Carlo Event Plane
408 TList *pListMCEP = NULL;
409 AliFlowCommonHist *mcepCommonHist = NULL;
410 AliFlowCommonHistResults *mcepCommonHistRes = NULL;
412 fileMCEP->GetObject("cobjMCEP",pListMCEP);
414 mcepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListMCEP->FindObject("AliFlowCommonHistMCEP"));
415 mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListMCEP->FindObject("AliFlowCommonHistResultsMCEP"));
416 if(mcepCommonHistRes) {
417 flowValue[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
418 flowError[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1);
419 flowValueRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
420 flowErrorRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
421 flowValuePOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
422 flowErrorPOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
427 // SP = Scalar Product
428 TList *pListSP = NULL;
429 AliFlowCommonHist *spCommonHist = NULL;
430 AliFlowCommonHistResults *spCommonHistRes = NULL;
432 fileSP->GetObject("cobjSP",pListSP);
434 spCommonHist = dynamic_cast<AliFlowCommonHist*> (pListSP->FindObject("AliFlowCommonHistSP"));
435 spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListSP->FindObject("AliFlowCommonHistResultsSP"));
436 if(spCommonHistRes) {
437 flowValue[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1);
438 flowError[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinError(1);
439 flowValueRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
440 flowErrorRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
441 flowValuePOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
442 flowErrorPOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
447 // LYZ1SUM = Lee-Yang Zeros (1st run, sum) is used to get only 'no-name' integrated flow
448 TList *pListLYZ1SUM = NULL;
449 AliFlowCommonHist *lyz1sumCommonHist = NULL;
450 AliFlowCommonHistResults *lyz1sumCommonHistRes = NULL;
452 fileLYZ1SUM->GetObject("cobjLYZ1SUM",pListLYZ1SUM);
454 lyz1sumCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1SUM->FindObject("AliFlowCommonHistLYZ1SUM"));
455 lyz1sumCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1SUM->FindObject("AliFlowCommonHistResultsLYZ1SUM"));
456 if(lyz1sumCommonHistRes) {
457 flowValue[binLYZ1SUM-1] = (lyz1sumCommonHistRes->GetHistIntFlow())->GetBinContent(1);
458 flowError[binLYZ1SUM-1] = (lyz1sumCommonHistRes->GetHistIntFlow())->GetBinError(1);
463 // LYZ2SUM = Lee-Yang Zeros (2nd run, sum) is used to get RP's and POI's integrated flow
464 TList *pListLYZ2SUM = NULL;
465 AliFlowCommonHist *lyz2sumCommonHist = NULL;
466 AliFlowCommonHistResults *lyz2sumCommonHistRes = NULL;
468 fileLYZ2SUM->GetObject("cobjLYZ2SUM",pListLYZ2SUM);
470 lyz2sumCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2SUM->FindObject("AliFlowCommonHistLYZ2SUM"));
471 lyz2sumCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2SUM->FindObject("AliFlowCommonHistResultsLYZ2SUM"));
472 if(lyz2sumCommonHistRes) {
473 flowValueRP[binLYZ2SUMRP-1] = (lyz2sumCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
474 flowErrorRP[binLYZ2SUMRP-1] = (lyz2sumCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
475 flowValuePOI[binLYZ2SUMPOI-1] = (lyz2sumCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
476 flowErrorPOI[binLYZ2SUMPOI-1] = (lyz2sumCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
481 // LYZ1PROD = Lee-Yang Zeros (1st run, product) is used to get only 'no-name' integrated flow
482 TList *pListLYZ1PROD = NULL;
483 AliFlowCommonHist *lyz1prodCommonHist = NULL;
484 AliFlowCommonHistResults *lyz1prodCommonHistRes = NULL;
486 fileLYZ1PROD->GetObject("cobjLYZ1PROD",pListLYZ1PROD);
488 lyz1prodCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1PROD->FindObject("AliFlowCommonHistLYZ1PROD"));
489 lyz1prodCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1PROD->FindObject("AliFlowCommonHistResultsLYZ1PROD"));
490 if(lyz1prodCommonHistRes) {
491 flowValue[binLYZ1PROD-1] = (lyz1prodCommonHistRes->GetHistIntFlow())->GetBinContent(1);
492 flowError[binLYZ1PROD-1] = (lyz1prodCommonHistRes->GetHistIntFlow())->GetBinError(1);
497 // LYZ2PROD = Lee-Yang Zeros (2nd run, product) is used to get RP's and POI's integrated flow
498 TList *pListLYZ2PROD = NULL;
499 AliFlowCommonHist *lyz2prodCommonHist = NULL;
500 AliFlowCommonHistResults *lyz2prodCommonHistRes = NULL;
502 fileLYZ2PROD->GetObject("cobjLYZ2PROD",pListLYZ2PROD);
504 lyz2prodCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2PROD->FindObject("AliFlowCommonHistLYZ2PROD"));
505 lyz2prodCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2PROD->FindObject("AliFlowCommonHistResultsLYZ2PROD"));
506 if(lyz2prodCommonHistRes) {
507 flowValueRP[binLYZ2PRODRP-1] = (lyz2prodCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
508 flowErrorRP[binLYZ2PRODRP-1] = (lyz2prodCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
509 flowValuePOI[binLYZ2PRODPOI-1] = (lyz2prodCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
510 flowErrorPOI[binLYZ2PRODPOI-1] = (lyz2prodCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
515 // LYZEP = Lee-Yang Zeros Event Plane
516 TList *pListLYZEP = NULL;
517 AliFlowCommonHist *lyzepCommonHist = NULL;
518 AliFlowCommonHistResults *lyzepCommonHistRes = NULL;
520 fileLYZEP->GetObject("cobjLYZEP",pListLYZEP);
522 lyzepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZEP->FindObject("AliFlowCommonHistLYZEP"));
523 lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZEP->FindObject("AliFlowCommonHistResultsLYZEP"));
524 if(lyzepCommonHistRes) {
525 flowValue[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
526 flowError[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinError(1);
527 flowValueRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
528 flowErrorRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
529 flowValuePOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
530 flowErrorPOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
535 // FQD = Fitting q-distribution
536 TList *pListFQD = NULL;
537 AliFlowCommonHist *fqdCommonHist = NULL;
538 AliFlowCommonHistResults *fqdCommonHistRes = NULL;
540 fileFQD->GetObject("cobjFQD",pListFQD);
542 fqdCommonHist = dynamic_cast<AliFlowCommonHist*> (pListFQD->FindObject("AliFlowCommonHistFQD"));
543 fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListFQD->FindObject("AliFlowCommonHistResultsFQD"));
544 if(fqdCommonHistRes) {
545 flowValue[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1);
546 flowError[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1);
547 //flowValueRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
548 //flowErrorRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
549 //flowValuePOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
550 //flowErrorPOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
555 // GFC = Generating Function Cumulants
556 TList *pListGFC = NULL;
557 AliFlowCommonHist *gfcCommonHist = NULL;
558 AliFlowCommonHistResults *gfcCommonHistRes2 = NULL;
559 AliFlowCommonHistResults *gfcCommonHistRes4 = NULL;
560 AliFlowCommonHistResults *gfcCommonHistRes6 = NULL;
561 AliFlowCommonHistResults *gfcCommonHistRes8 = NULL;
563 fileGFC->GetObject("cobjGFC",pListGFC);
565 gfcCommonHist = dynamic_cast<AliFlowCommonHist*> (pListGFC->FindObject("AliFlowCommonHistGFC"));
566 gfcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC"));
567 if(gfcCommonHistRes2) {
568 flowValue[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
569 flowError[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
570 flowValueRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
571 flowErrorRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
572 flowValuePOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
573 flowErrorPOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
575 gfcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults4thOrderGFC"));
576 if(gfcCommonHistRes4) {
577 flowValue[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
578 flowError[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
579 flowValueRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
580 flowErrorRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
581 flowValuePOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
582 flowErrorPOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
584 gfcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults6thOrderGFC"));
585 if(gfcCommonHistRes6) {
586 flowValue[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
587 flowError[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
588 flowValueRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
589 flowErrorRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
590 flowValuePOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
591 flowErrorPOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
593 gfcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults8thOrderGFC"));
594 if(gfcCommonHistRes8) {
595 flowValue[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
596 flowError[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
597 flowValueRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
598 flowErrorRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
599 flowValuePOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
600 flowErrorPOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
606 TList *pListQC = NULL;
607 AliFlowCommonHist *qcCommonHist2 = NULL;
608 AliFlowCommonHist *qcCommonHist4 = NULL;
609 AliFlowCommonHist *qcCommonHist6 = NULL;
610 AliFlowCommonHist *qcCommonHist8 = NULL;
611 AliFlowCommonHistResults *qcCommonHistRes2 = NULL;
612 AliFlowCommonHistResults *qcCommonHistRes4 = NULL;
613 AliFlowCommonHistResults *qcCommonHistRes6 = NULL;
614 AliFlowCommonHistResults *qcCommonHistRes8 = NULL;
617 fileQC->GetObject("cobjQC",pListQC);
619 qcCommonHist2 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist2ndOrderQC"));
620 qcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults2ndOrderQC"));
621 if(qcCommonHistRes2) {
622 flowValue[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
623 flowError[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
624 flowValueRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
625 flowErrorRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
626 flowValuePOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
627 flowErrorPOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
629 qcCommonHist4 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist4thOrderQC"));
630 qcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults4thOrderQC"));
631 if(qcCommonHistRes4) {
632 flowValue[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
633 flowError[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
634 flowValueRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
635 flowErrorRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
636 flowValuePOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
637 flowErrorPOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
639 qcCommonHist6 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist6thOrderQC"));
640 qcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults6thOrderQC"));
641 if(qcCommonHistRes6) {
642 flowValue[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
643 flowError[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
644 flowValueRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
645 //flowErrorRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
646 flowValuePOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
647 //flowErrorPOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
649 qcCommonHist8 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist8thOrderQC"));
650 qcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults8thOrderQC"));
651 if(qcCommonHistRes8) {
652 flowValue[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
653 flowError[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
654 flowValueRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
655 //flowErrorRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
656 flowValuePOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
657 //flowErrorPOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
662 // ranges on y-axis for 'no-name' plot:
663 Double_t dMax=flowValue[binMC-1]+flowError[binMC-1];
664 Double_t dMin=flowValue[binMC-1]-flowError[binMC-1];
666 for(Int_t i=1;i<nMethods;i++) {
667 if(!(flowValue[i]==0. && flowError[i]==0.)) {
668 if(dMax<flowValue[i]+flowError[i]) dMax=flowValue[i]+flowError[i];
669 if(dMin>flowValue[i]-flowError[i]) dMin=flowValue[i]-flowError[i];
673 // ranges on y-axis for RP plot:
674 Double_t dMaxRP=flowValueRP[binMCRP-1]+flowErrorRP[binMCRP-1];
675 Double_t dMinRP=flowValueRP[binMCRP-1]-flowErrorRP[binMCRP-1];
677 for(Int_t i=1;i<nMethods;i++) {
678 if(!(flowValueRP[i]==0. && flowErrorRP[i]==0.)) {
679 if(dMaxRP<flowValueRP[i]+flowErrorRP[i]) dMaxRP=flowValueRP[i]+flowErrorRP[i];
680 if(dMinRP>flowValueRP[i]-flowErrorRP[i]) dMinRP=flowValueRP[i]-flowErrorRP[i];
684 // ranges on y-axis for POI plot:
685 Double_t dMaxPOI=flowValuePOI[binMCPOI-1]+flowErrorPOI[binMCPOI-1];
686 Double_t dMinPOI=flowValuePOI[binMCPOI-1]-flowErrorPOI[binMCPOI-1];
688 for(Int_t i=1;i<nMethods;i++) {
689 if(!(flowValuePOI[i]==0. && flowErrorPOI[i]==0.)) {
690 if(dMaxPOI<flowValuePOI[i]+flowErrorPOI[i]) dMaxPOI=flowValuePOI[i]+flowErrorPOI[i];
691 if(dMinPOI>flowValuePOI[i]-flowErrorPOI[i]) dMinPOI=flowValuePOI[i]-flowErrorPOI[i];
696 TGraph* flowResults = new TGraphErrors(nMethods, x, flowValue, xError, flowError);
697 flowResults->SetMarkerStyle(markerStyle);
698 flowResults->SetMarkerColor(markerColor);
701 TGraph* flowResultsRP = new TGraphErrors(nMethods, x, flowValueRP, xError, flowErrorRP);
702 flowResultsRP->SetMarkerStyle(markerStyleRP);
703 flowResultsRP->SetMarkerColor(markerColorRP);
706 TGraph* flowResultsPOI = new TGraphErrors(nMethods, x, flowValuePOI, xError, flowErrorPOI);
707 flowResultsPOI->SetMarkerStyle(markerStylePOI);
708 flowResultsPOI->SetMarkerColor(markerColorPOI);
710 // for plot |v{MC}-v{method}/v{MC}|
711 // no-name, RP and POI
712 Double_t flowRelativeToMC[nMethods] = {0.};
713 Double_t flowRelativeToMCError[nMethods] = {0.};
714 Double_t flowRelativeToMCRP[nMethods] = {0.};
715 Double_t flowRelativeToMCErrorRP[nMethods] = {0.};
716 Double_t flowRelativeToMCPOI[nMethods] = {0.};
717 Double_t flowRelativeToMCErrorPOI[nMethods] = {0.};
718 flowRelativeToMC[0] = 0.; // MC relative to itself (to be improved)
719 flowRelativeToMCRP[0] = 0.; // MC relative to itself (to be improved)
720 flowRelativeToMCPOI[0] = 0.; // MC relative to itself (to be improved)
721 for(Int_t i=1;i<nMethods;i++)
723 if(flowValue[0] != 0)
725 if(flowValue[i] != 0) flowRelativeToMC[i] = (flowValue[i]-flowValue[0])/(flowValue[0]);
726 if(flowError[i] != 0) flowRelativeToMCError[i] = flowError[i]/flowValue[0];
728 if(flowValueRP[0] != 0)
730 if(flowValueRP[i] != 0) flowRelativeToMCRP[i] = (flowValueRP[i]-flowValueRP[0])/(flowValueRP[0]);
731 if(flowErrorRP[i] != 0) flowRelativeToMCErrorRP[i] = flowErrorRP[i]/flowValueRP[0];
733 if(flowValuePOI[0] != 0)
735 if(flowValuePOI[i] != 0) flowRelativeToMCPOI[i] = (flowValuePOI[i]-flowValuePOI[0])/(flowValuePOI[0]);
736 if(flowErrorPOI[i] != 0) flowRelativeToMCErrorPOI[i] = flowErrorPOI[i]/flowValuePOI[0];
738 } // for(Int_t i=1;i<nMethods;i++)
740 // integrated flow (no-name) relative to MC:
741 TGraph* flowResultsRelativeToMC = new TGraphErrors(nMethods, x, flowRelativeToMC, xError, flowRelativeToMCError);
742 flowResultsRelativeToMC->SetMarkerStyle(markerStyle);
743 flowResultsRelativeToMC->SetMarkerColor(markerColor);
745 // integrated flow (RP) relative to MC:
746 TGraph* flowResultsRelativeToMCRP = new TGraphErrors(nMethods, x, flowRelativeToMCRP, xError, flowRelativeToMCErrorRP);
747 flowResultsRelativeToMCRP->SetMarkerStyle(markerStyleRP);
748 flowResultsRelativeToMCRP->SetMarkerColor(markerColorRP);
750 // integrated flow (POI) relative to MC:
751 TGraph* flowResultsRelativeToMCPOI = new TGraphErrors(nMethods, x, flowRelativeToMCPOI, xError, flowRelativeToMCErrorPOI);
752 flowResultsRelativeToMCPOI->SetMarkerStyle(markerStylePOI);
753 flowResultsRelativeToMCPOI->SetMarkerColor(markerColorPOI);
754 //-----------------------------------------------------------------------------------
756 //----------------------------------------------------------------------------------
757 // cosmetics: mesh for MC error bands (integrated flow)
758 TGraph* pMesh = NULL;
759 TGraph* pMeshRP = NULL;
760 TGraph* pMeshPOI = NULL;
762 if(intFlowAll && mcepCommonHistRes) {
763 Int_t nPts = nMethods;
764 Double_t valueMC = flowValue[binMC-1];
765 Double_t errorMC = flowError[binMC-1];
766 Double_t valueMCRP = flowValueRP[binMCRP-1];
767 Double_t errorMCRP = flowErrorRP[binMCRP-1];
768 Double_t valueMCPOI = flowValuePOI[binMCPOI-1];
769 Double_t errorMCPOI = flowErrorPOI[binMCPOI-1];
771 pMesh = new TGraph(nPts);
772 pMeshRP = new TGraph(nPts);
773 pMeshPOI = new TGraph(nPts);
776 pMesh->SetPoint(1,0,valueMC+errorMC);
777 pMesh->SetPoint(2,nPts+1,valueMC+errorMC);
778 pMesh->SetPoint(3,nPts+1,valueMC-errorMC);
779 pMesh->SetPoint(4,0,valueMC-errorMC);
780 pMesh->SetPoint(5,0,valueMC+errorMC);
781 pMesh->SetFillStyle(meshStyle);
782 pMesh->SetFillColor(meshColor);
785 pMeshRP->SetPoint(1,0,valueMCRP+errorMCRP);
786 pMeshRP->SetPoint(2,nPts+1,valueMCRP+errorMCRP);
787 pMeshRP->SetPoint(3,nPts+1,valueMCRP-errorMCRP);
788 pMeshRP->SetPoint(4,0,valueMCRP-errorMCRP);
789 pMeshRP->SetPoint(5,0,valueMCRP+errorMCRP);
790 pMeshRP->SetFillStyle(meshStyleRP);
791 pMeshRP->SetFillColor(meshColorRP);
794 pMeshPOI->SetPoint(1,0,valueMCPOI+errorMCPOI);
795 pMeshPOI->SetPoint(2,nPts+1,valueMCPOI+errorMCPOI);
796 pMeshPOI->SetPoint(3,nPts+1,valueMCPOI-errorMCPOI);
797 pMeshPOI->SetPoint(4,0,valueMCPOI-errorMCPOI);
798 pMeshPOI->SetPoint(5,0,valueMCPOI+errorMCPOI);
799 pMeshPOI->SetFillStyle(meshStylePOI);
800 pMeshPOI->SetFillColor(meshColorPOI);
802 //----------------------------------------------------------------------------------
805 //----------------------------------------------------------------------------------
806 //cosmetics: text (integrated flow)
808 TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC");
809 textDefault->SetTextFont(72);
810 textDefault->SetTextSize(0.08);
812 TString *entryDefaultAvM = new TString("Average Multiplicity");
813 TString *entryDefaultAnd = new TString("and");
814 TString *entryDefaultNumOfEvts = new TString("Number of Events:");
816 textDefault->AddText(entryDefaultAvM->Data());
817 textDefault->AddText(entryDefaultAnd->Data());
818 textDefault->AddText(entryDefaultNumOfEvts->Data());
820 // results (no-name):
821 TPaveText *textResults = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
822 textResults->SetTextFont(72);
823 textResults->SetTextSize(0.06);
826 TPaveText *textResultsRP = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
827 textResultsRP->SetTextFont(72);
828 textResultsRP->SetTextSize(0.06);
831 TPaveText *textResultsPOI = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
832 textResultsPOI->SetTextFont(72);
833 textResultsPOI->SetTextSize(0.06);
836 TString *entryMC = new TString("MC ........ ");
837 TString *entrySP = new TString("SP ........ ");
838 TString *entryGFC = new TString("GFC ....... ");
839 TString *entryQC2 = new TString("QC{2} ..... ");
840 TString *entryQC4 = new TString("QC{4} ..... ");
841 TString *entryQC6 = new TString("QC{6} ..... ");
842 TString *entryQC8 = new TString("QC{8} ..... ");
843 TString *entryFQD = new TString("FQD ....... ");
844 TString *entryLYZ1SUM = new TString("LYZ{sum} .. ");
845 TString *entryLYZ1PROD = new TString("LYZ{prod} . ");
846 TString *entryLYZEP = new TString("LYZEP ..... ");
849 TString *entryMCRP = new TString("MC ........ ");
850 TString *entrySPRP = new TString("SP ........ ");
851 TString *entryGFCRP = new TString("GFC ....... ");
852 TString *entryQC2RP = new TString("QC{2} ..... ");
853 TString *entryQC4RP = new TString("QC{4} ..... ");
854 TString *entryQC6RP = new TString("QC{6} ..... ");
855 TString *entryQC8RP = new TString("QC{8} ..... ");
856 TString *entryFQDRP = new TString("FQD ....... ");
857 TString *entryLYZ1SUMRP = new TString("LYZ{sum} .. ");
858 TString *entryLYZ1PRODRP = new TString("LYZ{prod} . ");
859 TString *entryLYZEPRP = new TString("LYZEP ..... ");
862 TString *entryMCPOI = new TString("MC ........ ");
863 TString *entrySPPOI = new TString("SP ........ ");
864 TString *entryGFCPOI = new TString("GFC ....... ");
865 TString *entryQC2POI = new TString("QC{2} ..... ");
866 TString *entryQC4POI = new TString("QC{4} ..... ");
867 TString *entryQC6POI = new TString("QC{6} ..... ");
868 TString *entryQC8POI = new TString("QC{8} ..... ");
869 TString *entryFQDPOI = new TString("FQD ....... ");
870 TString *entryLYZ1SUMPOI = new TString("LYZ{sum} .. ");
871 TString *entryLYZ1PRODPOI = new TString("LYZ{prod} . ");
872 TString *entryLYZEPPOI = new TString("LYZEP ..... ");
875 Double_t avMultMC=0.;
877 Double_t avMultSP=0.;
879 Double_t avMultGFC=0.;
881 Double_t avMultQC2=0., avMultQC4=0., avMultQC6=0., avMultQC8=0.;
882 Long_t nEvtsQC2=0, nEvtsQC4=0, nEvtsQC6=0, nEvtsQC8=0;
883 Double_t avMultFQD=0.;
885 Double_t avMultLYZ1SUM=0.;
886 Long_t nEvtsLYZ1SUM=0;
887 Double_t avMultLYZ1PROD=0.;
888 Long_t nEvtsLYZ1PROD=0;
889 Double_t avMultLYZEP=0.;
893 Double_t avMultMCRP=0.;
895 Double_t avMultSPRP=0.;
897 Double_t avMultGFCRP=0.;
899 Double_t avMultQC2RP=0., avMultQC4RP=0., avMultQC6RP=0., avMultQC8RP=0.;
900 Long_t nEvtsQC2RP=0, nEvtsQC4RP=0, nEvtsQC6RP=0, nEvtsQC8RP=0;
901 Double_t avMultFQDRP=0.;
903 Double_t avMultLYZ1SUMRP=0.;
904 Long_t nEvtsLYZ1SUMRP=0;
905 Double_t avMultLYZ1PRODRP=0.;
906 Long_t nEvtsLYZ1PRODRP=0;
907 Double_t avMultLYZEPRP=0.;
908 Long_t nEvtsLYZEPRP=0;
911 Double_t avMultMCPOI=0.;
913 Double_t avMultSPPOI=0.;
915 Double_t avMultGFCPOI=0.;
916 Long_t nEvtsGFCPOI=0;
917 Double_t avMultQC2POI=0., avMultQC4POI=0., avMultQC6POI=0., avMultQC8POI=0.;
918 Long_t nEvtsQC2POI=0, nEvtsQC4POI=0, nEvtsQC6POI=0, nEvtsQC8POI=0;
919 Double_t avMultFQDPOI=0.;
920 Long_t nEvtsFQDPOI=0;
921 Double_t avMultLYZ1SUMPOI=0.;
922 Long_t nEvtsLYZ1SUMPOI=0;
923 Double_t avMultLYZ1PRODPOI=0.;
924 Long_t nEvtsLYZ1PRODPOI=0;
925 Double_t avMultLYZEPPOI=0.;
926 Long_t nEvtsLYZEPPOI=0;
930 avMultMC = (mcepCommonHist->GetHistMultRP())->GetMean();
931 nEvtsMC = (mcepCommonHist->GetHistMultRP())->GetEntries();
932 avMultMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
933 nEvtsMCRP = (mcepCommonHist->GetHistMultRP())->GetEntries();
934 avMultMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
935 nEvtsMCPOI = (mcepCommonHist->GetHistMultPOI())->GetEntries();
939 entryMC->Append("M = ");
940 (*entryMC)+=(Long_t)avMultMC;
941 entryMC->Append(", N = ");
942 (*entryMC)+=(Long_t)nEvtsMC;
946 entryMCRP->Append("M = ");
947 (*entryMCRP)+=(Long_t)avMultMCRP;
948 entryMCRP->Append(", N = ");
949 (*entryMCRP)+=(Long_t)nEvtsMCRP;
953 entryMCPOI->Append("M = ");
954 (*entryMCPOI)+=(Long_t)avMultMCPOI;
955 entryMCPOI->Append(", N = ");
956 (*entryMCPOI)+=(Long_t)nEvtsMCPOI;
961 avMultSP = (spCommonHist->GetHistMultRP())->GetMean();
962 nEvtsSP = (spCommonHist->GetHistMultRP())->GetEntries();
963 avMultSPRP = (spCommonHist->GetHistMultRP())->GetMean();
964 nEvtsSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
965 avMultSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
966 nEvtsSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();
970 entrySP->Append("M = ");
971 (*entrySP)+=(Long_t)avMultSP;
972 entrySP->Append(", N = ");
973 (*entrySP)+=(Long_t)nEvtsSP;
977 entrySPRP->Append("M = ");
978 (*entrySPRP)+=(Long_t)avMultSPRP;
979 entrySPRP->Append(", N = ");
980 (*entrySPRP)+=(Long_t)nEvtsSPRP;
984 entrySPPOI->Append("M = ");
985 (*entrySPPOI)+=(Long_t)avMultSPPOI;
986 entrySPPOI->Append(", N = ");
987 (*entrySPPOI)+=(Long_t)nEvtsSPPOI;
992 avMultGFC = (gfcCommonHist->GetHistMultRP())->GetMean();
993 nEvtsGFC = (gfcCommonHist->GetHistMultRP())->GetEntries();
994 avMultGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();
995 nEvtsGFCRP = (gfcCommonHist->GetHistMultRP())->GetEntries();
996 avMultGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
997 nEvtsGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetEntries();
1001 entryGFC->Append("M = ");
1002 (*entryGFC)+=(Long_t)avMultGFC;
1003 entryGFC->Append(", N = ");
1004 (*entryGFC)+=(Long_t)nEvtsGFC;
1008 entryGFCRP->Append("M = ");
1009 (*entryGFCRP)+=(Long_t)avMultGFCRP;
1010 entryGFCRP->Append(", N = ");
1011 (*entryGFCRP)+=(Long_t)nEvtsGFCRP;
1014 entryGFCPOI->Append("M = ");
1015 (*entryGFCPOI)+=(Long_t)avMultGFCPOI;
1016 entryGFCPOI->Append(", N = ");
1017 (*entryGFCPOI)+=(Long_t)nEvtsGFCPOI;
1022 avMultQC2 = (qcCommonHist2->GetHistMultRP())->GetMean();
1023 nEvtsQC2 = (qcCommonHist2->GetHistMultRP())->GetEntries();
1024 avMultQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
1025 nEvtsQC2RP = (qcCommonHist2->GetHistMultRP())->GetEntries();
1026 avMultQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
1027 nEvtsQC2POI = (qcCommonHist2->GetHistMultPOI())->GetEntries();
1032 entryQC2->Append("M = ");
1033 (*entryQC2)+=(Long_t)avMultQC2;
1034 entryQC2->Append(", N = ");
1035 (*entryQC2)+=(Long_t)nEvtsQC2;
1040 entryQC2RP->Append("M = ");
1041 (*entryQC2RP)+=(Long_t)avMultQC2RP;
1042 entryQC2RP->Append(", N = ");
1043 (*entryQC2RP)+=(Long_t)nEvtsQC2RP;
1048 entryQC2POI->Append("M = ");
1049 (*entryQC2POI)+=(Long_t)avMultQC2POI;
1050 entryQC2POI->Append(", N = ");
1051 (*entryQC2POI)+=(Long_t)nEvtsQC2POI;
1056 avMultQC4 = (qcCommonHist4->GetHistMultRP())->GetMean();
1057 nEvtsQC4 = (qcCommonHist4->GetHistMultRP())->GetEntries();
1058 avMultQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
1059 nEvtsQC4RP = (qcCommonHist4->GetHistMultRP())->GetEntries();
1060 avMultQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
1061 nEvtsQC4POI = (qcCommonHist4->GetHistMultPOI())->GetEntries();
1066 entryQC4->Append("M = ");
1067 (*entryQC4)+=(Long_t)avMultQC4;
1068 entryQC4->Append(", N = ");
1069 (*entryQC4)+=(Long_t)nEvtsQC4;
1074 entryQC4RP->Append("M = ");
1075 (*entryQC4RP)+=(Long_t)avMultQC4RP;
1076 entryQC4RP->Append(", N = ");
1077 (*entryQC4RP)+=(Long_t)nEvtsQC4RP;
1082 entryQC4POI->Append("M = ");
1083 (*entryQC4POI)+=(Long_t)avMultQC4POI;
1084 entryQC4POI->Append(", N = ");
1085 (*entryQC4POI)+=(Long_t)nEvtsQC4POI;
1090 avMultQC6 = (qcCommonHist6->GetHistMultRP())->GetMean();
1091 nEvtsQC6 = (qcCommonHist6->GetHistMultRP())->GetEntries();
1092 avMultQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
1093 nEvtsQC6RP = (qcCommonHist6->GetHistMultRP())->GetEntries();
1094 avMultQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
1095 nEvtsQC6POI = (qcCommonHist6->GetHistMultPOI())->GetEntries();
1100 entryQC6->Append("M = ");
1101 (*entryQC6)+=(Long_t)avMultQC6;
1102 entryQC6->Append(", N = ");
1103 (*entryQC6)+=(Long_t)nEvtsQC6;
1108 entryQC6RP->Append("M = ");
1109 (*entryQC6RP)+=(Long_t)avMultQC6RP;
1110 entryQC6RP->Append(", N = ");
1111 (*entryQC6RP)+=(Long_t)nEvtsQC6RP;
1116 entryQC6POI->Append("M = ");
1117 (*entryQC6POI)+=(Long_t)avMultQC6POI;
1118 entryQC6POI->Append(", N = ");
1119 (*entryQC6POI)+=(Long_t)nEvtsQC6POI;
1124 avMultQC8 = (qcCommonHist8->GetHistMultRP())->GetMean();
1125 nEvtsQC8 = (qcCommonHist8->GetHistMultRP())->GetEntries();
1126 avMultQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
1127 nEvtsQC8RP = (qcCommonHist8->GetHistMultRP())->GetEntries();
1128 avMultQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
1129 nEvtsQC8POI = (qcCommonHist8->GetHistMultPOI())->GetEntries();
1134 entryQC8->Append("M = ");
1135 (*entryQC8)+=(Long_t)avMultQC8;
1136 entryQC8->Append(", N = ");
1137 (*entryQC8)+=(Long_t)nEvtsQC8;
1142 entryQC8RP->Append("M = ");
1143 (*entryQC8RP)+=(Long_t)avMultQC8RP;
1144 entryQC8RP->Append(", N = ");
1145 (*entryQC8RP)+=(Long_t)nEvtsQC8RP;
1150 entryQC8POI->Append("M = ");
1151 (*entryQC8POI)+=(Long_t)avMultQC8POI;
1152 entryQC8POI->Append(", N = ");
1153 (*entryQC8POI)+=(Long_t)nEvtsQC8POI;
1159 avMultFQD = (fqdCommonHist->GetHistMultRP())->GetMean();
1160 nEvtsFQD = (fqdCommonHist->GetHistMultRP())->GetEntries();
1161 avMultFQDRP = (fqdCommonHist->GetHistMultRP())->GetMean();
1162 nEvtsFQDRP = (fqdCommonHist->GetHistMultRP())->GetEntries();
1163 avMultFQDPOI = (fqdCommonHist->GetHistMultPOI())->GetMean();
1164 nEvtsFQDPOI = (fqdCommonHist->GetHistMultPOI())->GetEntries();
1169 entryFQD->Append("M = ");
1170 (*entryFQD)+=(Long_t)avMultFQD;
1171 entryFQD->Append(", N = ");
1172 (*entryFQD)+=(Long_t)nEvtsFQD;
1177 entryFQDRP->Append("M = ");
1178 (*entryFQDRP)+=(Long_t)avMultFQDRP;
1179 entryFQDRP->Append(", N = ");
1180 (*entryFQDRP)+=(Long_t)nEvtsFQDRP;
1185 entryFQDPOI->Append("M = ");
1186 (*entryFQDPOI)+=(Long_t)avMultFQDPOI;
1187 entryFQDPOI->Append(", N = ");
1188 (*entryFQDPOI)+=(Long_t)nEvtsFQDPOI;
1192 if(lyz1sumCommonHist)
1194 avMultLYZ1SUM = (lyz1sumCommonHist->GetHistMultRP())->GetMean();
1195 nEvtsLYZ1SUM = (lyz1sumCommonHist->GetHistMultRP())->GetEntries();
1196 avMultLYZ1SUMRP = (lyz1sumCommonHist->GetHistMultRP())->GetMean();
1197 nEvtsLYZ1SUMRP = (lyz1sumCommonHist->GetHistMultRP())->GetEntries();
1198 avMultLYZ1SUMPOI = (lyz1sumCommonHist->GetHistMultPOI())->GetMean();
1199 nEvtsLYZ1SUMPOI = (lyz1sumCommonHist->GetHistMultPOI())->GetEntries();
1204 entryLYZ1SUM->Append("M = ");
1205 (*entryLYZ1SUM)+=(Long_t)avMultLYZ1SUM;
1206 entryLYZ1SUM->Append(", N = ");
1207 (*entryLYZ1SUM)+=(Long_t)nEvtsLYZ1SUM;
1212 entryLYZ1SUMRP->Append("M = ");
1213 (*entryLYZ1SUMRP)+=(Long_t)avMultLYZ1SUMRP;
1214 entryLYZ1SUMRP->Append(", N = ");
1215 (*entryLYZ1SUMRP)+=(Long_t)nEvtsLYZ1SUMRP;
1220 entryLYZ1SUMPOI->Append("M = ");
1221 (*entryLYZ1SUMPOI)+=(Long_t)avMultLYZ1SUMPOI;
1222 entryLYZ1SUMPOI->Append(", N = ");
1223 (*entryLYZ1SUMPOI)+=(Long_t)nEvtsLYZ1SUMPOI;
1227 if(lyz1prodCommonHist)
1229 avMultLYZ1PROD = (lyz1prodCommonHist->GetHistMultRP())->GetMean();
1230 nEvtsLYZ1PROD = (lyz1prodCommonHist->GetHistMultRP())->GetEntries();
1231 avMultLYZ1PRODRP = (lyz1prodCommonHist->GetHistMultRP())->GetMean();
1232 nEvtsLYZ1PRODRP = (lyz1prodCommonHist->GetHistMultRP())->GetEntries();
1233 avMultLYZ1PRODPOI = (lyz1prodCommonHist->GetHistMultPOI())->GetMean();
1234 nEvtsLYZ1PRODPOI = (lyz1prodCommonHist->GetHistMultPOI())->GetEntries();
1239 entryLYZ1PROD->Append("M = ");
1240 (*entryLYZ1PROD)+=(Long_t)avMultLYZ1PROD;
1241 entryLYZ1PROD->Append(", N = ");
1242 (*entryLYZ1PROD)+=(Long_t)nEvtsLYZ1PROD;
1247 entryLYZ1PRODRP->Append("M = ");
1248 (*entryLYZ1PRODRP)+=(Long_t)avMultLYZ1PRODRP;
1249 entryLYZ1PRODRP->Append(", N = ");
1250 (*entryLYZ1PRODRP)+=(Long_t)nEvtsLYZ1PRODRP;
1253 if(entryLYZ1PRODPOI)
1255 entryLYZ1PRODPOI->Append("M = ");
1256 (*entryLYZ1PRODPOI)+=(Long_t)avMultLYZ1PRODPOI;
1257 entryLYZ1PRODPOI->Append(", N = ");
1258 (*entryLYZ1PRODPOI)+=(Long_t)nEvtsLYZ1PRODPOI;
1264 avMultLYZEP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1265 nEvtsLYZEP = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1266 avMultLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1267 nEvtsLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1268 avMultLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
1269 nEvtsLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
1275 entryLYZEP->Append("M = ");
1276 (*entryLYZEP)+=(Long_t)avMultLYZEP;
1277 entryLYZEP->Append(", N = ");
1278 (*entryLYZEP)+=(Long_t)nEvtsLYZEP;
1283 entryLYZEPRP->Append("M = ");
1284 (*entryLYZEPRP)+=(Long_t)avMultLYZEPRP;
1285 entryLYZEPRP->Append(", N = ");
1286 (*entryLYZEPRP)+=(Long_t)nEvtsLYZEPRP;
1291 entryLYZEPPOI->Append("M = ");
1292 (*entryLYZEPPOI)+=(Long_t)avMultLYZEPPOI;
1293 entryLYZEPPOI->Append(", N = ");
1294 (*entryLYZEPPOI)+=(Long_t)nEvtsLYZEPPOI;
1300 textResults->AddText(entryMC->Data());
1301 textResults->AddText(entrySP->Data());
1302 textResults->AddText(entryGFC->Data());
1303 textResults->AddText(entryQC2->Data());
1304 textResults->AddText(entryQC4->Data());
1305 textResults->AddText(entryQC6->Data());
1306 textResults->AddText(entryQC8->Data());
1307 textResults->AddText(entryFQD->Data());
1308 textResults->AddText(entryLYZ1SUM->Data());
1309 textResults->AddText(entryLYZ1PROD->Data());
1310 textResults->AddText(entryLYZEP->Data());
1316 textResultsRP->AddText(entryMCRP->Data());
1317 textResultsRP->AddText(entrySPRP->Data());
1318 textResultsRP->AddText(entryGFCRP->Data());
1319 textResultsRP->AddText(entryQC2RP->Data());
1320 textResultsRP->AddText(entryQC4RP->Data());
1321 textResultsRP->AddText(entryQC6RP->Data());
1322 textResultsRP->AddText(entryQC8RP->Data());
1323 textResultsRP->AddText(entryFQDRP->Data());
1324 textResultsRP->AddText(entryLYZ1SUMRP->Data());
1325 textResultsRP->AddText(entryLYZ1PRODRP->Data());
1326 textResultsRP->AddText(entryLYZEPRP->Data());
1332 textResultsPOI->AddText(entryMCPOI->Data());
1333 textResultsPOI->AddText(entrySPPOI->Data());
1334 textResultsPOI->AddText(entryGFCPOI->Data());
1335 textResultsPOI->AddText(entryQC2POI->Data());
1336 textResultsPOI->AddText(entryQC4POI->Data());
1337 textResultsPOI->AddText(entryQC6POI->Data());
1338 textResultsPOI->AddText(entryQC8POI->Data());
1339 textResultsPOI->AddText(entryFQDPOI->Data());
1340 textResultsPOI->AddText(entryLYZ1SUMPOI->Data());
1341 textResultsPOI->AddText(entryLYZ1PRODPOI->Data());
1342 textResultsPOI->AddText(entryLYZEPPOI->Data());
1344 //----------------------------------------------------------------------------------
1347 //----------------------------------------------------------------------------------
1348 // final drawing for integrated flow (no-name):
1351 TCanvas* intFlowAllCanvas = new TCanvas("Integrated Flow","Integrated Flow",1000,600);
1353 if(plotLegendIntFlow)
1355 intFlowAllCanvas->Divide(2,1);
1356 // 1st pad is for plot:
1357 (intFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1362 if(dMin>0. && dMax>0.)
1364 (intFlowAll->GetYaxis())->SetRangeUser(0.9744*dMin,1.0144*dMax);
1365 } else if(dMin<0. && dMax>0.)
1367 if(!(-1.*dMin<4.*dMax))
1369 (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,1.0144*dMax);
1370 } else {(intFlowAll->GetYaxis())->SetRangeUser(1.1266*dMin,1.0144*dMax);}
1371 } else if(dMin<0. && dMax<0.)
1373 (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,0.9866*dMax);
1375 intFlowAll->Draw("E1");
1378 if(pMesh) pMesh->Draw("LFSAME");
1380 if(flowResults) flowResults->Draw("PSAME");
1382 // 2nd pad is for legend:
1383 if(plotLegendIntFlow)
1385 (intFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1387 if(textDefault) textDefault->Draw();
1389 if(textResults) textResults->Draw();
1392 }// end of if(plotIntFlow)
1393 //----------------------------------------------------------------------------------
1396 //----------------------------------------------------------------------------------
1397 // final drawing for integrated flow relative to MC (no-name):
1398 if(plotIntFlowRelativeToMC)
1400 TCanvas* intFlowAllRelativeToMCCanvas = new TCanvas("Integrated Flow Relative To MC","Integrated Flow Relative To MC",1000,600);
1402 intFlowAllRelativeToMCCanvas->Divide(2,1);
1404 // 1st pad is for plot:
1405 (intFlowAllRelativeToMCCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1407 TH1D *intFlowAllRelativeToMC = new TH1D(*intFlowAll);
1408 (intFlowAllRelativeToMC->GetYaxis())->SetRangeUser(-1,1);
1409 (intFlowAllRelativeToMC->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1410 intFlowAllRelativeToMC->Draw("E1");
1412 if(flowResultsRelativeToMC) flowResultsRelativeToMC->Draw("PSAME");
1414 // 2nd pad is for legend:
1415 (intFlowAllRelativeToMCCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1417 if(textDefault) textDefault->Draw();
1419 if(textResults) textResults->Draw();
1421 }// end of if(plotIntFlowRelativeToMC)
1422 //----------------------------------------------------------------------------------
1425 //----------------------------------------------------------------------------------
1426 //final drawing for integrated flow of RP (i.e. of particles used to determine the reaction plane):
1429 TCanvas* intFlowAllCanvasRP = new TCanvas("Integrated Flow RP","Integrated Flow RP",1000,600);
1431 if(plotLegendIntFlow)
1433 intFlowAllCanvasRP->Divide(2,1);
1435 //1st pad is for plot:
1436 (intFlowAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1439 TH1D *intFlowAllRP = new TH1D(*intFlowAll);
1440 intFlowAllRP->SetMarkerStyle(markerStyleRP);
1441 intFlowAllRP->SetMarkerColor(markerColorRP);
1442 (intFlowAllRP->GetXaxis())->SetBinLabel(binMCRP,"v_{2}{MC}");
1443 (intFlowAllRP->GetXaxis())->SetBinLabel(binSPRP,"v_{2}{SP}");
1444 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC2RP,"v_{2}{2,GFC}");
1445 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC2RP,"v_{2}{2,QC}");
1446 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC4RP,"v_{2}{4,GFC}");
1447 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC4RP,"v_{2}{4,QC}");
1448 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC6RP,"v_{2}{6,GFC}");
1449 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC6RP,"v_{2}{6,QC}");
1450 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC8RP,"v_{2}{8,GFC}");
1451 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC8RP,"v_{2}{8,QC}");
1452 (intFlowAllRP->GetXaxis())->SetBinLabel(binFQDRP,"v_{2}{FQD}");
1453 (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2SUMRP,"v_{2}{LYZ,sum}");
1454 (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2PRODRP,"v_{2}{LYZ,prod}");
1455 (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZEPRP,"v_{2}{LYZEP}");
1459 if(dMinRP>0. && dMaxRP>0.)
1461 (intFlowAllRP->GetYaxis())->SetRangeUser(0.9744*dMinRP,1.0144*dMaxRP);
1462 } else if(dMinRP<0. && dMaxRP>0.)
1464 if(!(-1.*dMinRP<4.*dMaxRP))
1466 (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,1.0144*dMaxRP);
1467 } else {(intFlowAllRP->GetYaxis())->SetRangeUser(1.1266*dMinRP,1.0144*dMaxRP);}
1468 } else if(dMinRP<0. && dMaxRP<0.)
1470 (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,0.9866*dMaxRP);
1472 intFlowAllRP->Draw("E1");
1475 if(pMeshRP) pMeshRP->Draw("LFSAME");
1477 if(flowResultsRP) flowResultsRP->Draw("PSAME");
1479 if(plotLegendIntFlow)
1481 //2nd pad is for legend:
1482 (intFlowAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1484 if(textDefault) textDefault->Draw();
1486 if(textResultsRP) textResultsRP->Draw();
1489 }//end of if(plotIntFlowRP}
1490 //----------------------------------------------------------------------------------
1493 //----------------------------------------------------------------------------------
1494 // final drawing for integrated flow relative to MC (RP):
1495 if(plotIntFlowRelativeToMCRP)
1497 TCanvas* intFlowAllRelativeToMCRPCanvas = new TCanvas("Integrated Flow (RP) Relative To MC","Integrated Flow (RP) Relative To MC",1000,600);
1499 intFlowAllRelativeToMCRPCanvas->Divide(2,1);
1501 // 1st pad is for plot:
1502 (intFlowAllRelativeToMCRPCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1504 TH1D *intFlowAllRelativeToMCRP = new TH1D(*intFlowAll);
1505 (intFlowAllRelativeToMCRP->GetYaxis())->SetRangeUser(-1,1);
1506 (intFlowAllRelativeToMCRP->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1507 intFlowAllRelativeToMCRP->Draw("E1");
1509 if(flowResultsRelativeToMCRP) flowResultsRelativeToMCRP->Draw("PSAME");
1511 // 2nd pad is for legend:
1512 (intFlowAllRelativeToMCRPCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1514 if(textDefault) textDefault->Draw();
1516 if(textResultsRP) textResultsRP->Draw();
1518 }// end of if(plotIntFlowRelativeToMCRP)
1519 //----------------------------------------------------------------------------------
1522 //----------------------------------------------------------------------------------
1523 //final drawing for integrated flow of POI (i.e. of particles of interest):
1526 TCanvas* intFlowAllCanvasPOI = new TCanvas("Integrated Flow POI","Integrated Flow POI",1000,600);
1528 if(plotLegendIntFlow)
1530 intFlowAllCanvasPOI->Divide(2,1);
1532 //1st pad is for plot:
1533 (intFlowAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1536 TH1D *intFlowAllPOI = new TH1D(*intFlowAll);
1537 intFlowAllPOI->SetMarkerStyle(markerStylePOI);
1538 intFlowAllPOI->SetMarkerColor(markerColorPOI);
1539 (intFlowAllPOI->GetXaxis())->SetBinLabel(binMCPOI,"v_{2}{MC}");
1540 (intFlowAllPOI->GetXaxis())->SetBinLabel(binSPPOI,"v_{2}{SP}");
1541 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC2POI,"v_{2}{2,GFC}");
1542 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC2POI,"v_{2}{2,QC}");
1543 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC4POI,"v_{2}{4,GFC}");
1544 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC4POI,"v_{2}{4,QC}");
1545 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC6POI,"v_{2}{6,GFC}");
1546 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC6POI,"v_{2}{6,QC}");
1547 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC8POI,"v_{2}{8,GFC}");
1548 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC8POI,"v_{2}{8,QC}");
1549 (intFlowAllPOI->GetXaxis())->SetBinLabel(binFQDPOI,"v_{2}{FQD}");
1550 (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2SUMPOI,"v_{2}{LYZ,sum}");
1551 (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2PRODPOI,"v_{2}{LYZ,prod}");
1552 (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZEPPOI,"v_{2}{LYZEP}");
1556 if(dMinPOI>0. && dMaxPOI>0.)
1558 (intFlowAllPOI->GetYaxis())->SetRangeUser(0.9744*dMinPOI,1.0144*dMaxPOI);
1559 } else if(dMinPOI<0. && dMaxPOI>0.)
1561 if(!(-1.*dMinPOI<4.*dMaxPOI))
1563 (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,1.0144*dMaxPOI);
1564 } else {(intFlowAllPOI->GetYaxis())->SetRangeUser(1.1266*dMinPOI,1.0144*dMaxPOI);}
1565 } else if(dMinPOI<0. && dMaxPOI<0.)
1567 (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,0.9866*dMaxPOI);
1569 intFlowAllPOI->Draw("E1");
1572 if(pMeshPOI) pMeshPOI->Draw("LFSAME");
1574 if(flowResultsPOI) flowResultsPOI->Draw("PSAME");
1576 if(plotLegendIntFlow)
1578 //2nd pad is for legend:
1579 (intFlowAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1581 if(textDefault) textDefault->Draw();
1583 if(textResultsPOI) textResultsPOI->Draw();
1586 }// end of if(plotIntFlowPOI)
1587 //----------------------------------------------------------------------------------
1590 //----------------------------------------------------------------------------------
1591 // final drawing for integrated flow relative to MC (POI):
1592 if(plotIntFlowRelativeToMCPOI)
1594 TCanvas* intFlowAllRelativeToMCPOICanvas = new TCanvas("Integrated Flow (POI) Relative To MC","Integrated Flow (POI) Relative To MC",1000,600);
1596 intFlowAllRelativeToMCPOICanvas->Divide(2,1);
1598 // 1st pad is for plot:
1599 (intFlowAllRelativeToMCPOICanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1601 TH1D *intFlowAllRelativeToMCPOI = new TH1D(*intFlowAll);
1602 (intFlowAllRelativeToMCPOI->GetYaxis())->SetRangeUser(-1,1);
1603 (intFlowAllRelativeToMCPOI->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1604 intFlowAllRelativeToMCPOI->Draw("E1");
1606 if(flowResultsRelativeToMCPOI) flowResultsRelativeToMCPOI->Draw("PSAME");
1608 // 2nd pad is for legend:
1609 (intFlowAllRelativeToMCPOICanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1611 if(textDefault) textDefault->Draw();
1613 if(textResultsPOI) textResultsPOI->Draw();
1615 }// end of if(plotIntFlowRelativeToMCPOI)
1616 //----------------------------------------------------------------------------------
1618 //==================================================================================
1623 //==================================================================================
1624 // DIFFERENTIAL FLOW
1625 //==================================================================================
1626 Int_t iNbinsPt = AliFlowCommonConstants::GetMaster()->GetNbinsPt();
1627 Double_t dPtMin = AliFlowCommonConstants::GetMaster()->GetPtMin();
1628 Double_t dPtMax = AliFlowCommonConstants::GetMaster()->GetPtMax();
1630 Int_t iNbinsEta = AliFlowCommonConstants::GetMaster()->GetNbinsEta();
1631 Double_t dEtaMin = AliFlowCommonConstants::GetMaster()->GetEtaMin();
1632 Double_t dEtaMax = AliFlowCommonConstants::GetMaster()->GetEtaMax();
1634 //----------------------------------------------------------------------------------
1635 //cosmetics: the style histogram for differential flow (pt):
1636 TH1D *styleHistPt = new TH1D("styleHistPt","styleHistPt",iNbinsPt,dPtMin,dPtMax);
1637 styleHistPt->SetTitle("Differential Flow");
1638 styleHistPt->SetXTitle("p_{t} [GeV]");
1639 styleHistPt->SetYTitle("v_{n}");
1641 //cosmetics: the style histogram for differential flow (eta):
1642 TH1D *styleHistEta = new TH1D("styleHistEta","styleHistEta",iNbinsEta,dEtaMin,dEtaMax);
1643 styleHistEta->SetTitle("Differential Flow");
1644 styleHistEta->SetXTitle("#eta");
1645 styleHistEta->SetYTitle("v_{n}");
1646 //----------------------------------------------------------------------------------
1650 //----------------------------------------------------------------------------------
1652 //cosmetics: Monte Carlo error bands for differential flow (Pt)
1653 TGraph* pMeshDiffFlowPtRP = NULL;
1654 if(mcepCommonHistRes)
1656 Int_t nBinsDiffFlowPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetNbinsX();
1657 Double_t binWidthPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinWidth(1);//assuming that all bins have the same width
1659 //counting the non-empty bins:
1660 Int_t nNonEmptyBinsDiffFlowPtRP=0;
1661 for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1663 if(!(mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i)==0.0))
1665 nNonEmptyBinsDiffFlowPtRP++;
1669 pMeshDiffFlowPtRP = new TGraph(2*nNonEmptyBinsDiffFlowPtRP+1);
1671 Double_t valueMCPtRP=0.,errorMCPtRP=0.;
1672 Int_t countDiffFlowPtRP=1;
1673 Double_t xFirstDiffFlowPtRP=0.,yUpFirstDiffFlowPtRP=0.;//needed to close up the mesh
1674 for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1676 //setting up the upper limit of the mesh:
1677 valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(i);
1678 errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i);
1679 if(!(errorMCPtRP==0.0))
1681 pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(i-0.5)*binWidthPtRP+dPtMin,valueMCPtRP+errorMCPtRP);
1682 if(xFirstDiffFlowPtRP==0.)
1684 xFirstDiffFlowPtRP=(i-0.5)*binWidthPtRP+dPtMin;
1685 yUpFirstDiffFlowPtRP=valueMCPtRP+errorMCPtRP;
1689 for(Int_t i=nBinsDiffFlowPtRP+1;i<2*nBinsDiffFlowPtRP+1;i++)
1691 //setting up the lower limit of the mesh:
1692 valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(2*nBinsDiffFlowPtRP+1-i);
1693 errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(2*nBinsDiffFlowPtRP+1-i);
1694 if(!(errorMCPtRP==0.0))
1696 pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(2*nBinsDiffFlowPtRP-i+0.5)*binWidthPtRP+dPtMin,valueMCPtRP-errorMCPtRP);
1699 //closing the mesh area:
1700 pMeshDiffFlowPtRP->SetPoint(2*nNonEmptyBinsDiffFlowPtRP+1,xFirstDiffFlowPtRP,yUpFirstDiffFlowPtRP);
1702 //setting the mesh style and color:
1703 pMeshDiffFlowPtRP->SetFillStyle(meshStyleDiffFlowPtRP);
1704 pMeshDiffFlowPtRP->SetFillColor(meshColorDiffFlowPtRP);
1707 //cosmetics: Monte Carlo error bands for differential flow (Eta)
1708 TGraph* pMeshDiffFlowEtaRP = NULL;
1709 if(mcepCommonHistRes)
1711 Int_t nBinsDiffFlowEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetNbinsX();
1712 Double_t binWidthEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinWidth(1);//assuming that all bins have the same width
1714 //counting the non-empty bins:
1715 Int_t nNonEmptyBinsDiffFlowEtaRP=0;
1716 for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1718 if(!(mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i)==0.0))
1720 nNonEmptyBinsDiffFlowEtaRP++;
1724 pMeshDiffFlowEtaRP = new TGraph(2*nNonEmptyBinsDiffFlowEtaRP+1);
1726 Double_t valueMCEtaRP=0.,errorMCEtaRP=0.;
1727 Int_t countDiffFlowEtaRP=1;
1728 Double_t xFirstDiffFlowEtaRP=0.,yUpFirstDiffFlowEtaRP=0.;//needed to close up the mesh
1729 for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1731 //setting up the upper limit of the mesh:
1732 valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(i);
1733 errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i);
1734 if(!(errorMCEtaRP==0.0))
1736 pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(i-0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP+errorMCEtaRP);
1737 if(xFirstDiffFlowEtaRP==0.)
1739 xFirstDiffFlowEtaRP=(i-0.5)*binWidthEtaRP+dEtaMin;
1740 yUpFirstDiffFlowEtaRP=valueMCEtaRP+errorMCEtaRP;
1744 for(Int_t i=nBinsDiffFlowEtaRP+1;i<2*nBinsDiffFlowEtaRP+1;i++)
1746 //setting up the lower limit of the mesh:
1747 valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(2*nBinsDiffFlowEtaRP+1-i);
1748 errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(2*nBinsDiffFlowEtaRP+1-i);
1749 if(!(errorMCEtaRP==0.0))
1751 pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(2*nBinsDiffFlowEtaRP-i+0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP-errorMCEtaRP);
1754 //closing the mesh area:
1755 pMeshDiffFlowEtaRP->SetPoint(2*nNonEmptyBinsDiffFlowEtaRP+1,xFirstDiffFlowEtaRP,yUpFirstDiffFlowEtaRP);
1757 //setting the mesh style and color:
1758 pMeshDiffFlowEtaRP->SetFillStyle(meshStyleDiffFlowEtaRP);
1759 pMeshDiffFlowEtaRP->SetFillColor(meshColorDiffFlowEtaRP);
1761 //----------------------------------------------------------------------------------
1766 //----------------------------------------------------------------------------------
1768 //cosmetics: Monte Carlo error bands for differential flow (Pt)
1769 TGraph* pMeshDiffFlowPtPOI = NULL;
1770 if(mcepCommonHistRes)
1772 Int_t nBinsDiffFlowPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetNbinsX();
1773 Double_t binWidthPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinWidth(1);//assuming that all bins have the same width
1775 //counting the non-empty bins:
1776 Int_t nNonEmptyBinsDiffFlowPtPOI=0;
1777 for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1779 if(!(mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i)==0.0))
1781 nNonEmptyBinsDiffFlowPtPOI++;
1785 pMeshDiffFlowPtPOI = new TGraph(2*nNonEmptyBinsDiffFlowPtPOI+1);
1787 Double_t valueMCPtPOI=0.,errorMCPtPOI=0.;
1788 Int_t countDiffFlowPtPOI=1;
1789 Double_t xFirstDiffFlowPtPOI=0.,yUpFirstDiffFlowPtPOI=0.;//needed to close up the mesh
1790 for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1792 //setting up the upper limit of the mesh:
1793 valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(i);
1794 errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i);
1795 if(!(errorMCPtPOI==0.0))
1797 pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(i-0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI+errorMCPtPOI);
1798 if(xFirstDiffFlowPtPOI==0.)
1800 xFirstDiffFlowPtPOI=(i-0.5)*binWidthPtPOI+dPtMin;
1801 yUpFirstDiffFlowPtPOI=valueMCPtPOI+errorMCPtPOI;
1805 for(Int_t i=nBinsDiffFlowPtPOI+1;i<2*nBinsDiffFlowPtPOI+1;i++)
1807 //setting up the lower limit of the mesh:
1808 valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(2*nBinsDiffFlowPtPOI+1-i);
1809 errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(2*nBinsDiffFlowPtPOI+1-i);
1810 if(!(errorMCPtPOI==0.0))
1812 pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(2*nBinsDiffFlowPtPOI-i+0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI-errorMCPtPOI);
1815 //closing the mesh area:
1816 pMeshDiffFlowPtPOI->SetPoint(2*nNonEmptyBinsDiffFlowPtPOI+1,xFirstDiffFlowPtPOI,yUpFirstDiffFlowPtPOI);
1818 //setting the mesh style and color:
1819 pMeshDiffFlowPtPOI->SetFillStyle(meshStyleDiffFlowPtPOI);
1820 pMeshDiffFlowPtPOI->SetFillColor(meshColorDiffFlowPtPOI);
1823 //cosmetics: Monte Carlo error bands for differential flow (Eta)
1824 TGraph* pMeshDiffFlowEtaPOI = NULL;
1825 if(mcepCommonHistRes)
1827 Int_t nBinsDiffFlowEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetNbinsX();
1828 Double_t binWidthEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinWidth(1);//assuming that all bins have the same width
1830 //counting the non-empty bins:
1831 Int_t nNonEmptyBinsDiffFlowEtaPOI=0;
1832 for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1834 if(!(mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i)==0.0))
1836 nNonEmptyBinsDiffFlowEtaPOI++;
1840 pMeshDiffFlowEtaPOI = new TGraph(2*nNonEmptyBinsDiffFlowEtaPOI+1);
1842 Double_t valueMCEtaPOI=0.,errorMCEtaPOI=0.;
1843 Int_t countDiffFlowEtaPOI=1;
1844 Double_t xFirstDiffFlowEtaPOI=0.,yUpFirstDiffFlowEtaPOI=0.;//needed to close up the mesh
1845 for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1847 //setting up the upper limit of the mesh:
1848 valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(i);
1849 errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i);
1850 if(!(errorMCEtaPOI==0.0))
1852 pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(i-0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI+errorMCEtaPOI);
1853 if(xFirstDiffFlowEtaPOI==0.)
1855 xFirstDiffFlowEtaPOI=(i-0.5)*binWidthEtaPOI+dEtaMin;
1856 yUpFirstDiffFlowEtaPOI=valueMCEtaPOI+errorMCEtaPOI;
1860 for(Int_t i=nBinsDiffFlowEtaPOI+1;i<2*nBinsDiffFlowEtaPOI+1;i++)
1862 //setting up the lower limit of the mesh:
1863 valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(2*nBinsDiffFlowEtaPOI+1-i);
1864 errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(2*nBinsDiffFlowEtaPOI+1-i);
1865 if(!(errorMCEtaPOI==0.0))
1867 pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(2*nBinsDiffFlowEtaPOI-i+0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI-errorMCEtaPOI);
1870 //closing the mesh area:
1871 pMeshDiffFlowEtaPOI->SetPoint(2*nNonEmptyBinsDiffFlowEtaPOI+1,xFirstDiffFlowEtaPOI,yUpFirstDiffFlowEtaPOI);
1873 //setting the mesh style and color:
1874 pMeshDiffFlowEtaPOI->SetFillStyle(meshStyleDiffFlowEtaPOI);
1875 pMeshDiffFlowEtaPOI->SetFillColor(meshColorDiffFlowEtaPOI);
1877 //----------------------------------------------------------------------------------
1879 //MCEP = Monte Carlo Event Plane
1880 Double_t avMultDiffFlowMCRP=0.;
1881 Double_t nEvtsDiffFlowMCRP=0;
1882 Double_t avMultDiffFlowMCPOI=0.;
1883 Double_t nEvtsDiffFlowMCPOI=0;
1886 if(mcepCommonHistRes)
1888 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorMC);
1889 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleMC);
1890 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorMC);
1891 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleMC);
1892 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorMC);
1893 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleMC);
1894 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorMC);
1895 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleMC);
1899 avMultDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
1900 nEvtsDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetEntries();
1901 avMultDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
1902 nEvtsDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetEntries();
1906 //SP = Scalar Product
1907 Double_t avMultDiffFlowSPRP=0.;
1908 Double_t nEvtsDiffFlowSPRP=0;
1909 Double_t avMultDiffFlowSPPOI=0.;
1910 Double_t nEvtsDiffFlowSPPOI=0;
1915 (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorSP);
1916 (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleSP);
1917 (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorSP);
1918 (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleSP);
1919 (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorSP);
1920 (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleSP);
1921 (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorSP);
1922 (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleSP);
1926 avMultDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetMean();
1927 nEvtsDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
1928 avMultDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
1929 nEvtsDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();
1933 //GFC = Generating Function Cumulants
1934 Double_t avMultDiffFlowGFC=0.;//to be removed
1935 Double_t nEvtsDiffFlowGFC=0.;//to be removed
1936 Double_t avMultDiffFlowGFCRP=0.;
1937 Double_t nEvtsDiffFlowGFCRP=0.;
1938 Double_t avMultDiffFlowGFCPOI=0.;
1939 Double_t nEvtsDiffFlowGFCPOI=0.;
1942 if(gfcCommonHistRes2)
1944 (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC2);
1945 (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC2);
1946 (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC2);
1947 (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC2);
1948 (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC2);
1949 (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC2);
1950 (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC2);
1951 (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC2);
1953 if(gfcCommonHistRes4)
1955 (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC4);
1956 (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC4);
1957 (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC4);
1958 (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC4);
1959 (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC4);
1960 (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC4);
1961 (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC4);
1962 (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC4);
1964 if(gfcCommonHistRes6)
1966 (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC6);
1967 (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC6);
1968 (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC6);
1969 (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC6);
1970 (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC6);
1971 (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC6);
1972 (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC6);
1973 (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC6);
1975 if(gfcCommonHistRes8)
1977 (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC8);
1978 (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC8);
1979 (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC8);
1980 (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC8);
1981 (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC8);
1982 (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC8);
1983 (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC8);
1984 (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC8);
1988 avMultDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();
1989 nEvtsDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetEntries();
1990 avMultDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
1991 nEvtsDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetEntries();
1996 Double_t avMultDiffFlowQC2RP=0.;
1997 Double_t nEvtsDiffFlowQC2RP=0.;
1998 Double_t avMultDiffFlowQC2POI=0.;
1999 Double_t nEvtsDiffFlowQC2POI=0.;
2000 Double_t avMultDiffFlowQC4RP=0.;
2001 Double_t nEvtsDiffFlowQC4RP=0.;
2002 Double_t avMultDiffFlowQC4POI=0.;
2003 Double_t nEvtsDiffFlowQC4POI=0.;
2004 Double_t avMultDiffFlowQC6RP=0.;
2005 Double_t nEvtsDiffFlowQC6RP=0.;
2006 Double_t avMultDiffFlowQC6POI=0.;
2007 Double_t nEvtsDiffFlowQC6POI=0.;
2008 Double_t avMultDiffFlowQC8RP=0.;
2009 Double_t nEvtsDiffFlowQC8RP=0.;
2010 Double_t avMultDiffFlowQC8POI=0.;
2011 Double_t nEvtsDiffFlowQC8POI=0.;
2016 if(qcCommonHistRes2)
2018 (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC2);
2019 (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC2);
2020 (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC2);
2021 (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC2);
2022 (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC2);
2023 (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC2);
2024 (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC2);
2025 (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC2);
2029 avMultDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
2030 nEvtsDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetEntries();
2031 avMultDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
2032 nEvtsDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetEntries();
2035 if(qcCommonHistRes4)
2037 (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC4);
2038 (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC4);
2039 (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC4);
2040 (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC4);
2041 (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC4);
2042 (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC4);
2043 (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC4);
2044 (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC4);
2048 avMultDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
2049 nEvtsDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetEntries();
2050 avMultDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
2051 nEvtsDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetEntries();
2054 if(qcCommonHistRes6)
2056 (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC6);
2057 (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC6);
2058 (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC6);
2059 (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC6);
2060 (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC6);
2061 (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC6);
2062 (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC6);
2063 (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC6);
2067 avMultDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
2068 nEvtsDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetEntries();
2069 avMultDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
2070 nEvtsDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetEntries();
2073 if(qcCommonHistRes8)
2075 (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC8);
2076 (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC8);
2077 (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC8);
2078 (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC8);
2079 (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC8);
2080 (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC8);
2081 (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC8);
2082 (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC8);
2086 avMultDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
2087 nEvtsDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetEntries();
2088 avMultDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
2089 nEvtsDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetEntries();
2093 //LYZ2SUM = Lee-Yang Zeros (2nd run, sum)
2094 Double_t avMultDiffFlowLYZ2SUMRP=0.;
2095 Double_t nEvtsDiffFlowLYZ2SUMRP=0;
2096 Double_t avMultDiffFlowLYZ2SUMPOI=0.;
2097 Double_t nEvtsDiffFlowLYZ2SUMPOI=0;
2100 if(lyz2sumCommonHistRes)
2102 (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2SUM);
2103 (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2SUM);
2104 (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2SUM);
2105 (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2SUM);
2106 (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2SUM);
2107 (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2SUM);
2108 (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2SUM);
2109 (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2SUM);
2111 if(lyz2sumCommonHist)
2113 avMultDiffFlowLYZ2SUMRP = (lyz2sumCommonHist->GetHistMultRP())->GetMean();
2114 nEvtsDiffFlowLYZ2SUMRP = (lyz2sumCommonHist->GetHistMultRP())->GetEntries();
2115 avMultDiffFlowLYZ2SUMPOI = (lyz2sumCommonHist->GetHistMultPOI())->GetMean();
2116 nEvtsDiffFlowLYZ2SUMPOI = (lyz2sumCommonHist->GetHistMultPOI())->GetEntries();
2120 //LYZ2PROD = Lee-Yang Zeros (2nd run, product)
2121 Double_t avMultDiffFlowLYZ2PRODRP=0.;
2122 Double_t nEvtsDiffFlowLYZ2PRODRP=0;
2123 Double_t avMultDiffFlowLYZ2PRODPOI=0.;
2124 Double_t nEvtsDiffFlowLYZ2PRODPOI=0;
2127 if(lyz2prodCommonHistRes)
2129 (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2PROD);
2130 (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2PROD);
2131 (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2PROD);
2132 (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2PROD);
2133 (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2PROD);
2134 (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2PROD);
2135 (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2PROD);
2136 (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2PROD);
2138 if(lyz2prodCommonHist)
2140 avMultDiffFlowLYZ2PRODRP = (lyz2prodCommonHist->GetHistMultRP())->GetMean();
2141 nEvtsDiffFlowLYZ2PRODRP = (lyz2prodCommonHist->GetHistMultRP())->GetEntries();
2142 avMultDiffFlowLYZ2PRODPOI = (lyz2prodCommonHist->GetHistMultPOI())->GetMean();
2143 nEvtsDiffFlowLYZ2PRODPOI = (lyz2prodCommonHist->GetHistMultPOI())->GetEntries();
2147 //LYZEP = Lee-Yang Zeros Event Plane
2148 Double_t avMultDiffFlowLYZEPRP=0.;
2149 Double_t nEvtsDiffFlowLYZEPRP=0;
2150 Double_t avMultDiffFlowLYZEPPOI=0.;
2151 Double_t nEvtsDiffFlowLYZEPPOI=0;
2154 if(lyzepCommonHistRes)
2156 (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZEP);
2157 (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZEP);
2158 (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZEP);
2159 (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZEP);
2160 (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZEP);
2161 (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZEP);
2162 (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZEP);
2163 (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZEP);
2167 avMultDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
2168 nEvtsDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetEntries();
2169 avMultDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
2170 nEvtsDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
2175 //----------------------------------------------------------------------------------
2176 //final drawing for differential flow (Pt, RP):
2177 if(plotDiffFlowPtRP)
2179 TCanvas* diffFlowPtAllCanvasRP = new TCanvas("Differential Flow (Pt) of RP","Differential Flow (Pt) of RP ",1000,600);
2181 diffFlowPtAllCanvasRP->Divide(2,1);
2183 //1st pad is for plot:
2184 (diffFlowPtAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2188 (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
2189 styleHistPt->Draw();
2191 if(pMeshDiffFlowPtRP)
2193 pMeshDiffFlowPtRP->Draw("LFSAME");
2197 if(plotMCPtRP && mcepCommonHistRes)
2199 (mcepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2202 if(plotSPPtRP && spCommonHistRes)
2204 (spCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2207 if(plotGFC2PtRP && gfcCommonHistRes2)Pt
2209 (gfcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2211 if(plotGFC4PtRP && gfcCommonHistRes4)
2213 (gfcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2215 if(plotGFC6PtRP && gfcCommonHistRes6)
2217 (gfcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2219 if(plotGFC8PtRP && gfcCommonHistRes8)
2221 (gfcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2224 if(plotQC2PtRP && qcCommonHistRes2)
2226 (qcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2228 if(plotQC4PtRP && qcCommonHistRes4)
2230 (qcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2232 if(plotQC6PtRP && qcCommonHistRes6)
2234 //(qcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2236 if(plotQC8PtRP && qcCommonHistRes8)
2238 //(qcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2241 if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2243 (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2246 if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2248 (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2251 if(plotLYZEPPtRP && lyzepCommonHistRes)
2253 (lyzepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2256 //2nd pad is for legend:
2257 (diffFlowPtAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2259 TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2260 legendDiffFlowPtRP->SetTextFont(72);
2261 legendDiffFlowPtRP->SetTextSize(0.06);
2263 //legend's entries:Pt
2264 TString *entryDiffMCPtRP = new TString("MC ........ ");
2265 TString *entryDiffSPPtRP = new TString("SP ........ ");
2266 TString *entryDiffGFC2PtRP = new TString("GFC{2} .... ");
2267 TString *entryDiffGFC4PtRP = new TString("GFC{4} .... ");
2268 TString *entryDiffGFC6PtRP = new TString("GFC{6} .... ");
2269 TString *entryDiffGFC8PtRP = new TString("GFC{8} .... ");
2270 TString *entryDiffQC2PtRP = new TString("QC{2} ..... ");
2271 TString *entryDiffQC4PtRP = new TString("QC{4} ..... ");
2272 TString *entryDiffQC6PtRP = new TString("QC{6} ..... ");
2273 TString *entryDiffQC8PtRP = new TString("QC{8} ..... ");
2274 TString *entryDiffLYZ2SUMPtRP = new TString("LYZ{sum} .. ");
2275 TString *entryDiffLYZ2PRODPtRP = new TString("LYZ{prod} . ");
2276 TString *entryDiffLYZEPPtRP = new TString("LYZEP ..... ");
2279 if(mcepCommonHistRes)
2281 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
2282 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
2283 entryDiffMCPtRP->Append("M = ");
2284 (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
2285 entryDiffMCPtRP->Append(", N = ");
2286 (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP;
2287 legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
2291 if(plotSPPtRP && spCommonHistRes)
2293 entryDiffSPPtRP->Append("M = ");
2294 (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
2295 entryDiffSPPtRP->Append(", N = ");
2296 (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP;
2297 legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
2301 if(plotGFC2PtRP && gfcCommonHistRes2)
2303 entryDiffGFC2PtRP->Append("M = ");
2304 (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2305 entryDiffGFC2PtRP->Append(", N = ");
2306 (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2307 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2309 if(plotGFC4PtRP && gfcCommonHistRes4)
2311 entryDiffGFC4PtRP->Append("M = ");
2312 (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2313 entryDiffGFC4PtRP->Append(", N = ");
2314 (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2315 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2317 if(plotGFC6PtRP && gfcCommonHistRes6)
2319 entryDiffGFC6PtRP->Append("M = ");
2320 (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2321 entryDiffGFC6PtRP->Append(", N = ");
2322 (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2323 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2325 if(plotGFC8PtRP && gfcCommonHistRes8)
2327 entryDiffGFC8PtRP->Append("M = ");
2328 (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2329 entryDiffGFC8PtRP->Append(", N = ");
2330 (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2331 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2335 if(plotQC2PtRP && qcCommonHistRes2)
2337 entryDiffQC2PtRP->Append("M = ");
2338 (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2339 entryDiffQC2PtRP->Append(", N = ");
2340 (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP;
2341 legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2343 if(plotQC4PtRP && qcCommonHistRes4)
2345 entryDiffQC4PtRP->Append("M = ");
2346 (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2347 entryDiffQC4PtRP->Append(", N = ");
2348 (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP;
2349 legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2351 if(plotQC6PtRP && qcCommonHistRes6)
2353 entryDiffQC6PtRP->Append("M = ");
2354 (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
2355 entryDiffQC6PtRP->Append(", N = ");
2356 (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP;
2357 legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
2359 if(plotQC8PtRP && qcCommonHistRes8)
2361 entryDiffQC8PtRP->Append("M = ");
2362 (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
2363 entryDiffQC8PtRP->Append(", N = ");
2364 (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP;
2365 legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
2369 if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2371 entryDiffLYZ2SUMPtRP->Append("M = ");
2372 (*entryDiffLYZ2SUMPtRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
2373 entryDiffLYZ2SUMPtRP->Append(", N = ");
2374 (*entryDiffLYZ2SUMPtRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP;
2375 legendDiffFlowPtRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2SUMPtRP->Data(),"p");
2379 if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2381 entryDiffLYZ2PRODPtRP->Append("M = ");
2382 (*entryDiffLYZ2PRODPtRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
2383 entryDiffLYZ2PRODPtRP->Append(", N = ");
2384 (*entryDiffLYZ2PRODPtRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP;
2385 legendDiffFlowPtRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PRODPtRP->Data(),"p");
2389 if(plotLYZEPPtRP && lyzepCommonHistRes)
2391 entryDiffLYZEPPtRP->Append("M = ");
2392 (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2393 entryDiffLYZEPPtRP->Append(", N = ");
2394 (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP;
2395 legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
2398 //drawing finally the legend in the 2nd pad:
2399 if(textDefault) textDefault->Draw();
2401 if(legendDiffFlowPtRP)
2403 legendDiffFlowPtRP->SetMargin(0.15);
2404 legendDiffFlowPtRP->Draw();
2406 }// end of if(plotDiffFlowPtRP)
2407 //----------------------------------------------------------------------------------
2409 //----------------------------------------------------------------------------------
2410 //final drawing for differential flow (Eta, RP):
2411 if(plotDiffFlowEtaRP)
2413 TCanvas* diffFlowEtaAllCanvasRP = new TCanvas("Differential Flow (Eta) of RP","Differential Flow (Eta) of RP ",1000,600);
2415 diffFlowEtaAllCanvasRP->Divide(2,1);
2417 //1st pad is for plot:
2418 (diffFlowEtaAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2422 (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
2423 styleHistEta->Draw();
2425 if(pMeshDiffFlowEtaRP)
2427 pMeshDiffFlowEtaRP->Draw("LFSAME");
2431 if(plotMCEtaRP && mcepCommonHistRes)
2433 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2436 if(plotSPEtaRP && spCommonHistRes)
2438 (spCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2441 if(plotGFC2EtaRP && gfcCommonHistRes2)
2443 (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2445 if(plotGFC4EtaRP && gfcCommonHistRes4)
2447 (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2449 if(plotGFC6EtaRP && gfcCommonHistRes6)
2451 (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2453 if(plotGFC8EtaRP && gfcCommonHistRes8)
2455 (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2458 if(plotQC2EtaRP && qcCommonHistRes2)
2460 (qcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2462 if(plotQC4EtaRP && qcCommonHistRes4)
2464 (qcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2466 if(plotQC6EtaRP && qcCommonHistRes6)
2468 //(qcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2470 if(plotQC8EtaRP && qcCommonHistRes8)
2472 //(qcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2475 if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2477 (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2480 if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2482 (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2485 if(plotLYZEPEtaRP && lyzepCommonHistRes)
2487 (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2490 //2nd pad is for legend:
2491 (diffFlowEtaAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2493 TLegend* legendDiffFlowEtaRP = new TLegend(0.02,0.12,0.97,0.70);
2494 legendDiffFlowEtaRP->SetTextFont(72);
2495 legendDiffFlowEtaRP->SetTextSize(0.06);
2498 TString *entryDiffMCEtaRP = new TString("MC ........ ");
2499 TString *entryDiffSPEtaRP = new TString("SP ........ ");
2500 TString *entryDiffGFC2EtaRP = new TString("GFC{2} .... ");
2501 TString *entryDiffGFC4EtaRP = new TString("GFC{4} .... ");
2502 TString *entryDiffGFC6EtaRP = new TString("GFC{6} .... ");
2503 TString *entryDiffGFC8EtaRP = new TString("GFC{8} .... ");
2504 TString *entryDiffQC2EtaRP = new TString("QC{2} ..... ");
2505 TString *entryDiffQC4EtaRP = new TString("QC{4} ..... ");
2506 TString *entryDiffQC6EtaRP = new TString("QC{6} ..... ");
2507 TString *entryDiffQC8EtaRP = new TString("QC{8} ..... ");
2508 TString *entryDiffLYZ2SUMEtaRP = new TString("LYZ{sum} .. ");
2509 TString *entryDiffLYZ2PRODEtaRP = new TString("LYZ{prod} . ");
2510 TString *entryDiffLYZEPEtaRP = new TString("LYZEP ..... ");
2513 if(mcepCommonHistRes)
2515 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillStyle(meshStyleDiffFlowEtaRP);
2516 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillColor(meshColorDiffFlowEtaRP);
2517 entryDiffMCEtaRP->Append("M = ");
2518 (*entryDiffMCEtaRP)+=(Long_t)avMultDiffFlowMCRP;
2519 entryDiffMCEtaRP->Append(", N = ");
2520 (*entryDiffMCEtaRP)+=(Long_t)nEvtsDiffFlowMCRP;
2521 legendDiffFlowEtaRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffMCEtaRP->Data(),"f");
2525 if(plotSPEtaRP && spCommonHistRes)
2527 entryDiffSPEtaRP->Append("M = ");
2528 (*entryDiffSPEtaRP)+=(Long_t)avMultDiffFlowSPRP;
2529 entryDiffSPEtaRP->Append(", N = ");
2530 (*entryDiffSPEtaRP)+=(Long_t)nEvtsDiffFlowSPRP;
2531 legendDiffFlowEtaRP->AddEntry(spCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffSPEtaRP->Data(),"p");
2535 if(plotGFC2EtaRP && gfcCommonHistRes2)
2537 entryDiffGFC2EtaRP->Append("M = ");
2538 (*entryDiffGFC2EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2539 entryDiffGFC2EtaRP->Append(", N = ");
2540 (*entryDiffGFC2EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2541 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffGFC2EtaRP->Data(),"p");
2543 if(plotGFC4EtaRP && gfcCommonHistRes4)
2545 entryDiffGFC4EtaRP->Append("M = ");
2546 (*entryDiffGFC4EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2547 entryDiffGFC4EtaRP->Append(", N = ");
2548 (*entryDiffGFC4EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2549 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffGFC4EtaRP->Data(),"p");
2551 if(plotGFC6EtaRP && gfcCommonHistRes6)
2553 entryDiffGFC6EtaRP->Append("M = ");
2554 (*entryDiffGFC6EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2555 entryDiffGFC6EtaRP->Append(", N = ");
2556 (*entryDiffGFC6EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2557 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffGFC6EtaRP->Data(),"p");
2559 if(plotGFC8EtaRP && gfcCommonHistRes8)
2561 entryDiffGFC8EtaRP->Append("M = ");
2562 (*entryDiffGFC8EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2563 entryDiffGFC8EtaRP->Append(", N = ");
2564 (*entryDiffGFC8EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2565 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffGFC8EtaRP->Data(),"p");
2569 if(plotQC2EtaRP && qcCommonHistRes2)
2571 entryDiffQC2EtaRP->Append("M = ");
2572 (*entryDiffQC2EtaRP)+=(Long_t)avMultDiffFlowQC2RP;
2573 entryDiffQC2EtaRP->Append(", N = ");
2574 (*entryDiffQC2EtaRP)+=(Long_t)nEvtsDiffFlowQC2RP;
2575 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffQC2EtaRP->Data(),"p");
2577 if(plotQC4EtaRP && qcCommonHistRes4)
2579 entryDiffQC4EtaRP->Append("M = ");
2580 (*entryDiffQC4EtaRP)+=(Long_t)avMultDiffFlowQC4RP;
2581 entryDiffQC4EtaRP->Append(", N = ");
2582 (*entryDiffQC4EtaRP)+=(Long_t)nEvtsDiffFlowQC4RP;
2583 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffQC4EtaRP->Data(),"p");
2585 if(plotQC6EtaRP && qcCommonHistRes6)
2587 entryDiffQC6EtaRP->Append("M = ");
2588 (*entryDiffQC6EtaRP)+=(Long_t)avMultDiffFlowQC6RP;
2589 entryDiffQC6EtaRP->Append(", N = ");
2590 (*entryDiffQC6EtaRP)+=(Long_t)nEvtsDiffFlowQC6RP;
2591 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffQC6EtaRP->Data(),"p");
2593 if(plotQC8EtaRP && qcCommonHistRes8)
2595 entryDiffQC8EtaRP->Append("M = ");
2596 (*entryDiffQC8EtaRP)+=(Long_t)avMultDiffFlowQC8RP;
2597 entryDiffQC8EtaRP->Append(", N = ");
2598 (*entryDiffQC8EtaRP)+=(Long_t)nEvtsDiffFlowQC8RP;
2599 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffQC8EtaRP->Data(),"p");
2603 if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2605 entryDiffLYZ2SUMEtaRP->Append("M = ");
2606 (*entryDiffLYZ2SUMEtaRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
2607 entryDiffLYZ2SUMEtaRP->Append(", N = ");
2608 (*entryDiffLYZ2SUMEtaRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP;
2609 legendDiffFlowEtaRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2SUMEtaRP->Data(),"p");
2613 if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2615 entryDiffLYZ2PRODEtaRP->Append("M = ");
2616 (*entryDiffLYZ2PRODEtaRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
2617 entryDiffLYZ2PRODEtaRP->Append(", N = ");
2618 (*entryDiffLYZ2PRODEtaRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP;
2619 legendDiffFlowEtaRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2PRODEtaRP->Data(),"p");
2623 if(plotLYZEPEtaRP && lyzepCommonHistRes)
2625 entryDiffLYZEPEtaRP->Append("M = ");
2626 (*entryDiffLYZEPEtaRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2627 entryDiffLYZEPEtaRP->Append(", N = ");
2628 (*entryDiffLYZEPEtaRP)+=(Long_t)nEvtsDiffFlowLYZEPRP;
2629 legendDiffFlowEtaRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZEPEtaRP->Data(),"p");
2632 //drawing finally the legend in the 2nd pad:
2633 if(textDefault) textDefault->Draw();
2635 if(legendDiffFlowEtaRP)
2637 legendDiffFlowEtaRP->SetMargin(0.15);
2638 legendDiffFlowEtaRP->Draw();
2640 }// end of if(plotDiffFlowEtaRP)
2641 //----------------------------------------------------------------------------------
2643 //----------------------------------------------------------------------------------
2644 // final drawing for plot |(v{method}-v{MC})/v{MC}| as a function of pt for RPs
2645 if(plotDiffFlowPtRelativeToMCRP)
2647 TCanvas* diffFlowPtRelativeToMCRP = new TCanvas("Differential Flow (Pt) of RPs relative to MC","Differential Flow (Pt) of RPs relative to MC",1000,600);
2649 diffFlowPtRelativeToMCRP->Divide(2,1);
2651 //1st pad is for plot:
2652 (diffFlowPtRelativeToMCRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2656 TH1D *styleHistPtReleativeToMC = new TH1D(*styleHistPt);
2657 (styleHistPtReleativeToMC->GetYaxis())->SetRangeUser(-4.0,4.0);
2658 (styleHistPtReleativeToMC->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
2659 styleHistPtReleativeToMC->Draw();
2662 TH1D *spDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2663 TH1D *gfc2DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2664 TH1D *gfc4DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2665 TH1D *gfc6DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2666 TH1D *gfc8DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2667 TH1D *qc2DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2668 TH1D *qc4DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2669 TH1D *qc6DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2670 TH1D *qc8DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2671 TH1D *lyz2sumDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2672 TH1D *lyz2prodDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2673 TH1D *lyzepDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2675 if(mcepCommonHistRes && mcepCommonHistRes->GetHistDiffFlowPtRP())
2677 for(Int_t p=1;p<iNbinsPt+1;p++)
2679 Double_t dvnMC = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2682 Double_t dvnSP = 0.;
2683 Double_t dvnErrorSP = 0.;
2684 if(spCommonHistRes && spCommonHistRes->GetHistDiffFlowPtRP())
2686 dvnSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2687 dvnErrorSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2689 if(dvnMC!=0. && dvnSP!=0.)
2691 spDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnSP-dvnMC)/dvnMC);
2692 spDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorSP/dvnMC);
2696 Double_t dvnGFC2 = 0.;
2697 Double_t dvnErrorGFC2 = 0.;
2698 if(gfcCommonHistRes2 && gfcCommonHistRes2->GetHistDiffFlowPtRP())
2700 dvnGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2701 dvnErrorGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2703 if(dvnMC!=0. && dvnGFC2!=0.)
2705 gfc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC2-dvnMC)/dvnMC);
2706 gfc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC2/dvnMC);
2710 Double_t dvnGFC4 = 0.;
2711 Double_t dvnErrorGFC4 = 0.;
2712 if(gfcCommonHistRes4 && gfcCommonHistRes4->GetHistDiffFlowPtRP())
2714 dvnGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2715 dvnErrorGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2717 if(dvnMC!=0. && dvnGFC4!=0.)
2719 gfc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC4-dvnMC)/dvnMC);
2720 gfc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC4/dvnMC);
2724 Double_t dvnGFC6 = 0.;
2725 Double_t dvnErrorGFC6 = 0.;
2726 if(gfcCommonHistRes6 && gfcCommonHistRes6->GetHistDiffFlowPtRP())
2728 dvnGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2729 dvnErrorGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2731 if(dvnMC!=0. && dvnGFC6!=0.)
2733 gfc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC6-dvnMC)/dvnMC);
2734 gfc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC6/dvnMC);
2738 Double_t dvnGFC8 = 0.;
2739 Double_t dvnErrorGFC8 = 0.;
2740 if(gfcCommonHistRes8 && gfcCommonHistRes8->GetHistDiffFlowPtRP())
2742 dvnGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2743 dvnErrorGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2745 if(dvnMC!=0. && dvnGFC8!=0.)
2747 gfc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC8-dvnMC)/dvnMC);
2748 gfc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC8/dvnMC);
2752 Double_t dvnQC2 = 0.;
2753 Double_t dvnErrorQC2 = 0.;
2754 if(qcCommonHistRes2 && qcCommonHistRes2->GetHistDiffFlowPtRP())
2756 dvnQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2757 dvnErrorQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2759 if(dvnMC!=0. && dvnQC2!=0.)
2761 qc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC2-dvnMC)/dvnMC);
2762 qc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC2/dvnMC);
2766 Double_t dvnQC4 = 0.;
2767 Double_t dvnErrorQC4 = 0.;
2768 if(qcCommonHistRes4 && qcCommonHistRes4->GetHistDiffFlowPtRP())
2770 dvnQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2771 dvnErrorQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2773 if(dvnMC!=0. && dvnQC4!=0.)
2775 qc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC4-dvnMC)/dvnMC);
2776 qc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC4/dvnMC);
2780 Double_t dvnQC6 = 0.;
2781 Double_t dvnErrorQC6 = 0.;
2782 if(qcCommonHistRes6 && qcCommonHistRes6->GetHistDiffFlowPtRP())
2784 dvnQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2785 dvnErrorQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2787 if(dvnMC!=0. && dvnQC6!=0.)
2789 qc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC6-dvnMC)/dvnMC);
2790 qc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC6/dvnMC);
2794 Double_t dvnQC8 = 0.;
2795 Double_t dvnErrorQC8 = 0.;
2796 if(qcCommonHistRes8 && qcCommonHistRes8->GetHistDiffFlowPtRP())
2798 dvnQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2799 dvnErrorQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2801 if(dvnMC!=0. && dvnQC8!=0.)
2803 qc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC8-dvnMC)/dvnMC);
2804 qc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC8/dvnMC);
2808 Double_t dvnLYZ2SUM = 0.;
2809 Double_t dvnErrorLYZ2SUM = 0.;
2810 if(lyz2sumCommonHistRes && lyz2sumCommonHistRes->GetHistDiffFlowPtRP())
2812 dvnLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2813 dvnErrorLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2815 if(dvnMC!=0. && dvnLYZ2SUM!=0.)
2817 lyz2sumDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2SUM-dvnMC)/dvnMC);
2818 lyz2sumDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2SUM/dvnMC);
2822 Double_t dvnLYZ2PROD = 0.;
2823 Double_t dvnErrorLYZ2PROD = 0.;
2824 if(lyz2prodCommonHistRes && lyz2prodCommonHistRes->GetHistDiffFlowPtRP())
2826 dvnLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2827 dvnErrorLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2829 if(dvnMC!=0. && dvnLYZ2PROD!=0.)
2831 lyz2prodDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2PROD-dvnMC)/dvnMC);
2832 lyz2prodDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2PROD/dvnMC);
2836 Double_t dvnLYZEP = 0.;
2837 Double_t dvnErrorLYZEP = 0.;
2838 if(lyzepCommonHistRes && lyzepCommonHistRes->GetHistDiffFlowPtRP())
2840 dvnLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2841 dvnErrorLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2843 if(dvnMC!=0. && dvnLYZEP!=0.)
2845 lyzepDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZEP-dvnMC)/dvnMC);
2846 lyzepDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZEP/dvnMC);
2849 } // end of for(Int_t p=1;p<iNbinsPt+1;p++)
2850 } // end of if(mcepCommonHistRes->GetHistDiffFlowPtRP())
2854 spDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorSP);
2855 spDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleSP);
2856 if(plotSPRelativeToMCRP && spCommonHistRes) spDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2858 gfc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC2);
2859 gfc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC2);
2860 if(plotGFC2RelativeToMCRP && gfcCommonHistRes2) gfc2DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2862 gfc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC4);
2863 gfc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC4);
2864 if(plotGFC4RelativeToMCRP && gfcCommonHistRes4) gfc4DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2866 gfc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC6);
2867 gfc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC6);
2868 if(plotGFC6RelativeToMCRP && gfcCommonHistRes6) gfc6DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2870 gfc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC8);
2871 gfc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC8);
2872 if(plotGFC8RelativeToMCRP && gfcCommonHistRes8) gfc8DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2874 qc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC2);
2875 qc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC2);
2876 if(plotQC2RelativeToMCRP && qcCommonHistRes2) qc2DiffFlowPtRelativeToMCRP->Draw("PSAME");
2878 qc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC4);
2879 qc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC4);
2880 if(plotQC4RelativeToMCRP && qcCommonHistRes4) qc4DiffFlowPtRelativeToMCRP->Draw("PSAME");
2882 qc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC6);
2883 qc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC6);
2884 if(plotQC6RelativeToMCRP && qcCommonHistRes6) qc6DiffFlowPtRelativeToMCRP->Draw("PSAME");
2886 qc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC8);
2887 qc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC8);
2888 if(plotQC8RelativeToMCRP && qcCommonHistRes8) qc8DiffFlowPtRelativeToMCRP->Draw("PSAME");
2890 lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2891 lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2892 if(plotLYZ2SUMRelativeToMCRP && lyz2sumCommonHistRes) lyz2sumDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2894 lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2895 lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2896 if(plotLYZ2SUMRelativeToMCRP && lyz2prodCommonHistRes) lyz2prodDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2898 lyzepDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZEP);
2899 lyzepDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZEP);
2900 if(plotLYZEPRelativeToMCRP && lyzepCommonHistRes) lyzepDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2902 //2nd pad is for legend:
2903 (diffFlowPtRelativeToMCRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2905 TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2906 legendDiffFlowPtRP->SetTextFont(72);
2907 legendDiffFlowPtRP->SetTextSize(0.06);
2909 //legend's entries:Pt
2910 TString *entryDiffMCPtRP = new TString("MC ........ ");
2911 TString *entryDiffSPPtRP = new TString("SP ........ ");
2912 TString *entryDiffGFC2PtRP = new TString("GFC{2} .... ");
2913 TString *entryDiffGFC4PtRP = new TString("GFC{4} .... ");
2914 TString *entryDiffGFC6PtRP = new TString("GFC{6} .... ");
2915 TString *entryDiffGFC8PtRP = new TString("GFC{8} .... ");
2916 TString *entryDiffQC2PtRP = new TString("QC{2} ..... ");
2917 TString *entryDiffQC4PtRP = new TString("QC{4} ..... ");
2918 TString *entryDiffQC6PtRP = new TString("QC{6} ..... ");
2919 TString *entryDiffQC8PtRP = new TString("QC{8} ..... ");
2920 TString *entryDiffLYZ2SUMPtRP = new TString("LYZ{sum} .. ");
2921 TString *entryDiffLYZ2PRODPtRP = new TString("LYZ{prod} . ");
2922 TString *entryDiffLYZEPPtRP = new TString("LYZEP ..... ");
2925 if(mcepCommonHistRes)
2927 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
2928 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
2929 entryDiffMCPtRP->Append("M = ");
2930 (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
2931 entryDiffMCPtRP->Append(", N = ");
2932 (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP;
2933 //legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
2937 if(plotSPPtRP && spCommonHistRes)
2939 entryDiffSPPtRP->Append("M = ");
2940 (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
2941 entryDiffSPPtRP->Append(", N = ");
2942 (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP;
2943 if(plotSPRelativeToMCRP) legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
2947 if(plotGFC2PtRP && gfcCommonHistRes2)
2949 entryDiffGFC2PtRP->Append("M = ");
2950 (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2951 entryDiffGFC2PtRP->Append(", N = ");
2952 (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2953 if(plotGFC2RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2955 if(plotGFC4PtRP && gfcCommonHistRes4)
2957 entryDiffGFC4PtRP->Append("M = ");
2958 (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2959 entryDiffGFC4PtRP->Append(", N = ");
2960 (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2961 if(plotGFC4RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2963 if(plotGFC6PtRP && gfcCommonHistRes6)
2965 entryDiffGFC6PtRP->Append("M = ");
2966 (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2967 entryDiffGFC6PtRP->Append(", N = ");
2968 (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2969 if(plotGFC6RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2971 if(plotGFC8PtRP && gfcCommonHistRes8)
2973 entryDiffGFC8PtRP->Append("M = ");
2974 (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2975 entryDiffGFC8PtRP->Append(", N = ");
2976 (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2977 if(plotGFC8RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2981 if(plotQC2PtRP && qcCommonHistRes2)
2983 entryDiffQC2PtRP->Append("M = ");
2984 (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2985 entryDiffQC2PtRP->Append(", N = ");
2986 (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP;
2987 if(plotQC2RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2989 if(plotQC4PtRP && qcCommonHistRes4)
2991 entryDiffQC4PtRP->Append("M = ");
2992 (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2993 entryDiffQC4PtRP->Append(", N = ");
2994 (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP;
2995 if(plotQC4RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2997 if(plotQC6PtRP && qcCommonHistRes6)
2999 entryDiffQC6PtRP->Append("M = ");
3000 (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
3001 entryDiffQC6PtRP->Append(", N = ");
3002 (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP;
3003 if(plotQC6RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
3005 if(plotQC8PtRP && qcCommonHistRes8)
3007 entryDiffQC8PtRP->Append("M = ");
3008 (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
3009 entryDiffQC8PtRP->Append(", N = ");
3010 (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP;
3011 if(plotQC8RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
3015 if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
3017 entryDiffLYZ2SUMPtRP->Append("M = ");
3018 (*entryDiffLYZ2SUMPtRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
3019 entryDiffLYZ2SUMPtRP->Append(", N = ");
3020 (*entryDiffLYZ2SUMPtRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP;
3021 if(plotLYZ2SUMRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2SUMPtRP->Data(),"p");
3025 if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
3027 entryDiffLYZ2PRODPtRP->Append("M = ");
3028 (*entryDiffLYZ2PRODPtRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
3029 entryDiffLYZ2PRODPtRP->Append(", N = ");
3030 (*entryDiffLYZ2PRODPtRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP;
3031 if(plotLYZ2PRODRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PRODPtRP->Data(),"p");
3035 if(plotLYZEPPtRP && lyzepCommonHistRes)
3037 entryDiffLYZEPPtRP->Append("M = ");
3038 (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
3039 entryDiffLYZEPPtRP->Append(", N = ");
3040 (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP;
3041 if(plotLYZEPRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
3044 //drawing finally the legend in the 2nd pad:
3045 if(textDefault) textDefault->Draw();
3047 if(legendDiffFlowPtRP)
3049 legendDiffFlowPtRP->SetMargin(0.15);
3050 legendDiffFlowPtRP->Draw();
3053 //----------------------------------------------------------------------------------
3055 //----------------------------------------------------------------------------------
3056 //final drawing for differential flow (Pt, POI):
3057 if(plotDiffFlowPtPOI)
3059 TCanvas* diffFlowPtAllCanvasPOI = new TCanvas("Differential Flow (Pt) of POI","Differential Flow (Pt) of POI ",1000,600);
3061 diffFlowPtAllCanvasPOI->Divide(2,1);
3063 //1st pad is for plot:
3064 (diffFlowPtAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3068 (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
3069 styleHistPt->Draw();
3071 if(pMeshDiffFlowPtPOI)
3073 pMeshDiffFlowPtPOI->Draw("LFSAME");
3077 if(plotMCPtPOI && mcepCommonHistRes)
3079 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3082 if(plotSPPtPOI && spCommonHistRes)
3084 (spCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3087 if(plotGFC2PtPOI && gfcCommonHistRes2)
3089 (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3091 if(plotGFC4PtPOI && gfcCommonHistRes4)
3093 (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3095 if(plotGFC6PtPOI && gfcCommonHistRes6)
3097 (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3099 if(plotGFC8PtPOI && gfcCommonHistRes8)
3101 (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3104 if(plotQC2PtPOI && qcCommonHistRes2)
3106 (qcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3108 if(plotQC4PtPOI && qcCommonHistRes4)
3110 (qcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3112 if(plotQC6PtPOI && qcCommonHistRes6)
3114 //(qcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3116 if(plotQC8PtPOI && qcCommonHistRes8)
3118 //(qcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3121 if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3123 (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3126 if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3128 (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3131 if(plotLYZEPPtPOI && lyzepCommonHistRes)
3133 (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3136 //2nd pad is for legend:
3137 (diffFlowPtAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3139 TLegend* legendDiffFlowPtPOI = new TLegend(0.02,0.12,0.97,0.70);
3140 legendDiffFlowPtPOI->SetTextFont(72);
3141 legendDiffFlowPtPOI->SetTextSize(0.06);
3144 TString *entryDiffMCPtPOI = new TString("MC ........ ");
3145 TString *entryDiffSPPtPOI = new TString("SP ........ ");
3146 TString *entryDiffGFC2PtPOI = new TString("GFC{2} .... ");
3147 TString *entryDiffGFC4PtPOI = new TString("GFC{4} .... ");
3148 TString *entryDiffGFC6PtPOI = new TString("GFC{6} .... ");
3149 TString *entryDiffGFC8PtPOI = new TString("GFC{8} .... ");
3150 TString *entryDiffQC2PtPOI = new TString("QC{2} ..... ");
3151 TString *entryDiffQC4PtPOI = new TString("QC{4} ..... ");
3152 TString *entryDiffQC6PtPOI = new TString("QC{6} ..... ");
3153 TString *entryDiffQC8PtPOI = new TString("QC{8} ..... ");
3154 TString *entryDiffLYZ2SUMPtPOI = new TString("LYZ{sum} .. ");
3155 TString *entryDiffLYZ2PRODPtPOI = new TString("LYZ{prod} . ");
3156 TString *entryDiffLYZEPPtPOI = new TString("LYZEP ..... ");
3159 if(mcepCommonHistRes)
3161 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillStyle(meshStyleDiffFlowPtPOI);
3162 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillColor(meshColorDiffFlowPtPOI);
3163 entryDiffMCPtPOI->Append("M = ");
3164 (*entryDiffMCPtPOI)+=(Long_t)avMultDiffFlowMCPOI;
3165 entryDiffMCPtPOI->Append(", N = ");
3166 (*entryDiffMCPtPOI)+=(Long_t)nEvtsDiffFlowMCPOI;
3167 legendDiffFlowPtPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffMCPtPOI->Data(),"f");
3171 if(plotSPPtPOI && spCommonHistRes)
3173 entryDiffSPPtPOI->Append("M = ");
3174 (*entryDiffSPPtPOI)+=(Long_t)avMultDiffFlowSPPOI;
3175 entryDiffSPPtPOI->Append(", N = ");
3176 (*entryDiffSPPtPOI)+=(Long_t)nEvtsDiffFlowSPPOI;
3177 legendDiffFlowPtPOI->AddEntry(spCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffSPPtPOI->Data(),"p");
3181 if(plotGFC2PtPOI && gfcCommonHistRes2)
3183 entryDiffGFC2PtPOI->Append("M = ");
3184 (*entryDiffGFC2PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3185 entryDiffGFC2PtPOI->Append(", N = ");
3186 (*entryDiffGFC2PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3187 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffGFC2PtPOI->Data(),"p");
3189 if(plotGFC4PtPOI && gfcCommonHistRes4)
3191 entryDiffGFC4PtPOI->Append("M = ");
3192 (*entryDiffGFC4PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3193 entryDiffGFC4PtPOI->Append(", N = ");
3194 (*entryDiffGFC4PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3195 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffGFC4PtPOI->Data(),"p");
3197 if(plotGFC6PtPOI && gfcCommonHistRes6)
3199 entryDiffGFC6PtPOI->Append("M = ");
3200 (*entryDiffGFC6PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3201 entryDiffGFC6PtPOI->Append(", N = ");
3202 (*entryDiffGFC6PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3203 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffGFC6PtPOI->Data(),"p");
3205 if(plotGFC8PtPOI && gfcCommonHistRes8)
3207 entryDiffGFC8PtPOI->Append("M = ");
3208 (*entryDiffGFC8PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3209 entryDiffGFC8PtPOI->Append(", N = ");
3210 (*entryDiffGFC8PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3211 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffGFC8PtPOI->Data(),"p");
3215 if(plotQC2PtPOI && qcCommonHistRes2)
3217 entryDiffQC2PtPOI->Append("M = ");
3218 (*entryDiffQC2PtPOI)+=(Long_t)avMultDiffFlowQC2POI;
3219 entryDiffQC2PtPOI->Append(", N = ");
3220 (*entryDiffQC2PtPOI)+=(Long_t)nEvtsDiffFlowQC2POI;
3221 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffQC2PtPOI->Data(),"p");
3223 if(plotQC4PtPOI && qcCommonHistRes4)
3225 entryDiffQC4PtPOI->Append("M = ");
3226 (*entryDiffQC4PtPOI)+=(Long_t)avMultDiffFlowQC4POI;
3227 entryDiffQC4PtPOI->Append(", N = ");
3228 (*entryDiffQC4PtPOI)+=(Long_t)nEvtsDiffFlowQC4POI;
3229 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffQC4PtPOI->Data(),"p");
3231 if(plotQC6PtPOI && qcCommonHistRes6)
3233 entryDiffQC6PtPOI->Append("M = ");
3234 (*entryDiffQC6PtPOI)+=(Long_t)avMultDiffFlowQC6POI;
3235 entryDiffQC6PtPOI->Append(", N = ");
3236 (*entryDiffQC6PtPOI)+=(Long_t)nEvtsDiffFlowQC6POI;
3237 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffQC6PtPOI->Data(),"p");
3239 if(plotQC8PtPOI && qcCommonHistRes8)
3241 entryDiffQC8PtPOI->Append("M = ");
3242 (*entryDiffQC8PtPOI)+=(Long_t)avMultDiffFlowQC8POI;
3243 entryDiffQC8PtPOI->Append(", N = ");
3244 (*entryDiffQC8PtPOI)+=(Long_t)nEvtsDiffFlowQC8POI;
3245 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffQC8PtPOI->Data(),"p");
3249 if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3251 entryDiffLYZ2SUMPtPOI->Append("M = ");
3252 (*entryDiffLYZ2SUMPtPOI)+=(Long_t)avMultDiffFlowLYZ2SUMPOI;
3253 entryDiffLYZ2SUMPtPOI->Append(", N = ");
3254 (*entryDiffLYZ2SUMPtPOI)+=(Long_t)nEvtsDiffFlowLYZ2SUMPOI;
3255 legendDiffFlowPtPOI->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2SUMPtPOI->Data(),"p");
3259 if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3261 entryDiffLYZ2PRODPtPOI->Append("M = ");
3262 (*entryDiffLYZ2PRODPtPOI)+=(Long_t)avMultDiffFlowLYZ2PRODPOI;
3263 entryDiffLYZ2PRODPtPOI->Append(", N = ");
3264 (*entryDiffLYZ2PRODPtPOI)+=(Long_t)nEvtsDiffFlowLYZ2PRODPOI;
3265 legendDiffFlowPtPOI->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2PRODPtPOI->Data(),"p");
3269 if(plotLYZEPPtPOI && lyzepCommonHistRes)
3271 entryDiffLYZEPPtPOI->Append("M = ");
3272 (*entryDiffLYZEPPtPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
3273 entryDiffLYZEPPtPOI->Append(", N = ");
3274 (*entryDiffLYZEPPtPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI;
3275 legendDiffFlowPtPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZEPPtPOI->Data(),"p");
3278 //drawing finally the legend in the 2nd pad:
3279 if(textDefault) textDefault->Draw();
3281 if(legendDiffFlowPtPOI)
3283 legendDiffFlowPtPOI->SetMargin(0.15);
3284 legendDiffFlowPtPOI->Draw();
3286 }//end of if(plotDiffFlowPtPOI)
3287 //----------------------------------------------------------------------------------
3290 //----------------------------------------------------------------------------------
3291 //final drawing for differential flow (Eta, POI):
3292 if(plotDiffFlowEtaPOI)
3294 TCanvas* diffFlowEtaAllCanvasPOI = new TCanvas("Differential Flow (Eta) of POI","Differential Flow (Eta) of POI ",1000,600);
3296 diffFlowEtaAllCanvasPOI->Divide(2,1);
3298 //1st pad is for plot:
3299 (diffFlowEtaAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3303 (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
3304 styleHistEta->Draw();
3306 if(pMeshDiffFlowEtaPOI)
3308 pMeshDiffFlowEtaPOI->Draw("LFSAME");
3312 if(plotMCEtaPOI && mcepCommonHistRes)
3314 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3317 if(plotSPEtaPOI && spCommonHistRes)
3319 (spCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3322 if(plotGFC2EtaPOI && gfcCommonHistRes2)
3324 (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3326 if(plotGFC4EtaPOI && gfcCommonHistRes4)
3328 (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3330 if(plotGFC6EtaPOI && gfcCommonHistRes6)
3332 (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3334 if(plotGFC8EtaPOI && gfcCommonHistRes8)
3336 (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3339 if(plotQC2EtaPOI && qcCommonHistRes2)
3341 (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3343 if(plotQC4EtaPOI && qcCommonHistRes4)
3345 (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3347 if(plotQC6EtaPOI && qcCommonHistRes6)
3349 //(qcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3351 if(plotQC8EtaPOI && qcCommonHistRes8)
3353 //(qcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3356 if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3358 (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3361 if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3363 (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3366 if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3368 (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3371 //2nd pad is for legend:
3372 (diffFlowEtaAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3374 TLegend* legendDiffFlowEtaPOI = new TLegend(0.02,0.12,0.97,0.70);
3375 legendDiffFlowEtaPOI->SetTextFont(72);
3376 legendDiffFlowEtaPOI->SetTextSize(0.06);
3379 TString *entryDiffMCEtaPOI = new TString("MC ........ ");
3380 TString *entryDiffSPEtaPOI = new TString("SP ........ ");
3381 TString *entryDiffGFC2EtaPOI = new TString("GFC{2} .... ");
3382 TString *entryDiffGFC4EtaPOI = new TString("GFC{4} .... ");
3383 TString *entryDiffGFC6EtaPOI = new TString("GFC{6} .... ");
3384 TString *entryDiffGFC8EtaPOI = new TString("GFC{8} .... ");
3385 TString *entryDiffQC2EtaPOI = new TString("QC{2} ..... ");
3386 TString *entryDiffQC4EtaPOI = new TString("QC{4} ..... ");
3387 TString *entryDiffQC6EtaPOI = new TString("QC{6} ..... ");
3388 TString *entryDiffQC8EtaPOI = new TString("QC{8} ..... ");
3389 TString *entryDiffLYZ2SUMEtaPOI = new TString("LYZ{sum} .. ");
3390 TString *entryDiffLYZ2PRODEtaPOI = new TString("LYZ{prod} . ");
3391 TString *entryDiffLYZEPEtaPOI = new TString("LYZEP ..... ");
3394 if(mcepCommonHistRes)
3396 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillStyle(meshStyleDiffFlowEtaPOI);
3397 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillColor(meshColorDiffFlowEtaPOI);
3398 entryDiffMCEtaPOI->Append("M = ");
3399 (*entryDiffMCEtaPOI)+=(Long_t)avMultDiffFlowMCPOI;
3400 entryDiffMCEtaPOI->Append(", N = ");
3401 (*entryDiffMCEtaPOI)+=(Long_t)nEvtsDiffFlowMCPOI;
3402 legendDiffFlowEtaPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffMCEtaPOI->Data(),"f");
3406 if(plotSPEtaPOI && spCommonHistRes)
3408 entryDiffSPEtaPOI->Append("M = ");
3409 (*entryDiffSPEtaPOI)+=(Long_t)avMultDiffFlowSPPOI;
3410 entryDiffSPEtaPOI->Append(", N = ");
3411 (*entryDiffSPEtaPOI)+=(Long_t)nEvtsDiffFlowSPPOI;
3412 legendDiffFlowEtaPOI->AddEntry(spCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffSPEtaPOI->Data(),"p");
3416 if(plotGFC2EtaPOI && gfcCommonHistRes2)
3418 entryDiffGFC2EtaPOI->Append("M = ");
3419 (*entryDiffGFC2EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3420 entryDiffGFC2EtaPOI->Append(", N = ");
3421 (*entryDiffGFC2EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3422 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffGFC2EtaPOI->Data(),"p");
3424 if(plotGFC4EtaPOI && gfcCommonHistRes4)
3426 entryDiffGFC4EtaPOI->Append("M = ");
3427 (*entryDiffGFC4EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3428 entryDiffGFC4EtaPOI->Append(", N = ");
3429 (*entryDiffGFC4EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3430 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffGFC4EtaPOI->Data(),"p");
3432 if(plotGFC6EtaPOI && gfcCommonHistRes6)
3434 entryDiffGFC6EtaPOI->Append("M = ");
3435 (*entryDiffGFC6EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3436 entryDiffGFC6EtaPOI->Append(", N = ");
3437 (*entryDiffGFC6EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3438 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffGFC6EtaPOI->Data(),"p");
3440 if(plotGFC8EtaPOI && gfcCommonHistRes8)
3442 entryDiffGFC8EtaPOI->Append("M = ");
3443 (*entryDiffGFC8EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3444 entryDiffGFC8EtaPOI->Append(", N = ");
3445 (*entryDiffGFC8EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3446 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffGFC8EtaPOI->Data(),"p");
3450 if(plotQC2EtaPOI && qcCommonHistRes2)
3452 entryDiffQC2EtaPOI->Append("M = ");
3453 (*entryDiffQC2EtaPOI)+=(Long_t)avMultDiffFlowQC2POI;
3454 entryDiffQC2EtaPOI->Append(", N = ");
3455 (*entryDiffQC2EtaPOI)+=(Long_t)nEvtsDiffFlowQC2POI;
3456 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffQC2EtaPOI->Data(),"p");
3458 if(plotQC4EtaPOI && qcCommonHistRes4)
3460 entryDiffQC4EtaPOI->Append("M = ");
3461 (*entryDiffQC4EtaPOI)+=(Long_t)avMultDiffFlowQC4POI;
3462 entryDiffQC4EtaPOI->Append(", N = ");
3463 (*entryDiffQC4EtaPOI)+=(Long_t)nEvtsDiffFlowQC4POI;
3464 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffQC4EtaPOI->Data(),"p");
3466 if(plotQC6EtaPOI && qcCommonHistRes6)
3468 entryDiffQC6EtaPOI->Append("M = ");
3469 (*entryDiffQC6EtaPOI)+=(Long_t)avMultDiffFlowQC6POI;
3470 entryDiffQC6EtaPOI->Append(", N = ");
3471 (*entryDiffQC6EtaPOI)+=(Long_t)nEvtsDiffFlowQC6POI;
3472 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffQC6EtaPOI->Data(),"p");
3474 if(plotQC8EtaPOI && qcCommonHistRes8)
3476 entryDiffQC8EtaPOI->Append("M = ");
3477 (*entryDiffQC8EtaPOI)+=(Long_t)avMultDiffFlowQC8POI;
3478 entryDiffQC8EtaPOI->Append(", N = ");
3479 (*entryDiffQC8EtaPOI)+=(Long_t)nEvtsDiffFlowQC8POI;
3480 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffQC8EtaPOI->Data(),"p");
3484 if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3486 entryDiffLYZ2SUMEtaPOI->Append("M = ");
3487 (*entryDiffLYZ2SUMEtaPOI)+=(Long_t)avMultDiffFlowLYZ2SUMPOI;
3488 entryDiffLYZ2SUMEtaPOI->Append(", N = ");
3489 (*entryDiffLYZ2SUMEtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2SUMPOI;
3490 legendDiffFlowEtaPOI->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2SUMEtaPOI->Data(),"p");
3494 if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3496 entryDiffLYZ2PRODEtaPOI->Append("M = ");
3497 (*entryDiffLYZ2PRODEtaPOI)+=(Long_t)avMultDiffFlowLYZ2PRODPOI;
3498 entryDiffLYZ2PRODEtaPOI->Append(", N = ");
3499 (*entryDiffLYZ2PRODEtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2PRODPOI;
3500 legendDiffFlowEtaPOI->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2PRODEtaPOI->Data(),"p");
3504 if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3506 entryDiffLYZEPEtaPOI->Append("M = ");
3507 (*entryDiffLYZEPEtaPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
3508 entryDiffLYZEPEtaPOI->Append(", N = ");
3509 (*entryDiffLYZEPEtaPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI;
3510 legendDiffFlowEtaPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZEPEtaPOI->Data(),"p");
3513 //drawing finally the legend in the 2nd pad:
3514 if(textDefault) textDefault->Draw();
3516 if(legendDiffFlowEtaPOI)
3518 legendDiffFlowEtaPOI->SetMargin(0.15);
3519 legendDiffFlowEtaPOI->Draw();
3521 }//end of if(plotDiffFlowEtaPOI)
3522 //----------------------------------------------------------------------------------
3525 //=====================================================================================
3530 void LoadPlotLibraries(const libModes mode) {
3532 //--------------------------------------
3533 // Load the needed libraries most of them already loaded by aliroot
3534 //--------------------------------------
3535 //gSystem->Load("libTree");
3536 gSystem->Load("libGeom");
3537 gSystem->Load("libVMC");
3538 gSystem->Load("libXMLIO");
3539 gSystem->Load("libPhysics");
3541 //----------------------------------------------------------
3542 // >>>>>>>>>>> Local mode <<<<<<<<<<<<<<
3543 //----------------------------------------------------------
3545 //--------------------------------------------------------
3546 // If you want to use already compiled libraries
3547 // in the aliroot distribution
3548 //--------------------------------------------------------
3550 //==================================================================================
3551 //load needed libraries:
3552 gSystem->AddIncludePath("-I$ROOTSYS/include");
3553 //gSystem->Load("libTree");
3556 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
3557 gSystem->Load("libANALYSIS");
3558 gSystem->Load("libPWG2flowCommon");
3559 cerr<<"libPWG2flowCommon loaded ..."<<endl;
3563 else if (mode==mLocalSource) {
3565 // In root inline compile
3568 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
3569 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
3570 gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
3573 gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+");
3574 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
3575 gROOT->LoadMacro("AliFlowCommon/AliFlowEvent.cxx+");
3576 gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
3579 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");
3581 // Output histosgrams
3582 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
3583 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
3584 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
3585 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
3587 cout << "finished loading macros!" << endl;