]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/macros/compareFlowResults.C
QC preliminary statistical errors for 2nd order differential flow in pt
[u/mrichter/AliRoot.git] / PWG2 / FLOW / macros / compareFlowResults.C
1 //type of analysis can be: ESD, AOD, MC, ESDMC0, ESDMC1
2 //const TString type = "ESD"; 
3
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
7
8 //void compareFlowResults(TString type="",Int_t mode=mLocalSource)
9 void compareFlowResults(TString type="",Int_t mode=mLocal)
10
11
12   // load needed libraries:                       
13   LoadPlotLibraries(mode);
14
15   Bool_t plotLegendIntFlow = kTRUE; // plot legend with average multiplicity and number of events for each method in all plots for integrated flow
16
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   //==================================================================================
34   
35   
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; 
51   
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;
66   
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;  
80   
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; 
95   
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   //==================================================================================
111  
112   
113   //==================================================================================  
114   // cosmetics: marker style (see TMarker) and color (see TAttFill) for each method:
115   // MC:
116   Int_t markerStyleMC = 20; // full circle
117   Int_t markerColorMC = kRed;
118   // SP:
119   Int_t markerStyleSP = 3; // star
120   Int_t markerColorSP = kViolet-6;
121   // GFC{2}
122   Int_t markerStyleGFC2 = 21; // full square
123   Int_t markerColorGFC2 = kAzure-7;
124   // GFC{4}
125   Int_t markerStyleGFC4 = 20; // full circle
126   Int_t markerColorGFC4 = kAzure+3;
127   // GFC{6}
128   Int_t markerStyleGFC6 = 25; // open square
129   Int_t markerColorGFC6 = kAzure-7;
130   // GFC{8}
131   Int_t markerStyleGFC8 = 24; // open circle
132   Int_t markerColorGFC8 = kAzure+3;
133   // QC{2}
134   Int_t markerStyleQC2 = 21; // full square
135   Int_t markerColorQC2 = kOrange-7;
136   // QC{4}
137   Int_t markerStyleQC4 = 20; // full circle
138   Int_t markerColorQC4 = kOrange+3;
139   // QC{6}
140   Int_t markerStyleQC6 = 25; // open square
141   Int_t markerColorQC6 = kOrange-7;
142   // QC{8}
143   Int_t markerStyleQC8 = 24; // open circle
144   Int_t markerColorQC8 = kOrange+3;
145   // LYZ2SUM
146   Int_t markerStyleLYZ2SUM = 22; // full triangle
147   Int_t markerColorLYZ2SUM = kYellow+3;
148   // LYZ2PROD
149   Int_t markerStyleLYZ2PROD = 22; // full triangle
150   Int_t markerColorLYZ2PROD = kGreen+3;
151   // LYZEP
152   Int_t markerStyleLYZEP = 26; // open triangle
153   Int_t markerColorLYZEP = kYellow+3; 
154   //==================================================================================
155
156
157   //==================================================================================  
158   // set here which result goes in which bin in the plot for integrated flow (no-name) 
159   // MC:
160   Int_t binMC = 1; 
161   // SP:
162   Int_t binSP = 2;
163   // GFC{2}
164   Int_t binGFC2 = 3; 
165   // GFC{4}
166   Int_t binGFC4 = 5; 
167   // GFC{6}
168   Int_t binGFC6 = 7; 
169   // GFC{8}
170   Int_t binGFC8 = 9; 
171   // QC{2}
172   Int_t binQC2 = 4; 
173   // QC{4}
174   Int_t binQC4 = 6; 
175   // QC{6}
176   Int_t binQC6 = 8; 
177   // QC{8}
178   Int_t binQC8 = 10; 
179   // FQD 
180   Int_t binFQD = 11; 
181   // LYZ1SUM
182   Int_t binLYZ1SUM = 12; 
183   // LYZ1PROD
184   Int_t binLYZ1PROD = 13; 
185   // LYZEP
186   Int_t binLYZEP = 14; 
187   //==================================================================================
188
189
190   //==================================================================================  
191   // set here which result goes in which bin in the plot for integrated flow (RP) 
192   // MC:
193   Int_t binMCRP = 1; 
194   // SP:
195   Int_t binSPRP = 2;
196   // GFC{2}
197   Int_t binGFC2RP = 3; 
198   // GFC{4}
199   Int_t binGFC4RP = 5; 
200   // GFC{6}
201   Int_t binGFC6RP = 7; 
202   // GFC{8}
203   Int_t binGFC8RP = 9; 
204   // QC{2}
205   Int_t binQC2RP = 4; 
206   // QC{4}
207   Int_t binQC4RP = 6; 
208   // QC{6}
209   Int_t binQC6RP = 8; 
210   // QC{8}
211   Int_t binQC8RP = 10; 
212   // FQD 
213   Int_t binFQDRP = 11; 
214   // LYZ2SUM
215   Int_t binLYZ2SUMRP = 12; 
216   // LYZ2PROD
217   Int_t binLYZ2PRODRP = 13; 
218   // LYZEP
219   Int_t binLYZEPRP = 14; 
220   //==================================================================================
221
222
223   //==================================================================================  
224   // set here which result goes in which bin in the plot for integrated flow (POI) 
225   // MC:
226   Int_t binMCPOI = 1; 
227   // SP:
228   Int_t binSPPOI = 2;
229   // GFC{2}
230   Int_t binGFC2POI = 3; 
231   // GFC{4}
232   Int_t binGFC4POI = 5; 
233   // GFC{6}
234   Int_t binGFC6POI = 7; 
235   // GFC{8}
236   Int_t binGFC8POI = 9; 
237   // QC{2}
238   Int_t binQC2POI = 4; 
239   // QC{4}
240   Int_t binQC4POI = 6; 
241   // QC{6}
242   Int_t binQC6POI = 8; 
243   // QC{8}
244   Int_t binQC8POI = 10; 
245   // FQD 
246   Int_t binFQDPOI = 11; 
247   // LYZ2SUM
248   Int_t binLYZ2SUMPOI = 12;  
249   // LYZ2PROD
250   Int_t binLYZ2PRODPOI = 13;    
251   // LYZEP
252   Int_t binLYZEPPOI = 14; 
253   //==================================================================================
254  
255                                         
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"); 
263   
264   TString inputFileNameSP = "outputSPanalysis";
265   TFile* fileSP = NULL;
266   fileSP = TFile::Open(((inputFileNameSP.Append(type)).Append(".root")).Data(), "READ"); 
267   
268   TString inputFileNameLYZ1SUM = "outputLYZ1SUManalysis";
269   TFile* fileLYZ1SUM = NULL;
270   fileLYZ1SUM = TFile::Open(((inputFileNameLYZ1SUM.Append(type)).Append(".root")).Data(), "READ"); 
271   
272   TString inputFileNameLYZ2SUM = "outputLYZ2SUManalysis";
273   TFile* fileLYZ2SUM = NULL;
274   fileLYZ2SUM = TFile::Open(((inputFileNameLYZ2SUM.Append(type)).Append(".root")).Data(), "READ"); 
275   
276   TString inputFileNameLYZ1PROD = "outputLYZ1PRODanalysis";
277   TFile* fileLYZ1PROD = NULL;
278   fileLYZ1PROD = TFile::Open(((inputFileNameLYZ1PROD.Append(type)).Append(".root")).Data(), "READ"); 
279   
280   TString inputFileNameLYZ2PROD = "outputLYZ2PRODanalysis";
281   TFile* fileLYZ2PROD = NULL;
282   fileLYZ2PROD = TFile::Open(((inputFileNameLYZ2PROD.Append(type)).Append(".root")).Data(), "READ"); 
283   
284   TString inputFileNameLYZEP = "outputLYZEPanalysis";
285   TFile* fileLYZEP = NULL;
286   fileLYZEP = TFile::Open(((inputFileNameLYZEP.Append(type)).Append(".root")).Data(), "READ");
287   
288   TString inputFileNameFQD = "outputFQDanalysis";
289   TFile* fileFQD = NULL;
290   fileFQD = TFile::Open(((inputFileNameFQD.Append(type)).Append(".root")).Data(), "READ"); 
291   
292   TString inputFileNameGFC = "outputGFCanalysis";
293   TFile* fileGFC = NULL;
294   fileGFC = TFile::Open(((inputFileNameGFC.Append(type)).Append(".root")).Data(), "READ"); 
295   
296   TString inputFileNameQC = "outputQCanalysis";
297   TFile* fileQC = NULL;
298   fileQC = TFile::Open(((inputFileNameQC.Append(type)).Append(".root")).Data(), "READ"); 
299   //==================================================================================
300  
301  
302  
303  
304   //==================================================================================
305   //                                 cosmetics
306   //==================================================================================
307   //removing the title and stat. box from all histograms:
308   gStyle->SetOptTitle(0);
309   gStyle->SetOptStat(0);
310   
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;
315   
316   // marker style and color  
317   Int_t markerStyle = 21;
318   Int_t markerColor = kBlack;
319   
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;
324   
325   // marker style and color  
326   Int_t markerStyleRP = 21;
327   Int_t markerColorRP = kRed-3;
328   
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;
333   
334   // marker style and color  
335   Int_t markerStylePOI = 21;
336   Int_t markerColorPOI = kBlue-3;
337   
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;
342   
343   // plot for differential flow (Eta,RP):
344   Int_t meshStyleDiffFlowEtaRP = 1001;
345   Int_t meshColorDiffFlowEtaRP = kRed-10;
346   
347   // plot for differential flow (Pt,POI):
348   Int_t meshStyleDiffFlowPtPOI = 1001;
349   Int_t meshColorDiffFlowPtPOI = kRed-10;
350
351   // plot for differential flow (Eta,POI):
352   Int_t meshStyleDiffFlowEtaPOI = 1001;
353   Int_t meshColorDiffFlowEtaPOI = kRed-10;
354   //==================================================================================
355   
356   
357   
358   
359   //==================================================================================
360   //                             INTEGRATED FLOW (no-name, RP and POI)
361   //==================================================================================
362   // the number of different methods:
363   const Int_t nMethods=14;
364   
365   // booking the histogram for the integrated flow results from all methods:
366   TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods);      
367   if(!plotLegendIntFlow) intFlowAll->SetLabelSize(0.044,"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}");
385   
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++)
389   {
390    x[i]=i+0.5;
391   }
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.};
399   
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; 
405   if(fileMCEP) {
406     fileMCEP->GetObject("cobjMCEP",pListMCEP); 
407     if(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);
417       }
418     }
419   }
420   
421   // SP = Scalar Product
422   TList *pListSP = NULL;
423   AliFlowCommonHist *spCommonHist = NULL;
424   AliFlowCommonHistResults *spCommonHistRes = NULL; 
425   if(fileSP) {
426     fileSP->GetObject("cobjSP",pListSP); 
427     if(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);
437       }
438     }
439   }
440   
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; 
445   if(fileLYZ1SUM) {
446     fileLYZ1SUM->GetObject("cobjLYZ1SUM",pListLYZ1SUM); 
447     if(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);
453       }
454     }
455   }
456   
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; 
461   if(fileLYZ2SUM) {
462     fileLYZ2SUM->GetObject("cobjLYZ2SUM",pListLYZ2SUM); 
463     if(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);
471       }
472     }
473   }
474  
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; 
479   if(fileLYZ1PROD) {
480     fileLYZ1PROD->GetObject("cobjLYZ1PROD",pListLYZ1PROD); 
481     if(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);
487       }
488     }
489   }
490   
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; 
495   if(fileLYZ2PROD) {
496     fileLYZ2PROD->GetObject("cobjLYZ2PROD",pListLYZ2PROD); 
497     if(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);
505       }
506     }
507   }
508   
509   // LYZEP = Lee-Yang Zeros Event Plane
510   TList *pListLYZEP = NULL;
511   AliFlowCommonHist *lyzepCommonHist = NULL;
512   AliFlowCommonHistResults *lyzepCommonHistRes = NULL; 
513   if(fileLYZEP) {
514     fileLYZEP->GetObject("cobjLYZEP",pListLYZEP); 
515     if(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);
525       }
526     }
527   }
528  
529   // FQD = Fitting q-distribution
530   TList *pListFQD = NULL;
531   AliFlowCommonHist *fqdCommonHist = NULL;
532   AliFlowCommonHistResults *fqdCommonHistRes = NULL; 
533   if(fileFQD) {
534     fileFQD->GetObject("cobjFQD",pListFQD); 
535     if(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);
545       }
546     }
547   }
548  
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; 
556   if(fileGFC) {
557     fileGFC->GetObject("cobjGFC",pListGFC);
558     if(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);
568       }
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);
577       }
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);
586       }
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);
595       }
596     }
597   }
598  
599   //QC = Q-cumulants
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; 
609   
610   if(fileQC) {
611     fileQC->GetObject("cobjQC",pListQC);
612     if(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);
622       }
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);
632       }
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);
642       }
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);
652       }
653     }
654   }        
655   
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];
659   
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];
664     } 
665   }  
666   
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];
670   
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];
675     } 
676   }  
677
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];
681   
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];
686     } 
687   }  
688  
689   // no-name:
690   TGraph* flowResults = new TGraphErrors(nMethods, x, flowValue, xError, flowError);
691   flowResults->SetMarkerStyle(markerStyle);
692   flowResults->SetMarkerColor(markerColor);
693   
694   // RP:
695   TGraph* flowResultsRP = new TGraphErrors(nMethods, x, flowValueRP, xError, flowErrorRP); 
696   flowResultsRP->SetMarkerStyle(markerStyleRP);
697   flowResultsRP->SetMarkerColor(markerColorRP);
698   
699   // POI:
700   TGraph* flowResultsPOI = new TGraphErrors(nMethods, x, flowValuePOI, xError, flowErrorPOI);
701   flowResultsPOI->SetMarkerStyle(markerStylePOI);
702   flowResultsPOI->SetMarkerColor(markerColorPOI);
703   
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++) 
716   {
717    if(flowValue[0] != 0)
718    {
719     if(flowValue[i] != 0) flowRelativeToMC[i] = (flowValue[i]-flowValue[0])/(flowValue[0]);
720     if(flowError[i] != 0) flowRelativeToMCError[i] = flowError[i]/flowValue[0];
721    }
722    if(flowValueRP[0] != 0)
723    {
724     if(flowValueRP[i] != 0) flowRelativeToMCRP[i] = (flowValueRP[i]-flowValueRP[0])/(flowValueRP[0]);
725     if(flowErrorRP[i] != 0) flowRelativeToMCErrorRP[i] = flowErrorRP[i]/flowValueRP[0];
726    }
727    if(flowValuePOI[0] != 0)
728    {
729     if(flowValuePOI[i] != 0) flowRelativeToMCPOI[i] = (flowValuePOI[i]-flowValuePOI[0])/(flowValuePOI[0]);
730     if(flowErrorPOI[i] != 0) flowRelativeToMCErrorPOI[i] = flowErrorPOI[i]/flowValuePOI[0];
731    }
732   } // for(Int_t i=1;i<nMethods;i++) 
733   
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);
738   
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);
743  
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   //-----------------------------------------------------------------------------------
749   
750   //----------------------------------------------------------------------------------
751   // cosmetics: mesh for MC error bands (integrated flow)
752   TGraph* pMesh = NULL;
753   TGraph* pMeshRP = NULL;
754   TGraph* pMeshPOI = NULL;
755   
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]; 
764     
765     pMesh = new TGraph(nPts);
766     pMeshRP = new TGraph(nPts);
767     pMeshPOI = new TGraph(nPts);
768     
769     // no-name:
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);
777      
778     // RP:
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);
786     
787     // POI:
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);     
795   }
796   //---------------------------------------------------------------------------------- 
797  
798   
799   //----------------------------------------------------------------------------------
800   //cosmetics: text (integrated flow) 
801   //default text:
802   TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC");
803   textDefault->SetTextFont(72);
804   textDefault->SetTextSize(0.08);
805   
806   TString *entryDefaultAvM = new TString("Average Multiplicity");
807   TString *entryDefaultAnd = new TString("and"); 
808   TString *entryDefaultNumOfEvts = new TString("Number of Events:");
809   
810   textDefault->AddText(entryDefaultAvM->Data());
811   textDefault->AddText(entryDefaultAnd->Data());
812   textDefault->AddText(entryDefaultNumOfEvts->Data());
813   
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);
818   
819   // results (RP):
820   TPaveText *textResultsRP = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
821   textResultsRP->SetTextFont(72);
822   textResultsRP->SetTextSize(0.06);
823   
824   // results (POI):
825   TPaveText *textResultsPOI = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
826   textResultsPOI->SetTextFont(72);
827   textResultsPOI->SetTextSize(0.06);
828   
829   // no-name:              
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 ..... "); 
841   
842   // RP: 
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 ..... "); 
854   
855   // POI: 
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 ..... "); 
867   
868   // no-name:
869   Double_t avMultMC=0.;
870   Long_t nEvtsMC=0;
871   Double_t avMultSP=0.;
872   Long_t nEvtsSP=0;
873   Double_t avMultGFC=0.;
874   Long_t nEvtsGFC=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.;
878   Long_t nEvtsFQD=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.;
884   Long_t nEvtsLYZEP=0;
885   
886   // RP:
887   Double_t avMultMCRP=0.;
888   Long_t nEvtsMCRP=0;
889   Double_t avMultSPRP=0.;
890   Long_t nEvtsSPRP=0;
891   Double_t avMultGFCRP=0.;
892   Long_t nEvtsGFCRP=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.;
896   Long_t nEvtsFQDRP=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;
903   
904   // POI:
905   Double_t avMultMCPOI=0.;
906   Long_t nEvtsMCPOI=0;
907   Double_t avMultSPPOI=0.;
908   Long_t nEvtsSPPOI=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;
921   
922   // MC:  
923   if(mcepCommonHist) {
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();
930   }
931   
932   if(entryMC) {   
933     entryMC->Append("M = ");
934     (*entryMC)+=(Long_t)avMultMC;
935     entryMC->Append(", N = ");
936     (*entryMC)+=(Long_t)nEvtsMC;
937   }
938  
939   if(entryMCRP) {   
940     entryMCRP->Append("M = ");
941     (*entryMCRP)+=(Long_t)avMultMCRP;
942     entryMCRP->Append(", N = ");
943     (*entryMCRP)+=(Long_t)nEvtsMCRP;
944   }
945   
946   if(entryMCPOI) {   
947    entryMCPOI->Append("M = ");
948    (*entryMCPOI)+=(Long_t)avMultMCPOI;
949    entryMCPOI->Append(", N = ");
950    (*entryMCPOI)+=(Long_t)nEvtsMCPOI;
951   }
952   
953   // SP:  
954   if(spCommonHist) {
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();
961   }
962   
963   if(entrySP) {   
964     entrySP->Append("M = ");
965     (*entrySP)+=(Long_t)avMultSP;
966     entrySP->Append(", N = ");
967     (*entrySP)+=(Long_t)nEvtsSP;
968   }
969  
970   if(entrySPRP) {   
971     entrySPRP->Append("M = ");
972     (*entrySPRP)+=(Long_t)avMultSPRP;
973     entrySPRP->Append(", N = ");
974     (*entrySPRP)+=(Long_t)nEvtsSPRP;
975   }
976   
977   if(entrySPPOI) {   
978    entrySPPOI->Append("M = ");
979    (*entrySPPOI)+=(Long_t)avMultSPPOI;
980    entrySPPOI->Append(", N = ");
981    (*entrySPPOI)+=(Long_t)nEvtsSPPOI;
982   }
983   
984  // GFC:
985  if(gfcCommonHist) {
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();
992  }
993  
994  if(entryGFC) { 
995    entryGFC->Append("M = ");
996    (*entryGFC)+=(Long_t)avMultGFC;
997    entryGFC->Append(", N = ");
998    (*entryGFC)+=(Long_t)nEvtsGFC;
999  }
1000  
1001  if(entryGFCRP) { 
1002    entryGFCRP->Append("M = ");
1003    (*entryGFCRP)+=(Long_t)avMultGFCRP;
1004    entryGFCRP->Append(", N = ");
1005    (*entryGFCRP)+=(Long_t)nEvtsGFCRP;
1006  }
1007  if(entryGFCPOI) { 
1008    entryGFCPOI->Append("M = ");
1009    (*entryGFCPOI)+=(Long_t)avMultGFCPOI;
1010    entryGFCPOI->Append(", N = ");
1011    (*entryGFCPOI)+=(Long_t)nEvtsGFCPOI;
1012  }
1013  
1014  // QC:
1015  if(qcCommonHist2) {
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();
1022  }
1023  
1024  if(entryQC2)
1025  { 
1026   entryQC2->Append("M = ");
1027   (*entryQC2)+=(Long_t)avMultQC2;
1028   entryQC2->Append(", N = ");
1029   (*entryQC2)+=(Long_t)nEvtsQC2;
1030  }
1031  
1032  if(entryQC2RP)
1033  { 
1034   entryQC2RP->Append("M = ");
1035   (*entryQC2RP)+=(Long_t)avMultQC2RP;
1036   entryQC2RP->Append(", N = ");
1037   (*entryQC2RP)+=(Long_t)nEvtsQC2RP;
1038  } 
1039  
1040  if(entryQC2POI)
1041  { 
1042   entryQC2POI->Append("M = ");
1043   (*entryQC2POI)+=(Long_t)avMultQC2POI;
1044   entryQC2POI->Append(", N = ");
1045   (*entryQC2POI)+=(Long_t)nEvtsQC2POI;
1046  } 
1047
1048  if(qcCommonHist4)
1049  {
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();
1056  }
1057  
1058  if(entryQC4)
1059  {
1060   entryQC4->Append("M = ");
1061   (*entryQC4)+=(Long_t)avMultQC4;
1062   entryQC4->Append(", N = ");
1063   (*entryQC4)+=(Long_t)nEvtsQC4;
1064  }
1065  
1066  if(entryQC4RP)
1067  {
1068   entryQC4RP->Append("M = ");
1069   (*entryQC4RP)+=(Long_t)avMultQC4RP;
1070   entryQC4RP->Append(", N = ");
1071   (*entryQC4RP)+=(Long_t)nEvtsQC4RP;
1072  }
1073  
1074  if(entryQC4POI)
1075  {
1076   entryQC4POI->Append("M = ");
1077   (*entryQC4POI)+=(Long_t)avMultQC4POI;
1078   entryQC4POI->Append(", N = ");
1079   (*entryQC4POI)+=(Long_t)nEvtsQC4POI;
1080  }
1081    
1082  if(qcCommonHist6)
1083  {
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();
1090  }
1091  
1092  if(entryQC6)
1093  {  
1094   entryQC6->Append("M = ");
1095   (*entryQC6)+=(Long_t)avMultQC6;
1096   entryQC6->Append(", N = ");
1097   (*entryQC6)+=(Long_t)nEvtsQC6;
1098  }
1099  
1100  if(entryQC6RP)
1101  {  
1102   entryQC6RP->Append("M = ");
1103   (*entryQC6RP)+=(Long_t)avMultQC6RP;
1104   entryQC6RP->Append(", N = ");
1105   (*entryQC6RP)+=(Long_t)nEvtsQC6RP;
1106  }
1107  
1108  if(entryQC6POI)
1109  {  
1110   entryQC6POI->Append("M = ");
1111   (*entryQC6POI)+=(Long_t)avMultQC6POI;
1112   entryQC6POI->Append(", N = ");
1113   (*entryQC6POI)+=(Long_t)nEvtsQC6POI;
1114  }
1115    
1116  if(qcCommonHist8)
1117  {
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();    
1124  }
1125   
1126  if(entryQC8)
1127  {
1128   entryQC8->Append("M = ");
1129   (*entryQC8)+=(Long_t)avMultQC8;
1130   entryQC8->Append(", N = ");
1131   (*entryQC8)+=(Long_t)nEvtsQC8;
1132  }
1133  
1134  if(entryQC8RP)
1135  {
1136   entryQC8RP->Append("M = ");
1137   (*entryQC8RP)+=(Long_t)avMultQC8RP;
1138   entryQC8RP->Append(", N = ");
1139   (*entryQC8RP)+=(Long_t)nEvtsQC8RP;
1140  }
1141  
1142  if(entryQC8POI)
1143  {
1144   entryQC8POI->Append("M = ");
1145   (*entryQC8POI)+=(Long_t)avMultQC8POI;
1146   entryQC8POI->Append(", N = ");
1147   (*entryQC8POI)+=(Long_t)nEvtsQC8POI;
1148  }
1149   
1150  // FQD:
1151  if(fqdCommonHist)
1152  {
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();
1159  } 
1160  
1161  if(entryFQD)
1162  {
1163   entryFQD->Append("M = ");
1164   (*entryFQD)+=(Long_t)avMultFQD;
1165   entryFQD->Append(", N = ");
1166   (*entryFQD)+=(Long_t)nEvtsFQD;
1167  }
1168  
1169  if(entryFQDRP)
1170  {
1171   entryFQDRP->Append("M = ");
1172   (*entryFQDRP)+=(Long_t)avMultFQDRP;
1173   entryFQDRP->Append(", N = ");
1174   (*entryFQDRP)+=(Long_t)nEvtsFQDRP;
1175  }
1176  
1177  if(entryFQDPOI)
1178  {
1179   entryFQDPOI->Append("M = ");
1180   (*entryFQDPOI)+=(Long_t)avMultFQDPOI;
1181   entryFQDPOI->Append(", N = ");
1182   (*entryFQDPOI)+=(Long_t)nEvtsFQDPOI;
1183  }  
1184   
1185  // LYZ1SUM:
1186  if(lyz1sumCommonHist)
1187  {
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();
1194  }
1195  
1196  if(entryLYZ1SUM) 
1197  {
1198   entryLYZ1SUM->Append("M = ");
1199   (*entryLYZ1SUM)+=(Long_t)avMultLYZ1SUM;
1200   entryLYZ1SUM->Append(", N = ");
1201   (*entryLYZ1SUM)+=(Long_t)nEvtsLYZ1SUM;
1202  }
1203  
1204  if(entryLYZ1SUMRP) 
1205  {
1206   entryLYZ1SUMRP->Append("M = ");
1207   (*entryLYZ1SUMRP)+=(Long_t)avMultLYZ1SUMRP;
1208   entryLYZ1SUMRP->Append(", N = ");
1209   (*entryLYZ1SUMRP)+=(Long_t)nEvtsLYZ1SUMRP;
1210  }
1211  
1212  if(entryLYZ1SUMPOI) 
1213  {
1214   entryLYZ1SUMPOI->Append("M = ");
1215   (*entryLYZ1SUMPOI)+=(Long_t)avMultLYZ1SUMPOI;
1216   entryLYZ1SUMPOI->Append(", N = ");
1217   (*entryLYZ1SUMPOI)+=(Long_t)nEvtsLYZ1SUMPOI;
1218  }
1219  
1220  // LYZ1PROD:
1221  if(lyz1prodCommonHist)
1222  {
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();
1229  }
1230   
1231  if(entryLYZ1PROD) 
1232  {
1233   entryLYZ1PROD->Append("M = ");
1234   (*entryLYZ1PROD)+=(Long_t)avMultLYZ1PROD;
1235   entryLYZ1PROD->Append(", N = ");
1236   (*entryLYZ1PROD)+=(Long_t)nEvtsLYZ1PROD;
1237  }
1238  
1239  if(entryLYZ1PRODRP) 
1240  {
1241   entryLYZ1PRODRP->Append("M = ");
1242   (*entryLYZ1PRODRP)+=(Long_t)avMultLYZ1PRODRP;
1243   entryLYZ1PRODRP->Append(", N = ");
1244   (*entryLYZ1PRODRP)+=(Long_t)nEvtsLYZ1PRODRP;
1245  }
1246  
1247  if(entryLYZ1PRODPOI) 
1248  {
1249   entryLYZ1PRODPOI->Append("M = ");
1250   (*entryLYZ1PRODPOI)+=(Long_t)avMultLYZ1PRODPOI;
1251   entryLYZ1PRODPOI->Append(", N = ");
1252   (*entryLYZ1PRODPOI)+=(Long_t)nEvtsLYZ1PRODPOI;
1253  } 
1254  
1255  // LYZEP:
1256  if(lyzepCommonHist)
1257  {
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();    
1264  }
1265  
1266  
1267  if(entryLYZEP)
1268  {
1269   entryLYZEP->Append("M = ");
1270   (*entryLYZEP)+=(Long_t)avMultLYZEP;
1271   entryLYZEP->Append(", N = ");
1272   (*entryLYZEP)+=(Long_t)nEvtsLYZEP;
1273  }
1274  
1275  if(entryLYZEPRP)
1276  {
1277   entryLYZEPRP->Append("M = ");
1278   (*entryLYZEPRP)+=(Long_t)avMultLYZEPRP;
1279   entryLYZEPRP->Append(", N = ");
1280   (*entryLYZEPRP)+=(Long_t)nEvtsLYZEPRP;
1281  }
1282  
1283  if(entryLYZEPPOI)
1284  {
1285   entryLYZEPPOI->Append("M = ");
1286   (*entryLYZEPPOI)+=(Long_t)avMultLYZEPPOI;
1287   entryLYZEPPOI->Append(", N = ");
1288   (*entryLYZEPPOI)+=(Long_t)nEvtsLYZEPPOI;
1289  }
1290
1291  // no-name:
1292  if(textResults)
1293  {
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());
1305  }
1306  
1307  // RP:
1308  if(textResultsRP)
1309  {
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());
1321  }
1322  
1323  // POI:
1324  if(textResultsPOI)
1325  {
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());
1337  }
1338  //----------------------------------------------------------------------------------
1339  
1340  
1341  //----------------------------------------------------------------------------------
1342  // final drawing for integrated flow (no-name):
1343  if(plotIntFlow)
1344  {
1345   TCanvas* intFlowAllCanvas = new TCanvas("Integrated Flow","Integrated Flow",1000,600);
1346  
1347   if(plotLegendIntFlow) 
1348   {
1349    intFlowAllCanvas->Divide(2,1);
1350    // 1st pad is for plot:
1351    (intFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1352   } 
1353     
1354   if(intFlowAll)
1355   {
1356    if(dMin>0. && dMax>0.)
1357    {
1358     (intFlowAll->GetYaxis())->SetRangeUser(0.9744*dMin,1.0144*dMax);
1359    } else if(dMin<0. && dMax>0.)
1360      {
1361       if(!(-1.*dMin<4.*dMax))
1362       {  
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.)
1366        {
1367         (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,0.9866*dMax);      
1368        }
1369    intFlowAll->Draw("E1");
1370   }                    
1371                                                     
1372   if(pMesh) pMesh->Draw("LFSAME");
1373    
1374   if(flowResults) flowResults->Draw("PSAME");
1375
1376   // 2nd pad is for legend:
1377   if(plotLegendIntFlow)
1378   {
1379    (intFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1380  
1381    if(textDefault) textDefault->Draw();
1382  
1383    if(textResults) textResults->Draw();
1384   }
1385   
1386  }// end of if(plotIntFlow) 
1387  //----------------------------------------------------------------------------------
1388  
1389  
1390  //----------------------------------------------------------------------------------
1391  // final drawing for integrated flow relative to MC (no-name):
1392  if(plotIntFlowRelativeToMC)
1393  {
1394   TCanvas* intFlowAllRelativeToMCCanvas = new TCanvas("Integrated Flow Relative To MC","Integrated Flow Relative To MC",1000,600);
1395  
1396   intFlowAllRelativeToMCCanvas->Divide(2,1);
1397  
1398   // 1st pad is for plot:
1399   (intFlowAllRelativeToMCCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1400   
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");            
1405   
1406   if(flowResultsRelativeToMC) flowResultsRelativeToMC->Draw("PSAME");
1407
1408   // 2nd pad is for legend:
1409   (intFlowAllRelativeToMCCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1410  
1411   if(textDefault) textDefault->Draw();
1412  
1413   if(textResults) textResults->Draw();
1414  
1415  }// end of if(plotIntFlowRelativeToMC) 
1416  //----------------------------------------------------------------------------------
1417  
1418  
1419  //----------------------------------------------------------------------------------
1420  //final drawing for integrated flow of RP (i.e. of particles used to determine the reaction plane):
1421  if(plotIntFlowRP)
1422  {
1423   TCanvas* intFlowAllCanvasRP = new TCanvas("Integrated Flow RP","Integrated Flow RP",1000,600);
1424  
1425   if(plotLegendIntFlow)
1426   {
1427    intFlowAllCanvasRP->Divide(2,1);
1428  
1429    //1st pad is for plot:
1430    (intFlowAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1431   }
1432  
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}");
1450
1451   if(intFlowAllRP)
1452   {
1453    if(dMinRP>0. && dMaxRP>0.)
1454    {
1455     (intFlowAllRP->GetYaxis())->SetRangeUser(0.9744*dMinRP,1.0144*dMaxRP);
1456    } else if(dMinRP<0. && dMaxRP>0.)
1457      {
1458       if(!(-1.*dMinRP<4.*dMaxRP))
1459       {  
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.)
1463        {
1464         (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,0.9866*dMaxRP);      
1465        } 
1466    intFlowAllRP->Draw("E1");
1467   }
1468                                                                                                                                                                                                                                                                                    
1469   if(pMeshRP) pMeshRP->Draw("LFSAME");
1470    
1471   if(flowResultsRP) flowResultsRP->Draw("PSAME");
1472
1473   if(plotLegendIntFlow)
1474   {
1475    //2nd pad is for legend:
1476    (intFlowAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1477   
1478    if(textDefault) textDefault->Draw();
1479  
1480    if(textResultsRP) textResultsRP->Draw();
1481   }
1482    
1483  }//end of if(plotIntFlowRP} 
1484  //----------------------------------------------------------------------------------
1485  
1486  
1487  //----------------------------------------------------------------------------------
1488  // final drawing for integrated flow relative to MC (RP):
1489  if(plotIntFlowRelativeToMCRP)
1490  {
1491   TCanvas* intFlowAllRelativeToMCRPCanvas = new TCanvas("Integrated Flow (RP) Relative To MC","Integrated Flow (RP) Relative To MC",1000,600);
1492  
1493   intFlowAllRelativeToMCRPCanvas->Divide(2,1);
1494  
1495   // 1st pad is for plot:
1496   (intFlowAllRelativeToMCRPCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1497   
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");            
1502   
1503   if(flowResultsRelativeToMCRP) flowResultsRelativeToMCRP->Draw("PSAME");
1504
1505   // 2nd pad is for legend:
1506   (intFlowAllRelativeToMCRPCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1507  
1508   if(textDefault) textDefault->Draw();
1509  
1510   if(textResultsRP) textResultsRP->Draw();
1511  
1512  }// end of if(plotIntFlowRelativeToMCRP) 
1513  //----------------------------------------------------------------------------------
1514   
1515  
1516  //----------------------------------------------------------------------------------
1517  //final drawing for integrated flow of POI (i.e. of particles of interest):
1518  if(plotIntFlowPOI)
1519  {
1520   TCanvas* intFlowAllCanvasPOI = new TCanvas("Integrated Flow POI","Integrated Flow POI",1000,600);
1521   
1522   if(plotLegendIntFlow)
1523   {
1524    intFlowAllCanvasPOI->Divide(2,1);
1525  
1526    //1st pad is for plot:
1527    (intFlowAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1528   }
1529   
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}");
1547   
1548   if(intFlowAllPOI)
1549   {
1550    if(dMinPOI>0. && dMaxPOI>0.)
1551    {
1552     (intFlowAllPOI->GetYaxis())->SetRangeUser(0.9744*dMinPOI,1.0144*dMaxPOI);
1553    } else if(dMinPOI<0. && dMaxPOI>0.)
1554      {
1555       if(!(-1.*dMinPOI<4.*dMaxPOI))
1556       {  
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.)
1560        {
1561         (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,0.9866*dMaxPOI);      
1562        }
1563    intFlowAllPOI->Draw("E1");
1564   }
1565                             
1566   if(pMeshPOI) pMeshPOI->Draw("LFSAME");
1567    
1568   if(flowResultsPOI) flowResultsPOI->Draw("PSAME");
1569  
1570   if(plotLegendIntFlow)
1571   {
1572    //2nd pad is for legend:
1573    (intFlowAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1574   
1575    if(textDefault) textDefault->Draw();
1576
1577    if(textResultsPOI) textResultsPOI->Draw();
1578   } 
1579    
1580  }// end of if(plotIntFlowPOI) 
1581  //----------------------------------------------------------------------------------      
1582  
1583     
1584  //----------------------------------------------------------------------------------
1585  // final drawing for integrated flow relative to MC (POI):
1586  if(plotIntFlowRelativeToMCPOI)
1587  {
1588   TCanvas* intFlowAllRelativeToMCPOICanvas = new TCanvas("Integrated Flow (POI) Relative To MC","Integrated Flow (POI) Relative To MC",1000,600);
1589  
1590   intFlowAllRelativeToMCPOICanvas->Divide(2,1);
1591  
1592   // 1st pad is for plot:
1593   (intFlowAllRelativeToMCPOICanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1594   
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");            
1599   
1600   if(flowResultsRelativeToMCPOI) flowResultsRelativeToMCPOI->Draw("PSAME");
1601
1602   // 2nd pad is for legend:
1603   (intFlowAllRelativeToMCPOICanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1604  
1605   if(textDefault) textDefault->Draw();
1606  
1607   if(textResultsPOI) textResultsPOI->Draw();
1608  
1609  }// end of if(plotIntFlowRelativeToMCPOI) 
1610  //----------------------------------------------------------------------------------
1611          
1612  //==================================================================================   
1613
1614
1615
1616
1617  //==================================================================================
1618  //                            DIFFERENTIAL FLOW
1619  //==================================================================================
1620  Int_t iNbinsPt  = AliFlowCommonConstants::GetNbinsPt();
1621  Double_t dPtMin = AliFlowCommonConstants::GetPtMin();
1622  Double_t dPtMax = AliFlowCommonConstants::GetPtMax();
1623  
1624  Int_t iNbinsEta  = AliFlowCommonConstants::GetNbinsEta();
1625  Double_t dEtaMin = AliFlowCommonConstants::GetEtaMin();
1626  Double_t dEtaMax = AliFlowCommonConstants::GetEtaMax();
1627  
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}");
1634  
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  //----------------------------------------------------------------------------------
1641  
1642  
1643
1644  //----------------------------------------------------------------------------------
1645  //RP:
1646  //cosmetics: Monte Carlo error bands for differential flow (Pt)
1647  TGraph* pMeshDiffFlowPtRP = NULL;
1648  if(mcepCommonHistRes)
1649  {
1650   Int_t nBinsDiffFlowPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetNbinsX();
1651   Double_t binWidthPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinWidth(1);//assuming that all bins have the same width
1652
1653   //counting the non-empty bins: 
1654   Int_t nNonEmptyBinsDiffFlowPtRP=0;
1655   for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1656   {
1657    if(!(mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i)==0.0))
1658    {
1659     nNonEmptyBinsDiffFlowPtRP++;
1660    }
1661   }    
1662        
1663   pMeshDiffFlowPtRP = new TGraph(2*nNonEmptyBinsDiffFlowPtRP+1);
1664   
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++)
1669   {
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))
1674    {    
1675     pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(i-0.5)*binWidthPtRP+dPtMin,valueMCPtRP+errorMCPtRP);
1676     if(xFirstDiffFlowPtRP==0.)
1677     {
1678      xFirstDiffFlowPtRP=(i-0.5)*binWidthPtRP+dPtMin;
1679      yUpFirstDiffFlowPtRP=valueMCPtRP+errorMCPtRP;
1680     }
1681    } 
1682   }   
1683   for(Int_t i=nBinsDiffFlowPtRP+1;i<2*nBinsDiffFlowPtRP+1;i++)
1684   {
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))
1689    {      
1690     pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(2*nBinsDiffFlowPtRP-i+0.5)*binWidthPtRP+dPtMin,valueMCPtRP-errorMCPtRP);
1691    }  
1692   }
1693   //closing the mesh area:
1694   pMeshDiffFlowPtRP->SetPoint(2*nNonEmptyBinsDiffFlowPtRP+1,xFirstDiffFlowPtRP,yUpFirstDiffFlowPtRP);   
1695   
1696   //setting the mesh style and color:               
1697   pMeshDiffFlowPtRP->SetFillStyle(meshStyleDiffFlowPtRP);
1698   pMeshDiffFlowPtRP->SetFillColor(meshColorDiffFlowPtRP);
1699  }
1700
1701  //cosmetics: Monte Carlo error bands for differential flow (Eta)
1702  TGraph* pMeshDiffFlowEtaRP = NULL;
1703  if(mcepCommonHistRes)
1704  {
1705   Int_t nBinsDiffFlowEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetNbinsX();
1706   Double_t binWidthEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinWidth(1);//assuming that all bins have the same width
1707
1708   //counting the non-empty bins: 
1709   Int_t nNonEmptyBinsDiffFlowEtaRP=0;
1710   for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1711   {
1712    if(!(mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i)==0.0))
1713    {
1714     nNonEmptyBinsDiffFlowEtaRP++;
1715    }
1716   }    
1717        
1718   pMeshDiffFlowEtaRP = new TGraph(2*nNonEmptyBinsDiffFlowEtaRP+1);
1719   
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++)
1724   {
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))
1729    {    
1730     pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(i-0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP+errorMCEtaRP);
1731     if(xFirstDiffFlowEtaRP==0.)
1732     {
1733      xFirstDiffFlowEtaRP=(i-0.5)*binWidthEtaRP+dEtaMin;
1734      yUpFirstDiffFlowEtaRP=valueMCEtaRP+errorMCEtaRP;
1735     }
1736    } 
1737   }   
1738   for(Int_t i=nBinsDiffFlowEtaRP+1;i<2*nBinsDiffFlowEtaRP+1;i++)
1739   {
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))
1744    {      
1745     pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(2*nBinsDiffFlowEtaRP-i+0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP-errorMCEtaRP);
1746    }  
1747   }
1748   //closing the mesh area:
1749   pMeshDiffFlowEtaRP->SetPoint(2*nNonEmptyBinsDiffFlowEtaRP+1,xFirstDiffFlowEtaRP,yUpFirstDiffFlowEtaRP);   
1750   
1751   //setting the mesh style and color:               
1752   pMeshDiffFlowEtaRP->SetFillStyle(meshStyleDiffFlowEtaRP);
1753   pMeshDiffFlowEtaRP->SetFillColor(meshColorDiffFlowEtaRP);
1754  } 
1755  //----------------------------------------------------------------------------------
1756
1757
1758
1759
1760  //----------------------------------------------------------------------------------
1761  //POI:
1762  //cosmetics: Monte Carlo error bands for differential flow (Pt)
1763  TGraph* pMeshDiffFlowPtPOI = NULL;
1764  if(mcepCommonHistRes)
1765  {
1766   Int_t nBinsDiffFlowPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetNbinsX();
1767   Double_t binWidthPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinWidth(1);//assuming that all bins have the same width
1768
1769   //counting the non-empty bins: 
1770   Int_t nNonEmptyBinsDiffFlowPtPOI=0;
1771   for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1772   {
1773    if(!(mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i)==0.0))
1774    {
1775     nNonEmptyBinsDiffFlowPtPOI++;
1776    }
1777   }    
1778        
1779   pMeshDiffFlowPtPOI = new TGraph(2*nNonEmptyBinsDiffFlowPtPOI+1);
1780   
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++)
1785   {
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))
1790    {    
1791     pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(i-0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI+errorMCPtPOI);
1792     if(xFirstDiffFlowPtPOI==0.)
1793     {
1794      xFirstDiffFlowPtPOI=(i-0.5)*binWidthPtPOI+dPtMin;
1795      yUpFirstDiffFlowPtPOI=valueMCPtPOI+errorMCPtPOI;
1796     }
1797    } 
1798   }   
1799   for(Int_t i=nBinsDiffFlowPtPOI+1;i<2*nBinsDiffFlowPtPOI+1;i++)
1800   {
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))
1805    {      
1806     pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(2*nBinsDiffFlowPtPOI-i+0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI-errorMCPtPOI);
1807    }  
1808   }
1809   //closing the mesh area:
1810   pMeshDiffFlowPtPOI->SetPoint(2*nNonEmptyBinsDiffFlowPtPOI+1,xFirstDiffFlowPtPOI,yUpFirstDiffFlowPtPOI);   
1811   
1812   //setting the mesh style and color:               
1813   pMeshDiffFlowPtPOI->SetFillStyle(meshStyleDiffFlowPtPOI);
1814   pMeshDiffFlowPtPOI->SetFillColor(meshColorDiffFlowPtPOI);
1815  }
1816
1817  //cosmetics: Monte Carlo error bands for differential flow (Eta)
1818  TGraph* pMeshDiffFlowEtaPOI = NULL;
1819  if(mcepCommonHistRes)
1820  {
1821   Int_t nBinsDiffFlowEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetNbinsX();
1822   Double_t binWidthEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinWidth(1);//assuming that all bins have the same width
1823
1824   //counting the non-empty bins: 
1825   Int_t nNonEmptyBinsDiffFlowEtaPOI=0;
1826   for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1827   {
1828    if(!(mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i)==0.0))
1829    {
1830     nNonEmptyBinsDiffFlowEtaPOI++;
1831    }
1832   }    
1833        
1834   pMeshDiffFlowEtaPOI = new TGraph(2*nNonEmptyBinsDiffFlowEtaPOI+1);
1835   
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++)
1840   {
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))
1845    {    
1846     pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(i-0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI+errorMCEtaPOI);
1847     if(xFirstDiffFlowEtaPOI==0.)
1848     {
1849      xFirstDiffFlowEtaPOI=(i-0.5)*binWidthEtaPOI+dEtaMin;
1850      yUpFirstDiffFlowEtaPOI=valueMCEtaPOI+errorMCEtaPOI;
1851     }
1852    } 
1853   }   
1854   for(Int_t i=nBinsDiffFlowEtaPOI+1;i<2*nBinsDiffFlowEtaPOI+1;i++)
1855   {
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))
1860    {      
1861     pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(2*nBinsDiffFlowEtaPOI-i+0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI-errorMCEtaPOI);
1862    }  
1863   }
1864   //closing the mesh area:
1865   pMeshDiffFlowEtaPOI->SetPoint(2*nNonEmptyBinsDiffFlowEtaPOI+1,xFirstDiffFlowEtaPOI,yUpFirstDiffFlowEtaPOI);   
1866   
1867   //setting the mesh style and color:               
1868   pMeshDiffFlowEtaPOI->SetFillStyle(meshStyleDiffFlowEtaPOI);
1869   pMeshDiffFlowEtaPOI->SetFillColor(meshColorDiffFlowEtaPOI);
1870  }
1871  //----------------------------------------------------------------------------------
1872    
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;
1878  if(fileMCEP)
1879  {
1880   if(mcepCommonHistRes)
1881   {
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);
1890   } 
1891   if(mcepCommonHist)
1892   {
1893    avMultDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
1894    nEvtsDiffFlowMCRP  = (mcepCommonHist->GetHistMultRP())->GetEntries();
1895    avMultDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
1896    nEvtsDiffFlowMCPOI  = (mcepCommonHist->GetHistMultPOI())->GetEntries();      
1897   } 
1898  } 
1899  
1900  //SP = Scalar Product
1901  Double_t avMultDiffFlowSPRP=0.;
1902  Double_t nEvtsDiffFlowSPRP=0;
1903  Double_t avMultDiffFlowSPPOI=0.;
1904  Double_t nEvtsDiffFlowSPPOI=0;
1905  if(fileSP)
1906  {
1907   if(spCommonHistRes)
1908   {
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);
1917   } 
1918   if(spCommonHist)
1919   {
1920    avMultDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetMean();
1921    nEvtsDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
1922    avMultDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
1923    nEvtsDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();      
1924   } 
1925  } 
1926
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.; 
1934  if(fileGFC)
1935  {
1936   if(gfcCommonHistRes2)
1937   {
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);
1946   }
1947   if(gfcCommonHistRes4)
1948   { 
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);         
1957   }
1958   if(gfcCommonHistRes6)
1959   { 
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);
1968   }
1969   if(gfcCommonHistRes8)
1970   { 
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);
1979   }
1980   if(gfcCommonHist)
1981   {
1982    avMultDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();   
1983    nEvtsDiffFlowGFCRP  = (gfcCommonHist->GetHistMultRP())->GetEntries();
1984    avMultDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
1985    nEvtsDiffFlowGFCPOI  = (gfcCommonHist->GetHistMultPOI())->GetEntries();   
1986   } 
1987  }
1988   
1989  //QC = Q-cumulants
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.;
2006
2007  if(fileQC)
2008  {
2009   //QC{2}
2010   if(qcCommonHistRes2)
2011   {
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);
2020   }
2021   if(qcCommonHist2)
2022   {
2023    avMultDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
2024    nEvtsDiffFlowQC2RP  = (qcCommonHist2->GetHistMultRP())->GetEntries();
2025    avMultDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
2026    nEvtsDiffFlowQC2POI  = (qcCommonHist2->GetHistMultPOI())->GetEntries();
2027   }
2028   //QC{4}
2029   if(qcCommonHistRes4)
2030   {
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);
2039   }
2040   if(qcCommonHist4)
2041   {
2042    avMultDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
2043    nEvtsDiffFlowQC4RP  = (qcCommonHist4->GetHistMultRP())->GetEntries();
2044    avMultDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
2045    nEvtsDiffFlowQC4POI  = (qcCommonHist4->GetHistMultPOI())->GetEntries();
2046   }
2047   //QC{6}
2048   if(qcCommonHistRes6)
2049   {
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);
2058   }
2059   if(qcCommonHist6)
2060   {
2061    avMultDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
2062    nEvtsDiffFlowQC6RP  = (qcCommonHist6->GetHistMultRP())->GetEntries();
2063    avMultDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
2064    nEvtsDiffFlowQC6POI  = (qcCommonHist6->GetHistMultPOI())->GetEntries();
2065   }
2066   //QC{8}
2067   if(qcCommonHistRes8)
2068   {
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);
2077   }
2078   if(qcCommonHist8)
2079   {
2080    avMultDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
2081    nEvtsDiffFlowQC8RP  = (qcCommonHist8->GetHistMultRP())->GetEntries();
2082    avMultDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
2083    nEvtsDiffFlowQC8POI  = (qcCommonHist8->GetHistMultPOI())->GetEntries();
2084   }
2085  } 
2086
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;
2092  if(fileLYZ2SUM)
2093  {
2094   if(lyz2sumCommonHistRes)
2095   {
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);
2104   } 
2105   if(lyz2sumCommonHist)
2106   {
2107    avMultDiffFlowLYZ2SUMRP = (lyz2sumCommonHist->GetHistMultRP())->GetMean();
2108    nEvtsDiffFlowLYZ2SUMRP  = (lyz2sumCommonHist->GetHistMultRP())->GetEntries();
2109    avMultDiffFlowLYZ2SUMPOI = (lyz2sumCommonHist->GetHistMultPOI())->GetMean();
2110    nEvtsDiffFlowLYZ2SUMPOI  = (lyz2sumCommonHist->GetHistMultPOI())->GetEntries();
2111   } 
2112  } 
2113  
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;
2119  if(fileLYZ2PROD)
2120  {
2121   if(lyz2prodCommonHistRes)
2122   {
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);
2131   } 
2132   if(lyz2prodCommonHist)
2133   {
2134    avMultDiffFlowLYZ2PRODRP = (lyz2prodCommonHist->GetHistMultRP())->GetMean();
2135    nEvtsDiffFlowLYZ2PRODRP  = (lyz2prodCommonHist->GetHistMultRP())->GetEntries();
2136    avMultDiffFlowLYZ2PRODPOI = (lyz2prodCommonHist->GetHistMultPOI())->GetMean();
2137    nEvtsDiffFlowLYZ2PRODPOI  = (lyz2prodCommonHist->GetHistMultPOI())->GetEntries();
2138   } 
2139  } 
2140
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;
2146  if(fileLYZEP)
2147  {
2148   if(lyzepCommonHistRes)
2149   {
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);
2158   } 
2159   if(lyzepCommonHist)
2160   {
2161    avMultDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
2162    nEvtsDiffFlowLYZEPRP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
2163    avMultDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
2164    nEvtsDiffFlowLYZEPPOI  = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
2165   } 
2166  } 
2167
2168
2169  //----------------------------------------------------------------------------------
2170  //final drawing for differential flow (Pt, RP):
2171  if(plotDiffFlowPtRP)
2172  {
2173   TCanvas* diffFlowPtAllCanvasRP = new TCanvas("Differential Flow (Pt) of RP","Differential Flow (Pt) of RP ",1000,600);
2174   
2175   diffFlowPtAllCanvasRP->Divide(2,1);
2176  
2177   //1st pad is for plot:
2178   (diffFlowPtAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2179  
2180   if(styleHistPt)
2181   {
2182    (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
2183    styleHistPt->Draw();
2184   }
2185   if(pMeshDiffFlowPtRP)
2186   {
2187    pMeshDiffFlowPtRP->Draw("LFSAME");
2188   }
2189  
2190   //MC 
2191   if(plotMCPtRP && mcepCommonHistRes)
2192   { 
2193    (mcepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2194   }
2195   //SP 
2196   if(plotSPPtRP && spCommonHistRes)
2197   { 
2198    (spCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2199   }
2200   //GFC
2201   if(plotGFC2PtRP && gfcCommonHistRes2)Pt
2202   { 
2203    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2204   } 
2205   if(plotGFC4PtRP && gfcCommonHistRes4)
2206   { 
2207    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2208   } 
2209   if(plotGFC6PtRP && gfcCommonHistRes6)
2210   { 
2211    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2212   } 
2213   if(plotGFC8PtRP && gfcCommonHistRes8)
2214   { 
2215    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2216   }    
2217   //QC
2218   if(plotQC2PtRP && qcCommonHistRes2)
2219   { 
2220    (qcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2221   }
2222   if(plotQC4PtRP && qcCommonHistRes4)
2223   { 
2224    (qcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2225   }
2226   if(plotQC6PtRP && qcCommonHistRes6)
2227   { 
2228    //(qcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2229   }
2230   if(plotQC8PtRP && qcCommonHistRes8)
2231   { 
2232    //(qcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2233   }
2234   //LYZ2SUM
2235   if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2236   { 
2237    (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2238   }
2239   //LYZ2PROD
2240   if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2241   { 
2242    (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2243   }
2244   //LYZEP
2245   if(plotLYZEPPtRP && lyzepCommonHistRes)
2246   { 
2247    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2248   }
2249
2250   //2nd pad is for legend:
2251   (diffFlowPtAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);  
2252     
2253   TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2254   legendDiffFlowPtRP->SetTextFont(72);
2255   legendDiffFlowPtRP->SetTextSize(0.06);
2256  
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 ..... ");
2271   
2272   //MC
2273   if(mcepCommonHistRes)
2274   {
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");
2282   }
2283   
2284   //SP
2285   if(plotSPPtRP && spCommonHistRes)
2286   {
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");
2292   }
2293
2294   //GFC
2295   if(plotGFC2PtRP && gfcCommonHistRes2)
2296   {
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");
2302   }
2303   if(plotGFC4PtRP && gfcCommonHistRes4)
2304   {
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");
2310   }
2311   if(plotGFC6PtRP && gfcCommonHistRes6)
2312   {
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");
2318   } 
2319   if(plotGFC8PtRP && gfcCommonHistRes8)
2320   {
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");
2326   }  
2327   
2328   //QC
2329   if(plotQC2PtRP && qcCommonHistRes2)
2330   {
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");
2336   }
2337   if(plotQC4PtRP && qcCommonHistRes4)
2338   {
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");
2344   }
2345   if(plotQC6PtRP && qcCommonHistRes6)
2346   {
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");
2352   }
2353   if(plotQC8PtRP && qcCommonHistRes8)
2354   {
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");
2360   }
2361   
2362   //LYZ2SUM
2363   if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2364   {
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");
2370   }
2371   
2372   //LYZ2PROD
2373   if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2374   {
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");
2380   }
2381   
2382   //LYZEP
2383   if(plotLYZEPPtRP && lyzepCommonHistRes)
2384   {
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");
2390   }
2391
2392   //drawing finally the legend in the 2nd pad:         
2393   if(textDefault) textDefault->Draw();
2394   
2395   if(legendDiffFlowPtRP)
2396   {
2397    legendDiffFlowPtRP->SetMargin(0.15);
2398    legendDiffFlowPtRP->Draw();
2399   }
2400  }// end of if(plotDiffFlowPtRP)
2401  //----------------------------------------------------------------------------------
2402  
2403  //----------------------------------------------------------------------------------
2404  //final drawing for differential flow (Eta, RP):
2405  if(plotDiffFlowEtaRP)
2406  {
2407   TCanvas* diffFlowEtaAllCanvasRP = new TCanvas("Differential Flow (Eta) of RP","Differential Flow (Eta) of RP ",1000,600);
2408  
2409   diffFlowEtaAllCanvasRP->Divide(2,1);
2410  
2411   //1st pad is for plot:
2412   (diffFlowEtaAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2413   
2414   if(styleHistEta)
2415   {
2416    (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
2417    styleHistEta->Draw();
2418   }
2419   if(pMeshDiffFlowEtaRP)
2420   {
2421    pMeshDiffFlowEtaRP->Draw("LFSAME");
2422   }
2423  
2424   //MC 
2425   if(plotMCEtaRP && mcepCommonHistRes)
2426   { 
2427    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2428   }
2429   //SP 
2430   if(plotSPEtaRP && spCommonHistRes)
2431   { 
2432    (spCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2433   }
2434   //GFC
2435   if(plotGFC2EtaRP && gfcCommonHistRes2)
2436   { 
2437    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2438   } 
2439   if(plotGFC4EtaRP && gfcCommonHistRes4)
2440   { 
2441    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2442   } 
2443   if(plotGFC6EtaRP && gfcCommonHistRes6)
2444   { 
2445    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2446   } 
2447   if(plotGFC8EtaRP && gfcCommonHistRes8)
2448   { 
2449    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2450   }    
2451   //QC
2452   if(plotQC2EtaRP && qcCommonHistRes2)
2453   { 
2454    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2455   }
2456   if(plotQC4EtaRP && qcCommonHistRes4)
2457   { 
2458    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2459   }
2460   if(plotQC6EtaRP && qcCommonHistRes6)
2461   { 
2462    //(qcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2463   }
2464   if(plotQC8EtaRP && qcCommonHistRes8)
2465   { 
2466    //(qcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2467   }
2468   //LYZ2SUM
2469   if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2470   { 
2471    (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2472   }
2473   //LYZ2PROD
2474   if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2475   { 
2476    (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2477   }
2478   //LYZEP
2479   if(plotLYZEPEtaRP && lyzepCommonHistRes)
2480   { 
2481    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2482   }
2483  
2484   //2nd pad is for legend:
2485   (diffFlowEtaAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2486
2487   TLegend* legendDiffFlowEtaRP = new TLegend(0.02,0.12,0.97,0.70);
2488   legendDiffFlowEtaRP->SetTextFont(72);
2489   legendDiffFlowEtaRP->SetTextSize(0.06);
2490   
2491   //legend's entries:
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 ..... ");
2505  
2506   //MC
2507   if(mcepCommonHistRes)
2508   {
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");
2516   }
2517   
2518   //SP
2519   if(plotSPEtaRP && spCommonHistRes)
2520   {
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");
2526   }
2527  
2528   //GFC
2529   if(plotGFC2EtaRP && gfcCommonHistRes2)
2530   {
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");
2536   }
2537   if(plotGFC4EtaRP && gfcCommonHistRes4)
2538   {
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");
2544   }
2545   if(plotGFC6EtaRP && gfcCommonHistRes6)
2546   {
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");
2552   } 
2553   if(plotGFC8EtaRP && gfcCommonHistRes8)
2554   {
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");
2560   }  
2561   
2562   //QC
2563   if(plotQC2EtaRP && qcCommonHistRes2)
2564   {
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");
2570   }
2571   if(plotQC4EtaRP && qcCommonHistRes4)
2572   {
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");
2578   }
2579   if(plotQC6EtaRP && qcCommonHistRes6)
2580   {
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");
2586   }
2587   if(plotQC8EtaRP && qcCommonHistRes8)
2588   {
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");
2594   }
2595  
2596   //LYZ2SUM
2597   if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2598   {
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");
2604   }
2605   
2606   //LYZ2PROD
2607   if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2608   {
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");
2614   }
2615   
2616   //LYZEP
2617   if(plotLYZEPEtaRP && lyzepCommonHistRes)
2618   {
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");
2624   }
2625
2626   //drawing finally the legend in the 2nd pad: 
2627   if(textDefault) textDefault->Draw();    
2628   
2629   if(legendDiffFlowEtaRP)
2630   {
2631    legendDiffFlowEtaRP->SetMargin(0.15);
2632    legendDiffFlowEtaRP->Draw();
2633   }
2634  }// end of if(plotDiffFlowEtaRP)
2635  //----------------------------------------------------------------------------------
2636  
2637  //----------------------------------------------------------------------------------
2638  // final drawing for plot |(v{method}-v{MC})/v{MC}| as a function of pt for RPs  
2639  if(plotDiffFlowPtRelativeToMCRP)
2640  {  
2641   TCanvas* diffFlowPtRelativeToMCRP = new TCanvas("Differential Flow (Pt) of RPs relative to MC","Differential Flow (Pt) of RPs relative to MC",1000,600);
2642   
2643   diffFlowPtRelativeToMCRP->Divide(2,1);
2644  
2645   //1st pad is for plot:
2646   (diffFlowPtRelativeToMCRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2647  
2648   if(styleHistPt)
2649   {
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();
2654   }
2655   
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);
2668     
2669   if(mcepCommonHistRes && mcepCommonHistRes->GetHistDiffFlowPtRP())
2670   {
2671    for(Int_t p=1;p<iNbinsPt+1;p++)
2672    {
2673     Double_t dvnMC = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2674     
2675     // SP:
2676     Double_t dvnSP = 0.;
2677     Double_t dvnErrorSP = 0.;
2678     if(spCommonHistRes && spCommonHistRes->GetHistDiffFlowPtRP())
2679     {
2680      dvnSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2681      dvnErrorSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2682     }
2683     if(dvnMC!=0. && dvnSP!=0.) 
2684     {
2685      spDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnSP-dvnMC)/dvnMC);
2686      spDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorSP/dvnMC);
2687     }
2688     
2689     // GFC{2}:
2690     Double_t dvnGFC2 = 0.;
2691     Double_t dvnErrorGFC2 = 0.;
2692     if(gfcCommonHistRes2 && gfcCommonHistRes2->GetHistDiffFlowPtRP())
2693     {
2694      dvnGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2695      dvnErrorGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2696     }
2697     if(dvnMC!=0. && dvnGFC2!=0.) 
2698     {
2699      gfc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC2-dvnMC)/dvnMC);
2700      gfc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC2/dvnMC);
2701     }
2702     
2703     // GFC{4}:
2704     Double_t dvnGFC4 = 0.;
2705     Double_t dvnErrorGFC4 = 0.;
2706     if(gfcCommonHistRes4 && gfcCommonHistRes4->GetHistDiffFlowPtRP())
2707     {
2708      dvnGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2709      dvnErrorGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2710     }
2711     if(dvnMC!=0. && dvnGFC4!=0.) 
2712     {
2713      gfc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC4-dvnMC)/dvnMC);
2714      gfc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC4/dvnMC);
2715     }
2716     
2717     // GFC{6}:
2718     Double_t dvnGFC6 = 0.;
2719     Double_t dvnErrorGFC6 = 0.;
2720     if(gfcCommonHistRes6 && gfcCommonHistRes6->GetHistDiffFlowPtRP())
2721     {
2722      dvnGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2723      dvnErrorGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2724     }
2725     if(dvnMC!=0. && dvnGFC6!=0.) 
2726     {
2727      gfc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC6-dvnMC)/dvnMC);
2728      gfc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC6/dvnMC);
2729     }
2730     
2731     // GFC{8}:
2732     Double_t dvnGFC8 = 0.;
2733     Double_t dvnErrorGFC8 = 0.;
2734     if(gfcCommonHistRes8 && gfcCommonHistRes8->GetHistDiffFlowPtRP())
2735     {
2736      dvnGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2737      dvnErrorGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2738     }
2739     if(dvnMC!=0. && dvnGFC8!=0.) 
2740     {
2741      gfc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC8-dvnMC)/dvnMC);
2742      gfc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC8/dvnMC);
2743     }
2744     
2745     // QC{2}:
2746     Double_t dvnQC2 = 0.;
2747     Double_t dvnErrorQC2 = 0.;
2748     if(qcCommonHistRes2 && qcCommonHistRes2->GetHistDiffFlowPtRP())
2749     {
2750      dvnQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2751      dvnErrorQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2752     }
2753     if(dvnMC!=0. && dvnQC2!=0.) 
2754     {
2755      qc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC2-dvnMC)/dvnMC);
2756      qc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC2/dvnMC);
2757     }
2758     
2759     // QC{4}:
2760     Double_t dvnQC4 = 0.;
2761     Double_t dvnErrorQC4 = 0.;
2762     if(qcCommonHistRes4 && qcCommonHistRes4->GetHistDiffFlowPtRP())
2763     {
2764      dvnQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2765      dvnErrorQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2766     }
2767     if(dvnMC!=0. && dvnQC4!=0.) 
2768     {
2769      qc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC4-dvnMC)/dvnMC);
2770      qc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC4/dvnMC);
2771     }
2772     
2773     // QC{6}:
2774     Double_t dvnQC6 = 0.;
2775     Double_t dvnErrorQC6 = 0.;
2776     if(qcCommonHistRes6 && qcCommonHistRes6->GetHistDiffFlowPtRP())
2777     {
2778      dvnQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2779      dvnErrorQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2780     }
2781     if(dvnMC!=0. && dvnQC6!=0.) 
2782     {
2783      qc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC6-dvnMC)/dvnMC);
2784      qc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC6/dvnMC);
2785     }
2786     
2787     // QC{8}:
2788     Double_t dvnQC8 = 0.;
2789     Double_t dvnErrorQC8 = 0.;
2790     if(qcCommonHistRes8 && qcCommonHistRes8->GetHistDiffFlowPtRP())
2791     {
2792      dvnQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2793      dvnErrorQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2794     }
2795     if(dvnMC!=0. && dvnQC8!=0.) 
2796     {
2797      qc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC8-dvnMC)/dvnMC);
2798      qc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC8/dvnMC);
2799     }
2800     
2801     // LYZ2SUM:
2802     Double_t dvnLYZ2SUM = 0.;
2803     Double_t dvnErrorLYZ2SUM = 0.;
2804     if(lyz2sumCommonHistRes && lyz2sumCommonHistRes->GetHistDiffFlowPtRP())
2805     {
2806      dvnLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2807      dvnErrorLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2808     }
2809     if(dvnMC!=0. && dvnLYZ2SUM!=0.) 
2810     {
2811      lyz2sumDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2SUM-dvnMC)/dvnMC);
2812      lyz2sumDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2SUM/dvnMC);
2813     }
2814     
2815     // LYZ2PROD:
2816     Double_t dvnLYZ2PROD = 0.;
2817     Double_t dvnErrorLYZ2PROD = 0.;
2818     if(lyz2prodCommonHistRes && lyz2prodCommonHistRes->GetHistDiffFlowPtRP())
2819     {
2820      dvnLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2821      dvnErrorLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2822     }
2823     if(dvnMC!=0. && dvnLYZ2PROD!=0.) 
2824     {
2825      lyz2prodDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2PROD-dvnMC)/dvnMC);
2826      lyz2prodDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2PROD/dvnMC);
2827     }
2828       
2829     // LYZEP:
2830     Double_t dvnLYZEP = 0.;
2831     Double_t dvnErrorLYZEP = 0.;
2832     if(lyzepCommonHistRes && lyzepCommonHistRes->GetHistDiffFlowPtRP())
2833     {
2834      dvnLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2835      dvnErrorLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2836     }
2837     if(dvnMC!=0. && dvnLYZEP!=0.) 
2838     {
2839      lyzepDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZEP-dvnMC)/dvnMC);
2840      lyzepDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZEP/dvnMC);
2841     }  
2842  
2843    } // end of for(Int_t p=1;p<iNbinsPt+1;p++)
2844   } // end of if(mcepCommonHistRes->GetHistDiffFlowPtRP())
2845   
2846   
2847   // final drawings: 
2848   spDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorSP);
2849   spDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleSP);
2850   if(plotSPRelativeToMCRP && spCommonHistRes) spDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2851   
2852   gfc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC2);
2853   gfc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC2);
2854   if(plotGFC2RelativeToMCRP && gfcCommonHistRes2) gfc2DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2855   
2856   gfc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC4);
2857   gfc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC4);
2858   if(plotGFC4RelativeToMCRP && gfcCommonHistRes4) gfc4DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2859   
2860   gfc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC6);
2861   gfc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC6);
2862   if(plotGFC6RelativeToMCRP && gfcCommonHistRes6) gfc6DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2863   
2864   gfc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC8);
2865   gfc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC8);
2866   if(plotGFC8RelativeToMCRP && gfcCommonHistRes8) gfc8DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2867   
2868   qc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC2);
2869   qc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC2);
2870   if(plotQC2RelativeToMCRP && qcCommonHistRes2) qc2DiffFlowPtRelativeToMCRP->Draw("PSAME");
2871   
2872   qc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC4);
2873   qc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC4);
2874   if(plotQC4RelativeToMCRP && qcCommonHistRes4) qc4DiffFlowPtRelativeToMCRP->Draw("PSAME");
2875   
2876   qc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC6);
2877   qc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC6);
2878   if(plotQC6RelativeToMCRP && qcCommonHistRes6) qc6DiffFlowPtRelativeToMCRP->Draw("PSAME");
2879   
2880   qc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC8);
2881   qc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC8);
2882   if(plotQC8RelativeToMCRP && qcCommonHistRes8) qc8DiffFlowPtRelativeToMCRP->Draw("PSAME");
2883   
2884   lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2885   lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2886   if(plotLYZ2SUMRelativeToMCRP && lyz2sumCommonHistRes) lyz2sumDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2887   
2888   lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2889   lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2890   if(plotLYZ2SUMRelativeToMCRP && lyz2prodCommonHistRes) lyz2prodDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2891   
2892   lyzepDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZEP);
2893   lyzepDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZEP);
2894   if(plotLYZEPRelativeToMCRP && lyzepCommonHistRes) lyzepDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2895   
2896   //2nd pad is for legend:
2897   (diffFlowPtRelativeToMCRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2898   
2899   TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2900   legendDiffFlowPtRP->SetTextFont(72);
2901   legendDiffFlowPtRP->SetTextSize(0.06);
2902  
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 ..... ");
2917   
2918   //MC
2919   if(mcepCommonHistRes)
2920   {
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");
2928   }
2929   
2930   //SP
2931   if(plotSPPtRP && spCommonHistRes)
2932   {
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");
2938   }
2939
2940   //GFC
2941   if(plotGFC2PtRP && gfcCommonHistRes2)
2942   {
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");
2948   }
2949   if(plotGFC4PtRP && gfcCommonHistRes4)
2950   {
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");
2956   }
2957   if(plotGFC6PtRP && gfcCommonHistRes6)
2958   {
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");
2964   } 
2965   if(plotGFC8PtRP && gfcCommonHistRes8)
2966   {
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");
2972   }  
2973   
2974   //QC
2975   if(plotQC2PtRP && qcCommonHistRes2)
2976   {
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");
2982   }
2983   if(plotQC4PtRP && qcCommonHistRes4)
2984   {
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");
2990   }
2991   if(plotQC6PtRP && qcCommonHistRes6)
2992   {
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");
2998   }
2999   if(plotQC8PtRP && qcCommonHistRes8)
3000   {
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");
3006   }
3007   
3008   //LYZ2SUM
3009   if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
3010   {
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");
3016   }
3017   
3018   //LYZ2PROD
3019   if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
3020   {
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");
3026   }
3027   
3028   //LYZEP
3029   if(plotLYZEPPtRP && lyzepCommonHistRes)
3030   {
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");
3036   }
3037
3038   //drawing finally the legend in the 2nd pad:         
3039   if(textDefault) textDefault->Draw();
3040   
3041   if(legendDiffFlowPtRP)
3042   {
3043    legendDiffFlowPtRP->SetMargin(0.15);
3044    legendDiffFlowPtRP->Draw();
3045   } 
3046  } 
3047  //----------------------------------------------------------------------------------
3048  
3049  //----------------------------------------------------------------------------------
3050  //final drawing for differential flow (Pt, POI):
3051  if(plotDiffFlowPtPOI)
3052  {
3053   TCanvas* diffFlowPtAllCanvasPOI = new TCanvas("Differential Flow (Pt) of POI","Differential Flow (Pt) of POI ",1000,600);
3054  
3055   diffFlowPtAllCanvasPOI->Divide(2,1);
3056  
3057   //1st pad is for plot:
3058   (diffFlowPtAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3059   
3060   if(styleHistPt)
3061   {
3062    (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
3063    styleHistPt->Draw();
3064   }
3065   if(pMeshDiffFlowPtPOI)
3066   {
3067    pMeshDiffFlowPtPOI->Draw("LFSAME");
3068   }
3069  
3070   //MC 
3071   if(plotMCPtPOI && mcepCommonHistRes)
3072   { 
3073    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3074   }
3075   //SP 
3076   if(plotSPPtPOI && spCommonHistRes)
3077   { 
3078    (spCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3079   }
3080   //GFC
3081   if(plotGFC2PtPOI && gfcCommonHistRes2)
3082   { 
3083    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3084   } 
3085   if(plotGFC4PtPOI && gfcCommonHistRes4)
3086   { 
3087    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3088   } 
3089   if(plotGFC6PtPOI && gfcCommonHistRes6)
3090   { 
3091    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3092   } 
3093   if(plotGFC8PtPOI && gfcCommonHistRes8)
3094   { 
3095    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3096   }    
3097   //QC
3098   if(plotQC2PtPOI && qcCommonHistRes2)
3099   { 
3100    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3101   }
3102   if(plotQC4PtPOI && qcCommonHistRes4)
3103   { 
3104    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3105   }
3106   if(plotQC6PtPOI && qcCommonHistRes6)
3107   { 
3108    //(qcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3109   }
3110   if(plotQC8PtPOI && qcCommonHistRes8)
3111   { 
3112    //(qcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3113   }
3114   //LYZ2SUM
3115   if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3116   { 
3117    (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3118   }
3119   //LYZ2PROD
3120   if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3121   { 
3122    (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3123   }
3124   //LYZEP
3125   if(plotLYZEPPtPOI && lyzepCommonHistRes)
3126   { 
3127    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3128   }
3129  
3130   //2nd pad is for legend:
3131   (diffFlowPtAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3132
3133   TLegend* legendDiffFlowPtPOI = new TLegend(0.02,0.12,0.97,0.70);
3134   legendDiffFlowPtPOI->SetTextFont(72);
3135   legendDiffFlowPtPOI->SetTextSize(0.06);
3136  
3137   //legend's entries:
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 ..... "); 
3151  
3152   //MC
3153   if(mcepCommonHistRes)
3154   {
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");
3162   }
3163   
3164   //SP
3165   if(plotSPPtPOI && spCommonHistRes)
3166   {
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");
3172   }
3173
3174   //GFC
3175   if(plotGFC2PtPOI && gfcCommonHistRes2)
3176   {
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");
3182   }
3183   if(plotGFC4PtPOI && gfcCommonHistRes4)
3184   {
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");
3190   }
3191   if(plotGFC6PtPOI && gfcCommonHistRes6)
3192   {
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");
3198   } 
3199   if(plotGFC8PtPOI && gfcCommonHistRes8)
3200   {
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");
3206   }  
3207   
3208   //QC
3209   if(plotQC2PtPOI && qcCommonHistRes2)
3210   {
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");
3216   }
3217   if(plotQC4PtPOI && qcCommonHistRes4)
3218   {
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");
3224   }
3225   if(plotQC6PtPOI && qcCommonHistRes6)
3226   {
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");
3232   }
3233   if(plotQC8PtPOI && qcCommonHistRes8)
3234   {
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");
3240   }
3241  
3242   //LYZ2SUM
3243   if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3244   {
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");
3250   }
3251   
3252   //LYZ2PROD
3253   if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3254   {
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");
3260   }
3261   
3262   //LYZEP
3263   if(plotLYZEPPtPOI && lyzepCommonHistRes)
3264   {
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");
3270   }
3271
3272   //drawing finally the legend in the 2nd pad: 
3273   if(textDefault) textDefault->Draw();
3274           
3275   if(legendDiffFlowPtPOI)
3276   {
3277    legendDiffFlowPtPOI->SetMargin(0.15);
3278    legendDiffFlowPtPOI->Draw();
3279   }
3280  }//end of if(plotDiffFlowPtPOI)
3281  //----------------------------------------------------------------------------------
3282
3283
3284  //----------------------------------------------------------------------------------
3285  //final drawing for differential flow (Eta, POI):
3286  if(plotDiffFlowEtaPOI)
3287  {
3288   TCanvas* diffFlowEtaAllCanvasPOI = new TCanvas("Differential Flow (Eta) of POI","Differential Flow (Eta) of POI ",1000,600);
3289  
3290   diffFlowEtaAllCanvasPOI->Divide(2,1);
3291   
3292   //1st pad is for plot:
3293   (diffFlowEtaAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3294  
3295   if(styleHistEta)
3296   {
3297    (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
3298    styleHistEta->Draw();
3299   }
3300   if(pMeshDiffFlowEtaPOI)
3301   {
3302    pMeshDiffFlowEtaPOI->Draw("LFSAME");
3303   }
3304  
3305   //MC 
3306   if(plotMCEtaPOI && mcepCommonHistRes)
3307   { 
3308    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3309   }
3310   //SP 
3311   if(plotSPEtaPOI && spCommonHistRes)
3312   { 
3313    (spCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3314   }
3315   //GFC
3316   if(plotGFC2EtaPOI && gfcCommonHistRes2)
3317   { 
3318    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3319   } 
3320   if(plotGFC4EtaPOI && gfcCommonHistRes4)
3321   { 
3322    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3323   } 
3324   if(plotGFC6EtaPOI && gfcCommonHistRes6)
3325   { 
3326    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3327   } 
3328   if(plotGFC8EtaPOI && gfcCommonHistRes8)
3329   { 
3330    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3331   }    
3332   //QC
3333   if(plotQC2EtaPOI && qcCommonHistRes2)
3334   { 
3335    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3336   }
3337   if(plotQC4EtaPOI && qcCommonHistRes4)
3338   { 
3339    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3340   }
3341   if(plotQC6EtaPOI && qcCommonHistRes6)
3342   { 
3343    //(qcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3344   }
3345   if(plotQC8EtaPOI && qcCommonHistRes8)
3346   { 
3347    //(qcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3348   }
3349   //LYZ2SUM
3350   if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3351   { 
3352    (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3353   }
3354   //LYZ2PROD
3355   if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3356   { 
3357    (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3358   }
3359   //LYZEP
3360   if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3361   { 
3362    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3363   }
3364  
3365   //2nd pad is for legend:
3366   (diffFlowEtaAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3367  
3368   TLegend* legendDiffFlowEtaPOI = new TLegend(0.02,0.12,0.97,0.70);
3369   legendDiffFlowEtaPOI->SetTextFont(72);
3370   legendDiffFlowEtaPOI->SetTextSize(0.06);
3371  
3372   //legend's entries:
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 ..... ");
3386  
3387   //MC
3388   if(mcepCommonHistRes)
3389   {
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");
3397   }
3398   
3399   //SP
3400   if(plotSPEtaPOI && spCommonHistRes)
3401   {
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");
3407   }
3408
3409   //GFC
3410   if(plotGFC2EtaPOI && gfcCommonHistRes2)
3411   {
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");
3417   }
3418   if(plotGFC4EtaPOI && gfcCommonHistRes4)
3419   {
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");
3425   }
3426   if(plotGFC6EtaPOI && gfcCommonHistRes6)
3427   {
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");
3433   } 
3434   if(plotGFC8EtaPOI && gfcCommonHistRes8)
3435   {
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");
3441   }  
3442  
3443   //QC
3444   if(plotQC2EtaPOI && qcCommonHistRes2)
3445   {
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");
3451   }
3452   if(plotQC4EtaPOI && qcCommonHistRes4)
3453   {
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");
3459   }
3460   if(plotQC6EtaPOI && qcCommonHistRes6)
3461   {
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");
3467   }
3468   if(plotQC8EtaPOI && qcCommonHistRes8)
3469   {
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");
3475   }
3476  
3477   //LYZ2SUM
3478   if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3479   {
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");
3485   }
3486   
3487   //LYZ2PROD
3488   if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3489   {
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");
3495   }
3496   
3497   //LYZEP
3498   if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3499   {
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");
3505   }
3506
3507   //drawing finally the legend in the 2nd pad:   
3508   if(textDefault) textDefault->Draw();
3509       
3510   if(legendDiffFlowEtaPOI)
3511   {
3512    legendDiffFlowEtaPOI->SetMargin(0.15);
3513    legendDiffFlowEtaPOI->Draw();
3514   }
3515  }//end of if(plotDiffFlowEtaPOI)
3516  //----------------------------------------------------------------------------------
3517
3518
3519  //=====================================================================================
3520  
3521  
3522 }
3523
3524 void LoadPlotLibraries(const libModes mode) {
3525   
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");
3534   
3535   //----------------------------------------------------------
3536   // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< 
3537   //----------------------------------------------------------
3538   if (mode==mLocal) {
3539     //--------------------------------------------------------
3540     // If you want to use already compiled libraries 
3541     // in the aliroot distribution
3542     //--------------------------------------------------------
3543
3544   //==================================================================================  
3545   //load needed libraries:
3546   gSystem->AddIncludePath("-I$ROOTSYS/include");
3547   gSystem->Load("libTree.so");
3548
3549   // for AliRoot
3550   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
3551   gSystem->Load("libANALYSIS.so");
3552   gSystem->Load("libPWG2flowCommon.so");
3553   cerr<<"libPWG2flowCommon.so loaded ..."<<endl;
3554   
3555   }
3556   
3557   else if (mode==mLocalSource) {
3558  
3559     // In root inline compile
3560   
3561     // Constants  
3562     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
3563     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
3564     gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
3565     
3566     // Flow event
3567     gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+"); 
3568     gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");    
3569     gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
3570     
3571     // Cuts
3572     gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");    
3573     
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+");
3579        
3580     cout << "finished loading macros!" << endl;  
3581     
3582   }  
3583   
3584 }
3585
3586