]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/macros/compareFlowResults.C
move of class to other lib and an added method to add flow
[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   TString outputFileName = "AnalysisResults.root"; // final output file name holding final results for large statistics sample
260   // access the merged, large statistics file obtained with macro mergeOutput.C:
261   TString pwd(gSystem->pwd());
262   pwd+="/";
263   pwd+=outputFileName.Data();
264   TFile *outputFile = NULL;
265   if(gSystem->AccessPathName(pwd.Data(),kFileExists))
266   {
267    cout<<"WARNING: You do not have an output file:"<<endl;
268    cout<<"         "<<pwd.Data()<<endl;
269    exit(0);
270   } else 
271     {
272      outputFile = TFile::Open(pwd.Data(),"READ");
273     }
274   
275   //open the output files for each method:
276   TString inputFileNameMCEP = "outputMCEPanalysis";
277   TFile* fileMCEP = (TFile*)outputFile->FindObjectAny((inputFileNameMCEP.Append(type)).Data());
278    
279   TString inputFileNameSP = "outputSPanalysis";
280   TFile* fileSP = (TFile*)outputFile->FindObjectAny((inputFileNameSP.Append(type)).Data());
281     
282   TString inputFileNameLYZ1SUM = "outputLYZ1SUManalysis";
283   TFile* fileLYZ1SUM = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ1SUM.Append(type)).Data());
284   
285   TString inputFileNameLYZ2SUM = "outputLYZ2SUManalysis";
286   TFile* fileLYZ2SUM = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ2SUM.Append(type)).Data());
287     
288   TString inputFileNameLYZ1PROD = "outputLYZ1PRODanalysis";
289   TFile* fileLYZ1PROD = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ1PROD.Append(type)).Data());
290   
291   TString inputFileNameLYZ2PROD = "outputLYZ2PRODanalysis";
292   TFile* fileLYZ2PROD = (TFile*)outputFile->FindObjectAny((inputFileNameLYZ2PROD.Append(type)).Data());
293   
294   TString inputFileNameLYZEP = "outputLYZEPanalysis";
295   TFile* fileLYZEP = (TFile*)outputFile->FindObjectAny((inputFileNameLYZEP.Append(type)).Data());
296   
297   TString inputFileNameFQD = "outputFQDanalysis";
298   TFile* fileFQD = (TFile*)outputFile->FindObjectAny((inputFileNameFQD.Append(type)).Data());
299   
300   TString inputFileNameGFC = "outputGFCanalysis";
301   TFile* fileGFC = (TFile*)outputFile->FindObjectAny((inputFileNameGFC.Append(type)).Data());
302   
303   TString inputFileNameQC = "outputQCanalysis";
304   TFile* fileQC = (TFile*)outputFile->FindObjectAny((inputFileNameQC.Append(type)).Data());
305   //==================================================================================
306  
307  
308  
309  
310   //==================================================================================
311   //                                 cosmetics
312   //==================================================================================
313   //removing the title and stat. box from all histograms:
314   gStyle->SetOptTitle(0);
315   gStyle->SetOptStat(0);
316   
317   // plot for 'no-name' integrated flow:
318   // choosing the style and color of mesh for MC error bands
319   Int_t meshStyle = 1001;
320   Int_t meshColor = kGray;
321   
322   // marker style and color  
323   Int_t markerStyle = 21;
324   Int_t markerColor = kBlack;
325   
326   // plot for RP's integrated flow:
327   // choosing the style and color of mesh for MC error bands
328   Int_t meshStyleRP = 1001;
329   Int_t meshColorRP = kRed-10;
330   
331   // marker style and color  
332   Int_t markerStyleRP = 21;
333   Int_t markerColorRP = kRed-3;
334   
335   // plot for POI's integrated flow:
336   // choosing the style and color of mesh for MC error bands
337   Int_t meshStylePOI = 1001;
338   Int_t meshColorPOI = kBlue-10;
339   
340   // marker style and color  
341   Int_t markerStylePOI = 21;
342   Int_t markerColorPOI = kBlue-3;
343   
344   // choosing the style and color of mesh for MC error bands in the plots for diff. flow
345   // plot for differential flow (Pt,RP):
346   Int_t meshStyleDiffFlowPtRP = 1001;
347   Int_t meshColorDiffFlowPtRP = kRed-10;
348   
349   // plot for differential flow (Eta,RP):
350   Int_t meshStyleDiffFlowEtaRP = 1001;
351   Int_t meshColorDiffFlowEtaRP = kRed-10;
352   
353   // plot for differential flow (Pt,POI):
354   Int_t meshStyleDiffFlowPtPOI = 1001;
355   Int_t meshColorDiffFlowPtPOI = kRed-10;
356
357   // plot for differential flow (Eta,POI):
358   Int_t meshStyleDiffFlowEtaPOI = 1001;
359   Int_t meshColorDiffFlowEtaPOI = kRed-10;
360   //==================================================================================
361   
362   
363   
364   
365   //==================================================================================
366   //                             INTEGRATED FLOW (no-name, RP and POI)
367   //==================================================================================
368   // the number of different methods:
369   const Int_t nMethods=14;
370   
371   // booking the histogram for the integrated flow results from all methods:
372   TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods);      
373   if(!plotLegendIntFlow) intFlowAll->SetLabelSize(0.044,"X");
374   // intFlowAll->SetLabelSize(0.036,"Y");
375   intFlowAll->SetMarkerStyle(markerStyle);
376   intFlowAll->SetMarkerColor(markerColor);
377   (intFlowAll->GetXaxis())->SetBinLabel(binMC,"v_{2}{MC}");
378   (intFlowAll->GetXaxis())->SetBinLabel(binSP,"v_{2}{SP}");
379   (intFlowAll->GetXaxis())->SetBinLabel(binGFC2,"v_{2}{2,GFC}");
380   (intFlowAll->GetXaxis())->SetBinLabel(binQC2,"v_{2}{2,QC}");
381   (intFlowAll->GetXaxis())->SetBinLabel(binGFC4,"v_{2}{4,GFC}");
382   (intFlowAll->GetXaxis())->SetBinLabel(binQC4,"v_{2}{4,QC}");
383   (intFlowAll->GetXaxis())->SetBinLabel(binGFC6,"v_{2}{6,GFC}");
384   (intFlowAll->GetXaxis())->SetBinLabel(binQC6,"v_{2}{6,QC}");
385   (intFlowAll->GetXaxis())->SetBinLabel(binGFC8,"v_{2}{8,GFC}");
386   (intFlowAll->GetXaxis())->SetBinLabel(binQC8,"v_{2}{8,QC}");
387   (intFlowAll->GetXaxis())->SetBinLabel(binFQD,"v_{2}{FQD}");
388   (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1SUM,"v_{2}{LYZ,sum}");
389   (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1PROD,"v_{2}{LYZ,prod}");
390   (intFlowAll->GetXaxis())->SetBinLabel(binLYZEP,"v_{2}{LYZEP}");
391   
392   // booking the graph to store flow values and errors from all methods:    
393   Double_t x[nMethods] = {0.};
394   for(Int_t i=0;i<nMethods;i++)
395   {
396    x[i]=i+0.5;
397   }
398   Double_t xError[nMethods] = {0.};
399   Double_t flowValue[nMethods] = {0.};
400   Double_t flowError[nMethods] = {0.};
401   Double_t flowValueRP[nMethods] = {0.};
402   Double_t flowErrorRP[nMethods] = {0.};
403   Double_t flowValuePOI[nMethods] = {0.};
404   Double_t flowErrorPOI[nMethods] = {0.};
405   
406   // accessing the results for integrated flow for each method:
407   // MCEP = Monte Carlo Event Plane
408   TList *pListMCEP = NULL;
409   AliFlowCommonHist *mcepCommonHist = NULL;
410   AliFlowCommonHistResults *mcepCommonHistRes = NULL; 
411   if(fileMCEP) {
412     fileMCEP->GetObject("cobjMCEP",pListMCEP); 
413     if(pListMCEP) {
414       mcepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListMCEP->FindObject("AliFlowCommonHistMCEP"));
415       mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListMCEP->FindObject("AliFlowCommonHistResultsMCEP"));
416       if(mcepCommonHistRes) {
417         flowValue[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
418         flowError[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1);
419         flowValueRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
420         flowErrorRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
421         flowValuePOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
422         flowErrorPOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
423       }
424     }
425   }
426   
427   // SP = Scalar Product
428   TList *pListSP = NULL;
429   AliFlowCommonHist *spCommonHist = NULL;
430   AliFlowCommonHistResults *spCommonHistRes = NULL; 
431   if(fileSP) {
432     fileSP->GetObject("cobjSP",pListSP); 
433     if(pListSP) {
434       spCommonHist = dynamic_cast<AliFlowCommonHist*> (pListSP->FindObject("AliFlowCommonHistSP"));
435       spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListSP->FindObject("AliFlowCommonHistResultsSP"));
436       if(spCommonHistRes) {
437         flowValue[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1);
438         flowError[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinError(1);
439         flowValueRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
440         flowErrorRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
441         flowValuePOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
442         flowErrorPOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
443       }
444     }
445   }
446   
447   // LYZ1SUM = Lee-Yang Zeros (1st run, sum) is used to get only 'no-name' integrated flow
448   TList *pListLYZ1SUM = NULL;
449   AliFlowCommonHist *lyz1sumCommonHist = NULL;
450   AliFlowCommonHistResults *lyz1sumCommonHistRes = NULL; 
451   if(fileLYZ1SUM) {
452     fileLYZ1SUM->GetObject("cobjLYZ1SUM",pListLYZ1SUM); 
453     if(pListLYZ1SUM) {
454       lyz1sumCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1SUM->FindObject("AliFlowCommonHistLYZ1SUM"));
455       lyz1sumCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1SUM->FindObject("AliFlowCommonHistResultsLYZ1SUM"));
456       if(lyz1sumCommonHistRes) {
457         flowValue[binLYZ1SUM-1] = (lyz1sumCommonHistRes->GetHistIntFlow())->GetBinContent(1);
458         flowError[binLYZ1SUM-1] = (lyz1sumCommonHistRes->GetHistIntFlow())->GetBinError(1);
459       }
460     }
461   }
462   
463   // LYZ2SUM = Lee-Yang Zeros (2nd run, sum) is used to get RP's and POI's integrated flow
464   TList *pListLYZ2SUM = NULL;
465   AliFlowCommonHist *lyz2sumCommonHist = NULL;
466   AliFlowCommonHistResults *lyz2sumCommonHistRes = NULL; 
467   if(fileLYZ2SUM) {
468     fileLYZ2SUM->GetObject("cobjLYZ2SUM",pListLYZ2SUM); 
469     if(pListLYZ2SUM) {
470       lyz2sumCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2SUM->FindObject("AliFlowCommonHistLYZ2SUM"));
471       lyz2sumCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2SUM->FindObject("AliFlowCommonHistResultsLYZ2SUM"));
472       if(lyz2sumCommonHistRes) {
473         flowValueRP[binLYZ2SUMRP-1] = (lyz2sumCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
474         flowErrorRP[binLYZ2SUMRP-1] = (lyz2sumCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
475         flowValuePOI[binLYZ2SUMPOI-1] = (lyz2sumCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
476         flowErrorPOI[binLYZ2SUMPOI-1] = (lyz2sumCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
477       }
478     }
479   }
480  
481   // LYZ1PROD = Lee-Yang Zeros (1st run, product) is used to get only 'no-name' integrated flow
482   TList *pListLYZ1PROD = NULL;
483   AliFlowCommonHist *lyz1prodCommonHist = NULL;
484   AliFlowCommonHistResults *lyz1prodCommonHistRes = NULL; 
485   if(fileLYZ1PROD) {
486     fileLYZ1PROD->GetObject("cobjLYZ1PROD",pListLYZ1PROD); 
487     if(pListLYZ1PROD) {
488       lyz1prodCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1PROD->FindObject("AliFlowCommonHistLYZ1PROD"));
489       lyz1prodCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1PROD->FindObject("AliFlowCommonHistResultsLYZ1PROD"));
490       if(lyz1prodCommonHistRes) {
491         flowValue[binLYZ1PROD-1] = (lyz1prodCommonHistRes->GetHistIntFlow())->GetBinContent(1);
492         flowError[binLYZ1PROD-1] = (lyz1prodCommonHistRes->GetHistIntFlow())->GetBinError(1);
493       }
494     }
495   }
496   
497   // LYZ2PROD = Lee-Yang Zeros (2nd run, product) is used to get RP's and POI's integrated flow
498   TList *pListLYZ2PROD = NULL;
499   AliFlowCommonHist *lyz2prodCommonHist = NULL;
500   AliFlowCommonHistResults *lyz2prodCommonHistRes = NULL; 
501   if(fileLYZ2PROD) {
502     fileLYZ2PROD->GetObject("cobjLYZ2PROD",pListLYZ2PROD); 
503     if(pListLYZ2PROD) {
504       lyz2prodCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2PROD->FindObject("AliFlowCommonHistLYZ2PROD"));
505       lyz2prodCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2PROD->FindObject("AliFlowCommonHistResultsLYZ2PROD"));
506       if(lyz2prodCommonHistRes) {
507         flowValueRP[binLYZ2PRODRP-1] = (lyz2prodCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
508         flowErrorRP[binLYZ2PRODRP-1] = (lyz2prodCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
509         flowValuePOI[binLYZ2PRODPOI-1] = (lyz2prodCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
510         flowErrorPOI[binLYZ2PRODPOI-1] = (lyz2prodCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
511       }
512     }
513   }
514   
515   // LYZEP = Lee-Yang Zeros Event Plane
516   TList *pListLYZEP = NULL;
517   AliFlowCommonHist *lyzepCommonHist = NULL;
518   AliFlowCommonHistResults *lyzepCommonHistRes = NULL; 
519   if(fileLYZEP) {
520     fileLYZEP->GetObject("cobjLYZEP",pListLYZEP); 
521     if(pListLYZEP) {
522       lyzepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZEP->FindObject("AliFlowCommonHistLYZEP"));
523       lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZEP->FindObject("AliFlowCommonHistResultsLYZEP"));
524       if(lyzepCommonHistRes) {
525         flowValue[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
526         flowError[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinError(1);
527         flowValueRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
528         flowErrorRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
529         flowValuePOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
530         flowErrorPOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
531       }
532     }
533   }
534  
535   // FQD = Fitting q-distribution
536   TList *pListFQD = NULL;
537   AliFlowCommonHist *fqdCommonHist = NULL;
538   AliFlowCommonHistResults *fqdCommonHistRes = NULL; 
539   if(fileFQD) {
540     fileFQD->GetObject("cobjFQD",pListFQD); 
541     if(pListFQD) {
542       fqdCommonHist = dynamic_cast<AliFlowCommonHist*> (pListFQD->FindObject("AliFlowCommonHistFQD"));
543       fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListFQD->FindObject("AliFlowCommonHistResultsFQD"));
544       if(fqdCommonHistRes) {
545         flowValue[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1);
546         flowError[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1);
547         //flowValueRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
548         //flowErrorRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
549         //flowValuePOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
550         //flowErrorPOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
551       }
552     }
553   }
554  
555   // GFC = Generating Function Cumulants
556   TList *pListGFC = NULL;
557   AliFlowCommonHist *gfcCommonHist = NULL;
558   AliFlowCommonHistResults *gfcCommonHistRes2 = NULL; 
559   AliFlowCommonHistResults *gfcCommonHistRes4 = NULL; 
560   AliFlowCommonHistResults *gfcCommonHistRes6 = NULL; 
561   AliFlowCommonHistResults *gfcCommonHistRes8 = NULL; 
562   if(fileGFC) {
563     fileGFC->GetObject("cobjGFC",pListGFC);
564     if(pListGFC) {
565       gfcCommonHist = dynamic_cast<AliFlowCommonHist*> (pListGFC->FindObject("AliFlowCommonHistGFC"));
566       gfcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC"));
567       if(gfcCommonHistRes2) {
568         flowValue[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
569         flowError[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
570         flowValueRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
571         flowErrorRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
572         flowValuePOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
573         flowErrorPOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
574       }
575       gfcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults4thOrderGFC"));
576       if(gfcCommonHistRes4) {
577         flowValue[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
578         flowError[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
579         flowValueRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
580         flowErrorRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
581         flowValuePOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
582         flowErrorPOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
583       }
584       gfcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults6thOrderGFC"));
585       if(gfcCommonHistRes6) {
586         flowValue[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
587         flowError[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
588         flowValueRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
589         flowErrorRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
590         flowValuePOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
591         flowErrorPOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
592       }
593       gfcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults8thOrderGFC"));
594       if(gfcCommonHistRes8)  {
595         flowValue[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
596         flowError[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
597         flowValueRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
598         flowErrorRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
599         flowValuePOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
600         flowErrorPOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
601       }
602     }
603   }
604  
605   //QC = Q-cumulants
606   TList *pListQC = NULL;
607   AliFlowCommonHist *qcCommonHist2 = NULL; 
608   AliFlowCommonHist *qcCommonHist4 = NULL; 
609   AliFlowCommonHist *qcCommonHist6 = NULL; 
610   AliFlowCommonHist *qcCommonHist8 = NULL; 
611   AliFlowCommonHistResults *qcCommonHistRes2 = NULL; 
612   AliFlowCommonHistResults *qcCommonHistRes4 = NULL; 
613   AliFlowCommonHistResults *qcCommonHistRes6 = NULL; 
614   AliFlowCommonHistResults *qcCommonHistRes8 = NULL; 
615   
616   if(fileQC) {
617     fileQC->GetObject("cobjQC",pListQC);
618     if(pListQC) {
619       qcCommonHist2 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist2ndOrderQC"));
620       qcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults2ndOrderQC"));
621       if(qcCommonHistRes2)  {
622         flowValue[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
623         flowError[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
624         flowValueRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
625         flowErrorRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
626         flowValuePOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
627         flowErrorPOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
628       }
629       qcCommonHist4 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist4thOrderQC"));
630       qcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults4thOrderQC"));
631       if(qcCommonHistRes4) {
632         flowValue[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
633         flowError[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
634         flowValueRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
635         flowErrorRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
636         flowValuePOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
637         flowErrorPOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
638       }
639       qcCommonHist6 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist6thOrderQC"));
640       qcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults6thOrderQC"));
641       if(qcCommonHistRes6) {
642         flowValue[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
643         flowError[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
644         flowValueRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
645         //flowErrorRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
646         flowValuePOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
647         //flowErrorPOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
648       }
649       qcCommonHist8 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist8thOrderQC"));
650       qcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults8thOrderQC"));
651       if(qcCommonHistRes8)  {
652         flowValue[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
653         flowError[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
654         flowValueRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
655         //flowErrorRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
656         flowValuePOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
657         //flowErrorPOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
658       }
659     }
660   }        
661   
662   // ranges on y-axis for 'no-name' plot:
663   Double_t dMax=flowValue[binMC-1]+flowError[binMC-1];
664   Double_t dMin=flowValue[binMC-1]-flowError[binMC-1];
665   
666   for(Int_t i=1;i<nMethods;i++) {
667     if(!(flowValue[i]==0. && flowError[i]==0.)) {
668       if(dMax<flowValue[i]+flowError[i]) dMax=flowValue[i]+flowError[i];
669       if(dMin>flowValue[i]-flowError[i]) dMin=flowValue[i]-flowError[i];
670     } 
671   }  
672   
673   // ranges on y-axis for RP plot:
674   Double_t dMaxRP=flowValueRP[binMCRP-1]+flowErrorRP[binMCRP-1];
675   Double_t dMinRP=flowValueRP[binMCRP-1]-flowErrorRP[binMCRP-1];
676   
677   for(Int_t i=1;i<nMethods;i++) {
678     if(!(flowValueRP[i]==0. && flowErrorRP[i]==0.)) {
679       if(dMaxRP<flowValueRP[i]+flowErrorRP[i]) dMaxRP=flowValueRP[i]+flowErrorRP[i];
680       if(dMinRP>flowValueRP[i]-flowErrorRP[i]) dMinRP=flowValueRP[i]-flowErrorRP[i];
681     } 
682   }  
683
684   // ranges on y-axis for POI plot:
685   Double_t dMaxPOI=flowValuePOI[binMCPOI-1]+flowErrorPOI[binMCPOI-1];
686   Double_t dMinPOI=flowValuePOI[binMCPOI-1]-flowErrorPOI[binMCPOI-1];
687   
688   for(Int_t i=1;i<nMethods;i++) {
689     if(!(flowValuePOI[i]==0. && flowErrorPOI[i]==0.)) {
690       if(dMaxPOI<flowValuePOI[i]+flowErrorPOI[i]) dMaxPOI=flowValuePOI[i]+flowErrorPOI[i];
691       if(dMinPOI>flowValuePOI[i]-flowErrorPOI[i]) dMinPOI=flowValuePOI[i]-flowErrorPOI[i];
692     } 
693   }  
694  
695   // no-name:
696   TGraph* flowResults = new TGraphErrors(nMethods, x, flowValue, xError, flowError);
697   flowResults->SetMarkerStyle(markerStyle);
698   flowResults->SetMarkerColor(markerColor);
699   
700   // RP:
701   TGraph* flowResultsRP = new TGraphErrors(nMethods, x, flowValueRP, xError, flowErrorRP); 
702   flowResultsRP->SetMarkerStyle(markerStyleRP);
703   flowResultsRP->SetMarkerColor(markerColorRP);
704   
705   // POI:
706   TGraph* flowResultsPOI = new TGraphErrors(nMethods, x, flowValuePOI, xError, flowErrorPOI);
707   flowResultsPOI->SetMarkerStyle(markerStylePOI);
708   flowResultsPOI->SetMarkerColor(markerColorPOI);
709   
710   // for plot |v{MC}-v{method}/v{MC}|
711   // no-name, RP and POI
712   Double_t flowRelativeToMC[nMethods] = {0.};
713   Double_t flowRelativeToMCError[nMethods] = {0.}; 
714   Double_t flowRelativeToMCRP[nMethods] = {0.};
715   Double_t flowRelativeToMCErrorRP[nMethods] = {0.}; 
716   Double_t flowRelativeToMCPOI[nMethods] = {0.};
717   Double_t flowRelativeToMCErrorPOI[nMethods] = {0.}; 
718   flowRelativeToMC[0] = 0.; // MC relative to itself (to be improved)
719   flowRelativeToMCRP[0] = 0.; // MC relative to itself (to be improved)
720   flowRelativeToMCPOI[0] = 0.; // MC relative to itself (to be improved)
721   for(Int_t i=1;i<nMethods;i++) 
722   {
723    if(flowValue[0] != 0)
724    {
725     if(flowValue[i] != 0) flowRelativeToMC[i] = (flowValue[i]-flowValue[0])/(flowValue[0]);
726     if(flowError[i] != 0) flowRelativeToMCError[i] = flowError[i]/flowValue[0];
727    }
728    if(flowValueRP[0] != 0)
729    {
730     if(flowValueRP[i] != 0) flowRelativeToMCRP[i] = (flowValueRP[i]-flowValueRP[0])/(flowValueRP[0]);
731     if(flowErrorRP[i] != 0) flowRelativeToMCErrorRP[i] = flowErrorRP[i]/flowValueRP[0];
732    }
733    if(flowValuePOI[0] != 0)
734    {
735     if(flowValuePOI[i] != 0) flowRelativeToMCPOI[i] = (flowValuePOI[i]-flowValuePOI[0])/(flowValuePOI[0]);
736     if(flowErrorPOI[i] != 0) flowRelativeToMCErrorPOI[i] = flowErrorPOI[i]/flowValuePOI[0];
737    }
738   } // for(Int_t i=1;i<nMethods;i++) 
739   
740   // integrated flow (no-name) relative to MC:
741   TGraph* flowResultsRelativeToMC = new TGraphErrors(nMethods, x, flowRelativeToMC, xError, flowRelativeToMCError);
742   flowResultsRelativeToMC->SetMarkerStyle(markerStyle);
743   flowResultsRelativeToMC->SetMarkerColor(markerColor);
744   
745   // integrated flow (RP) relative to MC:
746   TGraph* flowResultsRelativeToMCRP = new TGraphErrors(nMethods, x, flowRelativeToMCRP, xError, flowRelativeToMCErrorRP);
747   flowResultsRelativeToMCRP->SetMarkerStyle(markerStyleRP);
748   flowResultsRelativeToMCRP->SetMarkerColor(markerColorRP);
749  
750   // integrated flow (POI) relative to MC:
751   TGraph* flowResultsRelativeToMCPOI = new TGraphErrors(nMethods, x, flowRelativeToMCPOI, xError, flowRelativeToMCErrorPOI);
752   flowResultsRelativeToMCPOI->SetMarkerStyle(markerStylePOI);
753   flowResultsRelativeToMCPOI->SetMarkerColor(markerColorPOI);
754   //-----------------------------------------------------------------------------------
755   
756   //----------------------------------------------------------------------------------
757   // cosmetics: mesh for MC error bands (integrated flow)
758   TGraph* pMesh = NULL;
759   TGraph* pMeshRP = NULL;
760   TGraph* pMeshPOI = NULL;
761   
762   if(intFlowAll && mcepCommonHistRes) {
763     Int_t nPts       = nMethods;
764     Double_t valueMC = flowValue[binMC-1];
765     Double_t errorMC = flowError[binMC-1]; 
766     Double_t valueMCRP = flowValueRP[binMCRP-1];
767     Double_t errorMCRP = flowErrorRP[binMCRP-1]; 
768     Double_t valueMCPOI = flowValuePOI[binMCPOI-1];
769     Double_t errorMCPOI = flowErrorPOI[binMCPOI-1]; 
770     
771     pMesh = new TGraph(nPts);
772     pMeshRP = new TGraph(nPts);
773     pMeshPOI = new TGraph(nPts);
774     
775     // no-name:
776     pMesh->SetPoint(1,0,valueMC+errorMC);
777     pMesh->SetPoint(2,nPts+1,valueMC+errorMC);
778     pMesh->SetPoint(3,nPts+1,valueMC-errorMC);
779     pMesh->SetPoint(4,0,valueMC-errorMC);
780     pMesh->SetPoint(5,0,valueMC+errorMC);    
781     pMesh->SetFillStyle(meshStyle);
782     pMesh->SetFillColor(meshColor);
783      
784     // RP:
785     pMeshRP->SetPoint(1,0,valueMCRP+errorMCRP);
786     pMeshRP->SetPoint(2,nPts+1,valueMCRP+errorMCRP);
787     pMeshRP->SetPoint(3,nPts+1,valueMCRP-errorMCRP);
788     pMeshRP->SetPoint(4,0,valueMCRP-errorMCRP);
789     pMeshRP->SetPoint(5,0,valueMCRP+errorMCRP);   
790     pMeshRP->SetFillStyle(meshStyleRP);
791     pMeshRP->SetFillColor(meshColorRP);
792     
793     // POI:
794     pMeshPOI->SetPoint(1,0,valueMCPOI+errorMCPOI);
795     pMeshPOI->SetPoint(2,nPts+1,valueMCPOI+errorMCPOI);
796     pMeshPOI->SetPoint(3,nPts+1,valueMCPOI-errorMCPOI);
797     pMeshPOI->SetPoint(4,0,valueMCPOI-errorMCPOI);
798     pMeshPOI->SetPoint(5,0,valueMCPOI+errorMCPOI);    
799     pMeshPOI->SetFillStyle(meshStylePOI);
800     pMeshPOI->SetFillColor(meshColorPOI);     
801   }
802   //---------------------------------------------------------------------------------- 
803  
804   
805   //----------------------------------------------------------------------------------
806   //cosmetics: text (integrated flow) 
807   //default text:
808   TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC");
809   textDefault->SetTextFont(72);
810   textDefault->SetTextSize(0.08);
811   
812   TString *entryDefaultAvM = new TString("Average Multiplicity");
813   TString *entryDefaultAnd = new TString("and"); 
814   TString *entryDefaultNumOfEvts = new TString("Number of Events:");
815   
816   textDefault->AddText(entryDefaultAvM->Data());
817   textDefault->AddText(entryDefaultAnd->Data());
818   textDefault->AddText(entryDefaultNumOfEvts->Data());
819   
820   // results (no-name):
821   TPaveText *textResults = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
822   textResults->SetTextFont(72);
823   textResults->SetTextSize(0.06);
824   
825   // results (RP):
826   TPaveText *textResultsRP = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
827   textResultsRP->SetTextFont(72);
828   textResultsRP->SetTextSize(0.06);
829   
830   // results (POI):
831   TPaveText *textResultsPOI = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
832   textResultsPOI->SetTextFont(72);
833   textResultsPOI->SetTextSize(0.06);
834   
835   // no-name:              
836   TString *entryMC       = new TString("MC ........ ");
837   TString *entrySP       = new TString("SP ........ "); 
838   TString *entryGFC      = new TString("GFC ....... "); 
839   TString *entryQC2      = new TString("QC{2} ..... ");
840   TString *entryQC4      = new TString("QC{4} ..... ");
841   TString *entryQC6      = new TString("QC{6} ..... ");
842   TString *entryQC8      = new TString("QC{8} ..... ");
843   TString *entryFQD      = new TString("FQD ....... "); 
844   TString *entryLYZ1SUM  = new TString("LYZ{sum} .. "); 
845   TString *entryLYZ1PROD = new TString("LYZ{prod} . "); 
846   TString *entryLYZEP    = new TString("LYZEP ..... "); 
847   
848   // RP: 
849   TString *entryMCRP       = new TString("MC ........ ");
850   TString *entrySPRP       = new TString("SP ........ ");
851   TString *entryGFCRP      = new TString("GFC ....... "); 
852   TString *entryQC2RP      = new TString("QC{2} ..... ");
853   TString *entryQC4RP      = new TString("QC{4} ..... ");
854   TString *entryQC6RP      = new TString("QC{6} ..... ");
855   TString *entryQC8RP      = new TString("QC{8} ..... ");
856   TString *entryFQDRP      = new TString("FQD ....... "); 
857   TString *entryLYZ1SUMRP  = new TString("LYZ{sum} .. "); 
858   TString *entryLYZ1PRODRP = new TString("LYZ{prod} . ");
859   TString *entryLYZEPRP    = new TString("LYZEP ..... "); 
860   
861   // POI: 
862   TString *entryMCPOI       = new TString("MC ........ ");
863   TString *entrySPPOI       = new TString("SP ........ ");
864   TString *entryGFCPOI      = new TString("GFC ....... "); 
865   TString *entryQC2POI      = new TString("QC{2} ..... ");
866   TString *entryQC4POI      = new TString("QC{4} ..... ");
867   TString *entryQC6POI      = new TString("QC{6} ..... ");
868   TString *entryQC8POI      = new TString("QC{8} ..... ");
869   TString *entryFQDPOI      = new TString("FQD ....... "); 
870   TString *entryLYZ1SUMPOI  = new TString("LYZ{sum} .. "); 
871   TString *entryLYZ1PRODPOI = new TString("LYZ{prod} . "); 
872   TString *entryLYZEPPOI    = new TString("LYZEP ..... "); 
873   
874   // no-name:
875   Double_t avMultMC=0.;
876   Long_t nEvtsMC=0;
877   Double_t avMultSP=0.;
878   Long_t nEvtsSP=0;
879   Double_t avMultGFC=0.;
880   Long_t nEvtsGFC=0;
881   Double_t avMultQC2=0., avMultQC4=0., avMultQC6=0., avMultQC8=0.;
882   Long_t nEvtsQC2=0, nEvtsQC4=0, nEvtsQC6=0, nEvtsQC8=0;
883   Double_t avMultFQD=0.;
884   Long_t nEvtsFQD=0;
885   Double_t avMultLYZ1SUM=0.;
886   Long_t nEvtsLYZ1SUM=0;
887   Double_t avMultLYZ1PROD=0.;
888   Long_t nEvtsLYZ1PROD=0;
889   Double_t avMultLYZEP=0.;
890   Long_t nEvtsLYZEP=0;
891   
892   // RP:
893   Double_t avMultMCRP=0.;
894   Long_t nEvtsMCRP=0;
895   Double_t avMultSPRP=0.;
896   Long_t nEvtsSPRP=0;
897   Double_t avMultGFCRP=0.;
898   Long_t nEvtsGFCRP=0;
899   Double_t avMultQC2RP=0., avMultQC4RP=0., avMultQC6RP=0., avMultQC8RP=0.;
900   Long_t nEvtsQC2RP=0, nEvtsQC4RP=0, nEvtsQC6RP=0, nEvtsQC8RP=0;
901   Double_t avMultFQDRP=0.;
902   Long_t nEvtsFQDRP=0;
903   Double_t avMultLYZ1SUMRP=0.;
904   Long_t nEvtsLYZ1SUMRP=0;
905   Double_t avMultLYZ1PRODRP=0.;
906   Long_t nEvtsLYZ1PRODRP=0;
907   Double_t avMultLYZEPRP=0.;
908   Long_t nEvtsLYZEPRP=0;
909   
910   // POI:
911   Double_t avMultMCPOI=0.;
912   Long_t nEvtsMCPOI=0;
913   Double_t avMultSPPOI=0.;
914   Long_t nEvtsSPPOI=0;
915   Double_t avMultGFCPOI=0.;
916   Long_t nEvtsGFCPOI=0;
917   Double_t avMultQC2POI=0., avMultQC4POI=0., avMultQC6POI=0., avMultQC8POI=0.;
918   Long_t nEvtsQC2POI=0, nEvtsQC4POI=0, nEvtsQC6POI=0, nEvtsQC8POI=0;
919   Double_t avMultFQDPOI=0.;
920   Long_t nEvtsFQDPOI=0;
921   Double_t avMultLYZ1SUMPOI=0.;
922   Long_t nEvtsLYZ1SUMPOI=0;
923   Double_t avMultLYZ1PRODPOI=0.;
924   Long_t nEvtsLYZ1PRODPOI=0;
925   Double_t avMultLYZEPPOI=0.;
926   Long_t nEvtsLYZEPPOI=0;
927   
928   // MC:  
929   if(mcepCommonHist) {
930     avMultMC = (mcepCommonHist->GetHistMultRP())->GetMean();
931     nEvtsMC  = (mcepCommonHist->GetHistMultRP())->GetEntries();
932     avMultMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
933     nEvtsMCRP  = (mcepCommonHist->GetHistMultRP())->GetEntries();
934     avMultMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
935     nEvtsMCPOI  = (mcepCommonHist->GetHistMultPOI())->GetEntries();
936   }
937   
938   if(entryMC) {   
939     entryMC->Append("M = ");
940     (*entryMC)+=(Long_t)avMultMC;
941     entryMC->Append(", N = ");
942     (*entryMC)+=(Long_t)nEvtsMC;
943   }
944  
945   if(entryMCRP) {   
946     entryMCRP->Append("M = ");
947     (*entryMCRP)+=(Long_t)avMultMCRP;
948     entryMCRP->Append(", N = ");
949     (*entryMCRP)+=(Long_t)nEvtsMCRP;
950   }
951   
952   if(entryMCPOI) {   
953    entryMCPOI->Append("M = ");
954    (*entryMCPOI)+=(Long_t)avMultMCPOI;
955    entryMCPOI->Append(", N = ");
956    (*entryMCPOI)+=(Long_t)nEvtsMCPOI;
957   }
958   
959   // SP:  
960   if(spCommonHist) {
961     avMultSP = (spCommonHist->GetHistMultRP())->GetMean();
962     nEvtsSP  = (spCommonHist->GetHistMultRP())->GetEntries();
963     avMultSPRP = (spCommonHist->GetHistMultRP())->GetMean();
964     nEvtsSPRP  = (spCommonHist->GetHistMultRP())->GetEntries();
965     avMultSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
966     nEvtsSPPOI  = (spCommonHist->GetHistMultPOI())->GetEntries();
967   }
968   
969   if(entrySP) {   
970     entrySP->Append("M = ");
971     (*entrySP)+=(Long_t)avMultSP;
972     entrySP->Append(", N = ");
973     (*entrySP)+=(Long_t)nEvtsSP;
974   }
975  
976   if(entrySPRP) {   
977     entrySPRP->Append("M = ");
978     (*entrySPRP)+=(Long_t)avMultSPRP;
979     entrySPRP->Append(", N = ");
980     (*entrySPRP)+=(Long_t)nEvtsSPRP;
981   }
982   
983   if(entrySPPOI) {   
984    entrySPPOI->Append("M = ");
985    (*entrySPPOI)+=(Long_t)avMultSPPOI;
986    entrySPPOI->Append(", N = ");
987    (*entrySPPOI)+=(Long_t)nEvtsSPPOI;
988   }
989   
990  // GFC:
991  if(gfcCommonHist) {
992    avMultGFC = (gfcCommonHist->GetHistMultRP())->GetMean();
993    nEvtsGFC  = (gfcCommonHist->GetHistMultRP())->GetEntries();
994    avMultGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();
995    nEvtsGFCRP  = (gfcCommonHist->GetHistMultRP())->GetEntries();
996    avMultGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
997    nEvtsGFCPOI  = (gfcCommonHist->GetHistMultPOI())->GetEntries();
998  }
999  
1000  if(entryGFC) { 
1001    entryGFC->Append("M = ");
1002    (*entryGFC)+=(Long_t)avMultGFC;
1003    entryGFC->Append(", N = ");
1004    (*entryGFC)+=(Long_t)nEvtsGFC;
1005  }
1006  
1007  if(entryGFCRP) { 
1008    entryGFCRP->Append("M = ");
1009    (*entryGFCRP)+=(Long_t)avMultGFCRP;
1010    entryGFCRP->Append(", N = ");
1011    (*entryGFCRP)+=(Long_t)nEvtsGFCRP;
1012  }
1013  if(entryGFCPOI) { 
1014    entryGFCPOI->Append("M = ");
1015    (*entryGFCPOI)+=(Long_t)avMultGFCPOI;
1016    entryGFCPOI->Append(", N = ");
1017    (*entryGFCPOI)+=(Long_t)nEvtsGFCPOI;
1018  }
1019  
1020  // QC:
1021  if(qcCommonHist2) {
1022    avMultQC2 = (qcCommonHist2->GetHistMultRP())->GetMean();
1023    nEvtsQC2  = (qcCommonHist2->GetHistMultRP())->GetEntries();
1024    avMultQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
1025    nEvtsQC2RP  = (qcCommonHist2->GetHistMultRP())->GetEntries();
1026    avMultQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
1027    nEvtsQC2POI  = (qcCommonHist2->GetHistMultPOI())->GetEntries();
1028  }
1029  
1030  if(entryQC2)
1031  { 
1032   entryQC2->Append("M = ");
1033   (*entryQC2)+=(Long_t)avMultQC2;
1034   entryQC2->Append(", N = ");
1035   (*entryQC2)+=(Long_t)nEvtsQC2;
1036  }
1037  
1038  if(entryQC2RP)
1039  { 
1040   entryQC2RP->Append("M = ");
1041   (*entryQC2RP)+=(Long_t)avMultQC2RP;
1042   entryQC2RP->Append(", N = ");
1043   (*entryQC2RP)+=(Long_t)nEvtsQC2RP;
1044  } 
1045  
1046  if(entryQC2POI)
1047  { 
1048   entryQC2POI->Append("M = ");
1049   (*entryQC2POI)+=(Long_t)avMultQC2POI;
1050   entryQC2POI->Append(", N = ");
1051   (*entryQC2POI)+=(Long_t)nEvtsQC2POI;
1052  } 
1053
1054  if(qcCommonHist4)
1055  {
1056   avMultQC4 = (qcCommonHist4->GetHistMultRP())->GetMean();
1057   nEvtsQC4  = (qcCommonHist4->GetHistMultRP())->GetEntries();
1058   avMultQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
1059   nEvtsQC4RP  = (qcCommonHist4->GetHistMultRP())->GetEntries();
1060   avMultQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
1061   nEvtsQC4POI  = (qcCommonHist4->GetHistMultPOI())->GetEntries();
1062  }
1063  
1064  if(entryQC4)
1065  {
1066   entryQC4->Append("M = ");
1067   (*entryQC4)+=(Long_t)avMultQC4;
1068   entryQC4->Append(", N = ");
1069   (*entryQC4)+=(Long_t)nEvtsQC4;
1070  }
1071  
1072  if(entryQC4RP)
1073  {
1074   entryQC4RP->Append("M = ");
1075   (*entryQC4RP)+=(Long_t)avMultQC4RP;
1076   entryQC4RP->Append(", N = ");
1077   (*entryQC4RP)+=(Long_t)nEvtsQC4RP;
1078  }
1079  
1080  if(entryQC4POI)
1081  {
1082   entryQC4POI->Append("M = ");
1083   (*entryQC4POI)+=(Long_t)avMultQC4POI;
1084   entryQC4POI->Append(", N = ");
1085   (*entryQC4POI)+=(Long_t)nEvtsQC4POI;
1086  }
1087    
1088  if(qcCommonHist6)
1089  {
1090   avMultQC6 = (qcCommonHist6->GetHistMultRP())->GetMean();
1091   nEvtsQC6  = (qcCommonHist6->GetHistMultRP())->GetEntries();
1092   avMultQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
1093   nEvtsQC6RP  = (qcCommonHist6->GetHistMultRP())->GetEntries();
1094   avMultQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
1095   nEvtsQC6POI  = (qcCommonHist6->GetHistMultPOI())->GetEntries();
1096  }
1097  
1098  if(entryQC6)
1099  {  
1100   entryQC6->Append("M = ");
1101   (*entryQC6)+=(Long_t)avMultQC6;
1102   entryQC6->Append(", N = ");
1103   (*entryQC6)+=(Long_t)nEvtsQC6;
1104  }
1105  
1106  if(entryQC6RP)
1107  {  
1108   entryQC6RP->Append("M = ");
1109   (*entryQC6RP)+=(Long_t)avMultQC6RP;
1110   entryQC6RP->Append(", N = ");
1111   (*entryQC6RP)+=(Long_t)nEvtsQC6RP;
1112  }
1113  
1114  if(entryQC6POI)
1115  {  
1116   entryQC6POI->Append("M = ");
1117   (*entryQC6POI)+=(Long_t)avMultQC6POI;
1118   entryQC6POI->Append(", N = ");
1119   (*entryQC6POI)+=(Long_t)nEvtsQC6POI;
1120  }
1121    
1122  if(qcCommonHist8)
1123  {
1124   avMultQC8 = (qcCommonHist8->GetHistMultRP())->GetMean();
1125   nEvtsQC8  = (qcCommonHist8->GetHistMultRP())->GetEntries();
1126   avMultQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
1127   nEvtsQC8RP  = (qcCommonHist8->GetHistMultRP())->GetEntries();
1128   avMultQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
1129   nEvtsQC8POI  = (qcCommonHist8->GetHistMultPOI())->GetEntries();    
1130  }
1131   
1132  if(entryQC8)
1133  {
1134   entryQC8->Append("M = ");
1135   (*entryQC8)+=(Long_t)avMultQC8;
1136   entryQC8->Append(", N = ");
1137   (*entryQC8)+=(Long_t)nEvtsQC8;
1138  }
1139  
1140  if(entryQC8RP)
1141  {
1142   entryQC8RP->Append("M = ");
1143   (*entryQC8RP)+=(Long_t)avMultQC8RP;
1144   entryQC8RP->Append(", N = ");
1145   (*entryQC8RP)+=(Long_t)nEvtsQC8RP;
1146  }
1147  
1148  if(entryQC8POI)
1149  {
1150   entryQC8POI->Append("M = ");
1151   (*entryQC8POI)+=(Long_t)avMultQC8POI;
1152   entryQC8POI->Append(", N = ");
1153   (*entryQC8POI)+=(Long_t)nEvtsQC8POI;
1154  }
1155   
1156  // FQD:
1157  if(fqdCommonHist)
1158  {
1159   avMultFQD = (fqdCommonHist->GetHistMultRP())->GetMean();
1160   nEvtsFQD  = (fqdCommonHist->GetHistMultRP())->GetEntries();
1161   avMultFQDRP = (fqdCommonHist->GetHistMultRP())->GetMean();
1162   nEvtsFQDRP  = (fqdCommonHist->GetHistMultRP())->GetEntries();
1163   avMultFQDPOI = (fqdCommonHist->GetHistMultPOI())->GetMean();
1164   nEvtsFQDPOI  = (fqdCommonHist->GetHistMultPOI())->GetEntries();
1165  } 
1166  
1167  if(entryFQD)
1168  {
1169   entryFQD->Append("M = ");
1170   (*entryFQD)+=(Long_t)avMultFQD;
1171   entryFQD->Append(", N = ");
1172   (*entryFQD)+=(Long_t)nEvtsFQD;
1173  }
1174  
1175  if(entryFQDRP)
1176  {
1177   entryFQDRP->Append("M = ");
1178   (*entryFQDRP)+=(Long_t)avMultFQDRP;
1179   entryFQDRP->Append(", N = ");
1180   (*entryFQDRP)+=(Long_t)nEvtsFQDRP;
1181  }
1182  
1183  if(entryFQDPOI)
1184  {
1185   entryFQDPOI->Append("M = ");
1186   (*entryFQDPOI)+=(Long_t)avMultFQDPOI;
1187   entryFQDPOI->Append(", N = ");
1188   (*entryFQDPOI)+=(Long_t)nEvtsFQDPOI;
1189  }  
1190   
1191  // LYZ1SUM:
1192  if(lyz1sumCommonHist)
1193  {
1194   avMultLYZ1SUM = (lyz1sumCommonHist->GetHistMultRP())->GetMean();
1195   nEvtsLYZ1SUM  = (lyz1sumCommonHist->GetHistMultRP())->GetEntries();
1196   avMultLYZ1SUMRP = (lyz1sumCommonHist->GetHistMultRP())->GetMean();
1197   nEvtsLYZ1SUMRP  = (lyz1sumCommonHist->GetHistMultRP())->GetEntries();
1198   avMultLYZ1SUMPOI = (lyz1sumCommonHist->GetHistMultPOI())->GetMean();
1199   nEvtsLYZ1SUMPOI  = (lyz1sumCommonHist->GetHistMultPOI())->GetEntries();
1200  }
1201  
1202  if(entryLYZ1SUM) 
1203  {
1204   entryLYZ1SUM->Append("M = ");
1205   (*entryLYZ1SUM)+=(Long_t)avMultLYZ1SUM;
1206   entryLYZ1SUM->Append(", N = ");
1207   (*entryLYZ1SUM)+=(Long_t)nEvtsLYZ1SUM;
1208  }
1209  
1210  if(entryLYZ1SUMRP) 
1211  {
1212   entryLYZ1SUMRP->Append("M = ");
1213   (*entryLYZ1SUMRP)+=(Long_t)avMultLYZ1SUMRP;
1214   entryLYZ1SUMRP->Append(", N = ");
1215   (*entryLYZ1SUMRP)+=(Long_t)nEvtsLYZ1SUMRP;
1216  }
1217  
1218  if(entryLYZ1SUMPOI) 
1219  {
1220   entryLYZ1SUMPOI->Append("M = ");
1221   (*entryLYZ1SUMPOI)+=(Long_t)avMultLYZ1SUMPOI;
1222   entryLYZ1SUMPOI->Append(", N = ");
1223   (*entryLYZ1SUMPOI)+=(Long_t)nEvtsLYZ1SUMPOI;
1224  }
1225  
1226  // LYZ1PROD:
1227  if(lyz1prodCommonHist)
1228  {
1229   avMultLYZ1PROD = (lyz1prodCommonHist->GetHistMultRP())->GetMean();
1230   nEvtsLYZ1PROD  = (lyz1prodCommonHist->GetHistMultRP())->GetEntries();
1231   avMultLYZ1PRODRP = (lyz1prodCommonHist->GetHistMultRP())->GetMean();
1232   nEvtsLYZ1PRODRP  = (lyz1prodCommonHist->GetHistMultRP())->GetEntries();
1233   avMultLYZ1PRODPOI = (lyz1prodCommonHist->GetHistMultPOI())->GetMean();
1234   nEvtsLYZ1PRODPOI  = (lyz1prodCommonHist->GetHistMultPOI())->GetEntries();
1235  }
1236   
1237  if(entryLYZ1PROD) 
1238  {
1239   entryLYZ1PROD->Append("M = ");
1240   (*entryLYZ1PROD)+=(Long_t)avMultLYZ1PROD;
1241   entryLYZ1PROD->Append(", N = ");
1242   (*entryLYZ1PROD)+=(Long_t)nEvtsLYZ1PROD;
1243  }
1244  
1245  if(entryLYZ1PRODRP) 
1246  {
1247   entryLYZ1PRODRP->Append("M = ");
1248   (*entryLYZ1PRODRP)+=(Long_t)avMultLYZ1PRODRP;
1249   entryLYZ1PRODRP->Append(", N = ");
1250   (*entryLYZ1PRODRP)+=(Long_t)nEvtsLYZ1PRODRP;
1251  }
1252  
1253  if(entryLYZ1PRODPOI) 
1254  {
1255   entryLYZ1PRODPOI->Append("M = ");
1256   (*entryLYZ1PRODPOI)+=(Long_t)avMultLYZ1PRODPOI;
1257   entryLYZ1PRODPOI->Append(", N = ");
1258   (*entryLYZ1PRODPOI)+=(Long_t)nEvtsLYZ1PRODPOI;
1259  } 
1260  
1261  // LYZEP:
1262  if(lyzepCommonHist)
1263  {
1264   avMultLYZEP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1265   nEvtsLYZEP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1266   avMultLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1267   nEvtsLYZEPRP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1268   avMultLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
1269   nEvtsLYZEPPOI  = (lyzepCommonHist->GetHistMultPOI())->GetEntries();    
1270  }
1271  
1272  
1273  if(entryLYZEP)
1274  {
1275   entryLYZEP->Append("M = ");
1276   (*entryLYZEP)+=(Long_t)avMultLYZEP;
1277   entryLYZEP->Append(", N = ");
1278   (*entryLYZEP)+=(Long_t)nEvtsLYZEP;
1279  }
1280  
1281  if(entryLYZEPRP)
1282  {
1283   entryLYZEPRP->Append("M = ");
1284   (*entryLYZEPRP)+=(Long_t)avMultLYZEPRP;
1285   entryLYZEPRP->Append(", N = ");
1286   (*entryLYZEPRP)+=(Long_t)nEvtsLYZEPRP;
1287  }
1288  
1289  if(entryLYZEPPOI)
1290  {
1291   entryLYZEPPOI->Append("M = ");
1292   (*entryLYZEPPOI)+=(Long_t)avMultLYZEPPOI;
1293   entryLYZEPPOI->Append(", N = ");
1294   (*entryLYZEPPOI)+=(Long_t)nEvtsLYZEPPOI;
1295  }
1296
1297  // no-name:
1298  if(textResults)
1299  {
1300   textResults->AddText(entryMC->Data());
1301   textResults->AddText(entrySP->Data());
1302   textResults->AddText(entryGFC->Data());
1303   textResults->AddText(entryQC2->Data());
1304   textResults->AddText(entryQC4->Data());
1305   textResults->AddText(entryQC6->Data());
1306   textResults->AddText(entryQC8->Data());
1307   textResults->AddText(entryFQD->Data());
1308   textResults->AddText(entryLYZ1SUM->Data());
1309   textResults->AddText(entryLYZ1PROD->Data());
1310   textResults->AddText(entryLYZEP->Data());
1311  }
1312  
1313  // RP:
1314  if(textResultsRP)
1315  {
1316   textResultsRP->AddText(entryMCRP->Data());
1317   textResultsRP->AddText(entrySPRP->Data());
1318   textResultsRP->AddText(entryGFCRP->Data());
1319   textResultsRP->AddText(entryQC2RP->Data());
1320   textResultsRP->AddText(entryQC4RP->Data());
1321   textResultsRP->AddText(entryQC6RP->Data());
1322   textResultsRP->AddText(entryQC8RP->Data());
1323   textResultsRP->AddText(entryFQDRP->Data());
1324   textResultsRP->AddText(entryLYZ1SUMRP->Data());
1325   textResultsRP->AddText(entryLYZ1PRODRP->Data());
1326   textResultsRP->AddText(entryLYZEPRP->Data());
1327  }
1328  
1329  // POI:
1330  if(textResultsPOI)
1331  {
1332   textResultsPOI->AddText(entryMCPOI->Data());
1333   textResultsPOI->AddText(entrySPPOI->Data());
1334   textResultsPOI->AddText(entryGFCPOI->Data());
1335   textResultsPOI->AddText(entryQC2POI->Data());
1336   textResultsPOI->AddText(entryQC4POI->Data());
1337   textResultsPOI->AddText(entryQC6POI->Data());
1338   textResultsPOI->AddText(entryQC8POI->Data());
1339   textResultsPOI->AddText(entryFQDPOI->Data());
1340   textResultsPOI->AddText(entryLYZ1SUMPOI->Data());
1341   textResultsPOI->AddText(entryLYZ1PRODPOI->Data());
1342   textResultsPOI->AddText(entryLYZEPPOI->Data());
1343  }
1344  //----------------------------------------------------------------------------------
1345  
1346  
1347  //----------------------------------------------------------------------------------
1348  // final drawing for integrated flow (no-name):
1349  if(plotIntFlow)
1350  {
1351   TCanvas* intFlowAllCanvas = new TCanvas("Integrated Flow","Integrated Flow",1000,600);
1352  
1353   if(plotLegendIntFlow) 
1354   {
1355    intFlowAllCanvas->Divide(2,1);
1356    // 1st pad is for plot:
1357    (intFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1358   } 
1359     
1360   if(intFlowAll)
1361   {
1362    if(dMin>0. && dMax>0.)
1363    {
1364     (intFlowAll->GetYaxis())->SetRangeUser(0.9744*dMin,1.0144*dMax);
1365    } else if(dMin<0. && dMax>0.)
1366      {
1367       if(!(-1.*dMin<4.*dMax))
1368       {  
1369        (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,1.0144*dMax);
1370       } else {(intFlowAll->GetYaxis())->SetRangeUser(1.1266*dMin,1.0144*dMax);}  
1371      } else if(dMin<0. && dMax<0.)
1372        {
1373         (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,0.9866*dMax);      
1374        }
1375    intFlowAll->Draw("E1");
1376   }                    
1377                                                     
1378   if(pMesh) pMesh->Draw("LFSAME");
1379    
1380   if(flowResults) flowResults->Draw("PSAME");
1381
1382   // 2nd pad is for legend:
1383   if(plotLegendIntFlow)
1384   {
1385    (intFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1386  
1387    if(textDefault) textDefault->Draw();
1388  
1389    if(textResults) textResults->Draw();
1390   }
1391   
1392  }// end of if(plotIntFlow) 
1393  //----------------------------------------------------------------------------------
1394  
1395  
1396  //----------------------------------------------------------------------------------
1397  // final drawing for integrated flow relative to MC (no-name):
1398  if(plotIntFlowRelativeToMC)
1399  {
1400   TCanvas* intFlowAllRelativeToMCCanvas = new TCanvas("Integrated Flow Relative To MC","Integrated Flow Relative To MC",1000,600);
1401  
1402   intFlowAllRelativeToMCCanvas->Divide(2,1);
1403  
1404   // 1st pad is for plot:
1405   (intFlowAllRelativeToMCCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1406   
1407   TH1D *intFlowAllRelativeToMC = new TH1D(*intFlowAll);
1408   (intFlowAllRelativeToMC->GetYaxis())->SetRangeUser(-1,1);
1409   (intFlowAllRelativeToMC->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}"); 
1410   intFlowAllRelativeToMC->Draw("E1");            
1411   
1412   if(flowResultsRelativeToMC) flowResultsRelativeToMC->Draw("PSAME");
1413
1414   // 2nd pad is for legend:
1415   (intFlowAllRelativeToMCCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1416  
1417   if(textDefault) textDefault->Draw();
1418  
1419   if(textResults) textResults->Draw();
1420  
1421  }// end of if(plotIntFlowRelativeToMC) 
1422  //----------------------------------------------------------------------------------
1423  
1424  
1425  //----------------------------------------------------------------------------------
1426  //final drawing for integrated flow of RP (i.e. of particles used to determine the reaction plane):
1427  if(plotIntFlowRP)
1428  {
1429   TCanvas* intFlowAllCanvasRP = new TCanvas("Integrated Flow RP","Integrated Flow RP",1000,600);
1430  
1431   if(plotLegendIntFlow)
1432   {
1433    intFlowAllCanvasRP->Divide(2,1);
1434  
1435    //1st pad is for plot:
1436    (intFlowAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1437   }
1438  
1439   TH1D *intFlowAllRP = new TH1D(*intFlowAll);
1440   intFlowAllRP->SetMarkerStyle(markerStyleRP);
1441   intFlowAllRP->SetMarkerColor(markerColorRP);
1442   (intFlowAllRP->GetXaxis())->SetBinLabel(binMCRP,"v_{2}{MC}");
1443   (intFlowAllRP->GetXaxis())->SetBinLabel(binSPRP,"v_{2}{SP}");
1444   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC2RP,"v_{2}{2,GFC}");
1445   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC2RP,"v_{2}{2,QC}");
1446   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC4RP,"v_{2}{4,GFC}");
1447   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC4RP,"v_{2}{4,QC}");
1448   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC6RP,"v_{2}{6,GFC}");
1449   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC6RP,"v_{2}{6,QC}");
1450   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC8RP,"v_{2}{8,GFC}");
1451   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC8RP,"v_{2}{8,QC}");
1452   (intFlowAllRP->GetXaxis())->SetBinLabel(binFQDRP,"v_{2}{FQD}");
1453   (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2SUMRP,"v_{2}{LYZ,sum}");
1454   (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2PRODRP,"v_{2}{LYZ,prod}");
1455   (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZEPRP,"v_{2}{LYZEP}");
1456
1457   if(intFlowAllRP)
1458   {
1459    if(dMinRP>0. && dMaxRP>0.)
1460    {
1461     (intFlowAllRP->GetYaxis())->SetRangeUser(0.9744*dMinRP,1.0144*dMaxRP);
1462    } else if(dMinRP<0. && dMaxRP>0.)
1463      {
1464       if(!(-1.*dMinRP<4.*dMaxRP))
1465       {  
1466        (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,1.0144*dMaxRP);
1467       } else {(intFlowAllRP->GetYaxis())->SetRangeUser(1.1266*dMinRP,1.0144*dMaxRP);}  
1468      } else if(dMinRP<0. && dMaxRP<0.)
1469        {
1470         (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,0.9866*dMaxRP);      
1471        } 
1472    intFlowAllRP->Draw("E1");
1473   }
1474                                                                                                                                                                                                                                                                                    
1475   if(pMeshRP) pMeshRP->Draw("LFSAME");
1476    
1477   if(flowResultsRP) flowResultsRP->Draw("PSAME");
1478
1479   if(plotLegendIntFlow)
1480   {
1481    //2nd pad is for legend:
1482    (intFlowAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1483   
1484    if(textDefault) textDefault->Draw();
1485  
1486    if(textResultsRP) textResultsRP->Draw();
1487   }
1488    
1489  }//end of if(plotIntFlowRP} 
1490  //----------------------------------------------------------------------------------
1491  
1492  
1493  //----------------------------------------------------------------------------------
1494  // final drawing for integrated flow relative to MC (RP):
1495  if(plotIntFlowRelativeToMCRP)
1496  {
1497   TCanvas* intFlowAllRelativeToMCRPCanvas = new TCanvas("Integrated Flow (RP) Relative To MC","Integrated Flow (RP) Relative To MC",1000,600);
1498  
1499   intFlowAllRelativeToMCRPCanvas->Divide(2,1);
1500  
1501   // 1st pad is for plot:
1502   (intFlowAllRelativeToMCRPCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1503   
1504   TH1D *intFlowAllRelativeToMCRP = new TH1D(*intFlowAll);
1505   (intFlowAllRelativeToMCRP->GetYaxis())->SetRangeUser(-1,1); 
1506   (intFlowAllRelativeToMCRP->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1507   intFlowAllRelativeToMCRP->Draw("E1");            
1508   
1509   if(flowResultsRelativeToMCRP) flowResultsRelativeToMCRP->Draw("PSAME");
1510
1511   // 2nd pad is for legend:
1512   (intFlowAllRelativeToMCRPCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1513  
1514   if(textDefault) textDefault->Draw();
1515  
1516   if(textResultsRP) textResultsRP->Draw();
1517  
1518  }// end of if(plotIntFlowRelativeToMCRP) 
1519  //----------------------------------------------------------------------------------
1520   
1521  
1522  //----------------------------------------------------------------------------------
1523  //final drawing for integrated flow of POI (i.e. of particles of interest):
1524  if(plotIntFlowPOI)
1525  {
1526   TCanvas* intFlowAllCanvasPOI = new TCanvas("Integrated Flow POI","Integrated Flow POI",1000,600);
1527   
1528   if(plotLegendIntFlow)
1529   {
1530    intFlowAllCanvasPOI->Divide(2,1);
1531  
1532    //1st pad is for plot:
1533    (intFlowAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1534   }
1535   
1536   TH1D *intFlowAllPOI = new TH1D(*intFlowAll);
1537   intFlowAllPOI->SetMarkerStyle(markerStylePOI);
1538   intFlowAllPOI->SetMarkerColor(markerColorPOI);
1539   (intFlowAllPOI->GetXaxis())->SetBinLabel(binMCPOI,"v_{2}{MC}");
1540   (intFlowAllPOI->GetXaxis())->SetBinLabel(binSPPOI,"v_{2}{SP}");
1541   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC2POI,"v_{2}{2,GFC}");
1542   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC2POI,"v_{2}{2,QC}");
1543   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC4POI,"v_{2}{4,GFC}");
1544   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC4POI,"v_{2}{4,QC}");
1545   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC6POI,"v_{2}{6,GFC}");
1546   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC6POI,"v_{2}{6,QC}");
1547   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC8POI,"v_{2}{8,GFC}");
1548   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC8POI,"v_{2}{8,QC}");
1549   (intFlowAllPOI->GetXaxis())->SetBinLabel(binFQDPOI,"v_{2}{FQD}");
1550   (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2SUMPOI,"v_{2}{LYZ,sum}");
1551   (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2PRODPOI,"v_{2}{LYZ,prod}");
1552   (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZEPPOI,"v_{2}{LYZEP}");
1553   
1554   if(intFlowAllPOI)
1555   {
1556    if(dMinPOI>0. && dMaxPOI>0.)
1557    {
1558     (intFlowAllPOI->GetYaxis())->SetRangeUser(0.9744*dMinPOI,1.0144*dMaxPOI);
1559    } else if(dMinPOI<0. && dMaxPOI>0.)
1560      {
1561       if(!(-1.*dMinPOI<4.*dMaxPOI))
1562       {  
1563        (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,1.0144*dMaxPOI);
1564       } else {(intFlowAllPOI->GetYaxis())->SetRangeUser(1.1266*dMinPOI,1.0144*dMaxPOI);}  
1565      } else if(dMinPOI<0. && dMaxPOI<0.)
1566        {
1567         (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,0.9866*dMaxPOI);      
1568        }
1569    intFlowAllPOI->Draw("E1");
1570   }
1571                             
1572   if(pMeshPOI) pMeshPOI->Draw("LFSAME");
1573    
1574   if(flowResultsPOI) flowResultsPOI->Draw("PSAME");
1575  
1576   if(plotLegendIntFlow)
1577   {
1578    //2nd pad is for legend:
1579    (intFlowAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1580   
1581    if(textDefault) textDefault->Draw();
1582
1583    if(textResultsPOI) textResultsPOI->Draw();
1584   } 
1585    
1586  }// end of if(plotIntFlowPOI) 
1587  //----------------------------------------------------------------------------------      
1588  
1589     
1590  //----------------------------------------------------------------------------------
1591  // final drawing for integrated flow relative to MC (POI):
1592  if(plotIntFlowRelativeToMCPOI)
1593  {
1594   TCanvas* intFlowAllRelativeToMCPOICanvas = new TCanvas("Integrated Flow (POI) Relative To MC","Integrated Flow (POI) Relative To MC",1000,600);
1595  
1596   intFlowAllRelativeToMCPOICanvas->Divide(2,1);
1597  
1598   // 1st pad is for plot:
1599   (intFlowAllRelativeToMCPOICanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1600   
1601   TH1D *intFlowAllRelativeToMCPOI = new TH1D(*intFlowAll);
1602   (intFlowAllRelativeToMCPOI->GetYaxis())->SetRangeUser(-1,1); 
1603   (intFlowAllRelativeToMCPOI->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
1604   intFlowAllRelativeToMCPOI->Draw("E1");            
1605   
1606   if(flowResultsRelativeToMCPOI) flowResultsRelativeToMCPOI->Draw("PSAME");
1607
1608   // 2nd pad is for legend:
1609   (intFlowAllRelativeToMCPOICanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1610  
1611   if(textDefault) textDefault->Draw();
1612  
1613   if(textResultsPOI) textResultsPOI->Draw();
1614  
1615  }// end of if(plotIntFlowRelativeToMCPOI) 
1616  //----------------------------------------------------------------------------------
1617          
1618  //==================================================================================   
1619
1620
1621
1622
1623  //==================================================================================
1624  //                            DIFFERENTIAL FLOW
1625  //==================================================================================
1626  Int_t iNbinsPt  = AliFlowCommonConstants::GetMaster()->GetNbinsPt();
1627  Double_t dPtMin = AliFlowCommonConstants::GetMaster()->GetPtMin();
1628  Double_t dPtMax = AliFlowCommonConstants::GetMaster()->GetPtMax();
1629  
1630  Int_t iNbinsEta  = AliFlowCommonConstants::GetMaster()->GetNbinsEta();
1631  Double_t dEtaMin = AliFlowCommonConstants::GetMaster()->GetEtaMin();
1632  Double_t dEtaMax = AliFlowCommonConstants::GetMaster()->GetEtaMax();
1633  
1634  //----------------------------------------------------------------------------------
1635  //cosmetics: the style histogram for differential flow (pt):
1636  TH1D *styleHistPt = new TH1D("styleHistPt","styleHistPt",iNbinsPt,dPtMin,dPtMax);
1637  styleHistPt->SetTitle("Differential Flow");
1638  styleHistPt->SetXTitle("p_{t} [GeV]");
1639  styleHistPt->SetYTitle("v_{n}");
1640  
1641  //cosmetics: the style histogram for differential flow (eta):
1642  TH1D *styleHistEta = new TH1D("styleHistEta","styleHistEta",iNbinsEta,dEtaMin,dEtaMax);
1643  styleHistEta->SetTitle("Differential Flow");
1644  styleHistEta->SetXTitle("#eta");
1645  styleHistEta->SetYTitle("v_{n}");
1646  //----------------------------------------------------------------------------------
1647  
1648  
1649
1650  //----------------------------------------------------------------------------------
1651  //RP:
1652  //cosmetics: Monte Carlo error bands for differential flow (Pt)
1653  TGraph* pMeshDiffFlowPtRP = NULL;
1654  if(mcepCommonHistRes)
1655  {
1656   Int_t nBinsDiffFlowPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetNbinsX();
1657   Double_t binWidthPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinWidth(1);//assuming that all bins have the same width
1658
1659   //counting the non-empty bins: 
1660   Int_t nNonEmptyBinsDiffFlowPtRP=0;
1661   for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1662   {
1663    if(!(mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i)==0.0))
1664    {
1665     nNonEmptyBinsDiffFlowPtRP++;
1666    }
1667   }    
1668        
1669   pMeshDiffFlowPtRP = new TGraph(2*nNonEmptyBinsDiffFlowPtRP+1);
1670   
1671   Double_t valueMCPtRP=0.,errorMCPtRP=0.;
1672   Int_t countDiffFlowPtRP=1;
1673   Double_t xFirstDiffFlowPtRP=0.,yUpFirstDiffFlowPtRP=0.;//needed to close up the mesh
1674   for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1675   {
1676    //setting up the upper limit of the mesh:
1677    valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(i);
1678    errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i);   
1679    if(!(errorMCPtRP==0.0))
1680    {    
1681     pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(i-0.5)*binWidthPtRP+dPtMin,valueMCPtRP+errorMCPtRP);
1682     if(xFirstDiffFlowPtRP==0.)
1683     {
1684      xFirstDiffFlowPtRP=(i-0.5)*binWidthPtRP+dPtMin;
1685      yUpFirstDiffFlowPtRP=valueMCPtRP+errorMCPtRP;
1686     }
1687    } 
1688   }   
1689   for(Int_t i=nBinsDiffFlowPtRP+1;i<2*nBinsDiffFlowPtRP+1;i++)
1690   {
1691    //setting up the lower limit of the mesh:
1692    valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(2*nBinsDiffFlowPtRP+1-i);
1693    errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(2*nBinsDiffFlowPtRP+1-i); 
1694    if(!(errorMCPtRP==0.0))
1695    {      
1696     pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(2*nBinsDiffFlowPtRP-i+0.5)*binWidthPtRP+dPtMin,valueMCPtRP-errorMCPtRP);
1697    }  
1698   }
1699   //closing the mesh area:
1700   pMeshDiffFlowPtRP->SetPoint(2*nNonEmptyBinsDiffFlowPtRP+1,xFirstDiffFlowPtRP,yUpFirstDiffFlowPtRP);   
1701   
1702   //setting the mesh style and color:               
1703   pMeshDiffFlowPtRP->SetFillStyle(meshStyleDiffFlowPtRP);
1704   pMeshDiffFlowPtRP->SetFillColor(meshColorDiffFlowPtRP);
1705  }
1706
1707  //cosmetics: Monte Carlo error bands for differential flow (Eta)
1708  TGraph* pMeshDiffFlowEtaRP = NULL;
1709  if(mcepCommonHistRes)
1710  {
1711   Int_t nBinsDiffFlowEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetNbinsX();
1712   Double_t binWidthEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinWidth(1);//assuming that all bins have the same width
1713
1714   //counting the non-empty bins: 
1715   Int_t nNonEmptyBinsDiffFlowEtaRP=0;
1716   for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1717   {
1718    if(!(mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i)==0.0))
1719    {
1720     nNonEmptyBinsDiffFlowEtaRP++;
1721    }
1722   }    
1723        
1724   pMeshDiffFlowEtaRP = new TGraph(2*nNonEmptyBinsDiffFlowEtaRP+1);
1725   
1726   Double_t valueMCEtaRP=0.,errorMCEtaRP=0.;
1727   Int_t countDiffFlowEtaRP=1;
1728   Double_t xFirstDiffFlowEtaRP=0.,yUpFirstDiffFlowEtaRP=0.;//needed to close up the mesh
1729   for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1730   {
1731    //setting up the upper limit of the mesh:
1732    valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(i);
1733    errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i);   
1734    if(!(errorMCEtaRP==0.0))
1735    {    
1736     pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(i-0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP+errorMCEtaRP);
1737     if(xFirstDiffFlowEtaRP==0.)
1738     {
1739      xFirstDiffFlowEtaRP=(i-0.5)*binWidthEtaRP+dEtaMin;
1740      yUpFirstDiffFlowEtaRP=valueMCEtaRP+errorMCEtaRP;
1741     }
1742    } 
1743   }   
1744   for(Int_t i=nBinsDiffFlowEtaRP+1;i<2*nBinsDiffFlowEtaRP+1;i++)
1745   {
1746    //setting up the lower limit of the mesh:
1747    valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(2*nBinsDiffFlowEtaRP+1-i);
1748    errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(2*nBinsDiffFlowEtaRP+1-i); 
1749    if(!(errorMCEtaRP==0.0))
1750    {      
1751     pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(2*nBinsDiffFlowEtaRP-i+0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP-errorMCEtaRP);
1752    }  
1753   }
1754   //closing the mesh area:
1755   pMeshDiffFlowEtaRP->SetPoint(2*nNonEmptyBinsDiffFlowEtaRP+1,xFirstDiffFlowEtaRP,yUpFirstDiffFlowEtaRP);   
1756   
1757   //setting the mesh style and color:               
1758   pMeshDiffFlowEtaRP->SetFillStyle(meshStyleDiffFlowEtaRP);
1759   pMeshDiffFlowEtaRP->SetFillColor(meshColorDiffFlowEtaRP);
1760  } 
1761  //----------------------------------------------------------------------------------
1762
1763
1764
1765
1766  //----------------------------------------------------------------------------------
1767  //POI:
1768  //cosmetics: Monte Carlo error bands for differential flow (Pt)
1769  TGraph* pMeshDiffFlowPtPOI = NULL;
1770  if(mcepCommonHistRes)
1771  {
1772   Int_t nBinsDiffFlowPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetNbinsX();
1773   Double_t binWidthPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinWidth(1);//assuming that all bins have the same width
1774
1775   //counting the non-empty bins: 
1776   Int_t nNonEmptyBinsDiffFlowPtPOI=0;
1777   for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1778   {
1779    if(!(mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i)==0.0))
1780    {
1781     nNonEmptyBinsDiffFlowPtPOI++;
1782    }
1783   }    
1784        
1785   pMeshDiffFlowPtPOI = new TGraph(2*nNonEmptyBinsDiffFlowPtPOI+1);
1786   
1787   Double_t valueMCPtPOI=0.,errorMCPtPOI=0.;
1788   Int_t countDiffFlowPtPOI=1;
1789   Double_t xFirstDiffFlowPtPOI=0.,yUpFirstDiffFlowPtPOI=0.;//needed to close up the mesh
1790   for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1791   {
1792    //setting up the upper limit of the mesh:
1793    valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(i);
1794    errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i);   
1795    if(!(errorMCPtPOI==0.0))
1796    {    
1797     pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(i-0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI+errorMCPtPOI);
1798     if(xFirstDiffFlowPtPOI==0.)
1799     {
1800      xFirstDiffFlowPtPOI=(i-0.5)*binWidthPtPOI+dPtMin;
1801      yUpFirstDiffFlowPtPOI=valueMCPtPOI+errorMCPtPOI;
1802     }
1803    } 
1804   }   
1805   for(Int_t i=nBinsDiffFlowPtPOI+1;i<2*nBinsDiffFlowPtPOI+1;i++)
1806   {
1807    //setting up the lower limit of the mesh:
1808    valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(2*nBinsDiffFlowPtPOI+1-i);
1809    errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(2*nBinsDiffFlowPtPOI+1-i); 
1810    if(!(errorMCPtPOI==0.0))
1811    {      
1812     pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(2*nBinsDiffFlowPtPOI-i+0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI-errorMCPtPOI);
1813    }  
1814   }
1815   //closing the mesh area:
1816   pMeshDiffFlowPtPOI->SetPoint(2*nNonEmptyBinsDiffFlowPtPOI+1,xFirstDiffFlowPtPOI,yUpFirstDiffFlowPtPOI);   
1817   
1818   //setting the mesh style and color:               
1819   pMeshDiffFlowPtPOI->SetFillStyle(meshStyleDiffFlowPtPOI);
1820   pMeshDiffFlowPtPOI->SetFillColor(meshColorDiffFlowPtPOI);
1821  }
1822
1823  //cosmetics: Monte Carlo error bands for differential flow (Eta)
1824  TGraph* pMeshDiffFlowEtaPOI = NULL;
1825  if(mcepCommonHistRes)
1826  {
1827   Int_t nBinsDiffFlowEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetNbinsX();
1828   Double_t binWidthEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinWidth(1);//assuming that all bins have the same width
1829
1830   //counting the non-empty bins: 
1831   Int_t nNonEmptyBinsDiffFlowEtaPOI=0;
1832   for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1833   {
1834    if(!(mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i)==0.0))
1835    {
1836     nNonEmptyBinsDiffFlowEtaPOI++;
1837    }
1838   }    
1839        
1840   pMeshDiffFlowEtaPOI = new TGraph(2*nNonEmptyBinsDiffFlowEtaPOI+1);
1841   
1842   Double_t valueMCEtaPOI=0.,errorMCEtaPOI=0.;
1843   Int_t countDiffFlowEtaPOI=1;
1844   Double_t xFirstDiffFlowEtaPOI=0.,yUpFirstDiffFlowEtaPOI=0.;//needed to close up the mesh
1845   for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1846   {
1847    //setting up the upper limit of the mesh:
1848    valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(i);
1849    errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i);   
1850    if(!(errorMCEtaPOI==0.0))
1851    {    
1852     pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(i-0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI+errorMCEtaPOI);
1853     if(xFirstDiffFlowEtaPOI==0.)
1854     {
1855      xFirstDiffFlowEtaPOI=(i-0.5)*binWidthEtaPOI+dEtaMin;
1856      yUpFirstDiffFlowEtaPOI=valueMCEtaPOI+errorMCEtaPOI;
1857     }
1858    } 
1859   }   
1860   for(Int_t i=nBinsDiffFlowEtaPOI+1;i<2*nBinsDiffFlowEtaPOI+1;i++)
1861   {
1862    //setting up the lower limit of the mesh:
1863    valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(2*nBinsDiffFlowEtaPOI+1-i);
1864    errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(2*nBinsDiffFlowEtaPOI+1-i); 
1865    if(!(errorMCEtaPOI==0.0))
1866    {      
1867     pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(2*nBinsDiffFlowEtaPOI-i+0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI-errorMCEtaPOI);
1868    }  
1869   }
1870   //closing the mesh area:
1871   pMeshDiffFlowEtaPOI->SetPoint(2*nNonEmptyBinsDiffFlowEtaPOI+1,xFirstDiffFlowEtaPOI,yUpFirstDiffFlowEtaPOI);   
1872   
1873   //setting the mesh style and color:               
1874   pMeshDiffFlowEtaPOI->SetFillStyle(meshStyleDiffFlowEtaPOI);
1875   pMeshDiffFlowEtaPOI->SetFillColor(meshColorDiffFlowEtaPOI);
1876  }
1877  //----------------------------------------------------------------------------------
1878    
1879  //MCEP = Monte Carlo Event Plane
1880  Double_t avMultDiffFlowMCRP=0.;
1881  Double_t nEvtsDiffFlowMCRP=0;
1882  Double_t avMultDiffFlowMCPOI=0.;
1883  Double_t nEvtsDiffFlowMCPOI=0;
1884  if(fileMCEP)
1885  {
1886   if(mcepCommonHistRes)
1887   {
1888    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorMC);
1889    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleMC);
1890    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorMC);
1891    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleMC);
1892    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorMC);
1893    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleMC);
1894    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorMC);
1895    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleMC);
1896   } 
1897   if(mcepCommonHist)
1898   {
1899    avMultDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
1900    nEvtsDiffFlowMCRP  = (mcepCommonHist->GetHistMultRP())->GetEntries();
1901    avMultDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
1902    nEvtsDiffFlowMCPOI  = (mcepCommonHist->GetHistMultPOI())->GetEntries();      
1903   } 
1904  } 
1905  
1906  //SP = Scalar Product
1907  Double_t avMultDiffFlowSPRP=0.;
1908  Double_t nEvtsDiffFlowSPRP=0;
1909  Double_t avMultDiffFlowSPPOI=0.;
1910  Double_t nEvtsDiffFlowSPPOI=0;
1911  if(fileSP)
1912  {
1913   if(spCommonHistRes)
1914   {
1915    (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorSP);
1916    (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleSP);
1917    (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorSP);
1918    (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleSP);
1919    (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorSP);
1920    (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleSP);
1921    (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorSP);
1922    (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleSP);
1923   } 
1924   if(spCommonHist)
1925   {
1926    avMultDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetMean();
1927    nEvtsDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
1928    avMultDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
1929    nEvtsDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();      
1930   } 
1931  } 
1932
1933  //GFC = Generating Function Cumulants
1934  Double_t avMultDiffFlowGFC=0.;//to be removed
1935  Double_t nEvtsDiffFlowGFC=0.;//to be removed
1936  Double_t avMultDiffFlowGFCRP=0.;
1937  Double_t nEvtsDiffFlowGFCRP=0.;
1938  Double_t avMultDiffFlowGFCPOI=0.;
1939  Double_t nEvtsDiffFlowGFCPOI=0.; 
1940  if(fileGFC)
1941  {
1942   if(gfcCommonHistRes2)
1943   {
1944    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC2);
1945    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC2);
1946    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC2);
1947    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC2);
1948    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC2);
1949    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC2);
1950    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC2);
1951    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC2);
1952   }
1953   if(gfcCommonHistRes4)
1954   { 
1955    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC4);
1956    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC4);
1957    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC4);
1958    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC4);
1959    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC4);
1960    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC4);
1961    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC4);
1962    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC4);         
1963   }
1964   if(gfcCommonHistRes6)
1965   { 
1966    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC6);
1967    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC6);
1968    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC6);
1969    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC6);
1970    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC6);
1971    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC6);
1972    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC6);
1973    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC6);
1974   }
1975   if(gfcCommonHistRes8)
1976   { 
1977    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC8);
1978    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC8);
1979    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC8);
1980    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC8);
1981    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC8);
1982    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC8);
1983    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC8);
1984    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC8);
1985   }
1986   if(gfcCommonHist)
1987   {
1988    avMultDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();   
1989    nEvtsDiffFlowGFCRP  = (gfcCommonHist->GetHistMultRP())->GetEntries();
1990    avMultDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
1991    nEvtsDiffFlowGFCPOI  = (gfcCommonHist->GetHistMultPOI())->GetEntries();   
1992   } 
1993  }
1994   
1995  //QC = Q-cumulants
1996  Double_t avMultDiffFlowQC2RP=0.;
1997  Double_t nEvtsDiffFlowQC2RP=0.;
1998  Double_t avMultDiffFlowQC2POI=0.;
1999  Double_t nEvtsDiffFlowQC2POI=0.;
2000  Double_t avMultDiffFlowQC4RP=0.;
2001  Double_t nEvtsDiffFlowQC4RP=0.;
2002  Double_t avMultDiffFlowQC4POI=0.;
2003  Double_t nEvtsDiffFlowQC4POI=0.;
2004  Double_t avMultDiffFlowQC6RP=0.;
2005  Double_t nEvtsDiffFlowQC6RP=0.;
2006  Double_t avMultDiffFlowQC6POI=0.;
2007  Double_t nEvtsDiffFlowQC6POI=0.;
2008  Double_t avMultDiffFlowQC8RP=0.;
2009  Double_t nEvtsDiffFlowQC8RP=0.;
2010  Double_t avMultDiffFlowQC8POI=0.;
2011  Double_t nEvtsDiffFlowQC8POI=0.;
2012
2013  if(fileQC)
2014  {
2015   //QC{2}
2016   if(qcCommonHistRes2)
2017   {
2018    (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC2);
2019    (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC2);
2020    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC2);
2021    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC2);
2022    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC2);
2023    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC2);
2024    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC2);
2025    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC2);
2026   }
2027   if(qcCommonHist2)
2028   {
2029    avMultDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
2030    nEvtsDiffFlowQC2RP  = (qcCommonHist2->GetHistMultRP())->GetEntries();
2031    avMultDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
2032    nEvtsDiffFlowQC2POI  = (qcCommonHist2->GetHistMultPOI())->GetEntries();
2033   }
2034   //QC{4}
2035   if(qcCommonHistRes4)
2036   {
2037    (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC4);
2038    (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC4);
2039    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC4);
2040    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC4);
2041    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC4);
2042    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC4);
2043    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC4);
2044    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC4);
2045   }
2046   if(qcCommonHist4)
2047   {
2048    avMultDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
2049    nEvtsDiffFlowQC4RP  = (qcCommonHist4->GetHistMultRP())->GetEntries();
2050    avMultDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
2051    nEvtsDiffFlowQC4POI  = (qcCommonHist4->GetHistMultPOI())->GetEntries();
2052   }
2053   //QC{6}
2054   if(qcCommonHistRes6)
2055   {
2056    (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC6);
2057    (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC6);
2058    (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC6);
2059    (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC6);
2060    (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC6);
2061    (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC6);
2062    (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC6);
2063    (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC6);
2064   }
2065   if(qcCommonHist6)
2066   {
2067    avMultDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
2068    nEvtsDiffFlowQC6RP  = (qcCommonHist6->GetHistMultRP())->GetEntries();
2069    avMultDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
2070    nEvtsDiffFlowQC6POI  = (qcCommonHist6->GetHistMultPOI())->GetEntries();
2071   }
2072   //QC{8}
2073   if(qcCommonHistRes8)
2074   {
2075    (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC8);
2076    (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC8);
2077    (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC8);
2078    (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC8);
2079    (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC8);
2080    (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC8);
2081    (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC8);
2082    (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC8);
2083   }
2084   if(qcCommonHist8)
2085   {
2086    avMultDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
2087    nEvtsDiffFlowQC8RP  = (qcCommonHist8->GetHistMultRP())->GetEntries();
2088    avMultDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
2089    nEvtsDiffFlowQC8POI  = (qcCommonHist8->GetHistMultPOI())->GetEntries();
2090   }
2091  } 
2092
2093  //LYZ2SUM = Lee-Yang Zeros (2nd run, sum)
2094  Double_t avMultDiffFlowLYZ2SUMRP=0.;
2095  Double_t nEvtsDiffFlowLYZ2SUMRP=0;
2096  Double_t avMultDiffFlowLYZ2SUMPOI=0.;
2097  Double_t nEvtsDiffFlowLYZ2SUMPOI=0;
2098  if(fileLYZ2SUM)
2099  {
2100   if(lyz2sumCommonHistRes)
2101   {
2102    (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2SUM);
2103    (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2SUM);
2104    (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2SUM);
2105    (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2SUM);
2106    (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2SUM);
2107    (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2SUM);
2108    (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2SUM);
2109    (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2SUM);
2110   } 
2111   if(lyz2sumCommonHist)
2112   {
2113    avMultDiffFlowLYZ2SUMRP = (lyz2sumCommonHist->GetHistMultRP())->GetMean();
2114    nEvtsDiffFlowLYZ2SUMRP  = (lyz2sumCommonHist->GetHistMultRP())->GetEntries();
2115    avMultDiffFlowLYZ2SUMPOI = (lyz2sumCommonHist->GetHistMultPOI())->GetMean();
2116    nEvtsDiffFlowLYZ2SUMPOI  = (lyz2sumCommonHist->GetHistMultPOI())->GetEntries();
2117   } 
2118  } 
2119  
2120  //LYZ2PROD = Lee-Yang Zeros (2nd run, product)
2121  Double_t avMultDiffFlowLYZ2PRODRP=0.;
2122  Double_t nEvtsDiffFlowLYZ2PRODRP=0;
2123  Double_t avMultDiffFlowLYZ2PRODPOI=0.;
2124  Double_t nEvtsDiffFlowLYZ2PRODPOI=0;
2125  if(fileLYZ2PROD)
2126  {
2127   if(lyz2prodCommonHistRes)
2128   {
2129    (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2PROD);
2130    (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2PROD);
2131    (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2PROD);
2132    (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2PROD);
2133    (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2PROD);
2134    (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2PROD);
2135    (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2PROD);
2136    (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2PROD);
2137   } 
2138   if(lyz2prodCommonHist)
2139   {
2140    avMultDiffFlowLYZ2PRODRP = (lyz2prodCommonHist->GetHistMultRP())->GetMean();
2141    nEvtsDiffFlowLYZ2PRODRP  = (lyz2prodCommonHist->GetHistMultRP())->GetEntries();
2142    avMultDiffFlowLYZ2PRODPOI = (lyz2prodCommonHist->GetHistMultPOI())->GetMean();
2143    nEvtsDiffFlowLYZ2PRODPOI  = (lyz2prodCommonHist->GetHistMultPOI())->GetEntries();
2144   } 
2145  } 
2146
2147  //LYZEP = Lee-Yang Zeros Event Plane
2148  Double_t avMultDiffFlowLYZEPRP=0.;
2149  Double_t nEvtsDiffFlowLYZEPRP=0;
2150  Double_t avMultDiffFlowLYZEPPOI=0.;
2151  Double_t nEvtsDiffFlowLYZEPPOI=0;
2152  if(fileLYZEP)
2153  {
2154   if(lyzepCommonHistRes)
2155   {
2156    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZEP);
2157    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZEP);
2158    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZEP);
2159    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZEP);
2160    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZEP);
2161    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZEP);
2162    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZEP);
2163    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZEP);
2164   } 
2165   if(lyzepCommonHist)
2166   {
2167    avMultDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
2168    nEvtsDiffFlowLYZEPRP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
2169    avMultDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
2170    nEvtsDiffFlowLYZEPPOI  = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
2171   } 
2172  } 
2173
2174
2175  //----------------------------------------------------------------------------------
2176  //final drawing for differential flow (Pt, RP):
2177  if(plotDiffFlowPtRP)
2178  {
2179   TCanvas* diffFlowPtAllCanvasRP = new TCanvas("Differential Flow (Pt) of RP","Differential Flow (Pt) of RP ",1000,600);
2180   
2181   diffFlowPtAllCanvasRP->Divide(2,1);
2182  
2183   //1st pad is for plot:
2184   (diffFlowPtAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2185  
2186   if(styleHistPt)
2187   {
2188    (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
2189    styleHistPt->Draw();
2190   }
2191   if(pMeshDiffFlowPtRP)
2192   {
2193    pMeshDiffFlowPtRP->Draw("LFSAME");
2194   }
2195  
2196   //MC 
2197   if(plotMCPtRP && mcepCommonHistRes)
2198   { 
2199    (mcepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2200   }
2201   //SP 
2202   if(plotSPPtRP && spCommonHistRes)
2203   { 
2204    (spCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2205   }
2206   //GFC
2207   if(plotGFC2PtRP && gfcCommonHistRes2)Pt
2208   { 
2209    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2210   } 
2211   if(plotGFC4PtRP && gfcCommonHistRes4)
2212   { 
2213    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2214   } 
2215   if(plotGFC6PtRP && gfcCommonHistRes6)
2216   { 
2217    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2218   } 
2219   if(plotGFC8PtRP && gfcCommonHistRes8)
2220   { 
2221    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
2222   }    
2223   //QC
2224   if(plotQC2PtRP && qcCommonHistRes2)
2225   { 
2226    (qcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2227   }
2228   if(plotQC4PtRP && qcCommonHistRes4)
2229   { 
2230    (qcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2231   }
2232   if(plotQC6PtRP && qcCommonHistRes6)
2233   { 
2234    //(qcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2235   }
2236   if(plotQC8PtRP && qcCommonHistRes8)
2237   { 
2238    //(qcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2239   }
2240   //LYZ2SUM
2241   if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2242   { 
2243    (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2244   }
2245   //LYZ2PROD
2246   if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2247   { 
2248    (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2249   }
2250   //LYZEP
2251   if(plotLYZEPPtRP && lyzepCommonHistRes)
2252   { 
2253    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
2254   }
2255
2256   //2nd pad is for legend:
2257   (diffFlowPtAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);  
2258     
2259   TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2260   legendDiffFlowPtRP->SetTextFont(72);
2261   legendDiffFlowPtRP->SetTextSize(0.06);
2262  
2263   //legend's entries:Pt
2264   TString *entryDiffMCPtRP       = new TString("MC ........ ");
2265   TString *entryDiffSPPtRP       = new TString("SP ........ ");
2266   TString *entryDiffGFC2PtRP     = new TString("GFC{2} .... ");
2267   TString *entryDiffGFC4PtRP     = new TString("GFC{4} .... ");
2268   TString *entryDiffGFC6PtRP     = new TString("GFC{6} .... ");
2269   TString *entryDiffGFC8PtRP     = new TString("GFC{8} .... "); 
2270   TString *entryDiffQC2PtRP      = new TString("QC{2} ..... ");
2271   TString *entryDiffQC4PtRP      = new TString("QC{4} ..... ");
2272   TString *entryDiffQC6PtRP      = new TString("QC{6} ..... ");
2273   TString *entryDiffQC8PtRP      = new TString("QC{8} ..... ");
2274   TString *entryDiffLYZ2SUMPtRP  = new TString("LYZ{sum} .. ");
2275   TString *entryDiffLYZ2PRODPtRP = new TString("LYZ{prod} . ");
2276   TString *entryDiffLYZEPPtRP    = new TString("LYZEP ..... ");
2277   
2278   //MC
2279   if(mcepCommonHistRes)
2280   {
2281    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
2282    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
2283    entryDiffMCPtRP->Append("M = ");
2284    (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
2285    entryDiffMCPtRP->Append(", N = ");
2286    (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP; 
2287    legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
2288   }
2289   
2290   //SP
2291   if(plotSPPtRP && spCommonHistRes)
2292   {
2293    entryDiffSPPtRP->Append("M = ");
2294    (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
2295    entryDiffSPPtRP->Append(", N = ");
2296    (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP; 
2297    legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
2298   }
2299
2300   //GFC
2301   if(plotGFC2PtRP && gfcCommonHistRes2)
2302   {
2303    entryDiffGFC2PtRP->Append("M = ");
2304    (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2305    entryDiffGFC2PtRP->Append(", N = ");
2306    (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2307    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2308   }
2309   if(plotGFC4PtRP && gfcCommonHistRes4)
2310   {
2311    entryDiffGFC4PtRP->Append("M = ");
2312    (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2313    entryDiffGFC4PtRP->Append(", N = ");
2314    (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2315    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2316   }
2317   if(plotGFC6PtRP && gfcCommonHistRes6)
2318   {
2319    entryDiffGFC6PtRP->Append("M = ");
2320    (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2321    entryDiffGFC6PtRP->Append(", N = ");
2322    (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2323    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2324   } 
2325   if(plotGFC8PtRP && gfcCommonHistRes8)
2326   {
2327    entryDiffGFC8PtRP->Append("M = ");
2328    (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2329    entryDiffGFC8PtRP->Append(", N = ");
2330    (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2331    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2332   }  
2333   
2334   //QC
2335   if(plotQC2PtRP && qcCommonHistRes2)
2336   {
2337    entryDiffQC2PtRP->Append("M = ");
2338    (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2339    entryDiffQC2PtRP->Append(", N = ");
2340    (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP; 
2341    legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2342   }
2343   if(plotQC4PtRP && qcCommonHistRes4)
2344   {
2345    entryDiffQC4PtRP->Append("M = ");
2346    (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2347    entryDiffQC4PtRP->Append(", N = ");
2348    (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP; 
2349    legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2350   }
2351   if(plotQC6PtRP && qcCommonHistRes6)
2352   {
2353    entryDiffQC6PtRP->Append("M = ");
2354    (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
2355    entryDiffQC6PtRP->Append(", N = ");
2356    (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP; 
2357    legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
2358   }
2359   if(plotQC8PtRP && qcCommonHistRes8)
2360   {
2361    entryDiffQC8PtRP->Append("M = ");
2362    (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
2363    entryDiffQC8PtRP->Append(", N = ");
2364    (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP; 
2365    legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
2366   }
2367   
2368   //LYZ2SUM
2369   if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
2370   {
2371    entryDiffLYZ2SUMPtRP->Append("M = ");
2372    (*entryDiffLYZ2SUMPtRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
2373    entryDiffLYZ2SUMPtRP->Append(", N = ");
2374    (*entryDiffLYZ2SUMPtRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP; 
2375    legendDiffFlowPtRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2SUMPtRP->Data(),"p");
2376   }
2377   
2378   //LYZ2PROD
2379   if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
2380   {
2381    entryDiffLYZ2PRODPtRP->Append("M = ");
2382    (*entryDiffLYZ2PRODPtRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
2383    entryDiffLYZ2PRODPtRP->Append(", N = ");
2384    (*entryDiffLYZ2PRODPtRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP; 
2385    legendDiffFlowPtRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PRODPtRP->Data(),"p");
2386   }
2387   
2388   //LYZEP
2389   if(plotLYZEPPtRP && lyzepCommonHistRes)
2390   {
2391    entryDiffLYZEPPtRP->Append("M = ");
2392    (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2393    entryDiffLYZEPPtRP->Append(", N = ");
2394    (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP; 
2395    legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
2396   }
2397
2398   //drawing finally the legend in the 2nd pad:         
2399   if(textDefault) textDefault->Draw();
2400   
2401   if(legendDiffFlowPtRP)
2402   {
2403    legendDiffFlowPtRP->SetMargin(0.15);
2404    legendDiffFlowPtRP->Draw();
2405   }
2406  }// end of if(plotDiffFlowPtRP)
2407  //----------------------------------------------------------------------------------
2408  
2409  //----------------------------------------------------------------------------------
2410  //final drawing for differential flow (Eta, RP):
2411  if(plotDiffFlowEtaRP)
2412  {
2413   TCanvas* diffFlowEtaAllCanvasRP = new TCanvas("Differential Flow (Eta) of RP","Differential Flow (Eta) of RP ",1000,600);
2414  
2415   diffFlowEtaAllCanvasRP->Divide(2,1);
2416  
2417   //1st pad is for plot:
2418   (diffFlowEtaAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2419   
2420   if(styleHistEta)
2421   {
2422    (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
2423    styleHistEta->Draw();
2424   }
2425   if(pMeshDiffFlowEtaRP)
2426   {
2427    pMeshDiffFlowEtaRP->Draw("LFSAME");
2428   }
2429  
2430   //MC 
2431   if(plotMCEtaRP && mcepCommonHistRes)
2432   { 
2433    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2434   }
2435   //SP 
2436   if(plotSPEtaRP && spCommonHistRes)
2437   { 
2438    (spCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2439   }
2440   //GFC
2441   if(plotGFC2EtaRP && gfcCommonHistRes2)
2442   { 
2443    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2444   } 
2445   if(plotGFC4EtaRP && gfcCommonHistRes4)
2446   { 
2447    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2448   } 
2449   if(plotGFC6EtaRP && gfcCommonHistRes6)
2450   { 
2451    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2452   } 
2453   if(plotGFC8EtaRP && gfcCommonHistRes8)
2454   { 
2455    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2456   }    
2457   //QC
2458   if(plotQC2EtaRP && qcCommonHistRes2)
2459   { 
2460    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2461   }
2462   if(plotQC4EtaRP && qcCommonHistRes4)
2463   { 
2464    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2465   }
2466   if(plotQC6EtaRP && qcCommonHistRes6)
2467   { 
2468    //(qcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2469   }
2470   if(plotQC8EtaRP && qcCommonHistRes8)
2471   { 
2472    //(qcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2473   }
2474   //LYZ2SUM
2475   if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2476   { 
2477    (lyz2sumCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2478   }
2479   //LYZ2PROD
2480   if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2481   { 
2482    (lyz2prodCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2483   }
2484   //LYZEP
2485   if(plotLYZEPEtaRP && lyzepCommonHistRes)
2486   { 
2487    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2488   }
2489  
2490   //2nd pad is for legend:
2491   (diffFlowEtaAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2492
2493   TLegend* legendDiffFlowEtaRP = new TLegend(0.02,0.12,0.97,0.70);
2494   legendDiffFlowEtaRP->SetTextFont(72);
2495   legendDiffFlowEtaRP->SetTextSize(0.06);
2496   
2497   //legend's entries:
2498   TString *entryDiffMCEtaRP       = new TString("MC ........ ");
2499   TString *entryDiffSPEtaRP       = new TString("SP ........ ");
2500   TString *entryDiffGFC2EtaRP     = new TString("GFC{2} .... ");
2501   TString *entryDiffGFC4EtaRP     = new TString("GFC{4} .... ");
2502   TString *entryDiffGFC6EtaRP     = new TString("GFC{6} .... ");
2503   TString *entryDiffGFC8EtaRP     = new TString("GFC{8} .... "); 
2504   TString *entryDiffQC2EtaRP      = new TString("QC{2} ..... ");
2505   TString *entryDiffQC4EtaRP      = new TString("QC{4} ..... ");
2506   TString *entryDiffQC6EtaRP      = new TString("QC{6} ..... ");
2507   TString *entryDiffQC8EtaRP      = new TString("QC{8} ..... ");
2508   TString *entryDiffLYZ2SUMEtaRP  = new TString("LYZ{sum} .. ");
2509   TString *entryDiffLYZ2PRODEtaRP = new TString("LYZ{prod} . ");
2510   TString *entryDiffLYZEPEtaRP    = new TString("LYZEP ..... ");
2511  
2512   //MC
2513   if(mcepCommonHistRes)
2514   {
2515    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillStyle(meshStyleDiffFlowEtaRP);
2516    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillColor(meshColorDiffFlowEtaRP);
2517    entryDiffMCEtaRP->Append("M = ");
2518    (*entryDiffMCEtaRP)+=(Long_t)avMultDiffFlowMCRP;
2519    entryDiffMCEtaRP->Append(", N = ");
2520    (*entryDiffMCEtaRP)+=(Long_t)nEvtsDiffFlowMCRP; 
2521    legendDiffFlowEtaRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffMCEtaRP->Data(),"f");
2522   }
2523   
2524   //SP
2525   if(plotSPEtaRP && spCommonHistRes)
2526   {
2527    entryDiffSPEtaRP->Append("M = ");
2528    (*entryDiffSPEtaRP)+=(Long_t)avMultDiffFlowSPRP;
2529    entryDiffSPEtaRP->Append(", N = ");
2530    (*entryDiffSPEtaRP)+=(Long_t)nEvtsDiffFlowSPRP; 
2531    legendDiffFlowEtaRP->AddEntry(spCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffSPEtaRP->Data(),"p");
2532   }
2533  
2534   //GFC
2535   if(plotGFC2EtaRP && gfcCommonHistRes2)
2536   {
2537    entryDiffGFC2EtaRP->Append("M = ");
2538    (*entryDiffGFC2EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2539    entryDiffGFC2EtaRP->Append(", N = ");
2540    (*entryDiffGFC2EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2541    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffGFC2EtaRP->Data(),"p");
2542   }
2543   if(plotGFC4EtaRP && gfcCommonHistRes4)
2544   {
2545    entryDiffGFC4EtaRP->Append("M = ");
2546    (*entryDiffGFC4EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2547    entryDiffGFC4EtaRP->Append(", N = ");
2548    (*entryDiffGFC4EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2549    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffGFC4EtaRP->Data(),"p");
2550   }
2551   if(plotGFC6EtaRP && gfcCommonHistRes6)
2552   {
2553    entryDiffGFC6EtaRP->Append("M = ");
2554    (*entryDiffGFC6EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2555    entryDiffGFC6EtaRP->Append(", N = ");
2556    (*entryDiffGFC6EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2557    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffGFC6EtaRP->Data(),"p");
2558   } 
2559   if(plotGFC8EtaRP && gfcCommonHistRes8)
2560   {
2561    entryDiffGFC8EtaRP->Append("M = ");
2562    (*entryDiffGFC8EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2563    entryDiffGFC8EtaRP->Append(", N = ");
2564    (*entryDiffGFC8EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2565    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffGFC8EtaRP->Data(),"p");
2566   }  
2567   
2568   //QC
2569   if(plotQC2EtaRP && qcCommonHistRes2)
2570   {
2571    entryDiffQC2EtaRP->Append("M = ");
2572    (*entryDiffQC2EtaRP)+=(Long_t)avMultDiffFlowQC2RP;
2573    entryDiffQC2EtaRP->Append(", N = ");
2574    (*entryDiffQC2EtaRP)+=(Long_t)nEvtsDiffFlowQC2RP; 
2575    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffQC2EtaRP->Data(),"p");
2576   }
2577   if(plotQC4EtaRP && qcCommonHistRes4)
2578   {
2579    entryDiffQC4EtaRP->Append("M = ");
2580    (*entryDiffQC4EtaRP)+=(Long_t)avMultDiffFlowQC4RP;
2581    entryDiffQC4EtaRP->Append(", N = ");
2582    (*entryDiffQC4EtaRP)+=(Long_t)nEvtsDiffFlowQC4RP; 
2583    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffQC4EtaRP->Data(),"p");
2584   }
2585   if(plotQC6EtaRP && qcCommonHistRes6)
2586   {
2587    entryDiffQC6EtaRP->Append("M = ");
2588    (*entryDiffQC6EtaRP)+=(Long_t)avMultDiffFlowQC6RP;
2589    entryDiffQC6EtaRP->Append(", N = ");
2590    (*entryDiffQC6EtaRP)+=(Long_t)nEvtsDiffFlowQC6RP; 
2591    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffQC6EtaRP->Data(),"p");
2592   }
2593   if(plotQC8EtaRP && qcCommonHistRes8)
2594   {
2595    entryDiffQC8EtaRP->Append("M = ");
2596    (*entryDiffQC8EtaRP)+=(Long_t)avMultDiffFlowQC8RP;
2597    entryDiffQC8EtaRP->Append(", N = ");
2598    (*entryDiffQC8EtaRP)+=(Long_t)nEvtsDiffFlowQC8RP; 
2599    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffQC8EtaRP->Data(),"p");
2600   }
2601  
2602   //LYZ2SUM
2603   if(plotLYZ2SUMEtaRP && lyz2sumCommonHistRes)
2604   {
2605    entryDiffLYZ2SUMEtaRP->Append("M = ");
2606    (*entryDiffLYZ2SUMEtaRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
2607    entryDiffLYZ2SUMEtaRP->Append(", N = ");
2608    (*entryDiffLYZ2SUMEtaRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP; 
2609    legendDiffFlowEtaRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2SUMEtaRP->Data(),"p");
2610   }
2611   
2612   //LYZ2PROD
2613   if(plotLYZ2PRODEtaRP && lyz2prodCommonHistRes)
2614   {
2615    entryDiffLYZ2PRODEtaRP->Append("M = ");
2616    (*entryDiffLYZ2PRODEtaRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
2617    entryDiffLYZ2PRODEtaRP->Append(", N = ");
2618    (*entryDiffLYZ2PRODEtaRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP; 
2619    legendDiffFlowEtaRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2PRODEtaRP->Data(),"p");
2620   }
2621   
2622   //LYZEP
2623   if(plotLYZEPEtaRP && lyzepCommonHistRes)
2624   {
2625    entryDiffLYZEPEtaRP->Append("M = ");
2626    (*entryDiffLYZEPEtaRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2627    entryDiffLYZEPEtaRP->Append(", N = ");
2628    (*entryDiffLYZEPEtaRP)+=(Long_t)nEvtsDiffFlowLYZEPRP; 
2629    legendDiffFlowEtaRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZEPEtaRP->Data(),"p");
2630   }
2631
2632   //drawing finally the legend in the 2nd pad: 
2633   if(textDefault) textDefault->Draw();    
2634   
2635   if(legendDiffFlowEtaRP)
2636   {
2637    legendDiffFlowEtaRP->SetMargin(0.15);
2638    legendDiffFlowEtaRP->Draw();
2639   }
2640  }// end of if(plotDiffFlowEtaRP)
2641  //----------------------------------------------------------------------------------
2642  
2643  //----------------------------------------------------------------------------------
2644  // final drawing for plot |(v{method}-v{MC})/v{MC}| as a function of pt for RPs  
2645  if(plotDiffFlowPtRelativeToMCRP)
2646  {  
2647   TCanvas* diffFlowPtRelativeToMCRP = new TCanvas("Differential Flow (Pt) of RPs relative to MC","Differential Flow (Pt) of RPs relative to MC",1000,600);
2648   
2649   diffFlowPtRelativeToMCRP->Divide(2,1);
2650  
2651   //1st pad is for plot:
2652   (diffFlowPtRelativeToMCRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2653  
2654   if(styleHistPt)
2655   {
2656    TH1D *styleHistPtReleativeToMC = new TH1D(*styleHistPt);
2657    (styleHistPtReleativeToMC->GetYaxis())->SetRangeUser(-4.0,4.0);
2658    (styleHistPtReleativeToMC->GetYaxis())->SetTitle("(v_{n}\{method\} - v_{n}\{MC\})/v_{n}\{MC\}");
2659    styleHistPtReleativeToMC->Draw();
2660   }
2661   
2662   TH1D *spDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2663   TH1D *gfc2DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2664   TH1D *gfc4DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2665   TH1D *gfc6DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2666   TH1D *gfc8DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2667   TH1D *qc2DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2668   TH1D *qc4DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2669   TH1D *qc6DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2670   TH1D *qc8DiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2671   TH1D *lyz2sumDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2672   TH1D *lyz2prodDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2673   TH1D *lyzepDiffFlowPtRelativeToMCRP = new TH1D("","",iNbinsPt,dPtMin,dPtMax);
2674     
2675   if(mcepCommonHistRes && mcepCommonHistRes->GetHistDiffFlowPtRP())
2676   {
2677    for(Int_t p=1;p<iNbinsPt+1;p++)
2678    {
2679     Double_t dvnMC = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2680     
2681     // SP:
2682     Double_t dvnSP = 0.;
2683     Double_t dvnErrorSP = 0.;
2684     if(spCommonHistRes && spCommonHistRes->GetHistDiffFlowPtRP())
2685     {
2686      dvnSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2687      dvnErrorSP = (spCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2688     }
2689     if(dvnMC!=0. && dvnSP!=0.) 
2690     {
2691      spDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnSP-dvnMC)/dvnMC);
2692      spDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorSP/dvnMC);
2693     }
2694     
2695     // GFC{2}:
2696     Double_t dvnGFC2 = 0.;
2697     Double_t dvnErrorGFC2 = 0.;
2698     if(gfcCommonHistRes2 && gfcCommonHistRes2->GetHistDiffFlowPtRP())
2699     {
2700      dvnGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2701      dvnErrorGFC2 = (gfcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2702     }
2703     if(dvnMC!=0. && dvnGFC2!=0.) 
2704     {
2705      gfc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC2-dvnMC)/dvnMC);
2706      gfc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC2/dvnMC);
2707     }
2708     
2709     // GFC{4}:
2710     Double_t dvnGFC4 = 0.;
2711     Double_t dvnErrorGFC4 = 0.;
2712     if(gfcCommonHistRes4 && gfcCommonHistRes4->GetHistDiffFlowPtRP())
2713     {
2714      dvnGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2715      dvnErrorGFC4 = (gfcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2716     }
2717     if(dvnMC!=0. && dvnGFC4!=0.) 
2718     {
2719      gfc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC4-dvnMC)/dvnMC);
2720      gfc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC4/dvnMC);
2721     }
2722     
2723     // GFC{6}:
2724     Double_t dvnGFC6 = 0.;
2725     Double_t dvnErrorGFC6 = 0.;
2726     if(gfcCommonHistRes6 && gfcCommonHistRes6->GetHistDiffFlowPtRP())
2727     {
2728      dvnGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2729      dvnErrorGFC6 = (gfcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2730     }
2731     if(dvnMC!=0. && dvnGFC6!=0.) 
2732     {
2733      gfc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC6-dvnMC)/dvnMC);
2734      gfc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC6/dvnMC);
2735     }
2736     
2737     // GFC{8}:
2738     Double_t dvnGFC8 = 0.;
2739     Double_t dvnErrorGFC8 = 0.;
2740     if(gfcCommonHistRes8 && gfcCommonHistRes8->GetHistDiffFlowPtRP())
2741     {
2742      dvnGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2743      dvnErrorGFC8 = (gfcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2744     }
2745     if(dvnMC!=0. && dvnGFC8!=0.) 
2746     {
2747      gfc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnGFC8-dvnMC)/dvnMC);
2748      gfc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorGFC8/dvnMC);
2749     }
2750     
2751     // QC{2}:
2752     Double_t dvnQC2 = 0.;
2753     Double_t dvnErrorQC2 = 0.;
2754     if(qcCommonHistRes2 && qcCommonHistRes2->GetHistDiffFlowPtRP())
2755     {
2756      dvnQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinContent(p);
2757      dvnErrorQC2 = (qcCommonHistRes2->GetHistDiffFlowPtRP())->GetBinError(p);
2758     }
2759     if(dvnMC!=0. && dvnQC2!=0.) 
2760     {
2761      qc2DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC2-dvnMC)/dvnMC);
2762      qc2DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC2/dvnMC);
2763     }
2764     
2765     // QC{4}:
2766     Double_t dvnQC4 = 0.;
2767     Double_t dvnErrorQC4 = 0.;
2768     if(qcCommonHistRes4 && qcCommonHistRes4->GetHistDiffFlowPtRP())
2769     {
2770      dvnQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinContent(p);
2771      dvnErrorQC4 = (qcCommonHistRes4->GetHistDiffFlowPtRP())->GetBinError(p);
2772     }
2773     if(dvnMC!=0. && dvnQC4!=0.) 
2774     {
2775      qc4DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC4-dvnMC)/dvnMC);
2776      qc4DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC4/dvnMC);
2777     }
2778     
2779     // QC{6}:
2780     Double_t dvnQC6 = 0.;
2781     Double_t dvnErrorQC6 = 0.;
2782     if(qcCommonHistRes6 && qcCommonHistRes6->GetHistDiffFlowPtRP())
2783     {
2784      dvnQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinContent(p);
2785      dvnErrorQC6 = (qcCommonHistRes6->GetHistDiffFlowPtRP())->GetBinError(p);
2786     }
2787     if(dvnMC!=0. && dvnQC6!=0.) 
2788     {
2789      qc6DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC6-dvnMC)/dvnMC);
2790      qc6DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC6/dvnMC);
2791     }
2792     
2793     // QC{8}:
2794     Double_t dvnQC8 = 0.;
2795     Double_t dvnErrorQC8 = 0.;
2796     if(qcCommonHistRes8 && qcCommonHistRes8->GetHistDiffFlowPtRP())
2797     {
2798      dvnQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinContent(p);
2799      dvnErrorQC8 = (qcCommonHistRes8->GetHistDiffFlowPtRP())->GetBinError(p);
2800     }
2801     if(dvnMC!=0. && dvnQC8!=0.) 
2802     {
2803      qc8DiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnQC8-dvnMC)/dvnMC);
2804      qc8DiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorQC8/dvnMC);
2805     }
2806     
2807     // LYZ2SUM:
2808     Double_t dvnLYZ2SUM = 0.;
2809     Double_t dvnErrorLYZ2SUM = 0.;
2810     if(lyz2sumCommonHistRes && lyz2sumCommonHistRes->GetHistDiffFlowPtRP())
2811     {
2812      dvnLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2813      dvnErrorLYZ2SUM = (lyz2sumCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2814     }
2815     if(dvnMC!=0. && dvnLYZ2SUM!=0.) 
2816     {
2817      lyz2sumDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2SUM-dvnMC)/dvnMC);
2818      lyz2sumDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2SUM/dvnMC);
2819     }
2820     
2821     // LYZ2PROD:
2822     Double_t dvnLYZ2PROD = 0.;
2823     Double_t dvnErrorLYZ2PROD = 0.;
2824     if(lyz2prodCommonHistRes && lyz2prodCommonHistRes->GetHistDiffFlowPtRP())
2825     {
2826      dvnLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2827      dvnErrorLYZ2PROD = (lyz2prodCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2828     }
2829     if(dvnMC!=0. && dvnLYZ2PROD!=0.) 
2830     {
2831      lyz2prodDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZ2PROD-dvnMC)/dvnMC);
2832      lyz2prodDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZ2PROD/dvnMC);
2833     }
2834       
2835     // LYZEP:
2836     Double_t dvnLYZEP = 0.;
2837     Double_t dvnErrorLYZEP = 0.;
2838     if(lyzepCommonHistRes && lyzepCommonHistRes->GetHistDiffFlowPtRP())
2839     {
2840      dvnLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(p);
2841      dvnErrorLYZEP = (lyzepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(p);
2842     }
2843     if(dvnMC!=0. && dvnLYZEP!=0.) 
2844     {
2845      lyzepDiffFlowPtRelativeToMCRP->SetBinContent(p,(dvnLYZEP-dvnMC)/dvnMC);
2846      lyzepDiffFlowPtRelativeToMCRP->SetBinError(p,dvnErrorLYZEP/dvnMC);
2847     }  
2848  
2849    } // end of for(Int_t p=1;p<iNbinsPt+1;p++)
2850   } // end of if(mcepCommonHistRes->GetHistDiffFlowPtRP())
2851   
2852   
2853   // final drawings: 
2854   spDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorSP);
2855   spDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleSP);
2856   if(plotSPRelativeToMCRP && spCommonHistRes) spDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2857   
2858   gfc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC2);
2859   gfc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC2);
2860   if(plotGFC2RelativeToMCRP && gfcCommonHistRes2) gfc2DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2861   
2862   gfc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC4);
2863   gfc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC4);
2864   if(plotGFC4RelativeToMCRP && gfcCommonHistRes4) gfc4DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2865   
2866   gfc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC6);
2867   gfc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC6);
2868   if(plotGFC6RelativeToMCRP && gfcCommonHistRes6) gfc6DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2869   
2870   gfc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorGFC8);
2871   gfc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleGFC8);
2872   if(plotGFC8RelativeToMCRP && gfcCommonHistRes8) gfc8DiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2873   
2874   qc2DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC2);
2875   qc2DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC2);
2876   if(plotQC2RelativeToMCRP && qcCommonHistRes2) qc2DiffFlowPtRelativeToMCRP->Draw("PSAME");
2877   
2878   qc4DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC4);
2879   qc4DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC4);
2880   if(plotQC4RelativeToMCRP && qcCommonHistRes4) qc4DiffFlowPtRelativeToMCRP->Draw("PSAME");
2881   
2882   qc6DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC6);
2883   qc6DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC6);
2884   if(plotQC6RelativeToMCRP && qcCommonHistRes6) qc6DiffFlowPtRelativeToMCRP->Draw("PSAME");
2885   
2886   qc8DiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorQC8);
2887   qc8DiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleQC8);
2888   if(plotQC8RelativeToMCRP && qcCommonHistRes8) qc8DiffFlowPtRelativeToMCRP->Draw("PSAME");
2889   
2890   lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2891   lyz2sumDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2892   if(plotLYZ2SUMRelativeToMCRP && lyz2sumCommonHistRes) lyz2sumDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2893   
2894   lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZ2SUM);
2895   lyz2prodDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZ2SUM);
2896   if(plotLYZ2SUMRelativeToMCRP && lyz2prodCommonHistRes) lyz2prodDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2897   
2898   lyzepDiffFlowPtRelativeToMCRP->SetMarkerColor(markerColorLYZEP);
2899   lyzepDiffFlowPtRelativeToMCRP->SetMarkerStyle(markerStyleLYZEP);
2900   if(plotLYZEPRelativeToMCRP && lyzepCommonHistRes) lyzepDiffFlowPtRelativeToMCRP->Draw("E1PSAME");
2901   
2902   //2nd pad is for legend:
2903   (diffFlowPtRelativeToMCRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2904   
2905   TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
2906   legendDiffFlowPtRP->SetTextFont(72);
2907   legendDiffFlowPtRP->SetTextSize(0.06);
2908  
2909   //legend's entries:Pt 
2910   TString *entryDiffMCPtRP       = new TString("MC ........ ");
2911   TString *entryDiffSPPtRP       = new TString("SP ........ ");
2912   TString *entryDiffGFC2PtRP     = new TString("GFC{2} .... ");
2913   TString *entryDiffGFC4PtRP     = new TString("GFC{4} .... ");
2914   TString *entryDiffGFC6PtRP     = new TString("GFC{6} .... ");
2915   TString *entryDiffGFC8PtRP     = new TString("GFC{8} .... "); 
2916   TString *entryDiffQC2PtRP      = new TString("QC{2} ..... ");
2917   TString *entryDiffQC4PtRP      = new TString("QC{4} ..... ");
2918   TString *entryDiffQC6PtRP      = new TString("QC{6} ..... ");
2919   TString *entryDiffQC8PtRP      = new TString("QC{8} ..... ");
2920   TString *entryDiffLYZ2SUMPtRP  = new TString("LYZ{sum} .. ");
2921   TString *entryDiffLYZ2PRODPtRP = new TString("LYZ{prod} . ");
2922   TString *entryDiffLYZEPPtRP    = new TString("LYZEP ..... ");
2923   
2924   //MC
2925   if(mcepCommonHistRes)
2926   {
2927    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
2928    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
2929    entryDiffMCPtRP->Append("M = ");
2930    (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
2931    entryDiffMCPtRP->Append(", N = ");
2932    (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP; 
2933    //legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
2934   }
2935   
2936   //SP
2937   if(plotSPPtRP && spCommonHistRes)
2938   {
2939    entryDiffSPPtRP->Append("M = ");
2940    (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
2941    entryDiffSPPtRP->Append(", N = ");
2942    (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP; 
2943    if(plotSPRelativeToMCRP) legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
2944   }
2945
2946   //GFC
2947   if(plotGFC2PtRP && gfcCommonHistRes2)
2948   {
2949    entryDiffGFC2PtRP->Append("M = ");
2950    (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2951    entryDiffGFC2PtRP->Append(", N = ");
2952    (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2953    if(plotGFC2RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2954   }
2955   if(plotGFC4PtRP && gfcCommonHistRes4)
2956   {
2957    entryDiffGFC4PtRP->Append("M = ");
2958    (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2959    entryDiffGFC4PtRP->Append(", N = ");
2960    (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2961    if(plotGFC4RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2962   }
2963   if(plotGFC6PtRP && gfcCommonHistRes6)
2964   {
2965    entryDiffGFC6PtRP->Append("M = ");
2966    (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2967    entryDiffGFC6PtRP->Append(", N = ");
2968    (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2969    if(plotGFC6RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2970   } 
2971   if(plotGFC8PtRP && gfcCommonHistRes8)
2972   {
2973    entryDiffGFC8PtRP->Append("M = ");
2974    (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2975    entryDiffGFC8PtRP->Append(", N = ");
2976    (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2977    if(plotGFC8RelativeToMCRP) legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2978   }  
2979   
2980   //QC
2981   if(plotQC2PtRP && qcCommonHistRes2)
2982   {
2983    entryDiffQC2PtRP->Append("M = ");
2984    (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2985    entryDiffQC2PtRP->Append(", N = ");
2986    (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP; 
2987    if(plotQC2RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2988   }
2989   if(plotQC4PtRP && qcCommonHistRes4)
2990   {
2991    entryDiffQC4PtRP->Append("M = ");
2992    (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2993    entryDiffQC4PtRP->Append(", N = ");
2994    (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP; 
2995    if(plotQC4RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2996   }
2997   if(plotQC6PtRP && qcCommonHistRes6)
2998   {
2999    entryDiffQC6PtRP->Append("M = ");
3000    (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
3001    entryDiffQC6PtRP->Append(", N = ");
3002    (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP; 
3003    if(plotQC6RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
3004   }
3005   if(plotQC8PtRP && qcCommonHistRes8)
3006   {
3007    entryDiffQC8PtRP->Append("M = ");
3008    (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
3009    entryDiffQC8PtRP->Append(", N = ");
3010    (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP; 
3011    if(plotQC8RelativeToMCRP) legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
3012   }
3013   
3014   //LYZ2SUM
3015   if(plotLYZ2SUMPtRP && lyz2sumCommonHistRes)
3016   {
3017    entryDiffLYZ2SUMPtRP->Append("M = ");
3018    (*entryDiffLYZ2SUMPtRP)+=(Long_t)avMultDiffFlowLYZ2SUMRP;
3019    entryDiffLYZ2SUMPtRP->Append(", N = ");
3020    (*entryDiffLYZ2SUMPtRP)+=(Long_t)nEvtsDiffFlowLYZ2SUMRP; 
3021    if(plotLYZ2SUMRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2SUMPtRP->Data(),"p");
3022   }
3023   
3024   //LYZ2PROD
3025   if(plotLYZ2PRODPtRP && lyz2prodCommonHistRes)
3026   {
3027    entryDiffLYZ2PRODPtRP->Append("M = ");
3028    (*entryDiffLYZ2PRODPtRP)+=(Long_t)avMultDiffFlowLYZ2PRODRP;
3029    entryDiffLYZ2PRODPtRP->Append(", N = ");
3030    (*entryDiffLYZ2PRODPtRP)+=(Long_t)nEvtsDiffFlowLYZ2PRODRP; 
3031    if(plotLYZ2PRODRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PRODPtRP->Data(),"p");
3032   }
3033   
3034   //LYZEP
3035   if(plotLYZEPPtRP && lyzepCommonHistRes)
3036   {
3037    entryDiffLYZEPPtRP->Append("M = ");
3038    (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
3039    entryDiffLYZEPPtRP->Append(", N = ");
3040    (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP; 
3041    if(plotLYZEPRelativeToMCRP) legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
3042   }
3043
3044   //drawing finally the legend in the 2nd pad:         
3045   if(textDefault) textDefault->Draw();
3046   
3047   if(legendDiffFlowPtRP)
3048   {
3049    legendDiffFlowPtRP->SetMargin(0.15);
3050    legendDiffFlowPtRP->Draw();
3051   } 
3052  } 
3053  //----------------------------------------------------------------------------------
3054  
3055  //----------------------------------------------------------------------------------
3056  //final drawing for differential flow (Pt, POI):
3057  if(plotDiffFlowPtPOI)
3058  {
3059   TCanvas* diffFlowPtAllCanvasPOI = new TCanvas("Differential Flow (Pt) of POI","Differential Flow (Pt) of POI ",1000,600);
3060  
3061   diffFlowPtAllCanvasPOI->Divide(2,1);
3062  
3063   //1st pad is for plot:
3064   (diffFlowPtAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3065   
3066   if(styleHistPt)
3067   {
3068    (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
3069    styleHistPt->Draw();
3070   }
3071   if(pMeshDiffFlowPtPOI)
3072   {
3073    pMeshDiffFlowPtPOI->Draw("LFSAME");
3074   }
3075  
3076   //MC 
3077   if(plotMCPtPOI && mcepCommonHistRes)
3078   { 
3079    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3080   }
3081   //SP 
3082   if(plotSPPtPOI && spCommonHistRes)
3083   { 
3084    (spCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3085   }
3086   //GFC
3087   if(plotGFC2PtPOI && gfcCommonHistRes2)
3088   { 
3089    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3090   } 
3091   if(plotGFC4PtPOI && gfcCommonHistRes4)
3092   { 
3093    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3094   } 
3095   if(plotGFC6PtPOI && gfcCommonHistRes6)
3096   { 
3097    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3098   } 
3099   if(plotGFC8PtPOI && gfcCommonHistRes8)
3100   { 
3101    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
3102   }    
3103   //QC
3104   if(plotQC2PtPOI && qcCommonHistRes2)
3105   { 
3106    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3107   }
3108   if(plotQC4PtPOI && qcCommonHistRes4)
3109   { 
3110    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3111   }
3112   if(plotQC6PtPOI && qcCommonHistRes6)
3113   { 
3114    //(qcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3115   }
3116   if(plotQC8PtPOI && qcCommonHistRes8)
3117   { 
3118    //(qcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3119   }
3120   //LYZ2SUM
3121   if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3122   { 
3123    (lyz2sumCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3124   }
3125   //LYZ2PROD
3126   if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3127   { 
3128    (lyz2prodCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3129   }
3130   //LYZEP
3131   if(plotLYZEPPtPOI && lyzepCommonHistRes)
3132   { 
3133    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
3134   }
3135  
3136   //2nd pad is for legend:
3137   (diffFlowPtAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3138
3139   TLegend* legendDiffFlowPtPOI = new TLegend(0.02,0.12,0.97,0.70);
3140   legendDiffFlowPtPOI->SetTextFont(72);
3141   legendDiffFlowPtPOI->SetTextSize(0.06);
3142  
3143   //legend's entries:
3144   TString *entryDiffMCPtPOI       = new TString("MC ........ ");
3145   TString *entryDiffSPPtPOI       = new TString("SP ........ ");
3146   TString *entryDiffGFC2PtPOI     = new TString("GFC{2} .... ");
3147   TString *entryDiffGFC4PtPOI     = new TString("GFC{4} .... ");
3148   TString *entryDiffGFC6PtPOI     = new TString("GFC{6} .... ");
3149   TString *entryDiffGFC8PtPOI     = new TString("GFC{8} .... "); 
3150   TString *entryDiffQC2PtPOI      = new TString("QC{2} ..... ");
3151   TString *entryDiffQC4PtPOI      = new TString("QC{4} ..... ");
3152   TString *entryDiffQC6PtPOI      = new TString("QC{6} ..... ");
3153   TString *entryDiffQC8PtPOI      = new TString("QC{8} ..... ");
3154   TString *entryDiffLYZ2SUMPtPOI  = new TString("LYZ{sum} .. ");
3155   TString *entryDiffLYZ2PRODPtPOI = new TString("LYZ{prod} . ");
3156   TString *entryDiffLYZEPPtPOI    = new TString("LYZEP ..... "); 
3157  
3158   //MC
3159   if(mcepCommonHistRes)
3160   {
3161    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillStyle(meshStyleDiffFlowPtPOI);
3162    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillColor(meshColorDiffFlowPtPOI);
3163    entryDiffMCPtPOI->Append("M = ");
3164    (*entryDiffMCPtPOI)+=(Long_t)avMultDiffFlowMCPOI;
3165    entryDiffMCPtPOI->Append(", N = ");
3166    (*entryDiffMCPtPOI)+=(Long_t)nEvtsDiffFlowMCPOI; 
3167    legendDiffFlowPtPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffMCPtPOI->Data(),"f");
3168   }
3169   
3170   //SP
3171   if(plotSPPtPOI && spCommonHistRes)
3172   {
3173    entryDiffSPPtPOI->Append("M = ");
3174    (*entryDiffSPPtPOI)+=(Long_t)avMultDiffFlowSPPOI;
3175    entryDiffSPPtPOI->Append(", N = ");
3176    (*entryDiffSPPtPOI)+=(Long_t)nEvtsDiffFlowSPPOI; 
3177    legendDiffFlowPtPOI->AddEntry(spCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffSPPtPOI->Data(),"p");
3178   }
3179
3180   //GFC
3181   if(plotGFC2PtPOI && gfcCommonHistRes2)
3182   {
3183    entryDiffGFC2PtPOI->Append("M = ");
3184    (*entryDiffGFC2PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3185    entryDiffGFC2PtPOI->Append(", N = ");
3186    (*entryDiffGFC2PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3187    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffGFC2PtPOI->Data(),"p");
3188   }
3189   if(plotGFC4PtPOI && gfcCommonHistRes4)
3190   {
3191    entryDiffGFC4PtPOI->Append("M = ");
3192    (*entryDiffGFC4PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3193    entryDiffGFC4PtPOI->Append(", N = ");
3194    (*entryDiffGFC4PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3195    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffGFC4PtPOI->Data(),"p");
3196   }
3197   if(plotGFC6PtPOI && gfcCommonHistRes6)
3198   {
3199    entryDiffGFC6PtPOI->Append("M = ");
3200    (*entryDiffGFC6PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3201    entryDiffGFC6PtPOI->Append(", N = ");
3202    (*entryDiffGFC6PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3203    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffGFC6PtPOI->Data(),"p");
3204   } 
3205   if(plotGFC8PtPOI && gfcCommonHistRes8)
3206   {
3207    entryDiffGFC8PtPOI->Append("M = ");
3208    (*entryDiffGFC8PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3209    entryDiffGFC8PtPOI->Append(", N = ");
3210    (*entryDiffGFC8PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3211    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffGFC8PtPOI->Data(),"p");
3212   }  
3213   
3214   //QC
3215   if(plotQC2PtPOI && qcCommonHistRes2)
3216   {
3217    entryDiffQC2PtPOI->Append("M = ");
3218    (*entryDiffQC2PtPOI)+=(Long_t)avMultDiffFlowQC2POI;
3219    entryDiffQC2PtPOI->Append(", N = ");
3220    (*entryDiffQC2PtPOI)+=(Long_t)nEvtsDiffFlowQC2POI; 
3221    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffQC2PtPOI->Data(),"p");
3222   }
3223   if(plotQC4PtPOI && qcCommonHistRes4)
3224   {
3225    entryDiffQC4PtPOI->Append("M = ");
3226    (*entryDiffQC4PtPOI)+=(Long_t)avMultDiffFlowQC4POI;
3227    entryDiffQC4PtPOI->Append(", N = ");
3228    (*entryDiffQC4PtPOI)+=(Long_t)nEvtsDiffFlowQC4POI; 
3229    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffQC4PtPOI->Data(),"p");
3230   }
3231   if(plotQC6PtPOI && qcCommonHistRes6)
3232   {
3233    entryDiffQC6PtPOI->Append("M = ");
3234    (*entryDiffQC6PtPOI)+=(Long_t)avMultDiffFlowQC6POI;
3235    entryDiffQC6PtPOI->Append(", N = ");
3236    (*entryDiffQC6PtPOI)+=(Long_t)nEvtsDiffFlowQC6POI; 
3237    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffQC6PtPOI->Data(),"p");
3238   }
3239   if(plotQC8PtPOI && qcCommonHistRes8)
3240   {
3241    entryDiffQC8PtPOI->Append("M = ");
3242    (*entryDiffQC8PtPOI)+=(Long_t)avMultDiffFlowQC8POI;
3243    entryDiffQC8PtPOI->Append(", N = ");
3244    (*entryDiffQC8PtPOI)+=(Long_t)nEvtsDiffFlowQC8POI; 
3245    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffQC8PtPOI->Data(),"p");
3246   }
3247  
3248   //LYZ2SUM
3249   if(plotLYZ2SUMPtPOI && lyz2sumCommonHistRes)
3250   {
3251    entryDiffLYZ2SUMPtPOI->Append("M = ");
3252    (*entryDiffLYZ2SUMPtPOI)+=(Long_t)avMultDiffFlowLYZ2SUMPOI;
3253    entryDiffLYZ2SUMPtPOI->Append(", N = ");
3254    (*entryDiffLYZ2SUMPtPOI)+=(Long_t)nEvtsDiffFlowLYZ2SUMPOI; 
3255    legendDiffFlowPtPOI->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2SUMPtPOI->Data(),"p");
3256   }
3257   
3258   //LYZ2PROD
3259   if(plotLYZ2PRODPtPOI && lyz2prodCommonHistRes)
3260   {
3261    entryDiffLYZ2PRODPtPOI->Append("M = ");
3262    (*entryDiffLYZ2PRODPtPOI)+=(Long_t)avMultDiffFlowLYZ2PRODPOI;
3263    entryDiffLYZ2PRODPtPOI->Append(", N = ");
3264    (*entryDiffLYZ2PRODPtPOI)+=(Long_t)nEvtsDiffFlowLYZ2PRODPOI; 
3265    legendDiffFlowPtPOI->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2PRODPtPOI->Data(),"p");
3266   }
3267   
3268   //LYZEP
3269   if(plotLYZEPPtPOI && lyzepCommonHistRes)
3270   {
3271    entryDiffLYZEPPtPOI->Append("M = ");
3272    (*entryDiffLYZEPPtPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
3273    entryDiffLYZEPPtPOI->Append(", N = ");
3274    (*entryDiffLYZEPPtPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI; 
3275    legendDiffFlowPtPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZEPPtPOI->Data(),"p");
3276   }
3277
3278   //drawing finally the legend in the 2nd pad: 
3279   if(textDefault) textDefault->Draw();
3280           
3281   if(legendDiffFlowPtPOI)
3282   {
3283    legendDiffFlowPtPOI->SetMargin(0.15);
3284    legendDiffFlowPtPOI->Draw();
3285   }
3286  }//end of if(plotDiffFlowPtPOI)
3287  //----------------------------------------------------------------------------------
3288
3289
3290  //----------------------------------------------------------------------------------
3291  //final drawing for differential flow (Eta, POI):
3292  if(plotDiffFlowEtaPOI)
3293  {
3294   TCanvas* diffFlowEtaAllCanvasPOI = new TCanvas("Differential Flow (Eta) of POI","Differential Flow (Eta) of POI ",1000,600);
3295  
3296   diffFlowEtaAllCanvasPOI->Divide(2,1);
3297   
3298   //1st pad is for plot:
3299   (diffFlowEtaAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
3300  
3301   if(styleHistEta)
3302   {
3303    (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
3304    styleHistEta->Draw();
3305   }
3306   if(pMeshDiffFlowEtaPOI)
3307   {
3308    pMeshDiffFlowEtaPOI->Draw("LFSAME");
3309   }
3310  
3311   //MC 
3312   if(plotMCEtaPOI && mcepCommonHistRes)
3313   { 
3314    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3315   }
3316   //SP 
3317   if(plotSPEtaPOI && spCommonHistRes)
3318   { 
3319    (spCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3320   }
3321   //GFC
3322   if(plotGFC2EtaPOI && gfcCommonHistRes2)
3323   { 
3324    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3325   } 
3326   if(plotGFC4EtaPOI && gfcCommonHistRes4)
3327   { 
3328    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3329   } 
3330   if(plotGFC6EtaPOI && gfcCommonHistRes6)
3331   { 
3332    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3333   } 
3334   if(plotGFC8EtaPOI && gfcCommonHistRes8)
3335   { 
3336    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
3337   }    
3338   //QC
3339   if(plotQC2EtaPOI && qcCommonHistRes2)
3340   { 
3341    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3342   }
3343   if(plotQC4EtaPOI && qcCommonHistRes4)
3344   { 
3345    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3346   }
3347   if(plotQC6EtaPOI && qcCommonHistRes6)
3348   { 
3349    //(qcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3350   }
3351   if(plotQC8EtaPOI && qcCommonHistRes8)
3352   { 
3353    //(qcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3354   }
3355   //LYZ2SUM
3356   if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3357   { 
3358    (lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3359   }
3360   //LYZ2PROD
3361   if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3362   { 
3363    (lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3364   }
3365   //LYZEP
3366   if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3367   { 
3368    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
3369   }
3370  
3371   //2nd pad is for legend:
3372   (diffFlowEtaAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
3373  
3374   TLegend* legendDiffFlowEtaPOI = new TLegend(0.02,0.12,0.97,0.70);
3375   legendDiffFlowEtaPOI->SetTextFont(72);
3376   legendDiffFlowEtaPOI->SetTextSize(0.06);
3377  
3378   //legend's entries:
3379   TString *entryDiffMCEtaPOI       = new TString("MC ........ ");
3380   TString *entryDiffSPEtaPOI       = new TString("SP ........ ");
3381   TString *entryDiffGFC2EtaPOI     = new TString("GFC{2} .... ");
3382   TString *entryDiffGFC4EtaPOI     = new TString("GFC{4} .... ");
3383   TString *entryDiffGFC6EtaPOI     = new TString("GFC{6} .... ");
3384   TString *entryDiffGFC8EtaPOI     = new TString("GFC{8} .... "); 
3385   TString *entryDiffQC2EtaPOI      = new TString("QC{2} ..... ");
3386   TString *entryDiffQC4EtaPOI      = new TString("QC{4} ..... ");
3387   TString *entryDiffQC6EtaPOI      = new TString("QC{6} ..... ");
3388   TString *entryDiffQC8EtaPOI      = new TString("QC{8} ..... ");
3389   TString *entryDiffLYZ2SUMEtaPOI  = new TString("LYZ{sum} .. ");
3390   TString *entryDiffLYZ2PRODEtaPOI = new TString("LYZ{prod} . ");
3391   TString *entryDiffLYZEPEtaPOI    = new TString("LYZEP ..... ");
3392  
3393   //MC
3394   if(mcepCommonHistRes)
3395   {
3396    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillStyle(meshStyleDiffFlowEtaPOI);
3397    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillColor(meshColorDiffFlowEtaPOI);
3398    entryDiffMCEtaPOI->Append("M = ");
3399    (*entryDiffMCEtaPOI)+=(Long_t)avMultDiffFlowMCPOI;
3400    entryDiffMCEtaPOI->Append(", N = ");
3401    (*entryDiffMCEtaPOI)+=(Long_t)nEvtsDiffFlowMCPOI; 
3402    legendDiffFlowEtaPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffMCEtaPOI->Data(),"f");
3403   }
3404   
3405   //SP
3406   if(plotSPEtaPOI && spCommonHistRes)
3407   {
3408    entryDiffSPEtaPOI->Append("M = ");
3409    (*entryDiffSPEtaPOI)+=(Long_t)avMultDiffFlowSPPOI;
3410    entryDiffSPEtaPOI->Append(", N = ");
3411    (*entryDiffSPEtaPOI)+=(Long_t)nEvtsDiffFlowSPPOI; 
3412    legendDiffFlowEtaPOI->AddEntry(spCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffSPEtaPOI->Data(),"p");
3413   }
3414
3415   //GFC
3416   if(plotGFC2EtaPOI && gfcCommonHistRes2)
3417   {
3418    entryDiffGFC2EtaPOI->Append("M = ");
3419    (*entryDiffGFC2EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3420    entryDiffGFC2EtaPOI->Append(", N = ");
3421    (*entryDiffGFC2EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3422    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffGFC2EtaPOI->Data(),"p");
3423   }
3424   if(plotGFC4EtaPOI && gfcCommonHistRes4)
3425   {
3426    entryDiffGFC4EtaPOI->Append("M = ");
3427    (*entryDiffGFC4EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3428    entryDiffGFC4EtaPOI->Append(", N = ");
3429    (*entryDiffGFC4EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3430    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffGFC4EtaPOI->Data(),"p");
3431   }
3432   if(plotGFC6EtaPOI && gfcCommonHistRes6)
3433   {
3434    entryDiffGFC6EtaPOI->Append("M = ");
3435    (*entryDiffGFC6EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3436    entryDiffGFC6EtaPOI->Append(", N = ");
3437    (*entryDiffGFC6EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3438    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffGFC6EtaPOI->Data(),"p");
3439   } 
3440   if(plotGFC8EtaPOI && gfcCommonHistRes8)
3441   {
3442    entryDiffGFC8EtaPOI->Append("M = ");
3443    (*entryDiffGFC8EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
3444    entryDiffGFC8EtaPOI->Append(", N = ");
3445    (*entryDiffGFC8EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
3446    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffGFC8EtaPOI->Data(),"p");
3447   }  
3448  
3449   //QC
3450   if(plotQC2EtaPOI && qcCommonHistRes2)
3451   {
3452    entryDiffQC2EtaPOI->Append("M = ");
3453    (*entryDiffQC2EtaPOI)+=(Long_t)avMultDiffFlowQC2POI;
3454    entryDiffQC2EtaPOI->Append(", N = ");
3455    (*entryDiffQC2EtaPOI)+=(Long_t)nEvtsDiffFlowQC2POI; 
3456    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffQC2EtaPOI->Data(),"p");
3457   }
3458   if(plotQC4EtaPOI && qcCommonHistRes4)
3459   {
3460    entryDiffQC4EtaPOI->Append("M = ");
3461    (*entryDiffQC4EtaPOI)+=(Long_t)avMultDiffFlowQC4POI;
3462    entryDiffQC4EtaPOI->Append(", N = ");
3463    (*entryDiffQC4EtaPOI)+=(Long_t)nEvtsDiffFlowQC4POI; 
3464    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffQC4EtaPOI->Data(),"p");
3465   }
3466   if(plotQC6EtaPOI && qcCommonHistRes6)
3467   {
3468    entryDiffQC6EtaPOI->Append("M = ");
3469    (*entryDiffQC6EtaPOI)+=(Long_t)avMultDiffFlowQC6POI;
3470    entryDiffQC6EtaPOI->Append(", N = ");
3471    (*entryDiffQC6EtaPOI)+=(Long_t)nEvtsDiffFlowQC6POI; 
3472    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffQC6EtaPOI->Data(),"p");
3473   }
3474   if(plotQC8EtaPOI && qcCommonHistRes8)
3475   {
3476    entryDiffQC8EtaPOI->Append("M = ");
3477    (*entryDiffQC8EtaPOI)+=(Long_t)avMultDiffFlowQC8POI;
3478    entryDiffQC8EtaPOI->Append(", N = ");
3479    (*entryDiffQC8EtaPOI)+=(Long_t)nEvtsDiffFlowQC8POI; 
3480    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffQC8EtaPOI->Data(),"p");
3481   }
3482  
3483   //LYZ2SUM
3484   if(plotLYZ2SUMEtaPOI && lyz2sumCommonHistRes)
3485   {
3486    entryDiffLYZ2SUMEtaPOI->Append("M = ");
3487    (*entryDiffLYZ2SUMEtaPOI)+=(Long_t)avMultDiffFlowLYZ2SUMPOI;
3488    entryDiffLYZ2SUMEtaPOI->Append(", N = ");
3489    (*entryDiffLYZ2SUMEtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2SUMPOI; 
3490    legendDiffFlowEtaPOI->AddEntry(lyz2sumCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2SUMEtaPOI->Data(),"p");
3491   }
3492   
3493   //LYZ2PROD
3494   if(plotLYZ2PRODEtaPOI && lyz2prodCommonHistRes)
3495   {
3496    entryDiffLYZ2PRODEtaPOI->Append("M = ");
3497    (*entryDiffLYZ2PRODEtaPOI)+=(Long_t)avMultDiffFlowLYZ2PRODPOI;
3498    entryDiffLYZ2PRODEtaPOI->Append(", N = ");
3499    (*entryDiffLYZ2PRODEtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2PRODPOI; 
3500    legendDiffFlowEtaPOI->AddEntry(lyz2prodCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2PRODEtaPOI->Data(),"p");
3501   }
3502   
3503   //LYZEP
3504   if(plotLYZEPEtaPOI && lyzepCommonHistRes)
3505   {
3506    entryDiffLYZEPEtaPOI->Append("M = ");
3507    (*entryDiffLYZEPEtaPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
3508    entryDiffLYZEPEtaPOI->Append(", N = ");
3509    (*entryDiffLYZEPEtaPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI; 
3510    legendDiffFlowEtaPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZEPEtaPOI->Data(),"p");
3511   }
3512
3513   //drawing finally the legend in the 2nd pad:   
3514   if(textDefault) textDefault->Draw();
3515       
3516   if(legendDiffFlowEtaPOI)
3517   {
3518    legendDiffFlowEtaPOI->SetMargin(0.15);
3519    legendDiffFlowEtaPOI->Draw();
3520   }
3521  }//end of if(plotDiffFlowEtaPOI)
3522  //----------------------------------------------------------------------------------
3523
3524
3525  //=====================================================================================
3526  
3527  
3528 }
3529
3530 void LoadPlotLibraries(const libModes mode) {
3531   
3532   //--------------------------------------
3533   // Load the needed libraries most of them already loaded by aliroot
3534   //--------------------------------------
3535   //gSystem->Load("libTree");
3536   gSystem->Load("libGeom");
3537   gSystem->Load("libVMC");
3538   gSystem->Load("libXMLIO");
3539   gSystem->Load("libPhysics");
3540   
3541   //----------------------------------------------------------
3542   // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< 
3543   //----------------------------------------------------------
3544   if (mode==mLocal) {
3545     //--------------------------------------------------------
3546     // If you want to use already compiled libraries 
3547     // in the aliroot distribution
3548     //--------------------------------------------------------
3549
3550   //==================================================================================  
3551   //load needed libraries:
3552   gSystem->AddIncludePath("-I$ROOTSYS/include");
3553   //gSystem->Load("libTree");
3554
3555   // for AliRoot
3556   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
3557   gSystem->Load("libANALYSIS");
3558   gSystem->Load("libPWG2flowCommon");
3559   cerr<<"libPWG2flowCommon loaded ..."<<endl;
3560   
3561   }
3562   
3563   else if (mode==mLocalSource) {
3564  
3565     // In root inline compile
3566   
3567     // Constants  
3568     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
3569     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
3570     gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
3571     
3572     // Flow event
3573     gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+"); 
3574     gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
3575     gROOT->LoadMacro("AliFlowCommon/AliFlowEvent.cxx+");
3576     gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
3577     
3578     // Cuts
3579     gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");    
3580     
3581     // Output histosgrams
3582     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
3583     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
3584     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
3585     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
3586        
3587     cout << "finished loading macros!" << endl;  
3588     
3589   }  
3590   
3591 }
3592
3593