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="ESD",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 //open the output files:
260 TString inputFileNameMCEP = "outputMCEPanalysis";
261 TFile* fileMCEP = NULL;
262 fileMCEP = TFile::Open(((inputFileNameMCEP.Append(type)).Append(".root")).Data(), "READ");
264 TString inputFileNameSP = "outputSPanalysis";
265 TFile* fileSP = NULL;
266 fileSP = TFile::Open(((inputFileNameSP.Append(type)).Append(".root")).Data(), "READ");
268 TString inputFileNameLYZ1SUM = "outputLYZ1SUManalysis";
269 TFile* fileLYZ1SUM = NULL;
270 fileLYZ1SUM = TFile::Open(((inputFileNameLYZ1SUM.Append(type)).Append(".root")).Data(), "READ");
272 TString inputFileNameLYZ2SUM = "outputLYZ2SUManalysis";
273 TFile* fileLYZ2SUM = NULL;
274 fileLYZ2SUM = TFile::Open(((inputFileNameLYZ2SUM.Append(type)).Append(".root")).Data(), "READ");
276 TString inputFileNameLYZ1PROD = "outputLYZ1PRODanalysis";
277 TFile* fileLYZ1PROD = NULL;
278 fileLYZ1PROD = TFile::Open(((inputFileNameLYZ1PROD.Append(type)).Append(".root")).Data(), "READ");
280 TString inputFileNameLYZ2PROD = "outputLYZ2PRODanalysis";
281 TFile* fileLYZ2PROD = NULL;
282 fileLYZ2PROD = TFile::Open(((inputFileNameLYZ2PROD.Append(type)).Append(".root")).Data(), "READ");
284 TString inputFileNameLYZEP = "outputLYZEPanalysis";
285 TFile* fileLYZEP = NULL;
286 fileLYZEP = TFile::Open(((inputFileNameLYZEP.Append(type)).Append(".root")).Data(), "READ");
288 TString inputFileNameFQD = "outputFQDanalysis";
289 TFile* fileFQD = NULL;
290 fileFQD = TFile::Open(((inputFileNameFQD.Append(type)).Append(".root")).Data(), "READ");
292 TString inputFileNameGFC = "outputGFCanalysis";
293 TFile* fileGFC = NULL;
294 fileGFC = TFile::Open(((inputFileNameGFC.Append(type)).Append(".root")).Data(), "READ");
296 TString inputFileNameQC = "outputQCanalysis";
297 TFile* fileQC = NULL;
298 fileQC = TFile::Open(((inputFileNameQC.Append(type)).Append(".root")).Data(), "READ");
299 //==================================================================================
304 //==================================================================================
306 //==================================================================================
307 //removing the title and stat. box from all histograms:
308 gStyle->SetOptTitle(0);
309 gStyle->SetOptStat(0);
311 // plot for 'no-name' integrated flow:
312 // choosing the style and color of mesh for MC error bands
313 Int_t meshStyle = 1001;
314 Int_t meshColor = kGray;
316 // marker style and color
317 Int_t markerStyle = 21;
318 Int_t markerColor = kBlack;
320 // plot for RP's integrated flow:
321 // choosing the style and color of mesh for MC error bands
322 Int_t meshStyleRP = 1001;
323 Int_t meshColorRP = kRed-10;
325 // marker style and color
326 Int_t markerStyleRP = 21;
327 Int_t markerColorRP = kRed-3;
329 // plot for POI's integrated flow:
330 // choosing the style and color of mesh for MC error bands
331 Int_t meshStylePOI = 1001;
332 Int_t meshColorPOI = kBlue-10;
334 // marker style and color
335 Int_t markerStylePOI = 21;
336 Int_t markerColorPOI = kBlue-3;
338 // choosing the style and color of mesh for MC error bands in the plots for diff. flow
339 // plot for differential flow (Pt,RP):
340 Int_t meshStyleDiffFlowPtRP = 1001;
341 Int_t meshColorDiffFlowPtRP = kRed-10;
343 // plot for differential flow (Eta,RP):
344 Int_t meshStyleDiffFlowEtaRP = 1001;
345 Int_t meshColorDiffFlowEtaRP = kRed-10;
347 // plot for differential flow (Pt,POI):
348 Int_t meshStyleDiffFlowPtPOI = 1001;
349 Int_t meshColorDiffFlowPtPOI = kRed-10;
351 // plot for differential flow (Eta,POI):
352 Int_t meshStyleDiffFlowEtaPOI = 1001;
353 Int_t meshColorDiffFlowEtaPOI = kRed-10;
354 //==================================================================================
359 //==================================================================================
360 // INTEGRATED FLOW (no-name, RP and POI)
361 //==================================================================================
362 // the number of different methods:
363 const Int_t nMethods=14;
365 // booking the histogram for the integrated flow results from all methods:
366 TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods);
367 // intFlowAll->SetLabelSize(0.036,"X");
368 // intFlowAll->SetLabelSize(0.036,"Y");
369 intFlowAll->SetMarkerStyle(markerStyle);
370 intFlowAll->SetMarkerColor(markerColor);
371 (intFlowAll->GetXaxis())->SetBinLabel(binMC,"v_{2}{MC}");
372 (intFlowAll->GetXaxis())->SetBinLabel(binSP,"v_{2}{SP}");
373 (intFlowAll->GetXaxis())->SetBinLabel(binGFC2,"v_{2}{2,GFC}");
374 (intFlowAll->GetXaxis())->SetBinLabel(binQC2,"v_{2}{2,QC}");
375 (intFlowAll->GetXaxis())->SetBinLabel(binGFC4,"v_{2}{4,GFC}");
376 (intFlowAll->GetXaxis())->SetBinLabel(binQC4,"v_{2}{4,QC}");
377 (intFlowAll->GetXaxis())->SetBinLabel(binGFC6,"v_{2}{6,GFC}");
378 (intFlowAll->GetXaxis())->SetBinLabel(binQC6,"v_{2}{6,QC}");
379 (intFlowAll->GetXaxis())->SetBinLabel(binGFC8,"v_{2}{8,GFC}");
380 (intFlowAll->GetXaxis())->SetBinLabel(binQC8,"v_{2}{8,QC}");
381 (intFlowAll->GetXaxis())->SetBinLabel(binFQD,"v_{2}{FQD}");
382 (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1SUM,"v_{2}{LYZ,sum}");
383 (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1PROD,"v_{2}{LYZ,prod}");
384 (intFlowAll->GetXaxis())->SetBinLabel(binLYZEP,"v_{2}{LYZEP}");
386 // booking the graph to store flow values and errors from all methods:
387 Double_t x[nMethods] = {0.};
388 for(Int_t i=0;i<nMethods;i++)
392 Double_t xError[nMethods] = {0.};
393 Double_t flowValue[nMethods] = {0.};
394 Double_t flowError[nMethods] = {0.};
395 Double_t flowValueRP[nMethods] = {0.};
396 Double_t flowErrorRP[nMethods] = {0.};
397 Double_t flowValuePOI[nMethods] = {0.};
398 Double_t flowErrorPOI[nMethods] = {0.};
400 // accessing the results for integrated flow for each method:
401 // MCEP = Monte Carlo Event Plane
402 TList *pListMCEP = NULL;
403 AliFlowCommonHist *mcepCommonHist = NULL;
404 AliFlowCommonHistResults *mcepCommonHistRes = NULL;
406 fileMCEP->GetObject("cobjMCEP",pListMCEP);
408 mcepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListMCEP->FindObject("AliFlowCommonHistMCEP"));
409 mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListMCEP->FindObject("AliFlowCommonHistResultsMCEP"));
410 if(mcepCommonHistRes) {
411 flowValue[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
412 flowError[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1);
413 flowValueRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
414 flowErrorRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
415 flowValuePOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
416 flowErrorPOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
421 // SP = Scalar Product
422 TList *pListSP = NULL;
423 AliFlowCommonHist *spCommonHist = NULL;
424 AliFlowCommonHistResults *spCommonHistRes = NULL;
426 fileSP->GetObject("cobjSP",pListSP);
428 spCommonHist = dynamic_cast<AliFlowCommonHist*> (pListSP->FindObject("AliFlowCommonHistSP"));
429 spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListSP->FindObject("AliFlowCommonHistResultsSP"));
430 if(spCommonHistRes) {
431 flowValue[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1);
432 flowError[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinError(1);
433 flowValueRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
434 flowErrorRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
435 flowValuePOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
436 flowErrorPOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
441 // LYZ1SUM = Lee-Yang Zeros (1st run, sum) is used to get only 'no-name' integrated flow
442 TList *pListLYZ1SUM = NULL;
443 AliFlowCommonHist *lyz1sumCommonHist = NULL;
444 AliFlowCommonHistResults *lyz1sumCommonHistRes = NULL;
446 fileLYZ1SUM->GetObject("cobjLYZ1SUM",pListLYZ1SUM);
448 lyz1sumCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1SUM->FindObject("AliFlowCommonHistLYZ1SUM"));
449 lyz1sumCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1SUM->FindObject("AliFlowCommonHistResultsLYZ1SUM"));
450 if(lyz1sumCommonHistRes) {
451 flowValue[binLYZ1SUM-1] = (lyz1sumCommonHistRes->GetHistIntFlow())->GetBinContent(1);
452 flowError[binLYZ1SUM-1] = (lyz1sumCommonHistRes->GetHistIntFlow())->GetBinError(1);
457 // LYZ2SUM = Lee-Yang Zeros (2nd run, sum) is used to get RP's and POI's integrated flow
458 TList *pListLYZ2SUM = NULL;
459 AliFlowCommonHist *lyz2sumCommonHist = NULL;
460 AliFlowCommonHistResults *lyz2sumCommonHistRes = NULL;
462 fileLYZ2SUM->GetObject("cobjLYZ2SUM",pListLYZ2SUM);
464 lyz2sumCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2SUM->FindObject("AliFlowCommonHistLYZ2SUM"));
465 lyz2sumCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2SUM->FindObject("AliFlowCommonHistResultsLYZ2SUM"));
466 if(lyz2sumCommonHistRes) {
467 flowValueRP[binLYZ2SUMRP-1] = (lyz2sumCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
468 flowErrorRP[binLYZ2SUMRP-1] = (lyz2sumCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
469 flowValuePOI[binLYZ2SUMPOI-1] = (lyz2sumCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
470 flowErrorPOI[binLYZ2SUMPOI-1] = (lyz2sumCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
475 // LYZ1PROD = Lee-Yang Zeros (1st run, product) is used to get only 'no-name' integrated flow
476 TList *pListLYZ1PROD = NULL;
477 AliFlowCommonHist *lyz1prodCommonHist = NULL;
478 AliFlowCommonHistResults *lyz1prodCommonHistRes = NULL;
480 fileLYZ1PROD->GetObject("cobjLYZ1PROD",pListLYZ1PROD);
482 lyz1prodCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1PROD->FindObject("AliFlowCommonHistLYZ1PROD"));
483 lyz1prodCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1PROD->FindObject("AliFlowCommonHistResultsLYZ1PROD"));
484 if(lyz1prodCommonHistRes) {
485 flowValue[binLYZ1PROD-1] = (lyz1prodCommonHistRes->GetHistIntFlow())->GetBinContent(1);
486 flowError[binLYZ1PROD-1] = (lyz1prodCommonHistRes->GetHistIntFlow())->GetBinError(1);
491 // LYZ2PROD = Lee-Yang Zeros (2nd run, product) is used to get RP's and POI's integrated flow
492 TList *pListLYZ2PROD = NULL;
493 AliFlowCommonHist *lyz2prodCommonHist = NULL;
494 AliFlowCommonHistResults *lyz2prodCommonHistRes = NULL;
496 fileLYZ2PROD->GetObject("cobjLYZ2PROD",pListLYZ2PROD);
498 lyz2prodCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2PROD->FindObject("AliFlowCommonHistLYZ2PROD"));
499 lyz2prodCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2PROD->FindObject("AliFlowCommonHistResultsLYZ2PROD"));
500 if(lyz2prodCommonHistRes) {
501 flowValueRP[binLYZ2PRODRP-1] = (lyz2prodCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
502 flowErrorRP[binLYZ2PRODRP-1] = (lyz2prodCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
503 flowValuePOI[binLYZ2PRODPOI-1] = (lyz2prodCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
504 flowErrorPOI[binLYZ2PRODPOI-1] = (lyz2prodCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
509 // LYZEP = Lee-Yang Zeros Event Plane
510 TList *pListLYZEP = NULL;
511 AliFlowCommonHist *lyzepCommonHist = NULL;
512 AliFlowCommonHistResults *lyzepCommonHistRes = NULL;
514 fileLYZEP->GetObject("cobjLYZEP",pListLYZEP);
516 lyzepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZEP->FindObject("AliFlowCommonHistLYZEP"));
517 lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZEP->FindObject("AliFlowCommonHistResultsLYZEP"));
518 if(lyzepCommonHistRes) {
519 flowValue[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
520 flowError[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinError(1);
521 flowValueRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
522 flowErrorRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
523 flowValuePOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
524 flowErrorPOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
529 // FQD = Fitting q-distribution
530 TList *pListFQD = NULL;
531 AliFlowCommonHist *fqdCommonHist = NULL;
532 AliFlowCommonHistResults *fqdCommonHistRes = NULL;
534 fileFQD->GetObject("cobjFQD",pListFQD);
536 fqdCommonHist = dynamic_cast<AliFlowCommonHist*> (pListFQD->FindObject("AliFlowCommonHistFQD"));
537 fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListFQD->FindObject("AliFlowCommonHistResultsFQD"));
538 if(fqdCommonHistRes) {
539 flowValue[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1);
540 flowError[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1);
541 //flowValueRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
542 //flowErrorRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
543 //flowValuePOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
544 //flowErrorPOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
549 // GFC = Generating Function Cumulants
550 TList *pListGFC = NULL;
551 AliFlowCommonHist *gfcCommonHist = NULL;
552 AliFlowCommonHistResults *gfcCommonHistRes2 = NULL;
553 AliFlowCommonHistResults *gfcCommonHistRes4 = NULL;
554 AliFlowCommonHistResults *gfcCommonHistRes6 = NULL;
555 AliFlowCommonHistResults *gfcCommonHistRes8 = NULL;
557 fileGFC->GetObject("cobjGFC",pListGFC);
559 gfcCommonHist = dynamic_cast<AliFlowCommonHist*> (pListGFC->FindObject("AliFlowCommonHistGFC"));
560 gfcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC"));
561 if(gfcCommonHistRes2) {
562 flowValue[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
563 flowError[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
564 flowValueRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
565 flowErrorRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
566 flowValuePOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
567 flowErrorPOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
569 gfcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults4thOrderGFC"));
570 if(gfcCommonHistRes4) {
571 flowValue[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
572 flowError[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
573 flowValueRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
574 flowErrorRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
575 flowValuePOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
576 flowErrorPOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
578 gfcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults6thOrderGFC"));
579 if(gfcCommonHistRes6) {
580 flowValue[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
581 flowError[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
582 flowValueRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
583 flowErrorRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
584 flowValuePOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
585 flowErrorPOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
587 gfcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults8thOrderGFC"));
588 if(gfcCommonHistRes8) {
589 flowValue[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
590 flowError[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
591 flowValueRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
592 flowErrorRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
593 flowValuePOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
594 flowErrorPOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
600 TList *pListQC = NULL;
601 AliFlowCommonHist *qcCommonHist2 = NULL;
602 AliFlowCommonHist *qcCommonHist4 = NULL;
603 AliFlowCommonHist *qcCommonHist6 = NULL;
604 AliFlowCommonHist *qcCommonHist8 = NULL;
605 AliFlowCommonHistResults *qcCommonHistRes2 = NULL;
606 AliFlowCommonHistResults *qcCommonHistRes4 = NULL;
607 AliFlowCommonHistResults *qcCommonHistRes6 = NULL;
608 AliFlowCommonHistResults *qcCommonHistRes8 = NULL;
611 fileQC->GetObject("cobjQC",pListQC);
613 qcCommonHist2 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist2ndOrderQC"));
614 qcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults2ndOrderQC"));
615 if(qcCommonHistRes2) {
616 flowValue[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
617 flowError[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
618 flowValueRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
619 //flowErrorRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
620 flowValuePOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
621 //flowErrorPOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
623 qcCommonHist4 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist4thOrderQC"));
624 qcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults4thOrderQC"));
625 if(qcCommonHistRes4) {
626 flowValue[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
627 flowError[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
628 flowValueRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
629 //flowErrorRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
630 flowValuePOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
631 //flowErrorPOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
633 qcCommonHist6 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist6thOrderQC"));
634 qcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults6thOrderQC"));
635 if(qcCommonHistRes6) {
636 flowValue[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
637 flowError[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
638 flowValueRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
639 //flowErrorRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
640 flowValuePOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
641 //flowErrorPOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
643 qcCommonHist8 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist8thOrderQC"));
644 qcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults8thOrderQC"));
645 if(qcCommonHistRes8) {
646 flowValue[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
647 //flowError[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
648 flowValueRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
649 //flowErrorRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
650 flowValuePOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
651 //flowErrorPOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
656 // ranges on y-axis for 'no-name' plot:
657 Double_t dMax=flowValue[binMC-1]+flowError[binMC-1];
658 Double_t dMin=flowValue[binMC-1]-flowError[binMC-1];
660 for(Int_t i=1;i<nMethods;i++) {
661 if(!(flowValue[i]==0. && flowError[i]==0.)) {
662 if(dMax<flowValue[i]+flowError[i]) dMax=flowValue[i]+flowError[i];
663 if(dMin>flowValue[i]-flowError[i]) dMin=flowValue[i]-flowError[i];
667 // ranges on y-axis for RP plot:
668 Double_t dMaxRP=flowValueRP[binMCRP-1]+flowErrorRP[binMCRP-1];
669 Double_t dMinRP=flowValueRP[binMCRP-1]-flowErrorRP[binMCRP-1];
671 for(Int_t i=1;i<nMethods;i++) {
672 if(!(flowValueRP[i]==0. && flowErrorRP[i]==0.)) {
673 if(dMaxRP<flowValueRP[i]+flowErrorRP[i]) dMaxRP=flowValueRP[i]+flowErrorRP[i];
674 if(dMinRP>flowValueRP[i]-flowErrorRP[i]) dMinRP=flowValueRP[i]-flowErrorRP[i];
678 // ranges on y-axis for POI plot:
679 Double_t dMaxPOI=flowValuePOI[binMCPOI-1]+flowErrorPOI[binMCPOI-1];
680 Double_t dMinPOI=flowValuePOI[binMCPOI-1]-flowErrorPOI[binMCPOI-1];
682 for(Int_t i=1;i<nMethods;i++) {
683 if(!(flowValuePOI[i]==0. && flowErrorPOI[i]==0.)) {
684 if(dMaxPOI<flowValuePOI[i]+flowErrorPOI[i]) dMaxPOI=flowValuePOI[i]+flowErrorPOI[i];
685 if(dMinPOI>flowValuePOI[i]-flowErrorPOI[i]) dMinPOI=flowValuePOI[i]-flowErrorPOI[i];
690 TGraph* flowResults = new TGraphErrors(nMethods, x, flowValue, xError, flowError);
691 flowResults->SetMarkerStyle(markerStyle);
692 flowResults->SetMarkerColor(markerColor);
695 TGraph* flowResultsRP = new TGraphErrors(nMethods, x, flowValueRP, xError, flowErrorRP);
696 flowResultsRP->SetMarkerStyle(markerStyleRP);
697 flowResultsRP->SetMarkerColor(markerColorRP);
700 TGraph* flowResultsPOI = new TGraphErrors(nMethods, x, flowValuePOI, xError, flowErrorPOI);
701 flowResultsPOI->SetMarkerStyle(markerStylePOI);
702 flowResultsPOI->SetMarkerColor(markerColorPOI);
704 // for plot |v{MC}-v{method}/v{MC}|
705 // no-name, RP and POI
706 Double_t flowRelativeToMC[nMethods] = {0.};
707 Double_t flowRelativeToMCError[nMethods] = {0.};
708 Double_t flowRelativeToMCRP[nMethods] = {0.};
709 Double_t flowRelativeToMCErrorRP[nMethods] = {0.};
710 Double_t flowRelativeToMCPOI[nMethods] = {0.};
711 Double_t flowRelativeToMCErrorPOI[nMethods] = {0.};
712 flowRelativeToMC[0] = 0.; // MC relative to itself (to be improved)
713 flowRelativeToMCRP[0] = 0.; // MC relative to itself (to be improved)
714 flowRelativeToMCPOI[0] = 0.; // MC relative to itself (to be improved)
715 for(Int_t i=1;i<nMethods;i++)
717 if(flowValue[0] != 0)
719 if(flowValue[i] != 0) flowRelativeToMC[i] = (flowValue[i]-flowValue[0])/(flowValue[0]);
720 if(flowError[i] != 0) flowRelativeToMCError[i] = flowError[i]/flowValue[0];
722 if(flowValueRP[0] != 0)
724 if(flowValueRP[i] != 0) flowRelativeToMCRP[i] = (flowValueRP[i]-flowValueRP[0])/(flowValueRP[0]);
725 if(flowErrorRP[i] != 0) flowRelativeToMCErrorRP[i] = flowErrorRP[i]/flowValueRP[0];
727 if(flowValuePOI[0] != 0)
729 if(flowValuePOI[i] != 0) flowRelativeToMCPOI[i] = (flowValuePOI[i]-flowValuePOI[0])/(flowValuePOI[0]);
730 if(flowErrorPOI[i] != 0) flowRelativeToMCErrorPOI[i] = flowErrorPOI[i]/flowValuePOI[0];
732 } // for(Int_t i=1;i<nMethods;i++)
734 // integrated flow (no-name) relative to MC:
735 TGraph* flowResultsRelativeToMC = new TGraphErrors(nMethods, x, flowRelativeToMC, xError, flowRelativeToMCError);
736 flowResultsRelativeToMC->SetMarkerStyle(markerStyle);
737 flowResultsRelativeToMC->SetMarkerColor(markerColor);
739 // integrated flow (RP) relative to MC:
740 TGraph* flowResultsRelativeToMCRP = new TGraphErrors(nMethods, x, flowRelativeToMCRP, xError, flowRelativeToMCErrorRP);
741 flowResultsRelativeToMCRP->SetMarkerStyle(markerStyleRP);
742 flowResultsRelativeToMCRP->SetMarkerColor(markerColorRP);
744 // integrated flow (POI) relative to MC:
745 TGraph* flowResultsRelativeToMCPOI = new TGraphErrors(nMethods, x, flowRelativeToMCPOI, xError, flowRelativeToMCErrorPOI);
746 flowResultsRelativeToMCPOI->SetMarkerStyle(markerStylePOI);
747 flowResultsRelativeToMCPOI->SetMarkerColor(markerColorPOI);
748 //-----------------------------------------------------------------------------------
750 //----------------------------------------------------------------------------------
751 // cosmetics: mesh for MC error bands (integrated flow)
752 TGraph* pMesh = NULL;
753 TGraph* pMeshRP = NULL;
754 TGraph* pMeshPOI = NULL;
756 if(intFlowAll && mcepCommonHistRes) {
757 Int_t nPts = nMethods;
758 Double_t valueMC = flowValue[binMC-1];
759 Double_t errorMC = flowError[binMC-1];
760 Double_t valueMCRP = flowValueRP[binMCRP-1];
761 Double_t errorMCRP = flowErrorRP[binMCRP-1];
762 Double_t valueMCPOI = flowValuePOI[binMCPOI-1];
763 Double_t errorMCPOI = flowErrorPOI[binMCPOI-1];
765 pMesh = new TGraph(nPts);
766 pMeshRP = new TGraph(nPts);
767 pMeshPOI = new TGraph(nPts);
770 pMesh->SetPoint(1,0,valueMC+errorMC);
771 pMesh->SetPoint(2,nPts+1,valueMC+errorMC);
772 pMesh->SetPoint(3,nPts+1,valueMC-errorMC);
773 pMesh->SetPoint(4,0,valueMC-errorMC);
774 pMesh->SetPoint(5,0,valueMC+errorMC);
775 pMesh->SetFillStyle(meshStyle);
776 pMesh->SetFillColor(meshColor);
779 pMeshRP->SetPoint(1,0,valueMCRP+errorMCRP);
780 pMeshRP->SetPoint(2,nPts+1,valueMCRP+errorMCRP);
781 pMeshRP->SetPoint(3,nPts+1,valueMCRP-errorMCRP);
782 pMeshRP->SetPoint(4,0,valueMCRP-errorMCRP);
783 pMeshRP->SetPoint(5,0,valueMCRP+errorMCRP);
784 pMeshRP->SetFillStyle(meshStyleRP);
785 pMeshRP->SetFillColor(meshColorRP);
788 pMeshPOI->SetPoint(1,0,valueMCPOI+errorMCPOI);
789 pMeshPOI->SetPoint(2,nPts+1,valueMCPOI+errorMCPOI);
790 pMeshPOI->SetPoint(3,nPts+1,valueMCPOI-errorMCPOI);
791 pMeshPOI->SetPoint(4,0,valueMCPOI-errorMCPOI);
792 pMeshPOI->SetPoint(5,0,valueMCPOI+errorMCPOI);
793 pMeshPOI->SetFillStyle(meshStylePOI);
794 pMeshPOI->SetFillColor(meshColorPOI);
796 //----------------------------------------------------------------------------------
799 //----------------------------------------------------------------------------------
800 //cosmetics: text (integrated flow)
802 TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC");
803 textDefault->SetTextFont(72);
804 textDefault->SetTextSize(0.08);
806 TString *entryDefaultAvM = new TString("Average Multiplicity");
807 TString *entryDefaultAnd = new TString("and");
808 TString *entryDefaultNumOfEvts = new TString("Number of Events:");
810 textDefault->AddText(entryDefaultAvM->Data());
811 textDefault->AddText(entryDefaultAnd->Data());
812 textDefault->AddText(entryDefaultNumOfEvts->Data());
814 // results (no-name):
815 TPaveText *textResults = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
816 textResults->SetTextFont(72);
817 textResults->SetTextSize(0.06);
820 TPaveText *textResultsRP = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
821 textResultsRP->SetTextFont(72);
822 textResultsRP->SetTextSize(0.06);
825 TPaveText *textResultsPOI = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
826 textResultsPOI->SetTextFont(72);
827 textResultsPOI->SetTextSize(0.06);
830 TString *entryMC = new TString("MC ........ ");
831 TString *entrySP = new TString("SP ........ ");
832 TString *entryGFC = new TString("GFC ....... ");
833 TString *entryQC2 = new TString("QC{2} ..... ");
834 TString *entryQC4 = new TString("QC{4} ..... ");
835 TString *entryQC6 = new TString("QC{6} ..... ");
836 TString *entryQC8 = new TString("QC{8} ..... ");
837 TString *entryFQD = new TString("FQD ....... ");
838 TString *entryLYZ1SUM = new TString("LYZ{sum} .. ");
839 TString *entryLYZ1PROD = new TString("LYZ{prod} . ");
840 TString *entryLYZEP = new TString("LYZEP ..... ");
843 TString *entryMCRP = new TString("MC ........ ");
844 TString *entrySPRP = new TString("SP ........ ");
845 TString *entryGFCRP = new TString("GFC ....... ");
846 TString *entryQC2RP = new TString("QC{2} ..... ");
847 TString *entryQC4RP = new TString("QC{4} ..... ");
848 TString *entryQC6RP = new TString("QC{6} ..... ");
849 TString *entryQC8RP = new TString("QC{8} ..... ");
850 TString *entryFQDRP = new TString("FQD ....... ");
851 TString *entryLYZ1SUMRP = new TString("LYZ{sum} .. ");
852 TString *entryLYZ1PRODRP = new TString("LYZ{prod} . ");
853 TString *entryLYZEPRP = new TString("LYZEP ..... ");
856 TString *entryMCPOI = new TString("MC ........ ");
857 TString *entrySPPOI = new TString("SP ........ ");
858 TString *entryGFCPOI = new TString("GFC ....... ");
859 TString *entryQC2POI = new TString("QC{2} ..... ");
860 TString *entryQC4POI = new TString("QC{4} ..... ");
861 TString *entryQC6POI = new TString("QC{6} ..... ");
862 TString *entryQC8POI = new TString("QC{8} ..... ");
863 TString *entryFQDPOI = new TString("FQD ....... ");
864 TString *entryLYZ1SUMPOI = new TString("LYZ{sum} .. ");
865 TString *entryLYZ1PRODPOI = new TString("LYZ{prod} . ");
866 TString *entryLYZEPPOI = new TString("LYZEP ..... ");
869 Double_t avMultMC=0.;
871 Double_t avMultSP=0.;
873 Double_t avMultGFC=0.;
875 Double_t avMultQC2=0., avMultQC4=0., avMultQC6=0., avMultQC8=0.;
876 Long_t nEvtsQC2=0, nEvtsQC4=0, nEvtsQC6=0, nEvtsQC8=0;
877 Double_t avMultFQD=0.;
879 Double_t avMultLYZ1SUM=0.;
880 Long_t nEvtsLYZ1SUM=0;
881 Double_t avMultLYZ1PROD=0.;
882 Long_t nEvtsLYZ1PROD=0;
883 Double_t avMultLYZEP=0.;
887 Double_t avMultMCRP=0.;
889 Double_t avMultSPRP=0.;
891 Double_t avMultGFCRP=0.;
893 Double_t avMultQC2RP=0., avMultQC4RP=0., avMultQC6RP=0., avMultQC8RP=0.;
894 Long_t nEvtsQC2RP=0, nEvtsQC4RP=0, nEvtsQC6RP=0, nEvtsQC8RP=0;
895 Double_t avMultFQDRP=0.;
897 Double_t avMultLYZ1SUMRP=0.;
898 Long_t nEvtsLYZ1SUMRP=0;
899 Double_t avMultLYZ1PRODRP=0.;
900 Long_t nEvtsLYZ1PRODRP=0;
901 Double_t avMultLYZEPRP=0.;
902 Long_t nEvtsLYZEPRP=0;
905 Double_t avMultMCPOI=0.;
907 Double_t avMultSPPOI=0.;
909 Double_t avMultGFCPOI=0.;
910 Long_t nEvtsGFCPOI=0;
911 Double_t avMultQC2POI=0., avMultQC4POI=0., avMultQC6POI=0., avMultQC8POI=0.;
912 Long_t nEvtsQC2POI=0, nEvtsQC4POI=0, nEvtsQC6POI=0, nEvtsQC8POI=0;
913 Double_t avMultFQDPOI=0.;
914 Long_t nEvtsFQDPOI=0;
915 Double_t avMultLYZ1SUMPOI=0.;
916 Long_t nEvtsLYZ1SUMPOI=0;
917 Double_t avMultLYZ1PRODPOI=0.;
918 Long_t nEvtsLYZ1PRODPOI=0;
919 Double_t avMultLYZEPPOI=0.;
920 Long_t nEvtsLYZEPPOI=0;
924 avMultMC = (mcepCommonHist->GetHistMultRP())->GetMean();
925 nEvtsMC = (mcepCommonHist->GetHistMultRP())->GetEntries();
926 avMultMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
927 nEvtsMCRP = (mcepCommonHist->GetHistMultRP())->GetEntries();
928 avMultMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
929 nEvtsMCPOI = (mcepCommonHist->GetHistMultPOI())->GetEntries();
933 entryMC->Append("M = ");
934 (*entryMC)+=(Long_t)avMultMC;
935 entryMC->Append(", N = ");
936 (*entryMC)+=(Long_t)nEvtsMC;
940 entryMCRP->Append("M = ");
941 (*entryMCRP)+=(Long_t)avMultMCRP;
942 entryMCRP->Append(", N = ");
943 (*entryMCRP)+=(Long_t)nEvtsMCRP;
947 entryMCPOI->Append("M = ");
948 (*entryMCPOI)+=(Long_t)avMultMCPOI;
949 entryMCPOI->Append(", N = ");
950 (*entryMCPOI)+=(Long_t)nEvtsMCPOI;
955 avMultSP = (spCommonHist->GetHistMultRP())->GetMean();
956 nEvtsSP = (spCommonHist->GetHistMultRP())->GetEntries();
957 avMultSPRP = (spCommonHist->GetHistMultRP())->GetMean();
958 nEvtsSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
959 avMultSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
960 nEvtsSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();
964 entrySP->Append("M = ");
965 (*entrySP)+=(Long_t)avMultSP;
966 entrySP->Append(", N = ");
967 (*entrySP)+=(Long_t)nEvtsSP;
971 entrySPRP->Append("M = ");
972 (*entrySPRP)+=(Long_t)avMultSPRP;
973 entrySPRP->Append(", N = ");
974 (*entrySPRP)+=(Long_t)nEvtsSPRP;
978 entrySPPOI->Append("M = ");
979 (*entrySPPOI)+=(Long_t)avMultSPPOI;
980 entrySPPOI->Append(", N = ");
981 (*entrySPPOI)+=(Long_t)nEvtsSPPOI;
986 avMultGFC = (gfcCommonHist->GetHistMultRP())->GetMean();
987 nEvtsGFC = (gfcCommonHist->GetHistMultRP())->GetEntries();
988 avMultGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();
989 nEvtsGFCRP = (gfcCommonHist->GetHistMultRP())->GetEntries();
990 avMultGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
991 nEvtsGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetEntries();
995 entryGFC->Append("M = ");
996 (*entryGFC)+=(Long_t)avMultGFC;
997 entryGFC->Append(", N = ");
998 (*entryGFC)+=(Long_t)nEvtsGFC;
1002 entryGFCRP->Append("M = ");
1003 (*entryGFCRP)+=(Long_t)avMultGFCRP;
1004 entryGFCRP->Append(", N = ");
1005 (*entryGFCRP)+=(Long_t)nEvtsGFCRP;
1008 entryGFCPOI->Append("M = ");
1009 (*entryGFCPOI)+=(Long_t)avMultGFCPOI;
1010 entryGFCPOI->Append(", N = ");
1011 (*entryGFCPOI)+=(Long_t)nEvtsGFCPOI;
1016 avMultQC2 = (qcCommonHist2->GetHistMultRP())->GetMean();
1017 nEvtsQC2 = (qcCommonHist2->GetHistMultRP())->GetEntries();
1018 avMultQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
1019 nEvtsQC2RP = (qcCommonHist2->GetHistMultRP())->GetEntries();
1020 avMultQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
1021 nEvtsQC2POI = (qcCommonHist2->GetHistMultPOI())->GetEntries();
1026 entryQC2->Append("M = ");
1027 (*entryQC2)+=(Long_t)avMultQC2;
1028 entryQC2->Append(", N = ");
1029 (*entryQC2)+=(Long_t)nEvtsQC2;
1034 entryQC2RP->Append("M = ");
1035 (*entryQC2RP)+=(Long_t)avMultQC2RP;
1036 entryQC2RP->Append(", N = ");
1037 (*entryQC2RP)+=(Long_t)nEvtsQC2RP;
1042 entryQC2POI->Append("M = ");
1043 (*entryQC2POI)+=(Long_t)avMultQC2POI;
1044 entryQC2POI->Append(", N = ");
1045 (*entryQC2POI)+=(Long_t)nEvtsQC2POI;
1050 avMultQC4 = (qcCommonHist4->GetHistMultRP())->GetMean();
1051 nEvtsQC4 = (qcCommonHist4->GetHistMultRP())->GetEntries();
1052 avMultQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
1053 nEvtsQC4RP = (qcCommonHist4->GetHistMultRP())->GetEntries();
1054 avMultQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
1055 nEvtsQC4POI = (qcCommonHist4->GetHistMultPOI())->GetEntries();
1060 entryQC4->Append("M = ");
1061 (*entryQC4)+=(Long_t)avMultQC4;
1062 entryQC4->Append(", N = ");
1063 (*entryQC4)+=(Long_t)nEvtsQC4;
1068 entryQC4RP->Append("M = ");
1069 (*entryQC4RP)+=(Long_t)avMultQC4RP;
1070 entryQC4RP->Append(", N = ");
1071 (*entryQC4RP)+=(Long_t)nEvtsQC4RP;
1076 entryQC4POI->Append("M = ");
1077 (*entryQC4POI)+=(Long_t)avMultQC4POI;
1078 entryQC4POI->Append(", N = ");
1079 (*entryQC4POI)+=(Long_t)nEvtsQC4POI;
1084 avMultQC6 = (qcCommonHist6->GetHistMultRP())->GetMean();
1085 nEvtsQC6 = (qcCommonHist6->GetHistMultRP())->GetEntries();
1086 avMultQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
1087 nEvtsQC6RP = (qcCommonHist6->GetHistMultRP())->GetEntries();
1088 avMultQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
1089 nEvtsQC6POI = (qcCommonHist6->GetHistMultPOI())->GetEntries();
1094 entryQC6->Append("M = ");
1095 (*entryQC6)+=(Long_t)avMultQC6;
1096 entryQC6->Append(", N = ");
1097 (*entryQC6)+=(Long_t)nEvtsQC6;
1102 entryQC6RP->Append("M = ");
1103 (*entryQC6RP)+=(Long_t)avMultQC6RP;
1104 entryQC6RP->Append(", N = ");
1105 (*entryQC6RP)+=(Long_t)nEvtsQC6RP;
1110 entryQC6POI->Append("M = ");
1111 (*entryQC6POI)+=(Long_t)avMultQC6POI;
1112 entryQC6POI->Append(", N = ");
1113 (*entryQC6POI)+=(Long_t)nEvtsQC6POI;
1118 avMultQC8 = (qcCommonHist8->GetHistMultRP())->GetMean();
1119 nEvtsQC8 = (qcCommonHist8->GetHistMultRP())->GetEntries();
1120 avMultQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
1121 nEvtsQC8RP = (qcCommonHist8->GetHistMultRP())->GetEntries();
1122 avMultQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
1123 nEvtsQC8POI = (qcCommonHist8->GetHistMultPOI())->GetEntries();
1128 entryQC8->Append("M = ");
1129 (*entryQC8)+=(Long_t)avMultQC8;
1130 entryQC8->Append(", N = ");
1131 (*entryQC8)+=(Long_t)nEvtsQC8;
1136 entryQC8RP->Append("M = ");
1137 (*entryQC8RP)+=(Long_t)avMultQC8RP;
1138 entryQC8RP->Append(", N = ");
1139 (*entryQC8RP)+=(Long_t)nEvtsQC8RP;
1144 entryQC8POI->Append("M = ");
1145 (*entryQC8POI)+=(Long_t)avMultQC8POI;
1146 entryQC8POI->Append(", N = ");
1147 (*entryQC8POI)+=(Long_t)nEvtsQC8POI;
1153 avMultFQD = (fqdCommonHist->GetHistMultRP())->GetMean();
1154 nEvtsFQD = (fqdCommonHist->GetHistMultRP())->GetEntries();
1155 avMultFQDRP = (fqdCommonHist->GetHistMultRP())->GetMean();
1156 nEvtsFQDRP = (fqdCommonHist->GetHistMultRP())->GetEntries();
1157 avMultFQDPOI = (fqdCommonHist->GetHistMultPOI())->GetMean();
1158 nEvtsFQDPOI = (fqdCommonHist->GetHistMultPOI())->GetEntries();
1163 entryFQD->Append("M = ");
1164 (*entryFQD)+=(Long_t)avMultFQD;
1165 entryFQD->Append(", N = ");
1166 (*entryFQD)+=(Long_t)nEvtsFQD;
1171 entryFQDRP->Append("M = ");
1172 (*entryFQDRP)+=(Long_t)avMultFQDRP;
1173 entryFQDRP->Append(", N = ");
1174 (*entryFQDRP)+=(Long_t)nEvtsFQDRP;
1179 entryFQDPOI->Append("M = ");
1180 (*entryFQDPOI)+=(Long_t)avMultFQDPOI;
1181 entryFQDPOI->Append(", N = ");
1182 (*entryFQDPOI)+=(Long_t)nEvtsFQDPOI;
1186 if(lyz1sumCommonHist)
1188 avMultLYZ1SUM = (lyz1sumCommonHist->GetHistMultRP())->GetMean();
1189 nEvtsLYZ1SUM = (lyz1sumCommonHist->GetHistMultRP())->GetEntries();
1190 avMultLYZ1SUMRP = (lyz1sumCommonHist->GetHistMultRP())->GetMean();
1191 nEvtsLYZ1SUMRP = (lyz1sumCommonHist->GetHistMultRP())->GetEntries();
1192 avMultLYZ1SUMPOI = (lyz1sumCommonHist->GetHistMultPOI())->GetMean();
1193 nEvtsLYZ1SUMPOI = (lyz1sumCommonHist->GetHistMultPOI())->GetEntries();
1198 entryLYZ1SUM->Append("M = ");
1199 (*entryLYZ1SUM)+=(Long_t)avMultLYZ1SUM;
1200 entryLYZ1SUM->Append(", N = ");
1201 (*entryLYZ1SUM)+=(Long_t)nEvtsLYZ1SUM;
1206 entryLYZ1SUMRP->Append("M = ");
1207 (*entryLYZ1SUMRP)+=(Long_t)avMultLYZ1SUMRP;
1208 entryLYZ1SUMRP->Append(", N = ");
1209 (*entryLYZ1SUMRP)+=(Long_t)nEvtsLYZ1SUMRP;
1214 entryLYZ1SUMPOI->Append("M = ");
1215 (*entryLYZ1SUMPOI)+=(Long_t)avMultLYZ1SUMPOI;
1216 entryLYZ1SUMPOI->Append(", N = ");
1217 (*entryLYZ1SUMPOI)+=(Long_t)nEvtsLYZ1SUMPOI;
1221 if(lyz1prodCommonHist)
1223 avMultLYZ1PROD = (lyz1prodCommonHist->GetHistMultRP())->GetMean();
1224 nEvtsLYZ1PROD = (lyz1prodCommonHist->GetHistMultRP())->GetEntries();
1225 avMultLYZ1PRODRP = (lyz1prodCommonHist->GetHistMultRP())->GetMean();
1226 nEvtsLYZ1PRODRP = (lyz1prodCommonHist->GetHistMultRP())->GetEntries();
1227 avMultLYZ1PRODPOI = (lyz1prodCommonHist->GetHistMultPOI())->GetMean();
1228 nEvtsLYZ1PRODPOI = (lyz1prodCommonHist->GetHistMultPOI())->GetEntries();
1233 entryLYZ1PROD->Append("M = ");
1234 (*entryLYZ1PROD)+=(Long_t)avMultLYZ1PROD;
1235 entryLYZ1PROD->Append(", N = ");
1236 (*entryLYZ1PROD)+=(Long_t)nEvtsLYZ1PROD;
1241 entryLYZ1PRODRP->Append("M = ");
1242 (*entryLYZ1PRODRP)+=(Long_t)avMultLYZ1PRODRP;
1243 entryLYZ1PRODRP->Append(", N = ");
1244 (*entryLYZ1PRODRP)+=(Long_t)nEvtsLYZ1PRODRP;
1247 if(entryLYZ1PRODPOI)
1249 entryLYZ1PRODPOI->Append("M = ");
1250 (*entryLYZ1PRODPOI)+=(Long_t)avMultLYZ1PRODPOI;
1251 entryLYZ1PRODPOI->Append(", N = ");
1252 (*entryLYZ1PRODPOI)+=(Long_t)nEvtsLYZ1PRODPOI;
1258 avMultLYZEP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1259 nEvtsLYZEP = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1260 avMultLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1261 nEvtsLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1262 avMultLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
1263 nEvtsLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
1269 entryLYZEP->Append("M = ");
1270 (*entryLYZEP)+=(Long_t)avMultLYZEP;
1271 entryLYZEP->Append(", N = ");
1272 (*entryLYZEP)+=(Long_t)nEvtsLYZEP;
1277 entryLYZEPRP->Append("M = ");
1278 (*entryLYZEPRP)+=(Long_t)avMultLYZEPRP;
1279 entryLYZEPRP->Append(", N = ");
1280 (*entryLYZEPRP)+=(Long_t)nEvtsLYZEPRP;
1285 entryLYZEPPOI->Append("M = ");
1286 (*entryLYZEPPOI)+=(Long_t)avMultLYZEPPOI;
1287 entryLYZEPPOI->Append(", N = ");
1288 (*entryLYZEPPOI)+=(Long_t)nEvtsLYZEPPOI;
1294 textResults->AddText(entryMC->Data());
1295 textResults->AddText(entrySP->Data());
1296 textResults->AddText(entryGFC->Data());
1297 textResults->AddText(entryQC2->Data());
1298 textResults->AddText(entryQC4->Data());
1299 textResults->AddText(entryQC6->Data());
1300 textResults->AddText(entryQC8->Data());
1301 textResults->AddText(entryFQD->Data());
1302 textResults->AddText(entryLYZ1SUM->Data());
1303 textResults->AddText(entryLYZ1PROD->Data());
1304 textResults->AddText(entryLYZEP->Data());
1310 textResultsRP->AddText(entryMCRP->Data());
1311 textResultsRP->AddText(entrySPRP->Data());
1312 textResultsRP->AddText(entryGFCRP->Data());
1313 textResultsRP->AddText(entryQC2RP->Data());
1314 textResultsRP->AddText(entryQC4RP->Data());
1315 textResultsRP->AddText(entryQC6RP->Data());
1316 textResultsRP->AddText(entryQC8RP->Data());
1317 textResultsRP->AddText(entryFQDRP->Data());
1318 textResultsRP->AddText(entryLYZ1SUMRP->Data());
1319 textResultsRP->AddText(entryLYZ1PRODRP->Data());
1320 textResultsRP->AddText(entryLYZEPRP->Data());
1326 textResultsPOI->AddText(entryMCPOI->Data());
1327 textResultsPOI->AddText(entrySPPOI->Data());
1328 textResultsPOI->AddText(entryGFCPOI->Data());
1329 textResultsPOI->AddText(entryQC2POI->Data());
1330 textResultsPOI->AddText(entryQC4POI->Data());
1331 textResultsPOI->AddText(entryQC6POI->Data());
1332 textResultsPOI->AddText(entryQC8POI->Data());
1333 textResultsPOI->AddText(entryFQDPOI->Data());
1334 textResultsPOI->AddText(entryLYZ1SUMPOI->Data());
1335 textResultsPOI->AddText(entryLYZ1PRODPOI->Data());
1336 textResultsPOI->AddText(entryLYZEPPOI->Data());
1338 //----------------------------------------------------------------------------------
1341 //----------------------------------------------------------------------------------
1342 // final drawing for integrated flow (no-name):
1345 TCanvas* intFlowAllCanvas = new TCanvas("Integrated Flow","Integrated Flow",1000,600);
1347 if(plotLegendIntFlow)
1349 intFlowAllCanvas->Divide(2,1);
1350 // 1st pad is for plot:
1351 (intFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1356 if(dMin>0. && dMax>0.)
1358 (intFlowAll->GetYaxis())->SetRangeUser(0.9744*dMin,1.0144*dMax);
1359 } else if(dMin<0. && dMax>0.)
1361 if(!(-1.*dMin<4.*dMax))
1363 (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,1.0144*dMax);
1364 } else {(intFlowAll->GetYaxis())->SetRangeUser(1.1266*dMin,1.0144*dMax);}
1365 } else if(dMin<0. && dMax<0.)
1367 (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,0.9866*dMax);
1369 intFlowAll->Draw("E1");
1372 if(pMesh) pMesh->Draw("LFSAME");
1374 if(flowResults) flowResults->Draw("PSAME");
1376 // 2nd pad is for legend:
1377 if(plotLegendIntFlow)
1379 (intFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1381 if(textDefault) textDefault->Draw();
1383 if(textResults) textResults->Draw();
1386 }// end of if(plotIntFlow)
1387 //----------------------------------------------------------------------------------
1390 //----------------------------------------------------------------------------------
1391 // final drawing for integrated flow relative to MC (no-name):
1392 if(plotIntFlowRelativeToMC)
1394 TCanvas* intFlowAllRelativeToMCCanvas = new TCanvas("Integrated Flow Relative To MC","Integrated Flow Relative To MC",1000,600);
1396 intFlowAllRelativeToMCCanvas->Divide(2,1);
1398 // 1st pad is for plot:
1399 (intFlowAllRelativeToMCCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1401 TH1D *intFlowAllRelativeToMC = new TH1D(*intFlowAll);
1402 (intFlowAllRelativeToMC->GetYaxis())->SetRangeUser(-1,1);
1403 (intFlowAllRelativeToMC->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1404 intFlowAllRelativeToMC->Draw("E1");
1406 if(flowResultsRelativeToMC) flowResultsRelativeToMC->Draw("PSAME");
1408 // 2nd pad is for legend:
1409 (intFlowAllRelativeToMCCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1411 if(textDefault) textDefault->Draw();
1413 if(textResults) textResults->Draw();
1415 }// end of if(plotIntFlowRelativeToMC)
1416 //----------------------------------------------------------------------------------
1419 //----------------------------------------------------------------------------------
1420 //final drawing for integrated flow of RP (i.e. of particles used to determine the reaction plane):
1423 TCanvas* intFlowAllCanvasRP = new TCanvas("Integrated Flow RP","Integrated Flow RP",1000,600);
1425 if(plotLegendIntFlow)
1427 intFlowAllCanvasRP->Divide(2,1);
1429 //1st pad is for plot:
1430 (intFlowAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1433 TH1D *intFlowAllRP = new TH1D(*intFlowAll);
1434 intFlowAllRP->SetMarkerStyle(markerStyleRP);
1435 intFlowAllRP->SetMarkerColor(markerColorRP);
1436 (intFlowAllRP->GetXaxis())->SetBinLabel(binMCRP,"v_{2}{MC}");
1437 (intFlowAllRP->GetXaxis())->SetBinLabel(binSPRP,"v_{2}{SP}");
1438 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC2RP,"v_{2}{2,GFC}");
1439 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC2RP,"v_{2}{2,QC}");
1440 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC4RP,"v_{2}{4,GFC}");
1441 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC4RP,"v_{2}{4,QC}");
1442 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC6RP,"v_{2}{6,GFC}");
1443 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC6RP,"v_{2}{6,QC}");
1444 (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC8RP,"v_{2}{8,GFC}");
1445 (intFlowAllRP->GetXaxis())->SetBinLabel(binQC8RP,"v_{2}{8,QC}");
1446 (intFlowAllRP->GetXaxis())->SetBinLabel(binFQDRP,"v_{2}{FQD}");
1447 (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2SUMRP,"v_{2}{LYZ,sum}");
1448 (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2PRODRP,"v_{2}{LYZ,prod}");
1449 (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZEPRP,"v_{2}{LYZEP}");
1453 if(dMinRP>0. && dMaxRP>0.)
1455 (intFlowAllRP->GetYaxis())->SetRangeUser(0.9744*dMinRP,1.0144*dMaxRP);
1456 } else if(dMinRP<0. && dMaxRP>0.)
1458 if(!(-1.*dMinRP<4.*dMaxRP))
1460 (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,1.0144*dMaxRP);
1461 } else {(intFlowAllRP->GetYaxis())->SetRangeUser(1.1266*dMinRP,1.0144*dMaxRP);}
1462 } else if(dMinRP<0. && dMaxRP<0.)
1464 (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,0.9866*dMaxRP);
1466 intFlowAllRP->Draw("E1");
1469 if(pMeshRP) pMeshRP->Draw("LFSAME");
1471 if(flowResultsRP) flowResultsRP->Draw("PSAME");
1473 if(plotLegendIntFlow)
1475 //2nd pad is for legend:
1476 (intFlowAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1478 if(textDefault) textDefault->Draw();
1480 if(textResultsRP) textResultsRP->Draw();
1483 }//end of if(plotIntFlowRP}
1484 //----------------------------------------------------------------------------------
1487 //----------------------------------------------------------------------------------
1488 // final drawing for integrated flow relative to MC (RP):
1489 if(plotIntFlowRelativeToMCRP)
1491 TCanvas* intFlowAllRelativeToMCRPCanvas = new TCanvas("Integrated Flow (RP) Relative To MC","Integrated Flow (RP) Relative To MC",1000,600);
1493 intFlowAllRelativeToMCRPCanvas->Divide(2,1);
1495 // 1st pad is for plot:
1496 (intFlowAllRelativeToMCRPCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1498 TH1D *intFlowAllRelativeToMCRP = new TH1D(*intFlowAll);
1499 (intFlowAllRelativeToMCRP->GetYaxis())->SetRangeUser(-1,1);
1500 (intFlowAllRelativeToMCRP->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1501 intFlowAllRelativeToMCRP->Draw("E1");
1503 if(flowResultsRelativeToMCRP) flowResultsRelativeToMCRP->Draw("PSAME");
1505 // 2nd pad is for legend:
1506 (intFlowAllRelativeToMCRPCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1508 if(textDefault) textDefault->Draw();
1510 if(textResultsRP) textResultsRP->Draw();
1512 }// end of if(plotIntFlowRelativeToMCRP)
1513 //----------------------------------------------------------------------------------
1516 //----------------------------------------------------------------------------------
1517 //final drawing for integrated flow of POI (i.e. of particles of interest):
1520 TCanvas* intFlowAllCanvasPOI = new TCanvas("Integrated Flow POI","Integrated Flow POI",1000,600);
1522 if(plotLegendIntFlow)
1524 intFlowAllCanvasPOI->Divide(2,1);
1526 //1st pad is for plot:
1527 (intFlowAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1530 TH1D *intFlowAllPOI = new TH1D(*intFlowAll);
1531 intFlowAllPOI->SetMarkerStyle(markerStylePOI);
1532 intFlowAllPOI->SetMarkerColor(markerColorPOI);
1533 (intFlowAllPOI->GetXaxis())->SetBinLabel(binMCPOI,"v_{2}{MC}");
1534 (intFlowAllPOI->GetXaxis())->SetBinLabel(binSPPOI,"v_{2}{SP}");
1535 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC2POI,"v_{2}{2,GFC}");
1536 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC2POI,"v_{2}{2,QC}");
1537 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC4POI,"v_{2}{4,GFC}");
1538 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC4POI,"v_{2}{4,QC}");
1539 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC6POI,"v_{2}{6,GFC}");
1540 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC6POI,"v_{2}{6,QC}");
1541 (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC8POI,"v_{2}{8,GFC}");
1542 (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC8POI,"v_{2}{8,QC}");
1543 (intFlowAllPOI->GetXaxis())->SetBinLabel(binFQDPOI,"v_{2}{FQD}");
1544 (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2SUMPOI,"v_{2}{LYZ,sum}");
1545 (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2PRODPOI,"v_{2}{LYZ,prod}");
1546 (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZEPPOI,"v_{2}{LYZEP}");
1550 if(dMinPOI>0. && dMaxPOI>0.)
1552 (intFlowAllPOI->GetYaxis())->SetRangeUser(0.9744*dMinPOI,1.0144*dMaxPOI);
1553 } else if(dMinPOI<0. && dMaxPOI>0.)
1555 if(!(-1.*dMinPOI<4.*dMaxPOI))
1557 (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,1.0144*dMaxPOI);
1558 } else {(intFlowAllPOI->GetYaxis())->SetRangeUser(1.1266*dMinPOI,1.0144*dMaxPOI);}
1559 } else if(dMinPOI<0. && dMaxPOI<0.)
1561 (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,0.9866*dMaxPOI);
1563 intFlowAllPOI->Draw("E1");
1566 if(pMeshPOI) pMeshPOI->Draw("LFSAME");
1568 if(flowResultsPOI) flowResultsPOI->Draw("PSAME");
1570 if(plotLegendIntFlow)
1572 //2nd pad is for legend:
1573 (intFlowAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1575 if(textDefault) textDefault->Draw();
1577 if(textResultsPOI) textResultsPOI->Draw();
1580 }// end of if(plotIntFlowPOI)
1581 //----------------------------------------------------------------------------------
1584 //----------------------------------------------------------------------------------
1585 // final drawing for integrated flow relative to MC (POI):
1586 if(plotIntFlowRelativeToMCPOI)
1588 TCanvas* intFlowAllRelativeToMCPOICanvas = new TCanvas("Integrated Flow (POI) Relative To MC","Integrated Flow (POI) Relative To MC",1000,600);
1590 intFlowAllRelativeToMCPOICanvas->Divide(2,1);
1592 // 1st pad is for plot:
1593 (intFlowAllRelativeToMCPOICanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1595 TH1D *intFlowAllRelativeToMCPOI = new TH1D(*intFlowAll);
1596 (intFlowAllRelativeToMCPOI->GetYaxis())->SetRangeUser(-1,1);
1597 (intFlowAllRelativeToMCPOI->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1598 intFlowAllRelativeToMCPOI->Draw("E1");
1600 if(flowResultsRelativeToMCPOI) flowResultsRelativeToMCPOI->Draw("PSAME");
1602 // 2nd pad is for legend:
1603 (intFlowAllRelativeToMCPOICanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1605 if(textDefault) textDefault->Draw();
1607 if(textResultsPOI) textResultsPOI->Draw();
1609 }// end of if(plotIntFlowRelativeToMCPOI)
1610 //----------------------------------------------------------------------------------
1612 //==================================================================================
1617 //==================================================================================
1618 // DIFFERENTIAL FLOW
1619 //==================================================================================
1620 Int_t iNbinsPt = AliFlowCommonConstants::GetNbinsPt();
1621 Double_t dPtMin = AliFlowCommonConstants::GetPtMin();
1622 Double_t dPtMax = AliFlowCommonConstants::GetPtMax();
1624 Int_t iNbinsEta = AliFlowCommonConstants::GetNbinsEta();
1625 Double_t dEtaMin = AliFlowCommonConstants::GetEtaMin();
1626 Double_t dEtaMax = AliFlowCommonConstants::GetEtaMax();
1628 //----------------------------------------------------------------------------------
1629 //cosmetics: the style histogram for differential flow (pt):
1630 TH1D *styleHistPt = new TH1D("styleHistPt","styleHistPt",iNbinsPt,dPtMin,dPtMax);
1631 styleHistPt->SetTitle("Differential Flow");
1632 styleHistPt->SetXTitle("p_{t} [GeV]");
1633 styleHistPt->SetYTitle("v_{n}");
1635 //cosmetics: the style histogram for differential flow (eta):
1636 TH1D *styleHistEta = new TH1D("styleHistEta","styleHistEta",iNbinsEta,dEtaMin,dEtaMax);
1637 styleHistEta->SetTitle("Differential Flow");
1638 styleHistEta->SetXTitle("#eta");
1639 styleHistEta->SetYTitle("v_{n}");
1640 //----------------------------------------------------------------------------------
1644 //----------------------------------------------------------------------------------
1646 //cosmetics: Monte Carlo error bands for differential flow (Pt)
1647 TGraph* pMeshDiffFlowPtRP = NULL;
1648 if(mcepCommonHistRes)
1650 Int_t nBinsDiffFlowPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetNbinsX();
1651 Double_t binWidthPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinWidth(1);//assuming that all bins have the same width
1653 //counting the non-empty bins:
1654 Int_t nNonEmptyBinsDiffFlowPtRP=0;
1655 for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1657 if(!(mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i)==0.0))
1659 nNonEmptyBinsDiffFlowPtRP++;
1663 pMeshDiffFlowPtRP = new TGraph(2*nNonEmptyBinsDiffFlowPtRP+1);
1665 Double_t valueMCPtRP=0.,errorMCPtRP=0.;
1666 Int_t countDiffFlowPtRP=1;
1667 Double_t xFirstDiffFlowPtRP=0.,yUpFirstDiffFlowPtRP=0.;//needed to close up the mesh
1668 for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1670 //setting up the upper limit of the mesh:
1671 valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(i);
1672 errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i);
1673 if(!(errorMCPtRP==0.0))
1675 pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(i-0.5)*binWidthPtRP+dPtMin,valueMCPtRP+errorMCPtRP);
1676 if(xFirstDiffFlowPtRP==0.)
1678 xFirstDiffFlowPtRP=(i-0.5)*binWidthPtRP+dPtMin;
1679 yUpFirstDiffFlowPtRP=valueMCPtRP+errorMCPtRP;
1683 for(Int_t i=nBinsDiffFlowPtRP+1;i<2*nBinsDiffFlowPtRP+1;i++)
1685 //setting up the lower limit of the mesh:
1686 valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(2*nBinsDiffFlowPtRP+1-i);
1687 errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(2*nBinsDiffFlowPtRP+1-i);
1688 if(!(errorMCPtRP==0.0))
1690 pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(2*nBinsDiffFlowPtRP-i+0.5)*binWidthPtRP+dPtMin,valueMCPtRP-errorMCPtRP);
1693 //closing the mesh area:
1694 pMeshDiffFlowPtRP->SetPoint(2*nNonEmptyBinsDiffFlowPtRP+1,xFirstDiffFlowPtRP,yUpFirstDiffFlowPtRP);
1696 //setting the mesh style and color:
1697 pMeshDiffFlowPtRP->SetFillStyle(meshStyleDiffFlowPtRP);
1698 pMeshDiffFlowPtRP->SetFillColor(meshColorDiffFlowPtRP);
1701 //cosmetics: Monte Carlo error bands for differential flow (Eta)
1702 TGraph* pMeshDiffFlowEtaRP = NULL;
1703 if(mcepCommonHistRes)
1705 Int_t nBinsDiffFlowEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetNbinsX();
1706 Double_t binWidthEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinWidth(1);//assuming that all bins have the same width
1708 //counting the non-empty bins:
1709 Int_t nNonEmptyBinsDiffFlowEtaRP=0;
1710 for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1712 if(!(mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i)==0.0))
1714 nNonEmptyBinsDiffFlowEtaRP++;
1718 pMeshDiffFlowEtaRP = new TGraph(2*nNonEmptyBinsDiffFlowEtaRP+1);
1720 Double_t valueMCEtaRP=0.,errorMCEtaRP=0.;
1721 Int_t countDiffFlowEtaRP=1;
1722 Double_t xFirstDiffFlowEtaRP=0.,yUpFirstDiffFlowEtaRP=0.;//needed to close up the mesh
1723 for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1725 //setting up the upper limit of the mesh:
1726 valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(i);
1727 errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i);
1728 if(!(errorMCEtaRP==0.0))
1730 pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(i-0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP+errorMCEtaRP);
1731 if(xFirstDiffFlowEtaRP==0.)
1733 xFirstDiffFlowEtaRP=(i-0.5)*binWidthEtaRP+dEtaMin;
1734 yUpFirstDiffFlowEtaRP=valueMCEtaRP+errorMCEtaRP;
1738 for(Int_t i=nBinsDiffFlowEtaRP+1;i<2*nBinsDiffFlowEtaRP+1;i++)
1740 //setting up the lower limit of the mesh:
1741 valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(2*nBinsDiffFlowEtaRP+1-i);
1742 errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(2*nBinsDiffFlowEtaRP+1-i);
1743 if(!(errorMCEtaRP==0.0))
1745 pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(2*nBinsDiffFlowEtaRP-i+0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP-errorMCEtaRP);
1748 //closing the mesh area:
1749 pMeshDiffFlowEtaRP->SetPoint(2*nNonEmptyBinsDiffFlowEtaRP+1,xFirstDiffFlowEtaRP,yUpFirstDiffFlowEtaRP);
1751 //setting the mesh style and color:
1752 pMeshDiffFlowEtaRP->SetFillStyle(meshStyleDiffFlowEtaRP);
1753 pMeshDiffFlowEtaRP->SetFillColor(meshColorDiffFlowEtaRP);
1755 //----------------------------------------------------------------------------------
1760 //----------------------------------------------------------------------------------
1762 //cosmetics: Monte Carlo error bands for differential flow (Pt)
1763 TGraph* pMeshDiffFlowPtPOI = NULL;
1764 if(mcepCommonHistRes)
1766 Int_t nBinsDiffFlowPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetNbinsX();
1767 Double_t binWidthPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinWidth(1);//assuming that all bins have the same width
1769 //counting the non-empty bins:
1770 Int_t nNonEmptyBinsDiffFlowPtPOI=0;
1771 for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1773 if(!(mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i)==0.0))
1775 nNonEmptyBinsDiffFlowPtPOI++;
1779 pMeshDiffFlowPtPOI = new TGraph(2*nNonEmptyBinsDiffFlowPtPOI+1);
1781 Double_t valueMCPtPOI=0.,errorMCPtPOI=0.;
1782 Int_t countDiffFlowPtPOI=1;
1783 Double_t xFirstDiffFlowPtPOI=0.,yUpFirstDiffFlowPtPOI=0.;//needed to close up the mesh
1784 for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1786 //setting up the upper limit of the mesh:
1787 valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(i);
1788 errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i);
1789 if(!(errorMCPtPOI==0.0))
1791 pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(i-0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI+errorMCPtPOI);
1792 if(xFirstDiffFlowPtPOI==0.)
1794 xFirstDiffFlowPtPOI=(i-0.5)*binWidthPtPOI+dPtMin;
1795 yUpFirstDiffFlowPtPOI=valueMCPtPOI+errorMCPtPOI;
1799 for(Int_t i=nBinsDiffFlowPtPOI+1;i<2*nBinsDiffFlowPtPOI+1;i++)
1801 //setting up the lower limit of the mesh:
1802 valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(2*nBinsDiffFlowPtPOI+1-i);
1803 errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(2*nBinsDiffFlowPtPOI+1-i);
1804 if(!(errorMCPtPOI==0.0))
1806 pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(2*nBinsDiffFlowPtPOI-i+0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI-errorMCPtPOI);
1809 //closing the mesh area:
1810 pMeshDiffFlowPtPOI->SetPoint(2*nNonEmptyBinsDiffFlowPtPOI+1,xFirstDiffFlowPtPOI,yUpFirstDiffFlowPtPOI);
1812 //setting the mesh style and color:
1813 pMeshDiffFlowPtPOI->SetFillStyle(meshStyleDiffFlowPtPOI);
1814 pMeshDiffFlowPtPOI->SetFillColor(meshColorDiffFlowPtPOI);
1817 //cosmetics: Monte Carlo error bands for differential flow (Eta)
1818 TGraph* pMeshDiffFlowEtaPOI = NULL;
1819 if(mcepCommonHistRes)
1821 Int_t nBinsDiffFlowEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetNbinsX();
1822 Double_t binWidthEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinWidth(1);//assuming that all bins have the same width
1824 //counting the non-empty bins:
1825 Int_t nNonEmptyBinsDiffFlowEtaPOI=0;
1826 for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1828 if(!(mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i)==0.0))
1830 nNonEmptyBinsDiffFlowEtaPOI++;
1834 pMeshDiffFlowEtaPOI = new TGraph(2*nNonEmptyBinsDiffFlowEtaPOI+1);
1836 Double_t valueMCEtaPOI=0.,errorMCEtaPOI=0.;
1837 Int_t countDiffFlowEtaPOI=1;
1838 Double_t xFirstDiffFlowEtaPOI=0.,yUpFirstDiffFlowEtaPOI=0.;//needed to close up the mesh
1839 for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1841 //setting up the upper limit of the mesh:
1842 valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(i);
1843 errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i);
1844 if(!(errorMCEtaPOI==0.0))
1846 pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(i-0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI+errorMCEtaPOI);
1847 if(xFirstDiffFlowEtaPOI==0.)
1849 xFirstDiffFlowEtaPOI=(i-0.5)*binWidthEtaPOI+dEtaMin;
1850 yUpFirstDiffFlowEtaPOI=valueMCEtaPOI+errorMCEtaPOI;
1854 for(Int_t i=nBinsDiffFlowEtaPOI+1;i<2*nBinsDiffFlowEtaPOI+1;i++)
1856 //setting up the lower limit of the mesh:
1857 valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(2*nBinsDiffFlowEtaPOI+1-i);
1858 errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(2*nBinsDiffFlowEtaPOI+1-i);
1859 if(!(errorMCEtaPOI==0.0))
1861 pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(2*nBinsDiffFlowEtaPOI-i+0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI-errorMCEtaPOI);
1864 //closing the mesh area:
1865 pMeshDiffFlowEtaPOI->SetPoint(2*nNonEmptyBinsDiffFlowEtaPOI+1,xFirstDiffFlowEtaPOI,yUpFirstDiffFlowEtaPOI);
1867 //setting the mesh style and color:
1868 pMeshDiffFlowEtaPOI->SetFillStyle(meshStyleDiffFlowEtaPOI);
1869 pMeshDiffFlowEtaPOI->SetFillColor(meshColorDiffFlowEtaPOI);
1871 //----------------------------------------------------------------------------------
1873 //MCEP = Monte Carlo Event Plane
1874 Double_t avMultDiffFlowMCRP=0.;
1875 Double_t nEvtsDiffFlowMCRP=0;
1876 Double_t avMultDiffFlowMCPOI=0.;
1877 Double_t nEvtsDiffFlowMCPOI=0;
1880 if(mcepCommonHistRes)
1882 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorMC);
1883 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleMC);
1884 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorMC);
1885 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleMC);
1886 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorMC);
1887 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleMC);
1888 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorMC);
1889 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleMC);
1893 avMultDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
1894 nEvtsDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetEntries();
1895 avMultDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
1896 nEvtsDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetEntries();
1900 //SP = Scalar Product
1901 Double_t avMultDiffFlowSPRP=0.;
1902 Double_t nEvtsDiffFlowSPRP=0;
1903 Double_t avMultDiffFlowSPPOI=0.;
1904 Double_t nEvtsDiffFlowSPPOI=0;
1909 (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorSP);
1910 (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleSP);
1911 (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorSP);
1912 (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleSP);
1913 (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorSP);
1914 (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleSP);
1915 (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorSP);
1916 (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleSP);
1920 avMultDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetMean();
1921 nEvtsDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
1922 avMultDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
1923 nEvtsDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();
1927 //GFC = Generating Function Cumulants
1928 Double_t avMultDiffFlowGFC=0.;//to be removed
1929 Double_t nEvtsDiffFlowGFC=0.;//to be removed
1930 Double_t avMultDiffFlowGFCRP=0.;
1931 Double_t nEvtsDiffFlowGFCRP=0.;
1932 Double_t avMultDiffFlowGFCPOI=0.;
1933 Double_t nEvtsDiffFlowGFCPOI=0.;
1936 if(gfcCommonHistRes2)
1938 (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC2);
1939 (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC2);
1940 (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC2);
1941 (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC2);
1942 (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC2);
1943 (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC2);
1944 (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC2);
1945 (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC2);
1947 if(gfcCommonHistRes4)
1949 (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC4);
1950 (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC4);
1951 (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC4);
1952 (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC4);
1953 (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC4);
1954 (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC4);
1955 (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC4);
1956 (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC4);
1958 if(gfcCommonHistRes6)
1960 (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC6);
1961 (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC6);
1962 (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC6);
1963 (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC6);
1964 (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC6);
1965 (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC6);
1966 (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC6);
1967 (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC6);
1969 if(gfcCommonHistRes8)
1971 (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC8);
1972 (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC8);
1973 (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC8);
1974 (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC8);
1975 (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC8);
1976 (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC8);
1977 (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC8);
1978 (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC8);
1982 avMultDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();
1983 nEvtsDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetEntries();
1984 avMultDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
1985 nEvtsDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetEntries();
1990 Double_t avMultDiffFlowQC2RP=0.;
1991 Double_t nEvtsDiffFlowQC2RP=0.;
1992 Double_t avMultDiffFlowQC2POI=0.;
1993 Double_t nEvtsDiffFlowQC2POI=0.;
1994 Double_t avMultDiffFlowQC4RP=0.;
1995 Double_t nEvtsDiffFlowQC4RP=0.;
1996 Double_t avMultDiffFlowQC4POI=0.;
1997 Double_t nEvtsDiffFlowQC4POI=0.;
1998 Double_t avMultDiffFlowQC6RP=0.;
1999 Double_t nEvtsDiffFlowQC6RP=0.;
2000 Double_t avMultDiffFlowQC6POI=0.;
2001 Double_t nEvtsDiffFlowQC6POI=0.;
2002 Double_t avMultDiffFlowQC8RP=0.;
2003 Double_t nEvtsDiffFlowQC8RP=0.;
2004 Double_t avMultDiffFlowQC8POI=0.;
2005 Double_t nEvtsDiffFlowQC8POI=0.;
2010 if(qcCommonHistRes2)
2012 (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC2);
2013 (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC2);
2014 (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC2);
2015 (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC2);
2016 (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC2);
2017 (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC2);
2018 (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC2);
2019 (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC2);
2023 avMultDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
2024 nEvtsDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetEntries();
2025 avMultDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
2026 nEvtsDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetEntries();
2029 if(qcCommonHistRes4)
2031 (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC4);
2032 (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC4);
2033 (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC4);
2034 (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC4);
2035 (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC4);
2036 (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC4);
2037 (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC4);
2038 (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC4);
2042 avMultDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
2043 nEvtsDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetEntries();
2044 avMultDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
2045 nEvtsDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetEntries();
2048 if(qcCommonHistRes6)
2050 (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC6);
2051 (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC6);
2052 (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC6);
2053 (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC6);
2054 (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC6);
2055 (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC6);
2056 (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC6);
2057 (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC6);
2061 avMultDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
2062 nEvtsDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetEntries();
2063 avMultDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
2064 nEvtsDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetEntries();
2067 if(qcCommonHistRes8)
2069 (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC8);
2070 (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC8);
2071 (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC8);
2072 (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC8);
2073 (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC8);
2074 (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC8);
2075 (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC8);
2076 (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC8);
2080 avMultDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
2081 nEvtsDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetEntries();
2082 avMultDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
2083 nEvtsDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetEntries();
2087 //LYZ2SUM = Lee-Yang Zeros (2nd run, sum)
2088 Double_t avMultDiffFlowLYZ2SUMRP=0.;
2089 Double_t nEvtsDiffFlowLYZ2SUMRP=0;
2090 Double_t avMultDiffFlowLYZ2SUMPOI=0.;
2091 Double_t nEvtsDiffFlowLYZ2SUMPOI=0;
2094 if(lyz2sumCommonHistRes)
2096 (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2SUM);
2097 (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2SUM);
2098 (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2SUM);
2099 (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2SUM);
2100 (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2SUM);
2101 (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2SUM);
2102 (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2SUM);
2103 (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2SUM);
2105 if(lyz2sumCommonHist)
2107 avMultDiffFlowLYZ2SUMRP = (lyz2sumCommonHist->GetHistMultRP())->GetMean();
2108 nEvtsDiffFlowLYZ2SUMRP = (lyz2sumCommonHist->GetHistMultRP())->GetEntries();
2109 avMultDiffFlowLYZ2SUMPOI = (lyz2sumCommonHist->GetHistMultPOI())->GetMean();
2110 nEvtsDiffFlowLYZ2SUMPOI = (lyz2sumCommonHist->GetHistMultPOI())->GetEntries();
2114 //LYZ2PROD = Lee-Yang Zeros (2nd run, product)
2115 Double_t avMultDiffFlowLYZ2PRODRP=0.;
2116 Double_t nEvtsDiffFlowLYZ2PRODRP=0;
2117 Double_t avMultDiffFlowLYZ2PRODPOI=0.;
2118 Double_t nEvtsDiffFlowLYZ2PRODPOI=0;
2121 if(lyz2prodCommonHistRes)
2123 (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2PROD);
2124 (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2PROD);
2125 (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2PROD);
2126 (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2PROD);
2127 (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2PROD);
2128 (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2PROD);
2129 (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2PROD);
2130 (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2PROD);
2132 if(lyz2prodCommonHist)
2134 avMultDiffFlowLYZ2PRODRP = (lyz2prodCommonHist->GetHistMultRP())->GetMean();
2135 nEvtsDiffFlowLYZ2PRODRP = (lyz2prodCommonHist->GetHistMultRP())->GetEntries();
2136 avMultDiffFlowLYZ2PRODPOI = (lyz2prodCommonHist->GetHistMultPOI())->GetMean();
2137 nEvtsDiffFlowLYZ2PRODPOI = (lyz2prodCommonHist->GetHistMultPOI())->GetEntries();
2141 //LYZEP = Lee-Yang Zeros Event Plane
2142 Double_t avMultDiffFlowLYZEPRP=0.;
2143 Double_t nEvtsDiffFlowLYZEPRP=0;
2144 Double_t avMultDiffFlowLYZEPPOI=0.;
2145 Double_t nEvtsDiffFlowLYZEPPOI=0;
2148 if(lyzepCommonHistRes)
2150 (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZEP);
2151 (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZEP);
2152 (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZEP);
2153 (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZEP);
2154 (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZEP);
2155 (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZEP);
2156 (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZEP);
2157 (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZEP);
2161 avMultDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
2162 nEvtsDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetEntries();
2163 avMultDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
2164 nEvtsDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
2169 //----------------------------------------------------------------------------------
2170 //final drawing for differential flow (Pt, RP):
2171 if(plotDiffFlowPtRP)
2173 TCanvas* diffFlowPtAllCanvasRP = new TCanvas("Differential Flow (Pt) of RP","Differential Flow (Pt) of RP ",1000,600);
2175 diffFlowPtAllCanvasRP->Divide(2,1);
2177 //1st pad is for plot:
2178 (diffFlowPtAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2182 (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
2183 styleHistPt->Draw();
2185 if(pMeshDiffFlowPtRP)
2187 pMeshDiffFlowPtRP->Draw("LFSAME");
2191 if(plotMCPtRP && mcepCommonHistRes)
2193 (mcepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2196 if(plotSPPtRP && spCommonHistRes)
2198 (spCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2201 if(plotGFC2PtRP && gfcCommonHistRes2)Pt
2203 (gfcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2205 if(plotGFC4PtRP && gfcCommonHistRes4)
2207 (gfcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2209 if(plotGFC6PtRP && gfcCommonHistRes6)
2211 (gfcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2213 if(plotGFC8PtRP && gfcCommonHistRes8)
2215 (gfcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2218 if(plotQC2PtRP && qcCommonHistRes2)
2220 (qcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2222 if(plotQC4PtRP && qcCommonHistRes4)
2224 (qcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2226 if(plotQC6PtRP && qcCommonHistRes6)
2228 //(qcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2230 if(plotQC8PtRP && qcCommonHistRes8)
2232 //(qcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2235 if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2237 (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2240 if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2242 (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2245 if(plotLYZEPPtRP && lyzepCommonHistRes)
2247 (lyzepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2250 //2nd pad is for legend:
2251 (diffFlowPtAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2253 TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2254 legendDiffFlowPtRP->SetTextFont(72);
2255 legendDiffFlowPtRP->SetTextSize(0.06);
2257 //legend's entries:Pt
2258 TString *entryDiffMCPtRP = new TString("MC ........ ");
2259 TString *entryDiffSPPtRP = new TString("SP ........ ");
2260 TString *entryDiffGFC2PtRP = new TString("GFC{2} .... ");
2261 TString *entryDiffGFC4PtRP = new TString("GFC{4} .... ");
2262 TString *entryDiffGFC6PtRP = new TString("GFC{6} .... ");
2263 TString *entryDiffGFC8PtRP = new TString("GFC{8} .... ");
2264 TString *entryDiffQC2PtRP = new TString("QC{2} ..... ");
2265 TString *entryDiffQC4PtRP = new TString("QC{4} ..... ");
2266 TString *entryDiffQC6PtRP = new TString("QC{6} ..... ");
2267 TString *entryDiffQC8PtRP = new TString("QC{8} ..... ");
2268 TString *entryDiffLYZ2SUMPtRP = new TString("LYZ{sum} .. ");
2269 TString *entryDiffLYZ2PRODPtRP = new TString("LYZ{prod} . ");
2270 TString *entryDiffLYZEPPtRP = new TString("LYZEP ..... ");
2273 if(mcepCommonHistRes)
2275 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
2276 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
2277 entryDiffMCPtRP->Append("M = ");
2278 (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
2279 entryDiffMCPtRP->Append(", N = ");
2280 (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP;
2281 legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
2285 if(plotSPPtRP && spCommonHistRes)
2287 entryDiffSPPtRP->Append("M = ");
2288 (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
2289 entryDiffSPPtRP->Append(", N = ");
2290 (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP;
2291 legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
2295 if(plotGFC2PtRP && gfcCommonHistRes2)
2297 entryDiffGFC2PtRP->Append("M = ");
2298 (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2299 entryDiffGFC2PtRP->Append(", N = ");
2300 (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2301 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2303 if(plotGFC4PtRP && gfcCommonHistRes4)
2305 entryDiffGFC4PtRP->Append("M = ");
2306 (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2307 entryDiffGFC4PtRP->Append(", N = ");
2308 (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2309 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2311 if(plotGFC6PtRP && gfcCommonHistRes6)
2313 entryDiffGFC6PtRP->Append("M = ");
2314 (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2315 entryDiffGFC6PtRP->Append(", N = ");
2316 (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2317 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2319 if(plotGFC8PtRP && gfcCommonHistRes8)
2321 entryDiffGFC8PtRP->Append("M = ");
2322 (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2323 entryDiffGFC8PtRP->Append(", N = ");
2324 (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2325 legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2329 if(plotQC2PtRP && qcCommonHistRes2)
2331 entryDiffQC2PtRP->Append("M = ");
2332 (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2333 entryDiffQC2PtRP->Append(", N = ");
2334 (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP;
2335 legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2337 if(plotQC4PtRP && qcCommonHistRes4)
2339 entryDiffQC4PtRP->Append("M = ");
2340 (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2341 entryDiffQC4PtRP->Append(", N = ");
2342 (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP;
2343 legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2345 if(plotQC6PtRP && qcCommonHistRes6)
2347 entryDiffQC6PtRP->Append("M = ");
2348 (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
2349 entryDiffQC6PtRP->Append(", N = ");
2350 (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP;
2351 legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
2353 if(plotQC8PtRP && qcCommonHistRes8)
2355 entryDiffQC8PtRP->Append("M = ");
2356 (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
2357 entryDiffQC8PtRP->Append(", N = ");
2358 (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP;
2359 legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
2363 if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2365 entryDiffLYZ2SUMPtRP->Append("M = ");
2366 (*entryDiffLYZ2SUMPtRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
2367 entryDiffLYZ2SUMPtRP->Append(", N = ");
2368 (*entryDiffLYZ2SUMPtRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP;
2369 legendDiffFlowPtRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2SUMPtRP->Data(),"p");
2373 if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2375 entryDiffLYZ2PRODPtRP->Append("M = ");
2376 (*entryDiffLYZ2PRODPtRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
2377 entryDiffLYZ2PRODPtRP->Append(", N = ");
2378 (*entryDiffLYZ2PRODPtRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP;
2379 legendDiffFlowPtRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PRODPtRP->Data(),"p");
2383 if(plotLYZEPPtRP && lyzepCommonHistRes)
2385 entryDiffLYZEPPtRP->Append("M = ");
2386 (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2387 entryDiffLYZEPPtRP->Append(", N = ");
2388 (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP;
2389 legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
2392 //drawing finally the legend in the 2nd pad:
2393 if(textDefault) textDefault->Draw();
2395 if(legendDiffFlowPtRP)
2397 legendDiffFlowPtRP->SetMargin(0.15);
2398 legendDiffFlowPtRP->Draw();
2400 }// end of if(plotDiffFlowPtRP)
2401 //----------------------------------------------------------------------------------
2403 //----------------------------------------------------------------------------------
2404 //final drawing for differential flow (Eta, RP):
2405 if(plotDiffFlowEtaRP)
2407 TCanvas* diffFlowEtaAllCanvasRP = new TCanvas("Differential Flow (Eta) of RP","Differential Flow (Eta) of RP ",1000,600);
2409 diffFlowEtaAllCanvasRP->Divide(2,1);
2411 //1st pad is for plot:
2412 (diffFlowEtaAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2416 (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
2417 styleHistEta->Draw();
2419 if(pMeshDiffFlowEtaRP)
2421 pMeshDiffFlowEtaRP->Draw("LFSAME");
2425 if(plotMCEtaRP && mcepCommonHistRes)
2427 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2430 if(plotSPEtaRP && spCommonHistRes)
2432 (spCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2435 if(plotGFC2EtaRP && gfcCommonHistRes2)
2437 (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2439 if(plotGFC4EtaRP && gfcCommonHistRes4)
2441 (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2443 if(plotGFC6EtaRP && gfcCommonHistRes6)
2445 (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2447 if(plotGFC8EtaRP && gfcCommonHistRes8)
2449 (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2452 if(plotQC2EtaRP && qcCommonHistRes2)
2454 (qcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2456 if(plotQC4EtaRP && qcCommonHistRes4)
2458 (qcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2460 if(plotQC6EtaRP && qcCommonHistRes6)
2462 //(qcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2464 if(plotQC8EtaRP && qcCommonHistRes8)
2466 //(qcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2469 if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2471 (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2474 if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2476 (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2479 if(plotLYZEPEtaRP && lyzepCommonHistRes)
2481 (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2484 //2nd pad is for legend:
2485 (diffFlowEtaAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2487 TLegend* legendDiffFlowEtaRP = new TLegend(0.02,0.12,0.97,0.70);
2488 legendDiffFlowEtaRP->SetTextFont(72);
2489 legendDiffFlowEtaRP->SetTextSize(0.06);
2492 TString *entryDiffMCEtaRP = new TString("MC ........ ");
2493 TString *entryDiffSPEtaRP = new TString("SP ........ ");
2494 TString *entryDiffGFC2EtaRP = new TString("GFC{2} .... ");
2495 TString *entryDiffGFC4EtaRP = new TString("GFC{4} .... ");
2496 TString *entryDiffGFC6EtaRP = new TString("GFC{6} .... ");
2497 TString *entryDiffGFC8EtaRP = new TString("GFC{8} .... ");
2498 TString *entryDiffQC2EtaRP = new TString("QC{2} ..... ");
2499 TString *entryDiffQC4EtaRP = new TString("QC{4} ..... ");
2500 TString *entryDiffQC6EtaRP = new TString("QC{6} ..... ");
2501 TString *entryDiffQC8EtaRP = new TString("QC{8} ..... ");
2502 TString *entryDiffLYZ2SUMEtaRP = new TString("LYZ{sum} .. ");
2503 TString *entryDiffLYZ2PRODEtaRP = new TString("LYZ{prod} . ");
2504 TString *entryDiffLYZEPEtaRP = new TString("LYZEP ..... ");
2507 if(mcepCommonHistRes)
2509 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillStyle(meshStyleDiffFlowEtaRP);
2510 (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillColor(meshColorDiffFlowEtaRP);
2511 entryDiffMCEtaRP->Append("M = ");
2512 (*entryDiffMCEtaRP)+=(Long_t)avMultDiffFlowMCRP;
2513 entryDiffMCEtaRP->Append(", N = ");
2514 (*entryDiffMCEtaRP)+=(Long_t)nEvtsDiffFlowMCRP;
2515 legendDiffFlowEtaRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffMCEtaRP->Data(),"f");
2519 if(plotSPEtaRP && spCommonHistRes)
2521 entryDiffSPEtaRP->Append("M = ");
2522 (*entryDiffSPEtaRP)+=(Long_t)avMultDiffFlowSPRP;
2523 entryDiffSPEtaRP->Append(", N = ");
2524 (*entryDiffSPEtaRP)+=(Long_t)nEvtsDiffFlowSPRP;
2525 legendDiffFlowEtaRP->AddEntry(spCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffSPEtaRP->Data(),"p");
2529 if(plotGFC2EtaRP && gfcCommonHistRes2)
2531 entryDiffGFC2EtaRP->Append("M = ");
2532 (*entryDiffGFC2EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2533 entryDiffGFC2EtaRP->Append(", N = ");
2534 (*entryDiffGFC2EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2535 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffGFC2EtaRP->Data(),"p");
2537 if(plotGFC4EtaRP && gfcCommonHistRes4)
2539 entryDiffGFC4EtaRP->Append("M = ");
2540 (*entryDiffGFC4EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2541 entryDiffGFC4EtaRP->Append(", N = ");
2542 (*entryDiffGFC4EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2543 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffGFC4EtaRP->Data(),"p");
2545 if(plotGFC6EtaRP && gfcCommonHistRes6)
2547 entryDiffGFC6EtaRP->Append("M = ");
2548 (*entryDiffGFC6EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2549 entryDiffGFC6EtaRP->Append(", N = ");
2550 (*entryDiffGFC6EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2551 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffGFC6EtaRP->Data(),"p");
2553 if(plotGFC8EtaRP && gfcCommonHistRes8)
2555 entryDiffGFC8EtaRP->Append("M = ");
2556 (*entryDiffGFC8EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2557 entryDiffGFC8EtaRP->Append(", N = ");
2558 (*entryDiffGFC8EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2559 legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffGFC8EtaRP->Data(),"p");
2563 if(plotQC2EtaRP && qcCommonHistRes2)
2565 entryDiffQC2EtaRP->Append("M = ");
2566 (*entryDiffQC2EtaRP)+=(Long_t)avMultDiffFlowQC2RP;
2567 entryDiffQC2EtaRP->Append(", N = ");
2568 (*entryDiffQC2EtaRP)+=(Long_t)nEvtsDiffFlowQC2RP;
2569 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffQC2EtaRP->Data(),"p");
2571 if(plotQC4EtaRP && qcCommonHistRes4)
2573 entryDiffQC4EtaRP->Append("M = ");
2574 (*entryDiffQC4EtaRP)+=(Long_t)avMultDiffFlowQC4RP;
2575 entryDiffQC4EtaRP->Append(", N = ");
2576 (*entryDiffQC4EtaRP)+=(Long_t)nEvtsDiffFlowQC4RP;
2577 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffQC4EtaRP->Data(),"p");
2579 if(plotQC6EtaRP && qcCommonHistRes6)
2581 entryDiffQC6EtaRP->Append("M = ");
2582 (*entryDiffQC6EtaRP)+=(Long_t)avMultDiffFlowQC6RP;
2583 entryDiffQC6EtaRP->Append(", N = ");
2584 (*entryDiffQC6EtaRP)+=(Long_t)nEvtsDiffFlowQC6RP;
2585 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffQC6EtaRP->Data(),"p");
2587 if(plotQC8EtaRP && qcCommonHistRes8)
2589 entryDiffQC8EtaRP->Append("M = ");
2590 (*entryDiffQC8EtaRP)+=(Long_t)avMultDiffFlowQC8RP;
2591 entryDiffQC8EtaRP->Append(", N = ");
2592 (*entryDiffQC8EtaRP)+=(Long_t)nEvtsDiffFlowQC8RP;
2593 legendDiffFlowEtaRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffQC8EtaRP->Data(),"p");
2597 if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2599 entryDiffLYZ2SUMEtaRP->Append("M = ");
2600 (*entryDiffLYZ2SUMEtaRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
2601 entryDiffLYZ2SUMEtaRP->Append(", N = ");
2602 (*entryDiffLYZ2SUMEtaRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP;
2603 legendDiffFlowEtaRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2SUMEtaRP->Data(),"p");
2607 if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2609 entryDiffLYZ2PRODEtaRP->Append("M = ");
2610 (*entryDiffLYZ2PRODEtaRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
2611 entryDiffLYZ2PRODEtaRP->Append(", N = ");
2612 (*entryDiffLYZ2PRODEtaRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP;
2613 legendDiffFlowEtaRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2PRODEtaRP->Data(),"p");
2617 if(plotLYZEPEtaRP && lyzepCommonHistRes)
2619 entryDiffLYZEPEtaRP->Append("M = ");
2620 (*entryDiffLYZEPEtaRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2621 entryDiffLYZEPEtaRP->Append(", N = ");
2622 (*entryDiffLYZEPEtaRP)+=(Long_t)nEvtsDiffFlowLYZEPRP;
2623 legendDiffFlowEtaRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZEPEtaRP->Data(),"p");
2626 //drawing finally the legend in the 2nd pad:
2627 if(textDefault) textDefault->Draw();
2629 if(legendDiffFlowEtaRP)
2631 legendDiffFlowEtaRP->SetMargin(0.15);
2632 legendDiffFlowEtaRP->Draw();
2634 }// end of if(plotDiffFlowEtaRP)
2635 //----------------------------------------------------------------------------------
2637 //----------------------------------------------------------------------------------
2638 // final drawing for plot |(v{method}-v{MC})/v{MC}| as a function of pt for RPs
2639 if(plotDiffFlowPtRelativeToMCRP)
2641 TCanvas* diffFlowPtRelativeToMCRP = new TCanvas("Differential Flow (Pt) of RPs relative to MC","Differential Flow (Pt) of RPs relative to MC",1000,600);
2643 diffFlowPtRelativeToMCRP->Divide(2,1);
2645 //1st pad is for plot:
2646 (diffFlowPtRelativeToMCRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2650 TH1D *styleHistPtReleativeToMC = new TH1D(*styleHistPt);
2651 (styleHistPtReleativeToMC->GetYaxis())->SetRangeUser(-4.0,4.0);
2652 (styleHistPtReleativeToMC->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
2653 styleHistPtReleativeToMC->Draw();
2656 TH1D *spDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2657 TH1D *gfc2DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2658 TH1D *gfc4DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2659 TH1D *gfc6DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2660 TH1D *gfc8DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2661 TH1D *qc2DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2662 TH1D *qc4DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2663 TH1D *qc6DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2664 TH1D *qc8DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2665 TH1D *lyz2sumDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2666 TH1D *lyz2prodDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2667 TH1D *lyzepDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2669 if(mcepCommonHistRes && mcepCommonHistRes->GetHistDiffFlowPtRP())
2671 for(Int_t p=1;p<iNbinsPt+1;p++)
2673 Double_t dvnMC = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2676 Double_t dvnSP = 0.;
2677 Double_t dvnErrorSP = 0.;
2678 if(spCommonHistRes && spCommonHistRes->GetHistDiffFlowPtRP())
2680 dvnSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2681 dvnErrorSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2683 if(dvnMC!=0. && dvnSP!=0.)
2685 spDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnSP-dvnMC)/dvnMC);
2686 spDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorSP/dvnMC);
2690 Double_t dvnGFC2 = 0.;
2691 Double_t dvnErrorGFC2 = 0.;
2692 if(gfcCommonHistRes2 && gfcCommonHistRes2->GetHistDiffFlowPtRP())
2694 dvnGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2695 dvnErrorGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2697 if(dvnMC!=0. && dvnGFC2!=0.)
2699 gfc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC2-dvnMC)/dvnMC);
2700 gfc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC2/dvnMC);
2704 Double_t dvnGFC4 = 0.;
2705 Double_t dvnErrorGFC4 = 0.;
2706 if(gfcCommonHistRes4 && gfcCommonHistRes4->GetHistDiffFlowPtRP())
2708 dvnGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2709 dvnErrorGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2711 if(dvnMC!=0. && dvnGFC4!=0.)
2713 gfc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC4-dvnMC)/dvnMC);
2714 gfc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC4/dvnMC);
2718 Double_t dvnGFC6 = 0.;
2719 Double_t dvnErrorGFC6 = 0.;
2720 if(gfcCommonHistRes6 && gfcCommonHistRes6->GetHistDiffFlowPtRP())
2722 dvnGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2723 dvnErrorGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2725 if(dvnMC!=0. && dvnGFC6!=0.)
2727 gfc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC6-dvnMC)/dvnMC);
2728 gfc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC6/dvnMC);
2732 Double_t dvnGFC8 = 0.;
2733 Double_t dvnErrorGFC8 = 0.;
2734 if(gfcCommonHistRes8 && gfcCommonHistRes8->GetHistDiffFlowPtRP())
2736 dvnGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2737 dvnErrorGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2739 if(dvnMC!=0. && dvnGFC8!=0.)
2741 gfc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC8-dvnMC)/dvnMC);
2742 gfc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC8/dvnMC);
2746 Double_t dvnQC2 = 0.;
2747 Double_t dvnErrorQC2 = 0.;
2748 if(qcCommonHistRes2 && qcCommonHistRes2->GetHistDiffFlowPtRP())
2750 dvnQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2751 dvnErrorQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2753 if(dvnMC!=0. && dvnQC2!=0.)
2755 qc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC2-dvnMC)/dvnMC);
2756 qc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC2/dvnMC);
2760 Double_t dvnQC4 = 0.;
2761 Double_t dvnErrorQC4 = 0.;
2762 if(qcCommonHistRes4 && qcCommonHistRes4->GetHistDiffFlowPtRP())
2764 dvnQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2765 dvnErrorQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2767 if(dvnMC!=0. && dvnQC4!=0.)
2769 qc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC4-dvnMC)/dvnMC);
2770 qc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC4/dvnMC);
2774 Double_t dvnQC6 = 0.;
2775 Double_t dvnErrorQC6 = 0.;
2776 if(qcCommonHistRes6 && qcCommonHistRes6->GetHistDiffFlowPtRP())
2778 dvnQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2779 dvnErrorQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2781 if(dvnMC!=0. && dvnQC6!=0.)
2783 qc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC6-dvnMC)/dvnMC);
2784 qc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC6/dvnMC);
2788 Double_t dvnQC8 = 0.;
2789 Double_t dvnErrorQC8 = 0.;
2790 if(qcCommonHistRes8 && qcCommonHistRes8->GetHistDiffFlowPtRP())
2792 dvnQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2793 dvnErrorQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2795 if(dvnMC!=0. && dvnQC8!=0.)
2797 qc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC8-dvnMC)/dvnMC);
2798 qc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC8/dvnMC);
2802 Double_t dvnLYZ2SUM = 0.;
2803 Double_t dvnErrorLYZ2SUM = 0.;
2804 if(lyz2sumCommonHistRes && lyz2sumCommonHistRes->GetHistDiffFlowPtRP())
2806 dvnLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2807 dvnErrorLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2809 if(dvnMC!=0. && dvnLYZ2SUM!=0.)
2811 lyz2sumDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2SUM-dvnMC)/dvnMC);
2812 lyz2sumDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2SUM/dvnMC);
2816 Double_t dvnLYZ2PROD = 0.;
2817 Double_t dvnErrorLYZ2PROD = 0.;
2818 if(lyz2prodCommonHistRes && lyz2prodCommonHistRes->GetHistDiffFlowPtRP())
2820 dvnLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2821 dvnErrorLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2823 if(dvnMC!=0. && dvnLYZ2PROD!=0.)
2825 lyz2prodDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2PROD-dvnMC)/dvnMC);
2826 lyz2prodDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2PROD/dvnMC);
2830 Double_t dvnLYZEP = 0.;
2831 Double_t dvnErrorLYZEP = 0.;
2832 if(lyzepCommonHistRes && lyzepCommonHistRes->GetHistDiffFlowPtRP())
2834 dvnLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2835 dvnErrorLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2837 if(dvnMC!=0. && dvnLYZEP!=0.)
2839 lyzepDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZEP-dvnMC)/dvnMC);
2840 lyzepDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZEP/dvnMC);
2843 } // end of for(Int_t p=1;p<iNbinsPt+1;p++)
2844 } // end of if(mcepCommonHistRes->GetHistDiffFlowPtRP())
2848 spDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorSP);
2849 spDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleSP);
2850 if(plotSPRelativeToMCRP && spCommonHistRes) spDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2852 gfc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC2);
2853 gfc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC2);
2854 if(plotGFC2RelativeToMCRP && gfcCommonHistRes2) gfc2DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2856 gfc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC4);
2857 gfc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC4);
2858 if(plotGFC4RelativeToMCRP && gfcCommonHistRes4) gfc4DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2860 gfc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC6);
2861 gfc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC6);
2862 if(plotGFC6RelativeToMCRP && gfcCommonHistRes6) gfc6DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2864 gfc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC8);
2865 gfc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC8);
2866 if(plotGFC8RelativeToMCRP && gfcCommonHistRes8) gfc8DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2868 qc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC2);
2869 qc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC2);
2870 if(plotQC2RelativeToMCRP && qcCommonHistRes2) qc2DiffFlowPtRelativeToMCRP->Draw("PSAME");
2872 qc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC4);
2873 qc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC4);
2874 if(plotQC4RelativeToMCRP && qcCommonHistRes4) qc4DiffFlowPtRelativeToMCRP->Draw("PSAME");
2876 qc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC6);
2877 qc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC6);
2878 if(plotQC6RelativeToMCRP && qcCommonHistRes6) qc6DiffFlowPtRelativeToMCRP->Draw("PSAME");
2880 qc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC8);
2881 qc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC8);
2882 if(plotQC8RelativeToMCRP && qcCommonHistRes8) qc8DiffFlowPtRelativeToMCRP->Draw("PSAME");
2884 lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2885 lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2886 if(plotLYZ2SUMRelativeToMCRP && lyz2sumCommonHistRes) lyz2sumDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2888 lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2889 lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2890 if(plotLYZ2SUMRelativeToMCRP && lyz2prodCommonHistRes) lyz2prodDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2892 lyzepDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZEP);
2893 lyzepDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZEP);
2894 if(plotLYZEPRelativeToMCRP && lyzepCommonHistRes) lyzepDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2896 //2nd pad is for legend:
2897 (diffFlowPtRelativeToMCRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2899 TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2900 legendDiffFlowPtRP->SetTextFont(72);
2901 legendDiffFlowPtRP->SetTextSize(0.06);
2903 //legend's entries:Pt
2904 TString *entryDiffMCPtRP = new TString("MC ........ ");
2905 TString *entryDiffSPPtRP = new TString("SP ........ ");
2906 TString *entryDiffGFC2PtRP = new TString("GFC{2} .... ");
2907 TString *entryDiffGFC4PtRP = new TString("GFC{4} .... ");
2908 TString *entryDiffGFC6PtRP = new TString("GFC{6} .... ");
2909 TString *entryDiffGFC8PtRP = new TString("GFC{8} .... ");
2910 TString *entryDiffQC2PtRP = new TString("QC{2} ..... ");
2911 TString *entryDiffQC4PtRP = new TString("QC{4} ..... ");
2912 TString *entryDiffQC6PtRP = new TString("QC{6} ..... ");
2913 TString *entryDiffQC8PtRP = new TString("QC{8} ..... ");
2914 TString *entryDiffLYZ2SUMPtRP = new TString("LYZ{sum} .. ");
2915 TString *entryDiffLYZ2PRODPtRP = new TString("LYZ{prod} . ");
2916 TString *entryDiffLYZEPPtRP = new TString("LYZEP ..... ");
2919 if(mcepCommonHistRes)
2921 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
2922 (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
2923 entryDiffMCPtRP->Append("M = ");
2924 (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
2925 entryDiffMCPtRP->Append(", N = ");
2926 (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP;
2927 //legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
2931 if(plotSPPtRP && spCommonHistRes)
2933 entryDiffSPPtRP->Append("M = ");
2934 (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
2935 entryDiffSPPtRP->Append(", N = ");
2936 (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP;
2937 if(plotSPRelativeToMCRP) legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
2941 if(plotGFC2PtRP && gfcCommonHistRes2)
2943 entryDiffGFC2PtRP->Append("M = ");
2944 (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2945 entryDiffGFC2PtRP->Append(", N = ");
2946 (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2947 if(plotGFC2RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2949 if(plotGFC4PtRP && gfcCommonHistRes4)
2951 entryDiffGFC4PtRP->Append("M = ");
2952 (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2953 entryDiffGFC4PtRP->Append(", N = ");
2954 (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2955 if(plotGFC4RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2957 if(plotGFC6PtRP && gfcCommonHistRes6)
2959 entryDiffGFC6PtRP->Append("M = ");
2960 (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2961 entryDiffGFC6PtRP->Append(", N = ");
2962 (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2963 if(plotGFC6RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2965 if(plotGFC8PtRP && gfcCommonHistRes8)
2967 entryDiffGFC8PtRP->Append("M = ");
2968 (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2969 entryDiffGFC8PtRP->Append(", N = ");
2970 (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP;
2971 if(plotGFC8RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2975 if(plotQC2PtRP && qcCommonHistRes2)
2977 entryDiffQC2PtRP->Append("M = ");
2978 (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2979 entryDiffQC2PtRP->Append(", N = ");
2980 (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP;
2981 if(plotQC2RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2983 if(plotQC4PtRP && qcCommonHistRes4)
2985 entryDiffQC4PtRP->Append("M = ");
2986 (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2987 entryDiffQC4PtRP->Append(", N = ");
2988 (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP;
2989 if(plotQC4RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2991 if(plotQC6PtRP && qcCommonHistRes6)
2993 entryDiffQC6PtRP->Append("M = ");
2994 (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
2995 entryDiffQC6PtRP->Append(", N = ");
2996 (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP;
2997 if(plotQC6RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
2999 if(plotQC8PtRP && qcCommonHistRes8)
3001 entryDiffQC8PtRP->Append("M = ");
3002 (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
3003 entryDiffQC8PtRP->Append(", N = ");
3004 (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP;
3005 if(plotQC8RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
3009 if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
3011 entryDiffLYZ2SUMPtRP->Append("M = ");
3012 (*entryDiffLYZ2SUMPtRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
3013 entryDiffLYZ2SUMPtRP->Append(", N = ");
3014 (*entryDiffLYZ2SUMPtRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP;
3015 if(plotLYZ2SUMRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2SUMPtRP->Data(),"p");
3019 if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
3021 entryDiffLYZ2PRODPtRP->Append("M = ");
3022 (*entryDiffLYZ2PRODPtRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
3023 entryDiffLYZ2PRODPtRP->Append(", N = ");
3024 (*entryDiffLYZ2PRODPtRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP;
3025 if(plotLYZ2PRODRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PRODPtRP->Data(),"p");
3029 if(plotLYZEPPtRP && lyzepCommonHistRes)
3031 entryDiffLYZEPPtRP->Append("M = ");
3032 (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
3033 entryDiffLYZEPPtRP->Append(", N = ");
3034 (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP;
3035 if(plotLYZEPRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
3038 //drawing finally the legend in the 2nd pad:
3039 if(textDefault) textDefault->Draw();
3041 if(legendDiffFlowPtRP)
3043 legendDiffFlowPtRP->SetMargin(0.15);
3044 legendDiffFlowPtRP->Draw();
3047 //----------------------------------------------------------------------------------
3049 //----------------------------------------------------------------------------------
3050 //final drawing for differential flow (Pt, POI):
3051 if(plotDiffFlowPtPOI)
3053 TCanvas* diffFlowPtAllCanvasPOI = new TCanvas("Differential Flow (Pt) of POI","Differential Flow (Pt) of POI ",1000,600);
3055 diffFlowPtAllCanvasPOI->Divide(2,1);
3057 //1st pad is for plot:
3058 (diffFlowPtAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3062 (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
3063 styleHistPt->Draw();
3065 if(pMeshDiffFlowPtPOI)
3067 pMeshDiffFlowPtPOI->Draw("LFSAME");
3071 if(plotMCPtPOI && mcepCommonHistRes)
3073 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3076 if(plotSPPtPOI && spCommonHistRes)
3078 (spCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3081 if(plotGFC2PtPOI && gfcCommonHistRes2)
3083 (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3085 if(plotGFC4PtPOI && gfcCommonHistRes4)
3087 (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3089 if(plotGFC6PtPOI && gfcCommonHistRes6)
3091 (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3093 if(plotGFC8PtPOI && gfcCommonHistRes8)
3095 (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3098 if(plotQC2PtPOI && qcCommonHistRes2)
3100 (qcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3102 if(plotQC4PtPOI && qcCommonHistRes4)
3104 (qcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3106 if(plotQC6PtPOI && qcCommonHistRes6)
3108 //(qcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3110 if(plotQC8PtPOI && qcCommonHistRes8)
3112 //(qcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3115 if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3117 (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3120 if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3122 (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3125 if(plotLYZEPPtPOI && lyzepCommonHistRes)
3127 (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3130 //2nd pad is for legend:
3131 (diffFlowPtAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3133 TLegend* legendDiffFlowPtPOI = new TLegend(0.02,0.12,0.97,0.70);
3134 legendDiffFlowPtPOI->SetTextFont(72);
3135 legendDiffFlowPtPOI->SetTextSize(0.06);
3138 TString *entryDiffMCPtPOI = new TString("MC ........ ");
3139 TString *entryDiffSPPtPOI = new TString("SP ........ ");
3140 TString *entryDiffGFC2PtPOI = new TString("GFC{2} .... ");
3141 TString *entryDiffGFC4PtPOI = new TString("GFC{4} .... ");
3142 TString *entryDiffGFC6PtPOI = new TString("GFC{6} .... ");
3143 TString *entryDiffGFC8PtPOI = new TString("GFC{8} .... ");
3144 TString *entryDiffQC2PtPOI = new TString("QC{2} ..... ");
3145 TString *entryDiffQC4PtPOI = new TString("QC{4} ..... ");
3146 TString *entryDiffQC6PtPOI = new TString("QC{6} ..... ");
3147 TString *entryDiffQC8PtPOI = new TString("QC{8} ..... ");
3148 TString *entryDiffLYZ2SUMPtPOI = new TString("LYZ{sum} .. ");
3149 TString *entryDiffLYZ2PRODPtPOI = new TString("LYZ{prod} . ");
3150 TString *entryDiffLYZEPPtPOI = new TString("LYZEP ..... ");
3153 if(mcepCommonHistRes)
3155 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillStyle(meshStyleDiffFlowPtPOI);
3156 (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillColor(meshColorDiffFlowPtPOI);
3157 entryDiffMCPtPOI->Append("M = ");
3158 (*entryDiffMCPtPOI)+=(Long_t)avMultDiffFlowMCPOI;
3159 entryDiffMCPtPOI->Append(", N = ");
3160 (*entryDiffMCPtPOI)+=(Long_t)nEvtsDiffFlowMCPOI;
3161 legendDiffFlowPtPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffMCPtPOI->Data(),"f");
3165 if(plotSPPtPOI && spCommonHistRes)
3167 entryDiffSPPtPOI->Append("M = ");
3168 (*entryDiffSPPtPOI)+=(Long_t)avMultDiffFlowSPPOI;
3169 entryDiffSPPtPOI->Append(", N = ");
3170 (*entryDiffSPPtPOI)+=(Long_t)nEvtsDiffFlowSPPOI;
3171 legendDiffFlowPtPOI->AddEntry(spCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffSPPtPOI->Data(),"p");
3175 if(plotGFC2PtPOI && gfcCommonHistRes2)
3177 entryDiffGFC2PtPOI->Append("M = ");
3178 (*entryDiffGFC2PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3179 entryDiffGFC2PtPOI->Append(", N = ");
3180 (*entryDiffGFC2PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3181 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffGFC2PtPOI->Data(),"p");
3183 if(plotGFC4PtPOI && gfcCommonHistRes4)
3185 entryDiffGFC4PtPOI->Append("M = ");
3186 (*entryDiffGFC4PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3187 entryDiffGFC4PtPOI->Append(", N = ");
3188 (*entryDiffGFC4PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3189 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffGFC4PtPOI->Data(),"p");
3191 if(plotGFC6PtPOI && gfcCommonHistRes6)
3193 entryDiffGFC6PtPOI->Append("M = ");
3194 (*entryDiffGFC6PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3195 entryDiffGFC6PtPOI->Append(", N = ");
3196 (*entryDiffGFC6PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3197 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffGFC6PtPOI->Data(),"p");
3199 if(plotGFC8PtPOI && gfcCommonHistRes8)
3201 entryDiffGFC8PtPOI->Append("M = ");
3202 (*entryDiffGFC8PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3203 entryDiffGFC8PtPOI->Append(", N = ");
3204 (*entryDiffGFC8PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3205 legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffGFC8PtPOI->Data(),"p");
3209 if(plotQC2PtPOI && qcCommonHistRes2)
3211 entryDiffQC2PtPOI->Append("M = ");
3212 (*entryDiffQC2PtPOI)+=(Long_t)avMultDiffFlowQC2POI;
3213 entryDiffQC2PtPOI->Append(", N = ");
3214 (*entryDiffQC2PtPOI)+=(Long_t)nEvtsDiffFlowQC2POI;
3215 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffQC2PtPOI->Data(),"p");
3217 if(plotQC4PtPOI && qcCommonHistRes4)
3219 entryDiffQC4PtPOI->Append("M = ");
3220 (*entryDiffQC4PtPOI)+=(Long_t)avMultDiffFlowQC4POI;
3221 entryDiffQC4PtPOI->Append(", N = ");
3222 (*entryDiffQC4PtPOI)+=(Long_t)nEvtsDiffFlowQC4POI;
3223 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffQC4PtPOI->Data(),"p");
3225 if(plotQC6PtPOI && qcCommonHistRes6)
3227 entryDiffQC6PtPOI->Append("M = ");
3228 (*entryDiffQC6PtPOI)+=(Long_t)avMultDiffFlowQC6POI;
3229 entryDiffQC6PtPOI->Append(", N = ");
3230 (*entryDiffQC6PtPOI)+=(Long_t)nEvtsDiffFlowQC6POI;
3231 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffQC6PtPOI->Data(),"p");
3233 if(plotQC8PtPOI && qcCommonHistRes8)
3235 entryDiffQC8PtPOI->Append("M = ");
3236 (*entryDiffQC8PtPOI)+=(Long_t)avMultDiffFlowQC8POI;
3237 entryDiffQC8PtPOI->Append(", N = ");
3238 (*entryDiffQC8PtPOI)+=(Long_t)nEvtsDiffFlowQC8POI;
3239 legendDiffFlowPtPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffQC8PtPOI->Data(),"p");
3243 if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3245 entryDiffLYZ2SUMPtPOI->Append("M = ");
3246 (*entryDiffLYZ2SUMPtPOI)+=(Long_t)avMultDiffFlowLYZ2SUMPOI;
3247 entryDiffLYZ2SUMPtPOI->Append(", N = ");
3248 (*entryDiffLYZ2SUMPtPOI)+=(Long_t)nEvtsDiffFlowLYZ2SUMPOI;
3249 legendDiffFlowPtPOI->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2SUMPtPOI->Data(),"p");
3253 if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3255 entryDiffLYZ2PRODPtPOI->Append("M = ");
3256 (*entryDiffLYZ2PRODPtPOI)+=(Long_t)avMultDiffFlowLYZ2PRODPOI;
3257 entryDiffLYZ2PRODPtPOI->Append(", N = ");
3258 (*entryDiffLYZ2PRODPtPOI)+=(Long_t)nEvtsDiffFlowLYZ2PRODPOI;
3259 legendDiffFlowPtPOI->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2PRODPtPOI->Data(),"p");
3263 if(plotLYZEPPtPOI && lyzepCommonHistRes)
3265 entryDiffLYZEPPtPOI->Append("M = ");
3266 (*entryDiffLYZEPPtPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
3267 entryDiffLYZEPPtPOI->Append(", N = ");
3268 (*entryDiffLYZEPPtPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI;
3269 legendDiffFlowPtPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZEPPtPOI->Data(),"p");
3272 //drawing finally the legend in the 2nd pad:
3273 if(textDefault) textDefault->Draw();
3275 if(legendDiffFlowPtPOI)
3277 legendDiffFlowPtPOI->SetMargin(0.15);
3278 legendDiffFlowPtPOI->Draw();
3280 }//end of if(plotDiffFlowPtPOI)
3281 //----------------------------------------------------------------------------------
3284 //----------------------------------------------------------------------------------
3285 //final drawing for differential flow (Eta, POI):
3286 if(plotDiffFlowEtaPOI)
3288 TCanvas* diffFlowEtaAllCanvasPOI = new TCanvas("Differential Flow (Eta) of POI","Differential Flow (Eta) of POI ",1000,600);
3290 diffFlowEtaAllCanvasPOI->Divide(2,1);
3292 //1st pad is for plot:
3293 (diffFlowEtaAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3297 (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
3298 styleHistEta->Draw();
3300 if(pMeshDiffFlowEtaPOI)
3302 pMeshDiffFlowEtaPOI->Draw("LFSAME");
3306 if(plotMCEtaPOI && mcepCommonHistRes)
3308 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3311 if(plotSPEtaPOI && spCommonHistRes)
3313 (spCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3316 if(plotGFC2EtaPOI && gfcCommonHistRes2)
3318 (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3320 if(plotGFC4EtaPOI && gfcCommonHistRes4)
3322 (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3324 if(plotGFC6EtaPOI && gfcCommonHistRes6)
3326 (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3328 if(plotGFC8EtaPOI && gfcCommonHistRes8)
3330 (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3333 if(plotQC2EtaPOI && qcCommonHistRes2)
3335 (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3337 if(plotQC4EtaPOI && qcCommonHistRes4)
3339 (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3341 if(plotQC6EtaPOI && qcCommonHistRes6)
3343 //(qcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3345 if(plotQC8EtaPOI && qcCommonHistRes8)
3347 //(qcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3350 if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3352 (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3355 if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3357 (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3360 if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3362 (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3365 //2nd pad is for legend:
3366 (diffFlowEtaAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3368 TLegend* legendDiffFlowEtaPOI = new TLegend(0.02,0.12,0.97,0.70);
3369 legendDiffFlowEtaPOI->SetTextFont(72);
3370 legendDiffFlowEtaPOI->SetTextSize(0.06);
3373 TString *entryDiffMCEtaPOI = new TString("MC ........ ");
3374 TString *entryDiffSPEtaPOI = new TString("SP ........ ");
3375 TString *entryDiffGFC2EtaPOI = new TString("GFC{2} .... ");
3376 TString *entryDiffGFC4EtaPOI = new TString("GFC{4} .... ");
3377 TString *entryDiffGFC6EtaPOI = new TString("GFC{6} .... ");
3378 TString *entryDiffGFC8EtaPOI = new TString("GFC{8} .... ");
3379 TString *entryDiffQC2EtaPOI = new TString("QC{2} ..... ");
3380 TString *entryDiffQC4EtaPOI = new TString("QC{4} ..... ");
3381 TString *entryDiffQC6EtaPOI = new TString("QC{6} ..... ");
3382 TString *entryDiffQC8EtaPOI = new TString("QC{8} ..... ");
3383 TString *entryDiffLYZ2SUMEtaPOI = new TString("LYZ{sum} .. ");
3384 TString *entryDiffLYZ2PRODEtaPOI = new TString("LYZ{prod} . ");
3385 TString *entryDiffLYZEPEtaPOI = new TString("LYZEP ..... ");
3388 if(mcepCommonHistRes)
3390 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillStyle(meshStyleDiffFlowEtaPOI);
3391 (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillColor(meshColorDiffFlowEtaPOI);
3392 entryDiffMCEtaPOI->Append("M = ");
3393 (*entryDiffMCEtaPOI)+=(Long_t)avMultDiffFlowMCPOI;
3394 entryDiffMCEtaPOI->Append(", N = ");
3395 (*entryDiffMCEtaPOI)+=(Long_t)nEvtsDiffFlowMCPOI;
3396 legendDiffFlowEtaPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffMCEtaPOI->Data(),"f");
3400 if(plotSPEtaPOI && spCommonHistRes)
3402 entryDiffSPEtaPOI->Append("M = ");
3403 (*entryDiffSPEtaPOI)+=(Long_t)avMultDiffFlowSPPOI;
3404 entryDiffSPEtaPOI->Append(", N = ");
3405 (*entryDiffSPEtaPOI)+=(Long_t)nEvtsDiffFlowSPPOI;
3406 legendDiffFlowEtaPOI->AddEntry(spCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffSPEtaPOI->Data(),"p");
3410 if(plotGFC2EtaPOI && gfcCommonHistRes2)
3412 entryDiffGFC2EtaPOI->Append("M = ");
3413 (*entryDiffGFC2EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3414 entryDiffGFC2EtaPOI->Append(", N = ");
3415 (*entryDiffGFC2EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3416 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffGFC2EtaPOI->Data(),"p");
3418 if(plotGFC4EtaPOI && gfcCommonHistRes4)
3420 entryDiffGFC4EtaPOI->Append("M = ");
3421 (*entryDiffGFC4EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3422 entryDiffGFC4EtaPOI->Append(", N = ");
3423 (*entryDiffGFC4EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3424 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffGFC4EtaPOI->Data(),"p");
3426 if(plotGFC6EtaPOI && gfcCommonHistRes6)
3428 entryDiffGFC6EtaPOI->Append("M = ");
3429 (*entryDiffGFC6EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3430 entryDiffGFC6EtaPOI->Append(", N = ");
3431 (*entryDiffGFC6EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3432 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffGFC6EtaPOI->Data(),"p");
3434 if(plotGFC8EtaPOI && gfcCommonHistRes8)
3436 entryDiffGFC8EtaPOI->Append("M = ");
3437 (*entryDiffGFC8EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3438 entryDiffGFC8EtaPOI->Append(", N = ");
3439 (*entryDiffGFC8EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI;
3440 legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffGFC8EtaPOI->Data(),"p");
3444 if(plotQC2EtaPOI && qcCommonHistRes2)
3446 entryDiffQC2EtaPOI->Append("M = ");
3447 (*entryDiffQC2EtaPOI)+=(Long_t)avMultDiffFlowQC2POI;
3448 entryDiffQC2EtaPOI->Append(", N = ");
3449 (*entryDiffQC2EtaPOI)+=(Long_t)nEvtsDiffFlowQC2POI;
3450 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffQC2EtaPOI->Data(),"p");
3452 if(plotQC4EtaPOI && qcCommonHistRes4)
3454 entryDiffQC4EtaPOI->Append("M = ");
3455 (*entryDiffQC4EtaPOI)+=(Long_t)avMultDiffFlowQC4POI;
3456 entryDiffQC4EtaPOI->Append(", N = ");
3457 (*entryDiffQC4EtaPOI)+=(Long_t)nEvtsDiffFlowQC4POI;
3458 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffQC4EtaPOI->Data(),"p");
3460 if(plotQC6EtaPOI && qcCommonHistRes6)
3462 entryDiffQC6EtaPOI->Append("M = ");
3463 (*entryDiffQC6EtaPOI)+=(Long_t)avMultDiffFlowQC6POI;
3464 entryDiffQC6EtaPOI->Append(", N = ");
3465 (*entryDiffQC6EtaPOI)+=(Long_t)nEvtsDiffFlowQC6POI;
3466 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffQC6EtaPOI->Data(),"p");
3468 if(plotQC8EtaPOI && qcCommonHistRes8)
3470 entryDiffQC8EtaPOI->Append("M = ");
3471 (*entryDiffQC8EtaPOI)+=(Long_t)avMultDiffFlowQC8POI;
3472 entryDiffQC8EtaPOI->Append(", N = ");
3473 (*entryDiffQC8EtaPOI)+=(Long_t)nEvtsDiffFlowQC8POI;
3474 legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffQC8EtaPOI->Data(),"p");
3478 if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3480 entryDiffLYZ2SUMEtaPOI->Append("M = ");
3481 (*entryDiffLYZ2SUMEtaPOI)+=(Long_t)avMultDiffFlowLYZ2SUMPOI;
3482 entryDiffLYZ2SUMEtaPOI->Append(", N = ");
3483 (*entryDiffLYZ2SUMEtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2SUMPOI;
3484 legendDiffFlowEtaPOI->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2SUMEtaPOI->Data(),"p");
3488 if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3490 entryDiffLYZ2PRODEtaPOI->Append("M = ");
3491 (*entryDiffLYZ2PRODEtaPOI)+=(Long_t)avMultDiffFlowLYZ2PRODPOI;
3492 entryDiffLYZ2PRODEtaPOI->Append(", N = ");
3493 (*entryDiffLYZ2PRODEtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2PRODPOI;
3494 legendDiffFlowEtaPOI->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2PRODEtaPOI->Data(),"p");
3498 if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3500 entryDiffLYZEPEtaPOI->Append("M = ");
3501 (*entryDiffLYZEPEtaPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
3502 entryDiffLYZEPEtaPOI->Append(", N = ");
3503 (*entryDiffLYZEPEtaPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI;
3504 legendDiffFlowEtaPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZEPEtaPOI->Data(),"p");
3507 //drawing finally the legend in the 2nd pad:
3508 if(textDefault) textDefault->Draw();
3510 if(legendDiffFlowEtaPOI)
3512 legendDiffFlowEtaPOI->SetMargin(0.15);
3513 legendDiffFlowEtaPOI->Draw();
3515 }//end of if(plotDiffFlowEtaPOI)
3516 //----------------------------------------------------------------------------------
3519 //=====================================================================================
3524 void LoadPlotLibraries(const libModes mode) {
3526 //--------------------------------------
3527 // Load the needed libraries most of them already loaded by aliroot
3528 //--------------------------------------
3529 gSystem->Load("libTree.so");
3530 gSystem->Load("libGeom.so");
3531 gSystem->Load("libVMC.so");
3532 gSystem->Load("libXMLIO.so");
3533 gSystem->Load("libPhysics.so");
3535 //----------------------------------------------------------
3536 // >>>>>>>>>>> Local mode <<<<<<<<<<<<<<
3537 //----------------------------------------------------------
3539 //--------------------------------------------------------
3540 // If you want to use already compiled libraries
3541 // in the aliroot distribution
3542 //--------------------------------------------------------
3544 //==================================================================================
3545 //load needed libraries:
3546 gSystem->AddIncludePath("-I$ROOTSYS/include");
3547 gSystem->Load("libTree.so");
3550 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
3551 gSystem->Load("libANALYSIS.so");
3552 gSystem->Load("libPWG2flowCommon.so");
3553 cerr<<"libPWG2flowCommon.so loaded ..."<<endl;
3557 else if (mode==mLocalSource) {
3559 // In root inline compile
3562 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
3563 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
3564 gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
3567 gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+");
3568 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
3569 gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
3572 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");
3574 // Output histosgrams
3575 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
3576 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
3577 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
3578 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
3580 cout << "finished loading macros!" << endl;