]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/macros/compareFlowResults.C
29d4f513c2672c4a23c4d47ec79a20f3c9ddebb4
[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="ESD",Int_t mode=mLocal)
10
11
12   // load needed libraries:                       
13   LoadLibraries(mode);
14
15
16   //==================================================================================
17   //             set here which plots will be shown by default
18   //==================================================================================
19   Bool_t plotIntFlow = kTRUE;     //integrated flow (no-name) // to be improved
20   // RP = particles used to determine the reaction plane
21   Bool_t plotIntFlowRP = kTRUE;     //integrated flow RP
22   Bool_t plotDiffFlowPtRP = kTRUE;  //differential flow (Pt,RP)
23   Bool_t plotDiffFlowEtaRP = kTRUE; //differential flow (Eta,RP)
24   // POI = particle of interest
25   Bool_t plotIntFlowPOI = kTRUE;     //integrated flow POI
26   Bool_t plotDiffFlowPtPOI = kTRUE;   //differential flow (Pt,POI)
27   Bool_t plotDiffFlowEtaPOI = kTRUE;   //differential flow (Eta,POI)
28   //==================================================================================
29   
30   
31   //==================================================================================
32   // set here which methods will be plotted by default for differential flow (Pt,RP):
33   Bool_t plotMCPtRP    = kFALSE;
34   Bool_t plotSPPtRP    = kTRUE;
35   Bool_t plotGFC2PtRP  = kTRUE;
36   Bool_t plotGFC4PtRP  = kTRUE;
37   Bool_t plotGFC6PtRP  = kTRUE;
38   Bool_t plotGFC8PtRP  = kTRUE;
39   Bool_t plotQC2PtRP   = kTRUE;
40   Bool_t plotQC4PtRP   = kTRUE;
41   Bool_t plotQC6PtRP   = kTRUE;
42   Bool_t plotQC8PtRP   = kTRUE;
43   Bool_t plotLYZ2PtRP  = kTRUE;
44   
45   // set here which methods will be plotted by default for differential flow (Eta,RP):
46   Bool_t plotMCEtaRP    = kFALSE;
47   Bool_t plotSPEtaRP    = kTRUE;
48   Bool_t plotGFC2EtaRP  = kTRUE;
49   Bool_t plotGFC4EtaRP  = kTRUE;
50   Bool_t plotGFC6EtaRP  = kTRUE;
51   Bool_t plotGFC8EtaRP  = kTRUE;
52   Bool_t plotQC2EtaRP   = kTRUE;
53   Bool_t plotQC4EtaRP   = kTRUE;
54   Bool_t plotQC6EtaRP   = kTRUE;
55   Bool_t plotQC8EtaRP   = kTRUE;
56   Bool_t plotLYZ2EtaRP  = kTRUE;
57   Bool_t plotLYZEPEtaRP = kTRUE;
58   
59   // set here which methods will be plotted by default for differential flow (Pt,POI):
60   Bool_t plotMCPtPOI    = kFALSE;
61   Bool_t plotSPPtPOI    = kTRUE;
62   Bool_t plotGFC2PtPOI  = kTRUE;
63   Bool_t plotGFC4PtPOI  = kTRUE;
64   Bool_t plotGFC6PtPOI  = kTRUE;
65   Bool_t plotGFC8PtPOI  = kTRUE;
66   Bool_t plotQC2PtPOI   = kTRUE;
67   Bool_t plotQC4PtPOI   = kTRUE;
68   Bool_t plotQC6PtPOI   = kTRUE;
69   Bool_t plotQC8PtPOI   = kTRUE;
70   Bool_t plotLYZ2PtPOI  = kTRUE;
71   Bool_t plotLYZEPPtPOI = kTRUE; 
72   
73   // set here which methods will be plotted by default for differential flow (Eta,POI):
74   Bool_t plotMCEtaPOI    = kFALSE;
75   Bool_t plotSPEtaPOI    = kTRUE;
76   Bool_t plotGFC2EtaPOI  = kTRUE;
77   Bool_t plotGFC4EtaPOI  = kTRUE;
78   Bool_t plotGFC6EtaPOI  = kTRUE;
79   Bool_t plotGFC8EtaPOI  = kTRUE;
80   Bool_t plotQC2EtaPOI   = kTRUE;
81   Bool_t plotQC4EtaPOI   = kTRUE;
82   Bool_t plotQC6EtaPOI   = kTRUE;
83   Bool_t plotQC8EtaPOI   = kTRUE;
84   Bool_t plotLYZ2EtaPOI  = kTRUE;
85   Bool_t plotLYZEPEtaPOI = kTRUE;
86   //==================================================================================
87  
88   
89   //==================================================================================  
90   // cosmetics: marker style (see TMarker) and color (see TAttFill) for each method:
91   // MC:
92   Int_t markerStyleMC = 20; // full circle
93   Int_t markerColorMC = kRed;
94   // SP:
95   Int_t markerStyleSP = 3; // star
96   Int_t markerColorSP = kViolet-6;
97   // GFC{2}
98   Int_t markerStyleGFC2 = 21; // full square
99   Int_t markerColorGFC2 = kAzure-7;
100   // GFC{4}
101   Int_t markerStyleGFC4 = 20; // full circle
102   Int_t markerColorGFC4 = kAzure+3;
103   // GFC{6}
104   Int_t markerStyleGFC6 = 25; // open circle
105   Int_t markerColorGFC6 = kAzure-7;
106   // GFC{8}
107   Int_t markerStyleGFC8 = 24; // open square
108   Int_t markerColorGFC8 = kAzure+3;
109   // QC{2}
110   Int_t markerStyleQC2 = 21; // full square
111   Int_t markerColorQC2 = kOrange-7;
112   // QC{4}
113   Int_t markerStyleQC4 = 20; // full circle
114   Int_t markerColorQC4 = kOrange+3;
115   // QC{6}
116   Int_t markerStyleQC6 = 25; // open circle
117   Int_t markerColorQC6 = kOrange-7;
118   // QC{8}
119   Int_t markerStyleQC8 = 24; // open square
120   Int_t markerColorQC8 = kOrange+3;
121   // LYZ2
122   Int_t markerStyleLYZ2 = 22; // full triangle
123   Int_t markerColorLYZ2 = kYellow+3;
124   // LYZEP
125   Int_t markerStyleLYZEP = 26; // open triangle
126   Int_t markerColorLYZEP = kYellow+3; 
127   //==================================================================================
128
129
130   //==================================================================================  
131   // set here which result goes in which bin in the plot for integrated flow (no-name) 
132   // MC:
133   Int_t binMC = 1; 
134   // SP:
135   Int_t binSP = 2;
136   // GFC{2}
137   Int_t binGFC2 = 3; 
138   // GFC{4}
139   Int_t binGFC4 = 5; 
140   // GFC{6}
141   Int_t binGFC6 = 7; 
142   // GFC{8}
143   Int_t binGFC8 = 9; 
144   // QC{2}
145   Int_t binQC2 = 4; 
146   // QC{4}
147   Int_t binQC4 = 6; 
148   // QC{6}
149   Int_t binQC6 = 8; 
150   // QC{8}
151   Int_t binQC8 = 10; 
152   // FQD 
153   Int_t binFQD = 11; 
154   // LYZ1
155   Int_t binLYZ1 = 12; 
156   // LYZEP
157   Int_t binLYZEP = 13; 
158   //==================================================================================
159
160
161   //==================================================================================  
162   // set here which result goes in which bin in the plot for integrated flow (RP) 
163   // MC:
164   Int_t binMCRP = 1; 
165   // SP:
166   Int_t binSPRP = 2;
167   // GFC{2}
168   Int_t binGFC2RP = 3; 
169   // GFC{4}
170   Int_t binGFC4RP = 5; 
171   // GFC{6}
172   Int_t binGFC6RP = 7; 
173   // GFC{8}
174   Int_t binGFC8RP = 9; 
175   // QC{2}
176   Int_t binQC2RP = 4; 
177   // QC{4}
178   Int_t binQC4RP = 6; 
179   // QC{6}
180   Int_t binQC6RP = 8; 
181   // QC{8}
182   Int_t binQC8RP = 10; 
183   // FQD 
184   Int_t binFQDRP = 11; 
185   // LYZ2
186   Int_t binLYZ2RP = 12; 
187   // LYZEP
188   Int_t binLYZEPRP = 13; 
189   //==================================================================================
190
191
192   //==================================================================================  
193   // set here which result goes in which bin in the plot for integrated flow (POI) 
194   // MC:
195   Int_t binMCPOI = 1; 
196   // SP:
197   Int_t binSPPOI = 2;
198   // GFC{2}
199   Int_t binGFC2POI = 3; 
200   // GFC{4}
201   Int_t binGFC4POI = 5; 
202   // GFC{6}
203   Int_t binGFC6POI = 7; 
204   // GFC{8}
205   Int_t binGFC8POI = 9; 
206   // QC{2}
207   Int_t binQC2POI = 4; 
208   // QC{4}
209   Int_t binQC4POI = 6; 
210   // QC{6}
211   Int_t binQC6POI = 8; 
212   // QC{8}
213   Int_t binQC8POI = 10; 
214   // FQD 
215   Int_t binFQDPOI = 11; 
216   // LYZ2
217   Int_t binLYZ2POI = 12;  
218   // LYZEP
219   Int_t binLYZEPPOI = 13; 
220   //==================================================================================
221  
222                                         
223   //==================================================================================
224   //                         accessing output files
225   //==================================================================================
226   //open the output files:
227   TString inputFileNameMCEP = "outputMCEPanalysis";
228   TFile* fileMCEP = NULL;
229   fileMCEP = TFile::Open(((inputFileNameMCEP.Append(type)).Append(".root")).Data(), "READ"); 
230   
231   TString inputFileNameSP = "outputSPanalysis";
232   TFile* fileSP = NULL;
233   fileSP = TFile::Open(((inputFileNameSP.Append(type)).Append(".root")).Data(), "READ"); 
234   
235   TString inputFileNameLYZ1 = "outputLYZ1analysis";
236   TFile* fileLYZ1 = NULL;
237   fileLYZ1 = TFile::Open(((inputFileNameLYZ1.Append(type)).Append(".root")).Data(), "READ"); 
238   
239   TString inputFileNameLYZ2 = "outputLYZ2analysis";
240   TFile* fileLYZ2 = NULL;
241   fileLYZ2 = TFile::Open(((inputFileNameLYZ2.Append(type)).Append(".root")).Data(), "READ"); 
242   
243   TString inputFileNameLYZEP = "outputLYZEPanalysis";
244   TFile* fileLYZEP = NULL;
245   fileLYZEP = TFile::Open(((inputFileNameLYZEP.Append(type)).Append(".root")).Data(), "READ");
246   
247   TString inputFileNameFQD = "outputFQDanalysis";
248   TFile* fileFQD = NULL;
249   fileFQD = TFile::Open(((inputFileNameFQD.Append(type)).Append(".root")).Data(), "READ"); 
250   
251   TString inputFileNameGFC = "outputGFCanalysis";
252   TFile* fileGFC = NULL;
253   fileGFC = TFile::Open(((inputFileNameGFC.Append(type)).Append(".root")).Data(), "READ"); 
254   
255   TString inputFileNameQC = "outputQCanalysis";
256   TFile* fileQC = NULL;
257   fileQC = TFile::Open(((inputFileNameQC.Append(type)).Append(".root")).Data(), "READ"); 
258   //==================================================================================
259  
260  
261  
262  
263   //==================================================================================
264   //                                 cosmetics
265   //==================================================================================
266   //removing the title and stat. box from all histograms:
267   gStyle->SetOptTitle(0);
268   gStyle->SetOptStat(0);
269   
270   // plot for 'no-name' integrated flow:
271   // choosing the style and color of mesh for MC error bands
272   Int_t meshStyle = 1001;
273   Int_t meshColor = kGray;
274   
275   // marker style and color  
276   Int_t markerStyle = 21;
277   Int_t markerColor = kBlack;
278   
279   // plot for RP's integrated flow:
280   // choosing the style and color of mesh for MC error bands
281   Int_t meshStyleRP = 1001;
282   Int_t meshColorRP = kRed-10;
283   
284   // marker style and color  
285   Int_t markerStyleRP = 21;
286   Int_t markerColorRP = kRed-3;
287   
288   // plot for POI's integrated flow:
289   // choosing the style and color of mesh for MC error bands
290   Int_t meshStylePOI = 1001;
291   Int_t meshColorPOI = kBlue-10;
292   
293   // marker style and color  
294   Int_t markerStylePOI = 21;
295   Int_t markerColorPOI = kBlue-3;
296   
297   // choosing the style and color of mesh for MC error bands in the plots for diff. flow
298   // plot for differential flow (Pt,RP):
299   Int_t meshStyleDiffFlowPtRP = 1001;
300   Int_t meshColorDiffFlowPtRP = kRed-10;
301   
302   // plot for differential flow (Eta,RP):
303   Int_t meshStyleDiffFlowEtaRP = 1001;
304   Int_t meshColorDiffFlowEtaRP = kRed-10;
305   
306   // plot for differential flow (Pt,POI):
307   Int_t meshStyleDiffFlowPtPOI = 1001;
308   Int_t meshColorDiffFlowPtPOI = kRed-10;
309
310   // plot for differential flow (Eta,POI):
311   Int_t meshStyleDiffFlowEtaPOI = 1001;
312   Int_t meshColorDiffFlowEtaPOI = kRed-10;
313   //==================================================================================
314   
315   
316   
317   
318   //==================================================================================
319   //                             INTEGRATED FLOW (no-name, RP and POI)
320   //==================================================================================
321   // the number of different methods:
322   const Int_t nMethods=13;
323   
324   // booking the histogram for the integrated flow results from all methods:
325   TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods);      
326   // intFlowAll->SetLabelSize(0.036,"X");
327   // intFlowAll->SetLabelSize(0.036,"Y");
328   intFlowAll->SetMarkerStyle(markerStyle);
329   intFlowAll->SetMarkerColor(markerColor);
330   (intFlowAll->GetXaxis())->SetBinLabel(binMC,"v_{2}{MC}");
331   (intFlowAll->GetXaxis())->SetBinLabel(binSP,"v_{2}{SP}");
332   (intFlowAll->GetXaxis())->SetBinLabel(binGFC2,"v_{2}{2,GFC}");
333   (intFlowAll->GetXaxis())->SetBinLabel(binQC2,"v_{2}{2,QC}");
334   (intFlowAll->GetXaxis())->SetBinLabel(binGFC4,"v_{2}{4,GFC}");
335   (intFlowAll->GetXaxis())->SetBinLabel(binQC4,"v_{2}{4,QC}");
336   (intFlowAll->GetXaxis())->SetBinLabel(binGFC6,"v_{2}{6,GFC}");
337   (intFlowAll->GetXaxis())->SetBinLabel(binQC6,"v_{2}{6,QC}");
338   (intFlowAll->GetXaxis())->SetBinLabel(binGFC8,"v_{2}{8,GFC}");
339   (intFlowAll->GetXaxis())->SetBinLabel(binQC8,"v_{2}{8,QC}");
340   (intFlowAll->GetXaxis())->SetBinLabel(binFQD,"v_{2}{FQD}");
341   (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1,"v_{2}{LYZ}");
342   (intFlowAll->GetXaxis())->SetBinLabel(binLYZEP,"v_{2}{LYZEP}");
343   
344   // booking the graph to store flow values and errors from all methods:    
345   Double_t x[nMethods] = {0.};
346   for(Int_t i=0;i<nMethods;i++)
347   {
348    x[i]=i+0.5;
349   }
350   Double_t xError[nMethods] = {0.};
351   Double_t flowValue[nMethods] = {0.};
352   Double_t flowError[nMethods] = {0.};
353   Double_t flowValueRP[nMethods] = {0.};
354   Double_t flowErrorRP[nMethods] = {0.};
355   Double_t flowValuePOI[nMethods] = {0.};
356   Double_t flowErrorPOI[nMethods] = {0.};
357   
358   // accessing the results for integrated flow for each method:
359   // MCEP = Monte Carlo Event Plane
360   TList *pListMCEP = NULL;
361   AliFlowCommonHist *mcepCommonHist = NULL;
362   AliFlowCommonHistResults *mcepCommonHistRes = NULL; 
363   if(fileMCEP) {
364     fileMCEP->GetObject("cobjMCEP",pListMCEP); 
365     if(pListMCEP) {
366       mcepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListMCEP->FindObject("AliFlowCommonHistMCEP"));
367       mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListMCEP->FindObject("AliFlowCommonHistResultsMCEP"));
368       if(mcepCommonHistRes) {
369         flowValue[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
370         flowError[binMC-1] = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1);
371         flowValueRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
372         flowErrorRP[binMCRP-1] = (mcepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
373         flowValuePOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
374         flowErrorPOI[binMCPOI-1] = (mcepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
375       }
376     }
377   }
378   
379   // SP = Scalar Product
380   TList *pListSP = NULL;
381   AliFlowCommonHist *spCommonHist = NULL;
382   AliFlowCommonHistResults *spCommonHistRes = NULL; 
383   if(fileSP) {
384     fileSP->GetObject("cobjSP",pListSP); 
385     if(pListSP) {
386       spCommonHist = dynamic_cast<AliFlowCommonHist*> (pListSP->FindObject("AliFlowCommonHistSP"));
387       spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListSP->FindObject("AliFlowCommonHistResultsSP"));
388       if(spCommonHistRes) {
389         flowValue[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1);
390         flowError[binSP-1] = (spCommonHistRes->GetHistIntFlow())->GetBinError(1);
391         flowValueRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
392         flowErrorRP[binSPRP-1] = (spCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
393         flowValuePOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
394         flowErrorPOI[binSPPOI-1] = (spCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
395       }
396     }
397   }
398   
399   // LYZ1 = Lee-Yang Zeros (1st run) is used to get only 'no-name' integrated flow
400   TList *pListLYZ1 = NULL;
401   AliFlowCommonHist *lyz1CommonHist = NULL;
402   AliFlowCommonHistResults *lyz1CommonHistRes = NULL; 
403   if(fileLYZ1) {
404     fileLYZ1->GetObject("cobjLYZ1",pListLYZ1); 
405     if(pListLYZ1) {
406       lyz1CommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1->FindObject("AliFlowCommonHistLYZ1"));
407       lyz1CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1->FindObject("AliFlowCommonHistResultsLYZ1"));
408       if(lyz1CommonHistRes) {
409         flowValue[binLYZ1-1] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinContent(1);
410         flowError[binLYZ1-1] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinError(1);
411       }
412     }
413   }
414   
415   // LYZ2 = Lee-Yang Zeros (2nd run) is used to get RP's and POI's integrated flow
416   TList *pListLYZ2 = NULL;
417   AliFlowCommonHist *lyz2CommonHist = NULL;
418   AliFlowCommonHistResults *lyz2CommonHistRes = NULL; 
419   if(fileLYZ2) {
420     fileLYZ2->GetObject("cobjLYZ2",pListLYZ2); 
421     if(pListLYZ2) {
422       lyz2CommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2->FindObject("AliFlowCommonHistLYZ2"));
423       lyz2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2->FindObject("AliFlowCommonHistResultsLYZ2"));
424       if(lyz2CommonHistRes) {
425         flowValueRP[binLYZ2RP-1] = (lyz2CommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
426         flowErrorRP[binLYZ2RP-1] = (lyz2CommonHistRes->GetHistIntFlowRP())->GetBinError(1);
427         flowValuePOI[binLYZ2POI-1] = (lyz2CommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
428         flowErrorPOI[binLYZ2POI-1] = (lyz2CommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
429       }
430     }
431   }
432   
433   // LYZEP = Lee-Yang Zeros Event Plane
434   TList *pListLYZEP = NULL;
435   AliFlowCommonHist *lyzepCommonHist = NULL;
436   AliFlowCommonHistResults *lyzepCommonHistRes = NULL; 
437   if(fileLYZEP) {
438     fileLYZEP->GetObject("cobjLYZEP",pListLYZEP); 
439     if(pListLYZEP) {
440       lyzepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZEP->FindObject("AliFlowCommonHistLYZEP"));
441       lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZEP->FindObject("AliFlowCommonHistResultsLYZEP"));
442       if(lyzepCommonHistRes) {
443         flowValue[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
444         flowError[binLYZEP-1] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinError(1);
445         flowValueRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
446         flowErrorRP[binLYZEPRP-1] = (lyzepCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
447         flowValuePOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
448         flowErrorPOI[binLYZEPPOI-1] = (lyzepCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
449       }
450     }
451   }
452  
453   // FQD = Fitting q-distribution
454   TList *pListFQD = NULL;
455   AliFlowCommonHist *fqdCommonHist = NULL;
456   AliFlowCommonHistResults *fqdCommonHistRes = NULL; 
457   if(fileFQD) {
458     fileFQD->GetObject("cobjFQD",pListFQD); 
459     if(pListFQD) {
460       fqdCommonHist = dynamic_cast<AliFlowCommonHist*> (pListFQD->FindObject("AliFlowCommonHistFQD"));
461       fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListFQD->FindObject("AliFlowCommonHistResultsFQD"));
462       if(fqdCommonHistRes) {
463         flowValue[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1);
464         flowError[binFQD-1] = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1);
465         flowValueRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinContent(1);
466         flowErrorRP[binFQDRP-1] = (fqdCommonHistRes->GetHistIntFlowRP())->GetBinError(1);
467         flowValuePOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinContent(1);
468         flowErrorPOI[binFQDPOI-1] = (fqdCommonHistRes->GetHistIntFlowPOI())->GetBinError(1);
469       }
470     }
471   }
472  
473   // GFC = Generating Function Cumulants
474   TList *pListGFC = NULL;
475   AliFlowCommonHist *gfcCommonHist = NULL;
476   AliFlowCommonHistResults *gfcCommonHistRes2 = NULL; 
477   AliFlowCommonHistResults *gfcCommonHistRes4 = NULL; 
478   AliFlowCommonHistResults *gfcCommonHistRes6 = NULL; 
479   AliFlowCommonHistResults *gfcCommonHistRes8 = NULL; 
480   if(fileGFC) {
481     fileGFC->GetObject("cobjGFC",pListGFC);
482     if(pListGFC) {
483       gfcCommonHist = dynamic_cast<AliFlowCommonHist*> (pListGFC->FindObject("AliFlowCommonHistGFC"));
484       gfcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC"));
485       if(gfcCommonHistRes2) {
486         flowValue[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
487         flowError[binGFC2-1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
488         flowValueRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
489         flowErrorRP[binGFC2RP-1] = (gfcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
490         flowValuePOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
491         flowErrorPOI[binGFC2POI-1] = (gfcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
492       }
493       gfcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults4thOrderGFC"));
494       if(gfcCommonHistRes4) {
495         flowValue[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
496         flowError[binGFC4-1] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
497         flowValueRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
498         flowErrorRP[binGFC4RP-1] = (gfcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
499         flowValuePOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
500         flowErrorPOI[binGFC4POI-1] = (gfcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
501       }
502       gfcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults6thOrderGFC"));
503       if(gfcCommonHistRes6) {
504         flowValue[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
505         flowError[binGFC6-1] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
506         flowValueRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
507         flowErrorRP[binGFC6RP-1] = (gfcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
508         flowValuePOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
509         flowErrorPOI[binGFC6POI-1] = (gfcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
510       }
511       gfcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults8thOrderGFC"));
512       if(gfcCommonHistRes8)  {
513         flowValue[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
514         flowError[binGFC8-1] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
515         flowValueRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
516         flowErrorRP[binGFC8RP-1] = (gfcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
517         flowValuePOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
518         flowErrorPOI[binGFC8POI-1] = (gfcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
519       }
520     }
521   }
522  
523   //QC = Q-cumulants
524   TList *pListQC = NULL;
525   AliFlowCommonHist *qcCommonHist2 = NULL; 
526   AliFlowCommonHist *qcCommonHist4 = NULL; 
527   AliFlowCommonHist *qcCommonHist6 = NULL; 
528   AliFlowCommonHist *qcCommonHist8 = NULL; 
529   AliFlowCommonHistResults *qcCommonHistRes2 = NULL; 
530   AliFlowCommonHistResults *qcCommonHistRes4 = NULL; 
531   AliFlowCommonHistResults *qcCommonHistRes6 = NULL; 
532   AliFlowCommonHistResults *qcCommonHistRes8 = NULL; 
533   
534   if(fileQC) {
535     fileQC->GetObject("cobjQC",pListQC);
536     if(pListQC) {
537       qcCommonHist2 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist2ndOrderQC"));
538       qcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults2ndOrderQC"));
539       if(qcCommonHistRes2)  {
540         flowValue[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinContent(1);
541         //flowError[binQC2-1] = (qcCommonHistRes2->GetHistIntFlow())->GetBinError(1);
542         flowValueRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinContent(1);
543         //flowErrorRP[binQC2RP-1] = (qcCommonHistRes2->GetHistIntFlowRP())->GetBinError(1);
544         flowValuePOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinContent(1);
545         //flowErrorPOI[binQC2POI-1] = (qcCommonHistRes2->GetHistIntFlowPOI())->GetBinError(1);
546       }
547       qcCommonHist4 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist4thOrderQC"));
548       qcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults4thOrderQC"));
549       if(qcCommonHistRes4) {
550         flowValue[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinContent(1);
551         //flowError[binQC4-1] = (qcCommonHistRes4->GetHistIntFlow())->GetBinError(1);
552         flowValueRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinContent(1);
553         //flowErrorRP[binQC4RP-1] = (qcCommonHistRes4->GetHistIntFlowRP())->GetBinError(1);
554         flowValuePOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinContent(1);
555         //flowErrorPOI[binQC4POI-1] = (qcCommonHistRes4->GetHistIntFlowPOI())->GetBinError(1);
556       }
557       qcCommonHist6 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist6thOrderQC"));
558       qcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults6thOrderQC"));
559       if(qcCommonHistRes6) {
560         flowValue[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinContent(1);
561         //flowError[binQC6-1] = (qcCommonHistRes6->GetHistIntFlow())->GetBinError(1);
562         flowValueRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinContent(1);
563         //flowErrorRP[binQC6RP-1] = (qcCommonHistRes6->GetHistIntFlowRP())->GetBinError(1);
564         flowValuePOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinContent(1);
565         //flowErrorPOI[binQC6POI-1] = (qcCommonHistRes6->GetHistIntFlowPOI())->GetBinError(1);
566       }
567       qcCommonHist8 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist8thOrderQC"));
568       qcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults8thOrderQC"));
569       if(qcCommonHistRes8)  {
570         flowValue[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinContent(1);
571         //flowError[binQC8-1] = (qcCommonHistRes8->GetHistIntFlow())->GetBinError(1);
572         flowValueRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinContent(1);
573         //flowErrorRP[binQC8RP-1] = (qcCommonHistRes8->GetHistIntFlowRP())->GetBinError(1);
574         flowValuePOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinContent(1);
575         //flowErrorPOI[binQC8POI-1] = (qcCommonHistRes8->GetHistIntFlowPOI())->GetBinError(1);
576       }
577     }
578   }        
579   
580   // ranges on y-axis for 'no-name' plot:
581   Double_t dMax=flowValue[binMC-1]+flowError[binMC-1];
582   Double_t dMin=flowValue[binMC-1]-flowError[binMC-1];
583   
584   for(Int_t i=1;i<nMethods;i++) {
585     if(!(flowValue[i]==0. && flowError[i]==0.)) {
586       if(dMax<flowValue[i]+flowError[i]) dMax=flowValue[i]+flowError[i];
587       if(dMin>flowValue[i]-flowError[i]) dMin=flowValue[i]-flowError[i];
588     } 
589   }  
590   
591   // ranges on y-axis for RP plot:
592   Double_t dMaxRP=flowValueRP[binMCRP-1]+flowErrorRP[binMCRP-1];
593   Double_t dMinRP=flowValueRP[binMCRP-1]-flowErrorRP[binMCRP-1];
594   
595   for(Int_t i=1;i<nMethods;i++) {
596     if(!(flowValueRP[i]==0. && flowErrorRP[i]==0.)) {
597       if(dMaxRP<flowValueRP[i]+flowErrorRP[i]) dMaxRP=flowValueRP[i]+flowErrorRP[i];
598       if(dMinRP>flowValueRP[i]-flowErrorRP[i]) dMinRP=flowValueRP[i]-flowErrorRP[i];
599     } 
600   }  
601
602   // ranges on y-axis for POI plot:
603   Double_t dMaxPOI=flowValuePOI[binMCPOI-1]+flowErrorPOI[binMCPOI-1];
604   Double_t dMinPOI=flowValuePOI[binMCPOI-1]-flowErrorPOI[binMCPOI-1];
605   
606   for(Int_t i=1;i<nMethods;i++) {
607     if(!(flowValuePOI[i]==0. && flowErrorPOI[i]==0.)) {
608       if(dMaxPOI<flowValuePOI[i]+flowErrorPOI[i]) dMaxPOI=flowValuePOI[i]+flowErrorPOI[i];
609       if(dMinPOI>flowValuePOI[i]-flowErrorPOI[i]) dMinPOI=flowValuePOI[i]-flowErrorPOI[i];
610     } 
611   }  
612  
613   // no-name:
614   TGraph* flowResults = new TGraphErrors(nMethods, x, flowValue, xError, flowError);
615   flowResults->SetMarkerStyle(markerStyle);
616   flowResults->SetMarkerColor(markerColor);
617   
618   // RP:
619   TGraph* flowResultsRP = new TGraphErrors(nMethods, x, flowValueRP, xError, flowErrorRP); 
620   flowResultsRP->SetMarkerStyle(markerStyleRP);
621   flowResultsRP->SetMarkerColor(markerColorRP);
622   
623   // POI:
624   TGraph* flowResultsPOI = new TGraphErrors(nMethods, x, flowValuePOI, xError, flowErrorPOI);
625   flowResultsPOI->SetMarkerStyle(markerStylePOI);
626   flowResultsPOI->SetMarkerColor(markerColorPOI);
627   
628   //-----------------------------------------------------------------------------------
629   
630   //----------------------------------------------------------------------------------
631   // cosmetics: mesh for MC error bands (integrated flow)
632   TGraph* pMesh = NULL;
633   TGraph* pMeshRP = NULL;
634   TGraph* pMeshPOI = NULL;
635   
636   if(intFlowAll && mcepCommonHistRes) {
637     Int_t nPts       = nMethods;
638     Double_t valueMC = flowValue[binMC-1];
639     Double_t errorMC = flowError[binMC-1]; 
640     Double_t valueMCRP = flowValueRP[binMCRP-1];
641     Double_t errorMCRP = flowErrorRP[binMCRP-1]; 
642     Double_t valueMCPOI = flowValuePOI[binMCPOI-1];
643     Double_t errorMCPOI = flowErrorPOI[binMCPOI-1]; 
644     
645     pMesh = new TGraph(nPts);
646     pMeshRP = new TGraph(nPts);
647     pMeshPOI = new TGraph(nPts);
648     
649     // no-name:
650     pMesh->SetPoint(1,0,valueMC+errorMC);
651     pMesh->SetPoint(2,nPts+1,valueMC+errorMC);
652     pMesh->SetPoint(3,nPts+1,valueMC-errorMC);
653     pMesh->SetPoint(4,0,valueMC-errorMC);
654     pMesh->SetPoint(5,0,valueMC+errorMC);    
655     pMesh->SetFillStyle(meshStyle);
656     pMesh->SetFillColor(meshColor);
657      
658     // RP:
659     pMeshRP->SetPoint(1,0,valueMCRP+errorMCRP);
660     pMeshRP->SetPoint(2,nPts+1,valueMCRP+errorMCRP);
661     pMeshRP->SetPoint(3,nPts+1,valueMCRP-errorMCRP);
662     pMeshRP->SetPoint(4,0,valueMCRP-errorMCRP);
663     pMeshRP->SetPoint(5,0,valueMCRP+errorMCRP);   
664     pMeshRP->SetFillStyle(meshStyleRP);
665     pMeshRP->SetFillColor(meshColorRP);
666     
667     // POI:
668     pMeshPOI->SetPoint(1,0,valueMCPOI+errorMCPOI);
669     pMeshPOI->SetPoint(2,nPts+1,valueMCPOI+errorMCPOI);
670     pMeshPOI->SetPoint(3,nPts+1,valueMCPOI-errorMCPOI);
671     pMeshPOI->SetPoint(4,0,valueMCPOI-errorMCPOI);
672     pMeshPOI->SetPoint(5,0,valueMCPOI+errorMCPOI);    
673     pMeshPOI->SetFillStyle(meshStylePOI);
674     pMeshPOI->SetFillColor(meshColorPOI);     
675   }
676   //---------------------------------------------------------------------------------- 
677  
678   
679   //----------------------------------------------------------------------------------
680   //cosmetics: text (integrated flow) 
681   //default text:
682   TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC");
683   textDefault->SetTextFont(72);
684   textDefault->SetTextSize(0.08);
685   
686   TString *entryDefaultAvM = new TString("Average Multiplicity");
687   TString *entryDefaultAnd = new TString("and"); 
688   TString *entryDefaultNumOfEvts = new TString("Number of Events:");
689   
690   textDefault->AddText(entryDefaultAvM->Data());
691   textDefault->AddText(entryDefaultAnd->Data());
692   textDefault->AddText(entryDefaultNumOfEvts->Data());
693   
694   // results (no-name):
695   TPaveText *textResults = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
696   textResults->SetTextFont(72);
697   textResults->SetTextSize(0.06);
698   
699   // results (RP):
700   TPaveText *textResultsRP = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
701   textResultsRP->SetTextFont(72);
702   textResultsRP->SetTextSize(0.06);
703   
704   // results (POI):
705   TPaveText *textResultsPOI = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
706   textResultsPOI->SetTextFont(72);
707   textResultsPOI->SetTextSize(0.06);
708   
709   // no-name:              
710   TString *entryMC    = new TString("MC ...... ");
711   TString *entrySP    = new TString("SP ...... "); 
712   TString *entryGFC   = new TString("GFC ..... "); 
713   TString *entryQC2   = new TString("QC{2} ... ");
714   TString *entryQC4   = new TString("QC{4} ... ");
715   TString *entryQC6   = new TString("QC{6} ... ");
716   TString *entryQC8   = new TString("QC{8} ... ");
717   TString *entryFQD   = new TString("FQD ..... "); 
718   TString *entryLYZ1  = new TString("LYZ ..... "); 
719   TString *entryLYZEP = new TString("LYZEP ... "); 
720   
721   // RP: 
722   TString *entryMCRP    = new TString("MC ...... ");
723   TString *entrySPRP    = new TString("SP ...... ");
724   TString *entryGFCRP   = new TString("GFC ..... "); 
725   TString *entryQC2RP   = new TString("QC{2} ... ");
726   TString *entryQC4RP   = new TString("QC{4} ... ");
727   TString *entryQC6RP   = new TString("QC{6} ... ");
728   TString *entryQC8RP   = new TString("QC{8} ... ");
729   TString *entryFQDRP   = new TString("FQD ..... "); 
730   TString *entryLYZ1RP  = new TString("LYZ ..... "); 
731   TString *entryLYZEPRP = new TString("LYZEP ... "); 
732
733   // POI: 
734   TString *entryMCPOI    = new TString("MC ...... ");
735   TString *entrySPPOI    = new TString("SP ...... ");
736   TString *entryGFCPOI   = new TString("GFC ..... "); 
737   TString *entryQC2POI   = new TString("QC{2} ... ");
738   TString *entryQC4POI   = new TString("QC{4} ... ");
739   TString *entryQC6POI   = new TString("QC{6} ... ");
740   TString *entryQC8POI   = new TString("QC{8} ... ");
741   TString *entryFQDPOI   = new TString("FQD ..... "); 
742   TString *entryLYZ1POI  = new TString("LYZ ..... "); 
743   TString *entryLYZEPPOI = new TString("LYZEP ... "); 
744   
745   // no-name:
746   Double_t avMultMC=0.;
747   Long_t nEvtsMC=0;
748   Double_t avMultSP=0.;
749   Long_t nEvtsSP=0;
750   Double_t avMultGFC=0.;
751   Long_t nEvtsGFC=0;
752   Double_t avMultQC2=0., avMultQC4=0., avMultQC6=0., avMultQC8=0.;
753   Long_t nEvtsQC2=0, nEvtsQC4=0, nEvtsQC6=0, nEvtsQC8=0;
754   Double_t avMultFQD=0.;
755   Long_t nEvtsFQD=0;
756   Double_t avMultLYZ1=0.;
757   Long_t nEvtsLYZ1=0;
758   Double_t avMultLYZEP=0.;
759   Long_t nEvtsLYZEP=0;
760   
761   // RP:
762   Double_t avMultMCRP=0.;
763   Long_t nEvtsMCRP=0;
764   Double_t avMultSPRP=0.;
765   Long_t nEvtsSPRP=0;
766   Double_t avMultGFCRP=0.;
767   Long_t nEvtsGFCRP=0;
768   Double_t avMultQC2RP=0., avMultQC4RP=0., avMultQC6RP=0., avMultQC8RP=0.;
769   Long_t nEvtsQC2RP=0, nEvtsQC4RP=0, nEvtsQC6RP=0, nEvtsQC8RP=0;
770   Double_t avMultFQDRP=0.;
771   Long_t nEvtsFQDRP=0;
772   Double_t avMultLYZ1RP=0.;
773   Long_t nEvtsLYZ1RP=0;
774   Double_t avMultLYZEPRP=0.;
775   Long_t nEvtsLYZEPRP=0;
776   
777   // POI:
778   Double_t avMultMCPOI=0.;
779   Long_t nEvtsMCPOI=0;
780   Double_t avMultSPPOI=0.;
781   Long_t nEvtsSPPOI=0;
782   Double_t avMultGFCPOI=0.;
783   Long_t nEvtsGFCPOI=0;
784   Double_t avMultQC2POI=0., avMultQC4POI=0., avMultQC6POI=0., avMultQC8POI=0.;
785   Long_t nEvtsQC2POI=0, nEvtsQC4POI=0, nEvtsQC6POI=0, nEvtsQC8POI=0;
786   Double_t avMultFQDPOI=0.;
787   Long_t nEvtsFQDPOI=0;
788   Double_t avMultLYZ1POI=0.;
789   Long_t nEvtsLYZ1POI=0;
790   Double_t avMultLYZEPPOI=0.;
791   Long_t nEvtsLYZEPPOI=0;
792   
793   // MC:  
794   if(mcepCommonHist) {
795     avMultMC = (mcepCommonHist->GetHistMultRP())->GetMean();
796     nEvtsMC  = (mcepCommonHist->GetHistMultRP())->GetEntries();
797     avMultMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
798     nEvtsMCRP  = (mcepCommonHist->GetHistMultRP())->GetEntries();
799     avMultMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
800     nEvtsMCPOI  = (mcepCommonHist->GetHistMultPOI())->GetEntries();
801   }
802   
803   if(entryMC) {   
804     entryMC->Append("M = ");
805     (*entryMC)+=(Long_t)avMultMC;
806     entryMC->Append(", N = ");
807     (*entryMC)+=(Long_t)nEvtsMC;
808   }
809  
810   if(entryMCRP) {   
811     entryMCRP->Append("M = ");
812     (*entryMCRP)+=(Long_t)avMultMCRP;
813     entryMCRP->Append(", N = ");
814     (*entryMCRP)+=(Long_t)nEvtsMCRP;
815   }
816   
817   if(entryMCPOI) {   
818    entryMCPOI->Append("M = ");
819    (*entryMCPOI)+=(Long_t)avMultMCPOI;
820    entryMCPOI->Append(", N = ");
821    (*entryMCPOI)+=(Long_t)nEvtsMCPOI;
822   }
823   
824   // SP:  
825   if(spCommonHist) {
826     avMultSP = (spCommonHist->GetHistMultRP())->GetMean();
827     nEvtsSP  = (spCommonHist->GetHistMultRP())->GetEntries();
828     avMultSPRP = (spCommonHist->GetHistMultRP())->GetMean();
829     nEvtsSPRP  = (spCommonHist->GetHistMultRP())->GetEntries();
830     avMultSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
831     nEvtsSPPOI  = (spCommonHist->GetHistMultPOI())->GetEntries();
832   }
833   
834   if(entrySP) {   
835     entrySP->Append("M = ");
836     (*entrySP)+=(Long_t)avMultSP;
837     entrySP->Append(", N = ");
838     (*entrySP)+=(Long_t)nEvtsSP;
839   }
840  
841   if(entrySPRP) {   
842     entrySPRP->Append("M = ");
843     (*entrySPRP)+=(Long_t)avMultSPRP;
844     entrySPRP->Append(", N = ");
845     (*entrySPRP)+=(Long_t)nEvtsSPRP;
846   }
847   
848   if(entrySPPOI) {   
849    entrySPPOI->Append("M = ");
850    (*entrySPPOI)+=(Long_t)avMultSPPOI;
851    entrySPPOI->Append(", N = ");
852    (*entrySPPOI)+=(Long_t)nEvtsSPPOI;
853   }
854   
855  // GFC:
856  if(gfcCommonHist) {
857    avMultGFC = (gfcCommonHist->GetHistMultRP())->GetMean();
858    nEvtsGFC  = (gfcCommonHist->GetHistMultRP())->GetEntries();
859    avMultGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();
860    nEvtsGFCRP  = (gfcCommonHist->GetHistMultRP())->GetEntries();
861    avMultGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
862    nEvtsGFCPOI  = (gfcCommonHist->GetHistMultPOI())->GetEntries();
863  }
864  
865  if(entryGFC) { 
866    entryGFC->Append("M = ");
867    (*entryGFC)+=(Long_t)avMultGFC;
868    entryGFC->Append(", N = ");
869    (*entryGFC)+=(Long_t)nEvtsGFC;
870  }
871  
872  if(entryGFCRP) { 
873    entryGFCRP->Append("M = ");
874    (*entryGFCRP)+=(Long_t)avMultGFCRP;
875    entryGFCRP->Append(", N = ");
876    (*entryGFCRP)+=(Long_t)nEvtsGFCRP;
877  }
878  if(entryGFCPOI) { 
879    entryGFCPOI->Append("M = ");
880    (*entryGFCPOI)+=(Long_t)avMultGFCPOI;
881    entryGFCPOI->Append(", N = ");
882    (*entryGFCPOI)+=(Long_t)nEvtsGFCPOI;
883  }
884  
885  // QC:
886  if(qcCommonHist2) {
887    avMultQC2 = (qcCommonHist2->GetHistMultRP())->GetMean();
888    nEvtsQC2  = (qcCommonHist2->GetHistMultRP())->GetEntries();
889    avMultQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
890    nEvtsQC2RP  = (qcCommonHist2->GetHistMultRP())->GetEntries();
891    avMultQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
892    nEvtsQC2POI  = (qcCommonHist2->GetHistMultPOI())->GetEntries();
893  }
894  
895  if(entryQC2)
896  { 
897   entryQC2->Append("M = ");
898   (*entryQC2)+=(Long_t)avMultQC2;
899   entryQC2->Append(", N = ");
900   (*entryQC2)+=(Long_t)nEvtsQC2;
901  }
902  
903  if(entryQC2RP)
904  { 
905   entryQC2RP->Append("M = ");
906   (*entryQC2RP)+=(Long_t)avMultQC2RP;
907   entryQC2RP->Append(", N = ");
908   (*entryQC2RP)+=(Long_t)nEvtsQC2RP;
909  } 
910  
911  if(entryQC2POI)
912  { 
913   entryQC2POI->Append("M = ");
914   (*entryQC2POI)+=(Long_t)avMultQC2POI;
915   entryQC2POI->Append(", N = ");
916   (*entryQC2POI)+=(Long_t)nEvtsQC2POI;
917  } 
918
919  if(qcCommonHist4)
920  {
921   avMultQC4 = (qcCommonHist4->GetHistMultRP())->GetMean();
922   nEvtsQC4  = (qcCommonHist4->GetHistMultRP())->GetEntries();
923   avMultQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
924   nEvtsQC4RP  = (qcCommonHist4->GetHistMultRP())->GetEntries();
925   avMultQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
926   nEvtsQC4POI  = (qcCommonHist4->GetHistMultPOI())->GetEntries();
927  }
928  
929  if(entryQC4)
930  {
931   entryQC4->Append("M = ");
932   (*entryQC4)+=(Long_t)avMultQC4;
933   entryQC4->Append(", N = ");
934   (*entryQC4)+=(Long_t)nEvtsQC4;
935  }
936  
937  if(entryQC4RP)
938  {
939   entryQC4RP->Append("M = ");
940   (*entryQC4RP)+=(Long_t)avMultQC4RP;
941   entryQC4RP->Append(", N = ");
942   (*entryQC4RP)+=(Long_t)nEvtsQC4RP;
943  }
944  
945  if(entryQC4POI)
946  {
947   entryQC4POI->Append("M = ");
948   (*entryQC4POI)+=(Long_t)avMultQC4POI;
949   entryQC4POI->Append(", N = ");
950   (*entryQC4POI)+=(Long_t)nEvtsQC4POI;
951  }
952    
953  if(qcCommonHist6)
954  {
955   avMultQC6 = (qcCommonHist6->GetHistMultRP())->GetMean();
956   nEvtsQC6  = (qcCommonHist6->GetHistMultRP())->GetEntries();
957   avMultQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
958   nEvtsQC6RP  = (qcCommonHist6->GetHistMultRP())->GetEntries();
959   avMultQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
960   nEvtsQC6POI  = (qcCommonHist6->GetHistMultPOI())->GetEntries();
961  }
962  
963  if(entryQC6)
964  {  
965   entryQC6->Append("M = ");
966   (*entryQC6)+=(Long_t)avMultQC6;
967   entryQC6->Append(", N = ");
968   (*entryQC6)+=(Long_t)nEvtsQC6;
969  }
970  
971  if(entryQC6RP)
972  {  
973   entryQC6RP->Append("M = ");
974   (*entryQC6RP)+=(Long_t)avMultQC6RP;
975   entryQC6RP->Append(", N = ");
976   (*entryQC6RP)+=(Long_t)nEvtsQC6RP;
977  }
978  
979  if(entryQC6POI)
980  {  
981   entryQC6POI->Append("M = ");
982   (*entryQC6POI)+=(Long_t)avMultQC6POI;
983   entryQC6POI->Append(", N = ");
984   (*entryQC6POI)+=(Long_t)nEvtsQC6POI;
985  }
986    
987  if(qcCommonHist8)
988  {
989   avMultQC8 = (qcCommonHist8->GetHistMultRP())->GetMean();
990   nEvtsQC8  = (qcCommonHist8->GetHistMultRP())->GetEntries();
991   avMultQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
992   nEvtsQC8RP  = (qcCommonHist8->GetHistMultRP())->GetEntries();
993   avMultQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
994   nEvtsQC8POI  = (qcCommonHist8->GetHistMultPOI())->GetEntries();    
995  }
996   
997  if(entryQC8)
998  {
999   entryQC8->Append("M = ");
1000   (*entryQC8)+=(Long_t)avMultQC8;
1001   entryQC8->Append(", N = ");
1002   (*entryQC8)+=(Long_t)nEvtsQC8;
1003  }
1004  
1005  if(entryQC8RP)
1006  {
1007   entryQC8RP->Append("M = ");
1008   (*entryQC8RP)+=(Long_t)avMultQC8RP;
1009   entryQC8RP->Append(", N = ");
1010   (*entryQC8RP)+=(Long_t)nEvtsQC8RP;
1011  }
1012  
1013  if(entryQC8POI)
1014  {
1015   entryQC8POI->Append("M = ");
1016   (*entryQC8POI)+=(Long_t)avMultQC8POI;
1017   entryQC8POI->Append(", N = ");
1018   (*entryQC8POI)+=(Long_t)nEvtsQC8POI;
1019  }
1020   
1021  // FQD:
1022  if(fqdCommonHist)
1023  {
1024   avMultFQD = (fqdCommonHist->GetHistMultRP())->GetMean();
1025   nEvtsFQD  = (fqdCommonHist->GetHistMultRP())->GetEntries();
1026   avMultFQDRP = (fqdCommonHist->GetHistMultRP())->GetMean();
1027   nEvtsFQDRP  = (fqdCommonHist->GetHistMultRP())->GetEntries();
1028   avMultFQDPOI = (fqdCommonHist->GetHistMultPOI())->GetMean();
1029   nEvtsFQDPOI  = (fqdCommonHist->GetHistMultPOI())->GetEntries();
1030  } 
1031  
1032  if(entryFQD)
1033  {
1034   entryFQD->Append("M = ");
1035   (*entryFQD)+=(Long_t)avMultFQD;
1036   entryFQD->Append(", N = ");
1037   (*entryFQD)+=(Long_t)nEvtsFQD;
1038  }
1039  
1040  if(entryFQDRP)
1041  {
1042   entryFQDRP->Append("M = ");
1043   (*entryFQDRP)+=(Long_t)avMultFQDRP;
1044   entryFQDRP->Append(", N = ");
1045   (*entryFQDRP)+=(Long_t)nEvtsFQDRP;
1046  }
1047  
1048  if(entryFQDPOI)
1049  {
1050   entryFQDPOI->Append("M = ");
1051   (*entryFQDPOI)+=(Long_t)avMultFQDPOI;
1052   entryFQDPOI->Append(", N = ");
1053   (*entryFQDPOI)+=(Long_t)nEvtsFQDPOI;
1054  }  
1055   
1056  // LYZ1:
1057  if(lyz1CommonHist)
1058  {
1059   avMultLYZ1 = (lyz1CommonHist->GetHistMultRP())->GetMean();
1060   nEvtsLYZ1  = (lyz1CommonHist->GetHistMultRP())->GetEntries();
1061   avMultLYZ1RP = (lyz1CommonHist->GetHistMultRP())->GetMean();
1062   nEvtsLYZ1RP  = (lyz1CommonHist->GetHistMultRP())->GetEntries();
1063   avMultLYZ1POI = (lyz1CommonHist->GetHistMultPOI())->GetMean();
1064   nEvtsLYZ1POI  = (lyz1CommonHist->GetHistMultPOI())->GetEntries();
1065  }
1066  
1067  if(entryLYZ1) 
1068  {
1069   entryLYZ1->Append("M = ");
1070   (*entryLYZ1)+=(Long_t)avMultLYZ1;
1071   entryLYZ1->Append(", N = ");
1072   (*entryLYZ1)+=(Long_t)nEvtsLYZ1;
1073  }
1074  
1075  if(entryLYZ1RP) 
1076  {
1077   entryLYZ1RP->Append("M = ");
1078   (*entryLYZ1RP)+=(Long_t)avMultLYZ1RP;
1079   entryLYZ1RP->Append(", N = ");
1080   (*entryLYZ1RP)+=(Long_t)nEvtsLYZ1RP;
1081  }
1082  
1083  if(entryLYZ1POI) 
1084  {
1085   entryLYZ1POI->Append("M = ");
1086   (*entryLYZ1POI)+=(Long_t)avMultLYZ1POI;
1087   entryLYZ1POI->Append(", N = ");
1088   (*entryLYZ1POI)+=(Long_t)nEvtsLYZ1POI;
1089  }
1090  
1091  // LYZEP:
1092  if(lyzepCommonHist)
1093  {
1094   avMultLYZEP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1095   nEvtsLYZEP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1096   avMultLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1097   nEvtsLYZEPRP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1098   avMultLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
1099   nEvtsLYZEPPOI  = (lyzepCommonHist->GetHistMultPOI())->GetEntries();    
1100  }
1101  
1102  if(entryLYZEP)
1103  {
1104   entryLYZEP->Append("M = ");
1105   (*entryLYZEP)+=(Long_t)avMultLYZEP;
1106   entryLYZEP->Append(", N = ");
1107   (*entryLYZEP)+=(Long_t)nEvtsLYZEP;
1108  }
1109  
1110  if(entryLYZEPRP)
1111  {
1112   entryLYZEPRP->Append("M = ");
1113   (*entryLYZEPRP)+=(Long_t)avMultLYZEPRP;
1114   entryLYZEPRP->Append(", N = ");
1115   (*entryLYZEPRP)+=(Long_t)nEvtsLYZEPRP;
1116  }
1117  
1118  if(entryLYZEPPOI)
1119  {
1120   entryLYZEPPOI->Append("M = ");
1121   (*entryLYZEPPOI)+=(Long_t)avMultLYZEPPOI;
1122   entryLYZEPPOI->Append(", N = ");
1123   (*entryLYZEPPOI)+=(Long_t)nEvtsLYZEPPOI;
1124  }
1125
1126  // no-name:
1127  if(textResults)
1128  {
1129   textResults->AddText(entryMC->Data());
1130   textResults->AddText(entrySP->Data());
1131   textResults->AddText(entryGFC->Data());
1132   textResults->AddText(entryQC2->Data());
1133   textResults->AddText(entryQC4->Data());
1134   textResults->AddText(entryQC6->Data());
1135   textResults->AddText(entryQC8->Data());
1136   textResults->AddText(entryFQD->Data());
1137   textResults->AddText(entryLYZ1->Data());
1138   textResults->AddText(entryLYZEP->Data());
1139  }
1140  
1141  // RP:
1142  if(textResultsRP)
1143  {
1144   textResultsRP->AddText(entryMCRP->Data());
1145   textResultsRP->AddText(entrySPRP->Data());
1146   textResultsRP->AddText(entryGFCRP->Data());
1147   textResultsRP->AddText(entryQC2RP->Data());
1148   textResultsRP->AddText(entryQC4RP->Data());
1149   textResultsRP->AddText(entryQC6RP->Data());
1150   textResultsRP->AddText(entryQC8RP->Data());
1151   textResultsRP->AddText(entryFQDRP->Data());
1152   textResultsRP->AddText(entryLYZ1RP->Data());
1153   textResultsRP->AddText(entryLYZEPRP->Data());
1154  }
1155  
1156  // POI:
1157  if(textResultsPOI)
1158  {
1159   textResultsPOI->AddText(entryMCPOI->Data());
1160   textResultsPOI->AddText(entrySPPOI->Data());
1161   textResultsPOI->AddText(entryGFCPOI->Data());
1162   textResultsPOI->AddText(entryQC2POI->Data());
1163   textResultsPOI->AddText(entryQC4POI->Data());
1164   textResultsPOI->AddText(entryQC6POI->Data());
1165   textResultsPOI->AddText(entryQC8POI->Data());
1166   textResultsPOI->AddText(entryFQDPOI->Data());
1167   textResultsPOI->AddText(entryLYZ1POI->Data());
1168   textResultsPOI->AddText(entryLYZEPPOI->Data());
1169  }
1170  //----------------------------------------------------------------------------------
1171  
1172  
1173  
1174  
1175  //----------------------------------------------------------------------------------
1176  // final drawing for integrated flow (no-name):
1177  if(plotIntFlow)
1178  {
1179   TCanvas* intFlowAllCanvas = new TCanvas("Integrated Flow","Integrated Flow",1000,600);
1180  
1181   intFlowAllCanvas->Divide(2,1);
1182  
1183   // 1st pad is for plot:
1184   (intFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1185   
1186   if(intFlowAll)
1187   {
1188    if(dMin>0. && dMax>0.)
1189    {
1190     (intFlowAll->GetYaxis())->SetRangeUser(0.9744*dMin,1.0144*dMax);
1191    } else if(dMin<0. && dMax>0.)
1192      {
1193       if(!(-1.*dMin<4.*dMax))
1194       {  
1195        (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,1.0144*dMax);
1196       } else {(intFlowAll->GetYaxis())->SetRangeUser(1.1266*dMin,1.0144*dMax);}  
1197      } else if(dMin<0. && dMax<0.)
1198        {
1199         (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,0.9866*dMax);      
1200        }
1201    intFlowAll->Draw("E1");
1202   }                    
1203                                                     
1204   if(pMesh) pMesh->Draw("LFSAME");
1205    
1206   if(flowResults) flowResults->Draw("PSAME");
1207
1208   // 2nd pad is for legend:
1209   (intFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1210  
1211   if(textDefault) textDefault->Draw();
1212  
1213   if(textResults) textResults->Draw();
1214  
1215  }// end of if(plotIntFlow) 
1216  //----------------------------------------------------------------------------------
1217
1218  
1219  
1220  
1221  //----------------------------------------------------------------------------------
1222  //final drawing for integrated flow of RP (i.e. of particles used to determine the reaction plane):
1223  if(plotIntFlowRP)
1224  {
1225   TCanvas* intFlowAllCanvasRP = new TCanvas("Integrated Flow RP","Integrated Flow RP",1000,600);
1226  
1227   intFlowAllCanvasRP->Divide(2,1);
1228  
1229   //1st pad is for plot:
1230   (intFlowAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1231  
1232   TH1D *intFlowAllRP = new TH1D(*intFlowAll);
1233   intFlowAllRP->SetMarkerStyle(markerStyleRP);
1234   intFlowAllRP->SetMarkerColor(markerColorRP);
1235   (intFlowAllRP->GetXaxis())->SetBinLabel(binMCRP,"v_{2}{MC}");
1236   (intFlowAllRP->GetXaxis())->SetBinLabel(binSPRP,"v_{2}{SP}");
1237   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC2RP,"v_{2}{2,GFC}");
1238   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC2RP,"v_{2}{2,QC}");
1239   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC4RP,"v_{2}{4,GFC}");
1240   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC4RP,"v_{2}{4,QC}");
1241   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC6RP,"v_{2}{6,GFC}");
1242   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC6RP,"v_{2}{6,QC}");
1243   (intFlowAllRP->GetXaxis())->SetBinLabel(binGFC8RP,"v_{2}{8,GFC}");
1244   (intFlowAllRP->GetXaxis())->SetBinLabel(binQC8RP,"v_{2}{8,QC}");
1245   (intFlowAllRP->GetXaxis())->SetBinLabel(binFQDRP,"v_{2}{FQD}");
1246   (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZ2RP,"v_{2}{LYZ}");
1247   (intFlowAllRP->GetXaxis())->SetBinLabel(binLYZEPRP,"v_{2}{LYZEP}");
1248
1249   if(intFlowAllRP)
1250   {
1251    if(dMinRP>0. && dMaxRP>0.)
1252    {
1253     (intFlowAllRP->GetYaxis())->SetRangeUser(0.9744*dMinRP,1.0144*dMaxRP);
1254    } else if(dMinRP<0. && dMaxRP>0.)
1255      {
1256       if(!(-1.*dMinRP<4.*dMaxRP))
1257       {  
1258        (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,1.0144*dMaxRP);
1259       } else {(intFlowAllRP->GetYaxis())->SetRangeUser(1.1266*dMinRP,1.0144*dMaxRP);}  
1260      } else if(dMinRP<0. && dMaxRP<0.)
1261        {
1262         (intFlowAllRP->GetYaxis())->SetRangeUser(1.0266*dMinRP,0.9866*dMaxRP);      
1263        } 
1264    intFlowAllRP->Draw("E1");
1265   }
1266                                                                                                                                                                                                                                                                                    
1267   if(pMeshRP) pMeshRP->Draw("LFSAME");
1268    
1269   if(flowResultsRP) flowResultsRP->Draw("PSAME");
1270
1271   //2nd pad is for legend:
1272   (intFlowAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1273   
1274   if(textDefault) textDefault->Draw();
1275  
1276   if(textResultsRP) textResultsRP->Draw();
1277  }//end of if(plotIntFlowRP} 
1278  //----------------------------------------------------------------------------------
1279  
1280  
1281  
1282  
1283  //----------------------------------------------------------------------------------
1284  //final drawing for integrated flow of POI (i.e. of particles of interest):
1285  if(plotIntFlowPOI)
1286  {
1287   TCanvas* intFlowAllCanvasPOI = new TCanvas("Integrated Flow POI","Integrated Flow POI",1000,600);
1288   
1289   intFlowAllCanvasPOI->Divide(2,1);
1290  
1291   //1st pad is for plot:
1292   (intFlowAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1293   
1294   TH1D *intFlowAllPOI = new TH1D(*intFlowAll);
1295   intFlowAllPOI->SetMarkerStyle(markerStylePOI);
1296   intFlowAllPOI->SetMarkerColor(markerColorPOI);
1297   (intFlowAllPOI->GetXaxis())->SetBinLabel(binMCPOI,"v_{2}{MC}");
1298   (intFlowAllPOI->GetXaxis())->SetBinLabel(binSPPOI,"v_{2}{SP}");
1299   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC2POI,"v_{2}{2,GFC}");
1300   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC2POI,"v_{2}{2,QC}");
1301   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC4POI,"v_{2}{4,GFC}");
1302   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC4POI,"v_{2}{4,QC}");
1303   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC6POI,"v_{2}{6,GFC}");
1304   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC6POI,"v_{2}{6,QC}");
1305   (intFlowAllPOI->GetXaxis())->SetBinLabel(binGFC8POI,"v_{2}{8,GFC}");
1306   (intFlowAllPOI->GetXaxis())->SetBinLabel(binQC8POI,"v_{2}{8,QC}");
1307   (intFlowAllPOI->GetXaxis())->SetBinLabel(binFQDPOI,"v_{2}{FQD}");
1308   (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZ2POI,"v_{2}{LYZ}");
1309   (intFlowAllPOI->GetXaxis())->SetBinLabel(binLYZEPPOI,"v_{2}{LYZEP}");
1310   
1311   if(intFlowAllPOI)
1312   {
1313    if(dMinPOI>0. && dMaxPOI>0.)
1314    {
1315     (intFlowAllPOI->GetYaxis())->SetRangeUser(0.9744*dMinPOI,1.0144*dMaxPOI);
1316    } else if(dMinPOI<0. && dMaxPOI>0.)
1317      {
1318       if(!(-1.*dMinPOI<4.*dMaxPOI))
1319       {  
1320        (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,1.0144*dMaxPOI);
1321       } else {(intFlowAllPOI->GetYaxis())->SetRangeUser(1.1266*dMinPOI,1.0144*dMaxPOI);}  
1322      } else if(dMinPOI<0. && dMaxPOI<0.)
1323        {
1324         (intFlowAllPOI->GetYaxis())->SetRangeUser(1.0266*dMinPOI,0.9866*dMaxPOI);      
1325        }
1326    intFlowAllPOI->Draw("E1");
1327   }
1328                             
1329   if(pMeshPOI) pMeshPOI->Draw("LFSAME");
1330    
1331   if(flowResultsPOI) flowResultsPOI->Draw("PSAME");
1332  
1333   //2nd pad is for legend:
1334   (intFlowAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
1335  
1336   if(textDefault) textDefault->Draw();
1337
1338   if(textResultsPOI) textResultsPOI->Draw();
1339  }// end of if(plotIntFlowPOI) 
1340  //----------------------------------------------------------------------------------
1341  
1342  //==================================================================================   
1343
1344
1345
1346
1347  //==================================================================================
1348  //                            DIFFERENTIAL FLOW
1349  //==================================================================================
1350  Int_t iNbinsPt  = AliFlowCommonConstants::GetNbinsPt();
1351  Double_t dPtMin = AliFlowCommonConstants::GetPtMin();
1352  Double_t dPtMax = AliFlowCommonConstants::GetPtMax();
1353  
1354  Int_t iNbinsEta  = AliFlowCommonConstants::GetNbinsEta();
1355  Double_t dEtaMin = AliFlowCommonConstants::GetEtaMin();
1356  Double_t dEtaMax = AliFlowCommonConstants::GetEtaMax();
1357  
1358  //----------------------------------------------------------------------------------
1359  //cosmetics: the style histogram for differential flow (pt):
1360  TH1D *styleHistPt = new TH1D("styleHistPt","styleHistPt",iNbinsPt,dPtMin,dPtMax);
1361  styleHistPt->SetTitle("Differential Flow");
1362  styleHistPt->SetXTitle("p_{t} [GeV]");
1363  styleHistPt->SetYTitle("v_{n}");
1364  
1365  //cosmetics: the style histogram for differential flow (eta):
1366  TH1D *styleHistEta = new TH1D("styleHistEta","styleHistEta",iNbinsEta,dEtaMin,dEtaMax);
1367  styleHistEta->SetTitle("Differential Flow");
1368  styleHistEta->SetXTitle("#eta");
1369  styleHistEta->SetYTitle("v_{n}");
1370  //----------------------------------------------------------------------------------
1371  
1372  
1373
1374  //----------------------------------------------------------------------------------
1375  //RP:
1376  //cosmetics: Monte Carlo error bands for differential flow (Pt)
1377  TGraph* pMeshDiffFlowPtRP = NULL;
1378  if(mcepCommonHistRes)
1379  {
1380   Int_t nBinsDiffFlowPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetNbinsX();
1381   Double_t binWidthPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinWidth(1);//assuming that all bins have the same width
1382
1383   //counting the non-empty bins: 
1384   Int_t nNonEmptyBinsDiffFlowPtRP=0;
1385   for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1386   {
1387    if(!(mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i)==0.0))
1388    {
1389     nNonEmptyBinsDiffFlowPtRP++;
1390    }
1391   }    
1392        
1393   pMeshDiffFlowPtRP = new TGraph(2*nNonEmptyBinsDiffFlowPtRP+1);
1394   
1395   Double_t valueMCPtRP=0.,errorMCPtRP=0.;
1396   Int_t countDiffFlowPtRP=1;
1397   Double_t xFirstDiffFlowPtRP=0.,yUpFirstDiffFlowPtRP=0.;//needed to close up the mesh
1398   for(Int_t i=1;i<nBinsDiffFlowPtRP+1;i++)
1399   {
1400    //setting up the upper limit of the mesh:
1401    valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(i);
1402    errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(i);   
1403    if(!(errorMCPtRP==0.0))
1404    {    
1405     pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(i-0.5)*binWidthPtRP+dPtMin,valueMCPtRP+errorMCPtRP);
1406     if(xFirstDiffFlowPtRP==0.)
1407     {
1408      xFirstDiffFlowPtRP=(i-0.5)*binWidthPtRP+dPtMin;
1409      yUpFirstDiffFlowPtRP=valueMCPtRP+errorMCPtRP;
1410     }
1411    } 
1412   }   
1413   for(Int_t i=nBinsDiffFlowPtRP+1;i<2*nBinsDiffFlowPtRP+1;i++)
1414   {
1415    //setting up the lower limit of the mesh:
1416    valueMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinContent(2*nBinsDiffFlowPtRP+1-i);
1417    errorMCPtRP = (mcepCommonHistRes->GetHistDiffFlowPtRP())->GetBinError(2*nBinsDiffFlowPtRP+1-i); 
1418    if(!(errorMCPtRP==0.0))
1419    {      
1420     pMeshDiffFlowPtRP->SetPoint(countDiffFlowPtRP++,(2*nBinsDiffFlowPtRP-i+0.5)*binWidthPtRP+dPtMin,valueMCPtRP-errorMCPtRP);
1421    }  
1422   }
1423   //closing the mesh area:
1424   pMeshDiffFlowPtRP->SetPoint(2*nNonEmptyBinsDiffFlowPtRP+1,xFirstDiffFlowPtRP,yUpFirstDiffFlowPtRP);   
1425   
1426   //setting the mesh style and color:               
1427   pMeshDiffFlowPtRP->SetFillStyle(meshStyleDiffFlowPtRP);
1428   pMeshDiffFlowPtRP->SetFillColor(meshColorDiffFlowPtRP);
1429  }
1430
1431  //cosmetics: Monte Carlo error bands for differential flow (Eta)
1432  TGraph* pMeshDiffFlowEtaRP = NULL;
1433  if(mcepCommonHistRes)
1434  {
1435   Int_t nBinsDiffFlowEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetNbinsX();
1436   Double_t binWidthEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinWidth(1);//assuming that all bins have the same width
1437
1438   //counting the non-empty bins: 
1439   Int_t nNonEmptyBinsDiffFlowEtaRP=0;
1440   for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1441   {
1442    if(!(mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i)==0.0))
1443    {
1444     nNonEmptyBinsDiffFlowEtaRP++;
1445    }
1446   }    
1447        
1448   pMeshDiffFlowEtaRP = new TGraph(2*nNonEmptyBinsDiffFlowEtaRP+1);
1449   
1450   Double_t valueMCEtaRP=0.,errorMCEtaRP=0.;
1451   Int_t countDiffFlowEtaRP=1;
1452   Double_t xFirstDiffFlowEtaRP=0.,yUpFirstDiffFlowEtaRP=0.;//needed to close up the mesh
1453   for(Int_t i=1;i<nBinsDiffFlowEtaRP+1;i++)
1454   {
1455    //setting up the upper limit of the mesh:
1456    valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(i);
1457    errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(i);   
1458    if(!(errorMCEtaRP==0.0))
1459    {    
1460     pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(i-0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP+errorMCEtaRP);
1461     if(xFirstDiffFlowEtaRP==0.)
1462     {
1463      xFirstDiffFlowEtaRP=(i-0.5)*binWidthEtaRP+dEtaMin;
1464      yUpFirstDiffFlowEtaRP=valueMCEtaRP+errorMCEtaRP;
1465     }
1466    } 
1467   }   
1468   for(Int_t i=nBinsDiffFlowEtaRP+1;i<2*nBinsDiffFlowEtaRP+1;i++)
1469   {
1470    //setting up the lower limit of the mesh:
1471    valueMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinContent(2*nBinsDiffFlowEtaRP+1-i);
1472    errorMCEtaRP = (mcepCommonHistRes->GetHistDiffFlowEtaRP())->GetBinError(2*nBinsDiffFlowEtaRP+1-i); 
1473    if(!(errorMCEtaRP==0.0))
1474    {      
1475     pMeshDiffFlowEtaRP->SetPoint(countDiffFlowEtaRP++,(2*nBinsDiffFlowEtaRP-i+0.5)*binWidthEtaRP+dEtaMin,valueMCEtaRP-errorMCEtaRP);
1476    }  
1477   }
1478   //closing the mesh area:
1479   pMeshDiffFlowEtaRP->SetPoint(2*nNonEmptyBinsDiffFlowEtaRP+1,xFirstDiffFlowEtaRP,yUpFirstDiffFlowEtaRP);   
1480   
1481   //setting the mesh style and color:               
1482   pMeshDiffFlowEtaRP->SetFillStyle(meshStyleDiffFlowEtaRP);
1483   pMeshDiffFlowEtaRP->SetFillColor(meshColorDiffFlowEtaRP);
1484  } 
1485  //----------------------------------------------------------------------------------
1486
1487
1488
1489
1490  //----------------------------------------------------------------------------------
1491  //POI:
1492  //cosmetics: Monte Carlo error bands for differential flow (Pt)
1493  TGraph* pMeshDiffFlowPtPOI = NULL;
1494  if(mcepCommonHistRes)
1495  {
1496   Int_t nBinsDiffFlowPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetNbinsX();
1497   Double_t binWidthPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinWidth(1);//assuming that all bins have the same width
1498
1499   //counting the non-empty bins: 
1500   Int_t nNonEmptyBinsDiffFlowPtPOI=0;
1501   for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1502   {
1503    if(!(mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i)==0.0))
1504    {
1505     nNonEmptyBinsDiffFlowPtPOI++;
1506    }
1507   }    
1508        
1509   pMeshDiffFlowPtPOI = new TGraph(2*nNonEmptyBinsDiffFlowPtPOI+1);
1510   
1511   Double_t valueMCPtPOI=0.,errorMCPtPOI=0.;
1512   Int_t countDiffFlowPtPOI=1;
1513   Double_t xFirstDiffFlowPtPOI=0.,yUpFirstDiffFlowPtPOI=0.;//needed to close up the mesh
1514   for(Int_t i=1;i<nBinsDiffFlowPtPOI+1;i++)
1515   {
1516    //setting up the upper limit of the mesh:
1517    valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(i);
1518    errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(i);   
1519    if(!(errorMCPtPOI==0.0))
1520    {    
1521     pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(i-0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI+errorMCPtPOI);
1522     if(xFirstDiffFlowPtPOI==0.)
1523     {
1524      xFirstDiffFlowPtPOI=(i-0.5)*binWidthPtPOI+dPtMin;
1525      yUpFirstDiffFlowPtPOI=valueMCPtPOI+errorMCPtPOI;
1526     }
1527    } 
1528   }   
1529   for(Int_t i=nBinsDiffFlowPtPOI+1;i<2*nBinsDiffFlowPtPOI+1;i++)
1530   {
1531    //setting up the lower limit of the mesh:
1532    valueMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinContent(2*nBinsDiffFlowPtPOI+1-i);
1533    errorMCPtPOI = (mcepCommonHistRes->GetHistDiffFlowPtPOI())->GetBinError(2*nBinsDiffFlowPtPOI+1-i); 
1534    if(!(errorMCPtPOI==0.0))
1535    {      
1536     pMeshDiffFlowPtPOI->SetPoint(countDiffFlowPtPOI++,(2*nBinsDiffFlowPtPOI-i+0.5)*binWidthPtPOI+dPtMin,valueMCPtPOI-errorMCPtPOI);
1537    }  
1538   }
1539   //closing the mesh area:
1540   pMeshDiffFlowPtPOI->SetPoint(2*nNonEmptyBinsDiffFlowPtPOI+1,xFirstDiffFlowPtPOI,yUpFirstDiffFlowPtPOI);   
1541   
1542   //setting the mesh style and color:               
1543   pMeshDiffFlowPtPOI->SetFillStyle(meshStyleDiffFlowPtPOI);
1544   pMeshDiffFlowPtPOI->SetFillColor(meshColorDiffFlowPtPOI);
1545  }
1546
1547  //cosmetics: Monte Carlo error bands for differential flow (Eta)
1548  TGraph* pMeshDiffFlowEtaPOI = NULL;
1549  if(mcepCommonHistRes)
1550  {
1551   Int_t nBinsDiffFlowEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetNbinsX();
1552   Double_t binWidthEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinWidth(1);//assuming that all bins have the same width
1553
1554   //counting the non-empty bins: 
1555   Int_t nNonEmptyBinsDiffFlowEtaPOI=0;
1556   for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1557   {
1558    if(!(mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i)==0.0))
1559    {
1560     nNonEmptyBinsDiffFlowEtaPOI++;
1561    }
1562   }    
1563        
1564   pMeshDiffFlowEtaPOI = new TGraph(2*nNonEmptyBinsDiffFlowEtaPOI+1);
1565   
1566   Double_t valueMCEtaPOI=0.,errorMCEtaPOI=0.;
1567   Int_t countDiffFlowEtaPOI=1;
1568   Double_t xFirstDiffFlowEtaPOI=0.,yUpFirstDiffFlowEtaPOI=0.;//needed to close up the mesh
1569   for(Int_t i=1;i<nBinsDiffFlowEtaPOI+1;i++)
1570   {
1571    //setting up the upper limit of the mesh:
1572    valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(i);
1573    errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(i);   
1574    if(!(errorMCEtaPOI==0.0))
1575    {    
1576     pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(i-0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI+errorMCEtaPOI);
1577     if(xFirstDiffFlowEtaPOI==0.)
1578     {
1579      xFirstDiffFlowEtaPOI=(i-0.5)*binWidthEtaPOI+dEtaMin;
1580      yUpFirstDiffFlowEtaPOI=valueMCEtaPOI+errorMCEtaPOI;
1581     }
1582    } 
1583   }   
1584   for(Int_t i=nBinsDiffFlowEtaPOI+1;i<2*nBinsDiffFlowEtaPOI+1;i++)
1585   {
1586    //setting up the lower limit of the mesh:
1587    valueMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinContent(2*nBinsDiffFlowEtaPOI+1-i);
1588    errorMCEtaPOI = (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->GetBinError(2*nBinsDiffFlowEtaPOI+1-i); 
1589    if(!(errorMCEtaPOI==0.0))
1590    {      
1591     pMeshDiffFlowEtaPOI->SetPoint(countDiffFlowEtaPOI++,(2*nBinsDiffFlowEtaPOI-i+0.5)*binWidthEtaPOI+dEtaMin,valueMCEtaPOI-errorMCEtaPOI);
1592    }  
1593   }
1594   //closing the mesh area:
1595   pMeshDiffFlowEtaPOI->SetPoint(2*nNonEmptyBinsDiffFlowEtaPOI+1,xFirstDiffFlowEtaPOI,yUpFirstDiffFlowEtaPOI);   
1596   
1597   //setting the mesh style and color:               
1598   pMeshDiffFlowEtaPOI->SetFillStyle(meshStyleDiffFlowEtaPOI);
1599   pMeshDiffFlowEtaPOI->SetFillColor(meshColorDiffFlowEtaPOI);
1600  }
1601  //----------------------------------------------------------------------------------
1602    
1603  //MCEP = Monte Carlo Event Plane
1604  Double_t avMultDiffFlowMCRP=0.;
1605  Double_t nEvtsDiffFlowMCRP=0;
1606  Double_t avMultDiffFlowMCPOI=0.;
1607  Double_t nEvtsDiffFlowMCPOI=0;
1608  if(fileMCEP)
1609  {
1610   if(mcepCommonHistRes)
1611   {
1612    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorMC);
1613    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleMC);
1614    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorMC);
1615    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleMC);
1616    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorMC);
1617    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleMC);
1618    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorMC);
1619    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleMC);
1620   } 
1621   if(mcepCommonHist)
1622   {
1623    avMultDiffFlowMCRP = (mcepCommonHist->GetHistMultRP())->GetMean();
1624    nEvtsDiffFlowMCRP  = (mcepCommonHist->GetHistMultRP())->GetEntries();
1625    avMultDiffFlowMCPOI = (mcepCommonHist->GetHistMultPOI())->GetMean();
1626    nEvtsDiffFlowMCPOI  = (mcepCommonHist->GetHistMultPOI())->GetEntries();      
1627   } 
1628  } 
1629  
1630  //SP = Scalar Product
1631  Double_t avMultDiffFlowSPRP=0.;
1632  Double_t nEvtsDiffFlowSPRP=0;
1633  Double_t avMultDiffFlowSPPOI=0.;
1634  Double_t nEvtsDiffFlowSPPOI=0;
1635  if(fileSP)
1636  {
1637   if(spCommonHistRes)
1638   {
1639    (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorSP);
1640    (spCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleSP);
1641    (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorSP);
1642    (spCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleSP);
1643    (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorSP);
1644    (spCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleSP);
1645    (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorSP);
1646    (spCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleSP);
1647   } 
1648   if(spCommonHist)
1649   {
1650    avMultDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetMean();
1651    nEvtsDiffFlowSPRP = (spCommonHist->GetHistMultRP())->GetEntries();
1652    avMultDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetMean();
1653    nEvtsDiffFlowSPPOI = (spCommonHist->GetHistMultPOI())->GetEntries();      
1654   } 
1655  } 
1656
1657  //GFC = Generating Function Cumulants
1658  Double_t avMultDiffFlowGFC=0.;//to be removed
1659  Double_t nEvtsDiffFlowGFC=0.;//to be removed
1660  Double_t avMultDiffFlowGFCRP=0.;
1661  Double_t nEvtsDiffFlowGFCRP=0.;
1662  Double_t avMultDiffFlowGFCPOI=0.;
1663  Double_t nEvtsDiffFlowGFCPOI=0.; 
1664  if(fileGFC)
1665  {
1666   if(gfcCommonHistRes2)
1667   {
1668    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC2);
1669    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC2);
1670    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC2);
1671    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC2);
1672    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC2);
1673    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC2);
1674    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC2);
1675    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC2);
1676   }
1677   if(gfcCommonHistRes4)
1678   { 
1679    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC4);
1680    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC4);
1681    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC4);
1682    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC4);
1683    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC4);
1684    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC4);
1685    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC4);
1686    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC4);         
1687   }
1688   if(gfcCommonHistRes6)
1689   { 
1690    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC6);
1691    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC6);
1692    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC6);
1693    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC6);
1694    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC6);
1695    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC6);
1696    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC6);
1697    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC6);
1698   }
1699   if(gfcCommonHistRes8)
1700   { 
1701    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorGFC8);
1702    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleGFC8);
1703    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorGFC8);
1704    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleGFC8);
1705    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorGFC8);
1706    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleGFC8);
1707    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorGFC8);
1708    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleGFC8);
1709   }
1710   if(gfcCommonHist)
1711   {
1712    avMultDiffFlowGFCRP = (gfcCommonHist->GetHistMultRP())->GetMean();   
1713    nEvtsDiffFlowGFCRP  = (gfcCommonHist->GetHistMultRP())->GetEntries();
1714    avMultDiffFlowGFCPOI = (gfcCommonHist->GetHistMultPOI())->GetMean();
1715    nEvtsDiffFlowGFCPOI  = (gfcCommonHist->GetHistMultPOI())->GetEntries();   
1716   } 
1717  }
1718   
1719  //QC = Q-cumulants
1720  Double_t avMultDiffFlowQC2RP=0.;
1721  Double_t nEvtsDiffFlowQC2RP=0.;
1722  Double_t avMultDiffFlowQC2POI=0.;
1723  Double_t nEvtsDiffFlowQC2POI=0.;
1724  Double_t avMultDiffFlowQC4RP=0.;
1725  Double_t nEvtsDiffFlowQC4RP=0.;
1726  Double_t avMultDiffFlowQC4POI=0.;
1727  Double_t nEvtsDiffFlowQC4POI=0.;
1728  Double_t avMultDiffFlowQC6RP=0.;
1729  Double_t nEvtsDiffFlowQC6RP=0.;
1730  Double_t avMultDiffFlowQC6POI=0.;
1731  Double_t nEvtsDiffFlowQC6POI=0.;
1732  Double_t avMultDiffFlowQC8RP=0.;
1733  Double_t nEvtsDiffFlowQC8RP=0.;
1734  Double_t avMultDiffFlowQC8POI=0.;
1735  Double_t nEvtsDiffFlowQC8POI=0.;
1736
1737  if(fileQC)
1738  {
1739   //QC{2}
1740   if(qcCommonHistRes2)
1741   {
1742    (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC2);
1743    (qcCommonHistRes2->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC2);
1744    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC2);
1745    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC2);
1746    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC2);
1747    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC2);
1748    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC2);
1749    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC2);
1750   }
1751   if(qcCommonHist2)
1752   {
1753    avMultDiffFlowQC2RP = (qcCommonHist2->GetHistMultRP())->GetMean();
1754    nEvtsDiffFlowQC2RP  = (qcCommonHist2->GetHistMultRP())->GetEntries();
1755    avMultDiffFlowQC2POI = (qcCommonHist2->GetHistMultPOI())->GetMean();
1756    nEvtsDiffFlowQC2POI  = (qcCommonHist2->GetHistMultPOI())->GetEntries();
1757   }
1758   //QC{4}
1759   if(qcCommonHistRes4)
1760   {
1761    (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC4);
1762    (qcCommonHistRes4->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC4);
1763    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC4);
1764    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC4);
1765    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC4);
1766    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC4);
1767    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC4);
1768    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC4);
1769   }
1770   if(qcCommonHist4)
1771   {
1772    avMultDiffFlowQC4RP = (qcCommonHist4->GetHistMultRP())->GetMean();
1773    nEvtsDiffFlowQC4RP  = (qcCommonHist4->GetHistMultRP())->GetEntries();
1774    avMultDiffFlowQC4POI = (qcCommonHist4->GetHistMultPOI())->GetMean();
1775    nEvtsDiffFlowQC4POI  = (qcCommonHist4->GetHistMultPOI())->GetEntries();
1776   }
1777   //QC{6}
1778   if(qcCommonHistRes6)
1779   {
1780    (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC6);
1781    (qcCommonHistRes6->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC6);
1782    (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC6);
1783    (qcCommonHistRes6->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC6);
1784    (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC6);
1785    (qcCommonHistRes6->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC6);
1786    (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC6);
1787    (qcCommonHistRes6->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC6);
1788   }
1789   if(qcCommonHist6)
1790   {
1791    avMultDiffFlowQC6RP = (qcCommonHist6->GetHistMultRP())->GetMean();
1792    nEvtsDiffFlowQC6RP  = (qcCommonHist6->GetHistMultRP())->GetEntries();
1793    avMultDiffFlowQC6POI = (qcCommonHist6->GetHistMultPOI())->GetMean();
1794    nEvtsDiffFlowQC6POI  = (qcCommonHist6->GetHistMultPOI())->GetEntries();
1795   }
1796   //QC{8}
1797   if(qcCommonHistRes8)
1798   {
1799    (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorQC8);
1800    (qcCommonHistRes8->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleQC8);
1801    (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorQC8);
1802    (qcCommonHistRes8->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleQC8);
1803    (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorQC8);
1804    (qcCommonHistRes8->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleQC8);
1805    (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorQC8);
1806    (qcCommonHistRes8->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleQC8);
1807   }
1808   if(qcCommonHist8)
1809   {
1810    avMultDiffFlowQC8RP = (qcCommonHist8->GetHistMultRP())->GetMean();
1811    nEvtsDiffFlowQC8RP  = (qcCommonHist8->GetHistMultRP())->GetEntries();
1812    avMultDiffFlowQC8POI = (qcCommonHist8->GetHistMultPOI())->GetMean();
1813    nEvtsDiffFlowQC8POI  = (qcCommonHist8->GetHistMultPOI())->GetEntries();
1814   }
1815  } 
1816
1817  //LYZ2 = Lee-Yang Zeros (2nd run)
1818  Double_t avMultDiffFlowLYZ2RP=0.;
1819  Double_t nEvtsDiffFlowLYZ2RP=0;
1820  Double_t avMultDiffFlowLYZ2POI=0.;
1821  Double_t nEvtsDiffFlowLYZ2POI=0;
1822  if(fileLYZ2)
1823  {
1824   if(lyz2CommonHistRes)
1825   {
1826    (lyz2CommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZ2);
1827    (lyz2CommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZ2);
1828    (lyz2CommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZ2);
1829    (lyz2CommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZ2);
1830    (lyz2CommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZ2);
1831    (lyz2CommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZ2);
1832    (lyz2CommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZ2);
1833    (lyz2CommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZ2);
1834   } 
1835   if(lyz2CommonHist)
1836   {
1837    avMultDiffFlowLYZ2RP = (lyz2CommonHist->GetHistMultRP())->GetMean();
1838    nEvtsDiffFlowLYZ2RP  = (lyz2CommonHist->GetHistMultRP())->GetEntries();
1839    avMultDiffFlowLYZ2POI = (lyz2CommonHist->GetHistMultPOI())->GetMean();
1840    nEvtsDiffFlowLYZ2POI  = (lyz2CommonHist->GetHistMultPOI())->GetEntries();
1841   } 
1842  } 
1843
1844  //LYZEP = Lee-Yang Zeros Event Plane
1845  Double_t avMultDiffFlowLYZEPRP=0.;
1846  Double_t nEvtsDiffFlowLYZEPRP=0;
1847  Double_t avMultDiffFlowLYZEPPOI=0.;
1848  Double_t nEvtsDiffFlowLYZEPPOI=0;
1849  if(fileLYZEP)
1850  {
1851   if(lyzepCommonHistRes)
1852   {
1853    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerColor(markerColorLYZEP);
1854    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->SetMarkerStyle(markerStyleLYZEP);
1855    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerColor(markerColorLYZEP);
1856    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->SetMarkerStyle(markerStyleLYZEP);
1857    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerColor(markerColorLYZEP);
1858    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->SetMarkerStyle(markerStyleLYZEP);
1859    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerColor(markerColorLYZEP);
1860    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->SetMarkerStyle(markerStyleLYZEP);
1861   } 
1862   if(lyzepCommonHist)
1863   {
1864    avMultDiffFlowLYZEPRP = (lyzepCommonHist->GetHistMultRP())->GetMean();
1865    nEvtsDiffFlowLYZEPRP  = (lyzepCommonHist->GetHistMultRP())->GetEntries();
1866    avMultDiffFlowLYZEPPOI = (lyzepCommonHist->GetHistMultPOI())->GetMean();
1867    nEvtsDiffFlowLYZEPPOI  = (lyzepCommonHist->GetHistMultPOI())->GetEntries();
1868   } 
1869  } 
1870
1871
1872  //----------------------------------------------------------------------------------
1873  //final drawing for differential flow (Pt, RP):
1874  Bool_t plotLYZEPPtRP = kTRUE;  
1875  if(plotDiffFlowPtRP)
1876  {
1877   TCanvas* diffFlowPtAllCanvasRP = new TCanvas("Differential Flow (Pt) of RP","Differential Flow (Pt) of RP ",1000,600);
1878   
1879   diffFlowPtAllCanvasRP->Divide(2,1);
1880  
1881   //1st pad is for plot:
1882   (diffFlowPtAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
1883  
1884   if(styleHistPt)
1885   {
1886    (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
1887    styleHistPt->Draw();
1888   }
1889   if(pMeshDiffFlowPtRP)
1890   {
1891    pMeshDiffFlowPtRP->Draw("LFSAME");
1892   }
1893  
1894   //MC 
1895   if(plotMCPtRP && mcepCommonHistRes)
1896   { 
1897    (mcepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1898   }
1899   //SP 
1900   if(plotSPPtRP && spCommonHistRes)
1901   { 
1902    (spCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1903   }
1904   //GFC
1905   if(plotGFC2PtRP && gfcCommonHistRes2)Pt
1906   { 
1907    (gfcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
1908   } 
1909   if(plotGFC4PtRP && gfcCommonHistRes4)
1910   { 
1911    (gfcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
1912   } 
1913   if(plotGFC6PtRP && gfcCommonHistRes6)
1914   { 
1915    (gfcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
1916   } 
1917   if(plotGFC8PtRP && gfcCommonHistRes8)
1918   { 
1919    (gfcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME"); 
1920   }    
1921   //QC
1922   if(plotQC2PtRP && qcCommonHistRes2)
1923   { 
1924    (qcCommonHistRes2->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1925   }
1926   if(plotQC4PtRP && qcCommonHistRes4)
1927   { 
1928    (qcCommonHistRes4->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1929   }
1930   if(plotQC6PtRP && qcCommonHistRes6)
1931   { 
1932    //(qcCommonHistRes6->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1933   }
1934   if(plotQC8PtRP && qcCommonHistRes8)
1935   { 
1936    //(qcCommonHistRes8->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1937   }
1938   //LYZ2
1939   if(plotLYZ2PtRP && lyz2CommonHistRes)
1940   { 
1941    (lyz2CommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1942   }
1943   //LYZEP
1944   if(plotLYZEPPtRP && lyzepCommonHistRes)
1945   { 
1946    (lyzepCommonHistRes->GetHistDiffFlowPtRP())->Draw("E1PSAME");
1947   }
1948
1949   //2nd pad is for legend:
1950   (diffFlowPtAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);  
1951     
1952   TLegend* legendDiffFlowPtRP = new TLegend(0.02,0.12,0.97,0.70);
1953   legendDiffFlowPtRP->SetTextFont(72);
1954   legendDiffFlowPtRP->SetTextSize(0.06);
1955  
1956   //legend's entries:Pt
1957   TString *entryDiffMCPtRP    = new TString("MC ....... ");
1958   TString *entryDiffSPPtRP    = new TString("SP ....... ");
1959   TString *entryDiffGFC2PtRP  = new TString("GFC{2} ... ");
1960   TString *entryDiffGFC4PtRP  = new TString("GFC{4} ... ");
1961   TString *entryDiffGFC6PtRP  = new TString("GFC{6} ... ");
1962   TString *entryDiffGFC8PtRP  = new TString("GFC{8} ... "); 
1963   TString *entryDiffQC2PtRP   = new TString("QC{2} .... ");
1964   TString *entryDiffQC4PtRP   = new TString("QC{4} .... ");
1965   TString *entryDiffQC6PtRP   = new TString("QC{6} .... ");
1966   TString *entryDiffQC8PtRP   = new TString("QC{8} .... ");
1967   TString *entryDiffLYZ2PtRP  = new TString("LYZ ...... ");
1968   TString *entryDiffLYZEPPtRP = new TString("LYZEP ... ");
1969   
1970   //MC
1971   if(mcepCommonHistRes)
1972   {
1973    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillStyle(meshStyleDiffFlowPtRP);
1974    (mcepCommonHistRes->GetHistDiffFlowPtRP())->SetFillColor(meshColorDiffFlowPtRP);
1975    entryDiffMCPtRP->Append("M = ");
1976    (*entryDiffMCPtRP)+=(Long_t)avMultDiffFlowMCRP;
1977    entryDiffMCPtRP->Append(", N = ");
1978    (*entryDiffMCPtRP)+=(Long_t)nEvtsDiffFlowMCRP; 
1979    legendDiffFlowPtRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffMCPtRP->Data(),"f");
1980   }
1981   
1982   //SP
1983   if(spCommonHistRes)
1984   {
1985    entryDiffSPPtRP->Append("M = ");
1986    (*entryDiffSPPtRP)+=(Long_t)avMultDiffFlowSPRP;
1987    entryDiffSPPtRP->Append(", N = ");
1988    (*entryDiffSPPtRP)+=(Long_t)nEvtsDiffFlowSPRP; 
1989    legendDiffFlowPtRP->AddEntry(spCommonHistRes->GetHistDiffFlowPtRP(),entryDiffSPPtRP->Data(),"p");
1990   }
1991
1992   //GFC
1993   if(plotGFC2PtRP && gfcCommonHistRes2)
1994   {
1995    entryDiffGFC2PtRP->Append("M = ");
1996    (*entryDiffGFC2PtRP)+=(Long_t)avMultDiffFlowGFCRP;
1997    entryDiffGFC2PtRP->Append(", N = ");
1998    (*entryDiffGFC2PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
1999    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffGFC2PtRP->Data(),"p");
2000   }
2001   if(plotGFC4PtRP && gfcCommonHistRes4)
2002   {
2003    entryDiffGFC4PtRP->Append("M = ");
2004    (*entryDiffGFC4PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2005    entryDiffGFC4PtRP->Append(", N = ");
2006    (*entryDiffGFC4PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2007    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffGFC4PtRP->Data(),"p");
2008   }
2009   if(plotGFC6PtRP && gfcCommonHistRes6)
2010   {
2011    entryDiffGFC6PtRP->Append("M = ");
2012    (*entryDiffGFC6PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2013    entryDiffGFC6PtRP->Append(", N = ");
2014    (*entryDiffGFC6PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2015    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffGFC6PtRP->Data(),"p");
2016   } 
2017   if(plotGFC8PtRP && gfcCommonHistRes8)
2018   {
2019    entryDiffGFC8PtRP->Append("M = ");
2020    (*entryDiffGFC8PtRP)+=(Long_t)avMultDiffFlowGFCRP;
2021    entryDiffGFC8PtRP->Append(", N = ");
2022    (*entryDiffGFC8PtRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2023    legendDiffFlowPtRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffGFC8PtRP->Data(),"p");
2024   }  
2025   
2026   //QC
2027   if(plotQC2PtRP && qcCommonHistRes2)
2028   {
2029    entryDiffQC2PtRP->Append("M = ");
2030    (*entryDiffQC2PtRP)+=(Long_t)avMultDiffFlowQC2RP;
2031    entryDiffQC2PtRP->Append(", N = ");
2032    (*entryDiffQC2PtRP)+=(Long_t)nEvtsDiffFlowQC2RP; 
2033    legendDiffFlowPtRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtRP(),entryDiffQC2PtRP->Data(),"p");
2034   }
2035   if(plotQC4PtRP && qcCommonHistRes4)
2036   {
2037    entryDiffQC4PtRP->Append("M = ");
2038    (*entryDiffQC4PtRP)+=(Long_t)avMultDiffFlowQC4RP;
2039    entryDiffQC4PtRP->Append(", N = ");
2040    (*entryDiffQC4PtRP)+=(Long_t)nEvtsDiffFlowQC4RP; 
2041    legendDiffFlowPtRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtRP(),entryDiffQC4PtRP->Data(),"p");
2042   }
2043   if(plotQC6PtRP && qcCommonHistRes6)
2044   {
2045    entryDiffQC6PtRP->Append("M = ");
2046    (*entryDiffQC6PtRP)+=(Long_t)avMultDiffFlowQC6RP;
2047    entryDiffQC6PtRP->Append(", N = ");
2048    (*entryDiffQC6PtRP)+=(Long_t)nEvtsDiffFlowQC6RP; 
2049    legendDiffFlowPtRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtRP(),entryDiffQC6PtRP->Data(),"p");
2050   }
2051   if(plotQC8PtRP && qcCommonHistRes8)
2052   {
2053    entryDiffQC8PtRP->Append("M = ");
2054    (*entryDiffQC8PtRP)+=(Long_t)avMultDiffFlowQC8RP;
2055    entryDiffQC8PtRP->Append(", N = ");
2056    (*entryDiffQC8PtRP)+=(Long_t)nEvtsDiffFlowQC8RP; 
2057    legendDiffFlowPtRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtRP(),entryDiffQC8PtRP->Data(),"p");
2058   }
2059   
2060   //LYZ2
2061   if(plotLYZ2PtRP && lyz2CommonHistRes)
2062   {
2063    entryDiffLYZ2PtRP->Append("M = ");
2064    (*entryDiffLYZ2PtRP)+=(Long_t)avMultDiffFlowLYZ2RP;
2065    entryDiffLYZ2PtRP->Append(", N = ");
2066    (*entryDiffLYZ2PtRP)+=(Long_t)nEvtsDiffFlowLYZ2RP; 
2067    legendDiffFlowPtRP->AddEntry(lyz2CommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZ2PtRP->Data(),"p");
2068   }
2069   
2070   //LYZEP
2071   if(plotLYZEPPtRP && lyzepCommonHistRes)
2072   {
2073    entryDiffLYZEPPtRP->Append("M = ");
2074    (*entryDiffLYZEPPtRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2075    entryDiffLYZEPPtRP->Append(", N = ");
2076    (*entryDiffLYZEPPtRP)+=(Long_t)nEvtsDiffFlowLYZEPRP; 
2077    legendDiffFlowPtRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtRP(),entryDiffLYZEPPtRP->Data(),"p");
2078   }
2079
2080   //drawing finally the legend in the 2nd pad:         
2081   if(textDefault) textDefault->Draw();
2082   
2083   if(legendDiffFlowPtRP)
2084   {
2085    legendDiffFlowPtRP->SetMargin(0.15);
2086    legendDiffFlowPtRP->Draw();
2087   }
2088  }// end of if(plotDiffFlowPtRP)
2089  //----------------------------------------------------------------------------------
2090  
2091  
2092  //----------------------------------------------------------------------------------
2093  //final drawing for differential flow (Eta, RP):
2094  if(plotDiffFlowEtaRP)
2095  {
2096   TCanvas* diffFlowEtaAllCanvasRP = new TCanvas("Differential Flow (Eta) of RP","Differential Flow (Eta) of RP ",1000,600);
2097  
2098   diffFlowEtaAllCanvasRP->Divide(2,1);
2099  
2100   //1st pad is for plot:
2101   (diffFlowEtaAllCanvasRP->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2102   
2103   if(styleHistEta)
2104   {
2105    (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
2106    styleHistEta->Draw();
2107   }
2108   if(pMeshDiffFlowEtaRP)
2109   {
2110    pMeshDiffFlowEtaRP->Draw("LFSAME");
2111   }
2112  
2113   //MC 
2114   if(plotMCEtaRP && mcepCommonHistRes)
2115   { 
2116    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2117   }
2118   //SP 
2119   if(plotSPEtaRP && spCommonHistRes)
2120   { 
2121    (spCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2122   }
2123   //GFC
2124   if(plotGFC2EtaRP && gfcCommonHistRes2)
2125   { 
2126    (gfcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2127   } 
2128   if(plotGFC4EtaRP && gfcCommonHistRes4)
2129   { 
2130    (gfcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2131   } 
2132   if(plotGFC6EtaRP && gfcCommonHistRes6)
2133   { 
2134    (gfcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2135   } 
2136   if(plotGFC8EtaRP && gfcCommonHistRes8)
2137   { 
2138    (gfcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME"); 
2139   }    
2140   //QC
2141   if(plotQC2EtaRP && qcCommonHistRes2)
2142   { 
2143    (qcCommonHistRes2->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2144   }
2145   if(plotQC4EtaRP && qcCommonHistRes4)
2146   { 
2147    (qcCommonHistRes4->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2148   }
2149   if(plotQC6EtaRP && qcCommonHistRes6)
2150   { 
2151    //(qcCommonHistRes6->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2152   }
2153   if(plotQC8EtaRP && qcCommonHistRes8)
2154   { 
2155    //(qcCommonHistRes8->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2156   }
2157   //LYZ2
2158   if(plotLYZ2EtaRP && lyz2CommonHistRes)
2159   { 
2160    (lyz2CommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2161   }
2162   //LYZEP
2163   if(plotLYZEPEtaRP && lyzepCommonHistRes)
2164   { 
2165    (lyzepCommonHistRes->GetHistDiffFlowEtaRP())->Draw("E1PSAME");
2166   }
2167  
2168   //2nd pad is for legend:
2169   (diffFlowEtaAllCanvasRP->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2170
2171   TLegend* legendDiffFlowEtaRP = new TLegend(0.02,0.12,0.97,0.70);
2172   legendDiffFlowEtaRP->SetTextFont(72);
2173   legendDiffFlowEtaRP->SetTextSize(0.06);
2174   
2175   //legend's entries:
2176   TString *entryDiffMCEtaRP   = new TString("MC ....... ");
2177   TString *entryDiffSPEtaRP   = new TString("SP ....... ");
2178   TString *entryDiffGFC2EtaRP = new TString("GFC{2} ... ");
2179   TString *entryDiffGFC4EtaRP = new TString("GFC{4} ... ");
2180   TString *entryDiffGFC6EtaRP = new TString("GFC{6} ... ");
2181   TString *entryDiffGFC8EtaRP = new TString("GFC{8} ... "); 
2182   TString *entryDiffQC2EtaRP  = new TString("QC{2} .... ");
2183   TString *entryDiffQC4EtaRP  = new TString("QC{4} .... ");
2184   TString *entryDiffQC6EtaRP  = new TString("QC{6} .... ");
2185   TString *entryDiffQC8EtaRP  = new TString("QC{8} .... ");
2186   TString *entryDiffLYZ2EtaRP = new TString("LYZ ...... ");
2187   TString *entryDiffLYZEPEtaRP = new TString("LYZEP ... ");
2188  
2189   //MC
2190   if(mcepCommonHistRes)
2191   {
2192    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillStyle(meshStyleDiffFlowEtaRP);
2193    (mcepCommonHistRes->GetHistDiffFlowEtaRP())->SetFillColor(meshColorDiffFlowEtaRP);
2194    entryDiffMCEtaRP->Append("M = ");
2195    (*entryDiffMCEtaRP)+=(Long_t)avMultDiffFlowMCRP;
2196    entryDiffMCEtaRP->Append(", N = ");
2197    (*entryDiffMCEtaRP)+=(Long_t)nEvtsDiffFlowMCRP; 
2198    legendDiffFlowEtaRP->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffMCEtaRP->Data(),"f");
2199   }
2200   
2201   //SP
2202   if(spCommonHistRes)
2203   {
2204    entryDiffSPEtaRP->Append("M = ");
2205    (*entryDiffSPEtaRP)+=(Long_t)avMultDiffFlowSPRP;
2206    entryDiffSPEtaRP->Append(", N = ");
2207    (*entryDiffSPEtaRP)+=(Long_t)nEvtsDiffFlowSPRP; 
2208    legendDiffFlowEtaRP->AddEntry(spCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffSPEtaRP->Data(),"p");
2209   }
2210  
2211   //GFC
2212   if(plotGFC2EtaRP && gfcCommonHistRes2)
2213   {
2214    entryDiffGFC2EtaRP->Append("M = ");
2215    (*entryDiffGFC2EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2216    entryDiffGFC2EtaRP->Append(", N = ");
2217    (*entryDiffGFC2EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2218    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffGFC2EtaRP->Data(),"p");
2219   }
2220   if(plotGFC4EtaRP && gfcCommonHistRes4)
2221   {
2222    entryDiffGFC4EtaRP->Append("M = ");
2223    (*entryDiffGFC4EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2224    entryDiffGFC4EtaRP->Append(", N = ");
2225    (*entryDiffGFC4EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2226    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffGFC4EtaRP->Data(),"p");
2227   }
2228   if(plotGFC6EtaRP && gfcCommonHistRes6)
2229   {
2230    entryDiffGFC6EtaRP->Append("M = ");
2231    (*entryDiffGFC6EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2232    entryDiffGFC6EtaRP->Append(", N = ");
2233    (*entryDiffGFC6EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2234    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffGFC6EtaRP->Data(),"p");
2235   } 
2236   if(plotGFC8EtaRP && gfcCommonHistRes8)
2237   {
2238    entryDiffGFC8EtaRP->Append("M = ");
2239    (*entryDiffGFC8EtaRP)+=(Long_t)avMultDiffFlowGFCRP;
2240    entryDiffGFC8EtaRP->Append(", N = ");
2241    (*entryDiffGFC8EtaRP)+=(Long_t)nEvtsDiffFlowGFCRP; 
2242    legendDiffFlowEtaRP->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffGFC8EtaRP->Data(),"p");
2243   }  
2244   
2245   //QC
2246   if(plotQC2EtaRP && qcCommonHistRes2)
2247   {
2248    entryDiffQC2EtaRP->Append("M = ");
2249    (*entryDiffQC2EtaRP)+=(Long_t)avMultDiffFlowQC2RP;
2250    entryDiffQC2EtaRP->Append(", N = ");
2251    (*entryDiffQC2EtaRP)+=(Long_t)nEvtsDiffFlowQC2RP; 
2252    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaRP(),entryDiffQC2EtaRP->Data(),"p");
2253   }
2254   if(plotQC4EtaRP && qcCommonHistRes4)
2255   {
2256    entryDiffQC4EtaRP->Append("M = ");
2257    (*entryDiffQC4EtaRP)+=(Long_t)avMultDiffFlowQC4RP;
2258    entryDiffQC4EtaRP->Append(", N = ");
2259    (*entryDiffQC4EtaRP)+=(Long_t)nEvtsDiffFlowQC4RP; 
2260    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaRP(),entryDiffQC4EtaRP->Data(),"p");
2261   }
2262   if(plotQC6EtaRP && qcCommonHistRes6)
2263   {
2264    entryDiffQC6EtaRP->Append("M = ");
2265    (*entryDiffQC6EtaRP)+=(Long_t)avMultDiffFlowQC6RP;
2266    entryDiffQC6EtaRP->Append(", N = ");
2267    (*entryDiffQC6EtaRP)+=(Long_t)nEvtsDiffFlowQC6RP; 
2268    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaRP(),entryDiffQC6EtaRP->Data(),"p");
2269   }
2270   if(plotQC8EtaRP && qcCommonHistRes8)
2271   {
2272    entryDiffQC8EtaRP->Append("M = ");
2273    (*entryDiffQC8EtaRP)+=(Long_t)avMultDiffFlowQC8RP;
2274    entryDiffQC8EtaRP->Append(", N = ");
2275    (*entryDiffQC8EtaRP)+=(Long_t)nEvtsDiffFlowQC8RP; 
2276    legendDiffFlowEtaRP->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaRP(),entryDiffQC8EtaRP->Data(),"p");
2277   }
2278  
2279   //LYZ2
2280   if(plotLYZ2EtaRP && lyz2CommonHistRes)
2281   {
2282    entryDiffLYZ2EtaRP->Append("M = ");
2283    (*entryDiffLYZ2EtaRP)+=(Long_t)avMultDiffFlowLYZ2RP;
2284    entryDiffLYZ2EtaRP->Append(", N = ");
2285    (*entryDiffLYZ2EtaRP)+=(Long_t)nEvtsDiffFlowLYZ2RP; 
2286    legendDiffFlowEtaRP->AddEntry(lyz2CommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZ2EtaRP->Data(),"p");
2287   }
2288   
2289   //LYZEP
2290   if(plotLYZEPEtaRP && lyzepCommonHistRes)
2291   {
2292    entryDiffLYZEPEtaRP->Append("M = ");
2293    (*entryDiffLYZEPEtaRP)+=(Long_t)avMultDiffFlowLYZEPRP;
2294    entryDiffLYZEPEtaRP->Append(", N = ");
2295    (*entryDiffLYZEPEtaRP)+=(Long_t)nEvtsDiffFlowLYZEPRP; 
2296    legendDiffFlowEtaRP->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaRP(),entryDiffLYZEPEtaRP->Data(),"p");
2297   }
2298
2299   //drawing finally the legend in the 2nd pad: 
2300   if(textDefault) textDefault->Draw();    
2301   
2302   if(legendDiffFlowEtaRP)
2303   {
2304    legendDiffFlowEtaRP->SetMargin(0.15);
2305    legendDiffFlowEtaRP->Draw();
2306   }
2307  }// end of if(plotDiffFlowEtaRP)
2308  //----------------------------------------------------------------------------------
2309
2310  //----------------------------------------------------------------------------------
2311  //final drawing for differential flow (Pt, POI):
2312  if(plotDiffFlowPtPOI)
2313  {
2314   TCanvas* diffFlowPtAllCanvasPOI = new TCanvas("Differential Flow (Pt) of POI","Differential Flow (Pt) of POI ",1000,600);
2315  
2316   diffFlowPtAllCanvasPOI->Divide(2,1);
2317  
2318   //1st pad is for plot:
2319   (diffFlowPtAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2320   
2321   if(styleHistPt)
2322   {
2323    (styleHistPt->GetYaxis())->SetRangeUser(-0.3,1.0);
2324    styleHistPt->Draw();
2325   }
2326   if(pMeshDiffFlowPtPOI)
2327   {
2328    pMeshDiffFlowPtPOI->Draw("LFSAME");
2329   }
2330  
2331   //MC 
2332   if(plotMCPtPOI && mcepCommonHistRes)
2333   { 
2334    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2335   }
2336   //SP 
2337   if(plotSPPtPOI && spCommonHistRes)
2338   { 
2339    (spCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2340   }
2341   //GFC
2342   if(plotGFC2PtPOI && gfcCommonHistRes2)
2343   { 
2344    (gfcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
2345   } 
2346   if(plotGFC4PtPOI && gfcCommonHistRes4)
2347   { 
2348    (gfcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
2349   } 
2350   if(plotGFC6PtPOI && gfcCommonHistRes6)
2351   { 
2352    (gfcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
2353   } 
2354   if(plotGFC8PtPOI && gfcCommonHistRes8)
2355   { 
2356    (gfcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME"); 
2357   }    
2358   //QC
2359   if(plotQC2PtPOI && qcCommonHistRes2)
2360   { 
2361    (qcCommonHistRes2->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2362   }
2363   if(plotQC4PtPOI && qcCommonHistRes4)
2364   { 
2365    (qcCommonHistRes4->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2366   }
2367   if(plotQC6PtPOI && qcCommonHistRes6)
2368   { kTRUE;
2369    //(qcCommonHistRes6->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2370   }
2371   if(plotQC8PtPOI && qcCommonHistRes8)
2372   { 
2373    //(qcCommonHistRes8->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2374   }
2375   //LYZ2
2376   if(plotLYZ2PtPOI && lyz2CommonHistRes)
2377   { 
2378    (lyz2CommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2379   }
2380   //LYZEP
2381   if(plotLYZEPPtPOI && lyzepCommonHistRes)
2382   { 
2383    (lyzepCommonHistRes->GetHistDiffFlowPtPOI())->Draw("E1PSAME");
2384   }
2385  
2386   //2nd pad is for legend:
2387   (diffFlowPtAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2388
2389   TLegend* legendDiffFlowPtPOI = new TLegend(0.02,0.12,0.97,0.70);
2390   legendDiffFlowPtPOI->SetTextFont(72);
2391   legendDiffFlowPtPOI->SetTextSize(0.06);
2392  
2393   //legend's entries:
2394   TString *entryDiffMCPtPOI   = new TString("MC ....... ");
2395   TString *entryDiffSPPtPOI   = new TString("SP ....... ");
2396   TString *entryDiffGFC2PtPOI = new TString("GFC{2} ... ");
2397   TString *entryDiffGFC4PtPOI = new TString("GFC{4} ... ");
2398   TString *entryDiffGFC6PtPOI = new TString("GFC{6} ... ");
2399   TString *entryDiffGFC8PtPOI = new TString("GFC{8} ... "); 
2400   TString *entryDiffQC2PtPOI  = new TString("QC{2} .... ");
2401   TString *entryDiffQC4PtPOI  = new TString("QC{4} .... ");
2402   TString *entryDiffQC6PtPOI  = new TString("QC{6} .... ");
2403   TString *entryDiffQC8PtPOI  = new TString("QC{8} .... ");
2404   TString *entryDiffLYZ2PtPOI = new TString("LYZ ...... ");
2405   TString *entryDiffLYZEPPtPOI = new TString("LYZEP ... "); 
2406  
2407   //MC
2408   if(mcepCommonHistRes)
2409   {
2410    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillStyle(meshStyleDiffFlowPtPOI);
2411    (mcepCommonHistRes->GetHistDiffFlowPtPOI())->SetFillColor(meshColorDiffFlowPtPOI);
2412    entryDiffMCPtPOI->Append("M = ");
2413    (*entryDiffMCPtPOI)+=(Long_t)avMultDiffFlowMCPOI;
2414    entryDiffMCPtPOI->Append(", N = ");
2415    (*entryDiffMCPtPOI)+=(Long_t)nEvtsDiffFlowMCPOI; 
2416    legendDiffFlowPtPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffMCPtPOI->Data(),"f");
2417   }
2418   
2419   //SP
2420   if(spCommonHistRes)
2421   {
2422    entryDiffSPPtPOI->Append("M = ");
2423    (*entryDiffSPPtPOI)+=(Long_t)avMultDiffFlowSPPOI;
2424    entryDiffSPPtPOI->Append(", N = ");
2425    (*entryDiffSPPtPOI)+=(Long_t)nEvtsDiffFlowSPPOI; 
2426    legendDiffFlowPtPOI->AddEntry(spCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffSPPtPOI->Data(),"p");
2427   }
2428
2429   //GFC
2430   if(plotGFC2PtPOI && gfcCommonHistRes2)
2431   {
2432    entryDiffGFC2PtPOI->Append("M = ");
2433    (*entryDiffGFC2PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2434    entryDiffGFC2PtPOI->Append(", N = ");
2435    (*entryDiffGFC2PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2436    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffGFC2PtPOI->Data(),"p");
2437   }
2438   if(plotGFC4PtPOI && gfcCommonHistRes4)
2439   {
2440    entryDiffGFC4PtPOI->Append("M = ");
2441    (*entryDiffGFC4PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2442    entryDiffGFC4PtPOI->Append(", N = ");
2443    (*entryDiffGFC4PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2444    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffGFC4PtPOI->Data(),"p");
2445   }
2446   if(plotGFC6PtPOI && gfcCommonHistRes6)
2447   {
2448    entryDiffGFC6PtPOI->Append("M = ");
2449    (*entryDiffGFC6PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2450    entryDiffGFC6PtPOI->Append(", N = ");
2451    (*entryDiffGFC6PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2452    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffGFC6PtPOI->Data(),"p");
2453   } 
2454   if(plotGFC8PtPOI && gfcCommonHistRes8)
2455   {
2456    entryDiffGFC8PtPOI->Append("M = ");
2457    (*entryDiffGFC8PtPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2458    entryDiffGFC8PtPOI->Append(", N = ");
2459    (*entryDiffGFC8PtPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2460    legendDiffFlowPtPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffGFC8PtPOI->Data(),"p");
2461   }  
2462   
2463   //QC
2464   if(plotQC2PtPOI && qcCommonHistRes2)
2465   {
2466    entryDiffQC2PtPOI->Append("M = ");
2467    (*entryDiffQC2PtPOI)+=(Long_t)avMultDiffFlowQC2POI;
2468    entryDiffQC2PtPOI->Append(", N = ");
2469    (*entryDiffQC2PtPOI)+=(Long_t)nEvtsDiffFlowQC2POI; 
2470    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowPtPOI(),entryDiffQC2PtPOI->Data(),"p");
2471   }
2472   if(plotQC4PtPOI && qcCommonHistRes4)
2473   {
2474    entryDiffQC4PtPOI->Append("M = ");
2475    (*entryDiffQC4PtPOI)+=(Long_t)avMultDiffFlowQC4POI;
2476    entryDiffQC4PtPOI->Append(", N = ");
2477    (*entryDiffQC4PtPOI)+=(Long_t)nEvtsDiffFlowQC4POI; 
2478    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowPtPOI(),entryDiffQC4PtPOI->Data(),"p");
2479   }
2480   if(plotQC6PtPOI && qcCommonHistRes6)
2481   {
2482    entryDiffQC6PtPOI->Append("M = ");
2483    (*entryDiffQC6PtPOI)+=(Long_t)avMultDiffFlowQC6POI;
2484    entryDiffQC6PtPOI->Append(", N = ");
2485    (*entryDiffQC6PtPOI)+=(Long_t)nEvtsDiffFlowQC6POI; 
2486    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowPtPOI(),entryDiffQC6PtPOI->Data(),"p");
2487   }
2488   if(plotQC8PtPOI && qcCommonHistRes8)
2489   {
2490    entryDiffQC8PtPOI->Append("M = ");
2491    (*entryDiffQC8PtPOI)+=(Long_t)avMultDiffFlowQC8POI;
2492    entryDiffQC8PtPOI->Append(", N = ");
2493    (*entryDiffQC8PtPOI)+=(Long_t)nEvtsDiffFlowQC8POI; 
2494    legendDiffFlowPtPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowPtPOI(),entryDiffQC8PtPOI->Data(),"p");
2495   }
2496  
2497   //LYZ2
2498   if(plotLYZ2PtPOI && lyz2CommonHistRes)
2499   {
2500    entryDiffLYZ2PtPOI->Append("M = ");
2501    (*entryDiffLYZ2PtPOI)+=(Long_t)avMultDiffFlowLYZ2POI;
2502    entryDiffLYZ2PtPOI->Append(", N = ");
2503    (*entryDiffLYZ2PtPOI)+=(Long_t)nEvtsDiffFlowLYZ2POI; 
2504    legendDiffFlowPtPOI->AddEntry(lyz2CommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZ2PtPOI->Data(),"p");
2505   }
2506   
2507   //LYZEP
2508   if(plotLYZEPPtPOI && lyzepCommonHistRes)
2509   {
2510    entryDiffLYZEPPtPOI->Append("M = ");
2511    (*entryDiffLYZEPPtPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
2512    entryDiffLYZEPPtPOI->Append(", N = ");
2513    (*entryDiffLYZEPPtPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI; 
2514    legendDiffFlowPtPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowPtPOI(),entryDiffLYZEPPtPOI->Data(),"p");
2515   }
2516
2517   //drawing finally the legend in the 2nd pad: 
2518   if(textDefault) textDefault->Draw();
2519           
2520   if(legendDiffFlowPtPOI)
2521   {
2522    legendDiffFlowPtPOI->SetMargin(0.15);
2523    legendDiffFlowPtPOI->Draw();
2524   }
2525  }//end of if(plotDiffFlowPtPOI)
2526  //----------------------------------------------------------------------------------
2527  
2528
2529  //----------------------------------------------------------------------------------
2530  //final drawing for differential flow (Eta, POI):
2531  if(plotDiffFlowEtaPOI)
2532  {
2533   TCanvas* diffFlowEtaAllCanvasPOI = new TCanvas("Differential Flow (Eta) of POI","Differential Flow (Eta) of POI ",1000,600);
2534  
2535   diffFlowEtaAllCanvasPOI->Divide(2,1);
2536   
2537   //1st pad is for plot:
2538   (diffFlowEtaAllCanvasPOI->cd(1))->SetPad(0.0,0.0,0.75,1.0);
2539  
2540   if(styleHistEta)
2541   {
2542    (styleHistEta->GetYaxis())->SetRangeUser(-0.3,1.0);
2543    styleHistEta->Draw();
2544   }
2545   if(pMeshDiffFlowEtaPOI)
2546   {
2547    pMeshDiffFlowEtaPOI->Draw("LFSAME");
2548   }
2549  
2550   //MC 
2551   if(plotMCEtaPOI && mcepCommonHistRes)
2552   { 
2553    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2554   }
2555   //SP 
2556   if(plotSPEtaPOI && spCommonHistRes)
2557   { 
2558    (spCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2559   }
2560   //GFC
2561   if(plotGFC2EtaPOI && gfcCommonHistRes2)
2562   { 
2563    (gfcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
2564   } 
2565   if(plotGFC4EtaPOI && gfcCommonHistRes4)
2566   { 
2567    (gfcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
2568   } 
2569   if(plotGFC6EtaPOI && gfcCommonHistRes6)
2570   { 
2571    (gfcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
2572   } 
2573   if(plotGFC8EtaPOI && gfcCommonHistRes8)
2574   { 
2575    (gfcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME"); 
2576   }    
2577   //QC
2578   if(plotQC2EtaPOI && qcCommonHistRes2)
2579   { 
2580    (qcCommonHistRes2->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2581   }
2582   if(plotQC4EtaPOI && qcCommonHistRes4)
2583   { 
2584    (qcCommonHistRes4->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2585   }
2586   if(plotQC6EtaPOI && qcCommonHistRes6)
2587   { 
2588    //(qcCommonHistRes6->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2589   }
2590   if(plotQC8EtaPOI && qcCommonHistRes8)
2591   { 
2592    //(qcCommonHistRes8->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2593   }
2594   //LYZ2
2595   if(plotLYZ2EtaPOI && lyz2CommonHistRes)
2596   { 
2597    (lyz2CommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2598   }
2599   //LYZEP
2600   if(plotLYZEPEtaPOI && lyzepCommonHistRes)
2601   { 
2602    (lyzepCommonHistRes->GetHistDiffFlowEtaPOI())->Draw("E1PSAME");
2603   }
2604  
2605   //2nd pad is for legend:
2606   (diffFlowEtaAllCanvasPOI->cd(2))->SetPad(0.75,0.0,1.0,1.0);
2607  
2608   TLegend* legendDiffFlowEtaPOI = new TLegend(0.02,0.12,0.97,0.70);
2609   legendDiffFlowEtaPOI->SetTextFont(72);
2610   legendDiffFlowEtaPOI->SetTextSize(0.06);
2611  
2612   //legend's entries:
2613   TString *entryDiffMCEtaPOI    = new TString("MC ....... ");
2614   TString *entryDiffSPEtaPOI    = new TString("SP ....... ");
2615   TString *entryDiffGFC2EtaPOI  = new TString("GFC{2} ... ");
2616   TString *entryDiffGFC4EtaPOI  = new TString("GFC{4} ... ");
2617   TString *entryDiffGFC6EtaPOI  = new TString("GFC{6} ... ");
2618   TString *entryDiffGFC8EtaPOI  = new TString("GFC{8} ... "); 
2619   TString *entryDiffQC2EtaPOI   = new TString("QC{2} .... ");
2620   TString *entryDiffQC4EtaPOI   = new TString("QC{4} .... ");
2621   TString *entryDiffQC6EtaPOI   = new TString("QC{6} .... ");
2622   TString *entryDiffQC8EtaPOI   = new TString("QC{8} .... ");
2623   TString *entryDiffLYZ2EtaPOI  = new TString("LYZ ...... ");
2624   TString *entryDiffLYZEPEtaPOI = new TString("LYZEP ... ");
2625  
2626   //MC
2627   if(mcepCommonHistRes)
2628   {
2629    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillStyle(meshStyleDiffFlowEtaPOI);
2630    (mcepCommonHistRes->GetHistDiffFlowEtaPOI())->SetFillColor(meshColorDiffFlowEtaPOI);
2631    entryDiffMCEtaPOI->Append("M = ");
2632    (*entryDiffMCEtaPOI)+=(Long_t)avMultDiffFlowMCPOI;
2633    entryDiffMCEtaPOI->Append(", N = ");
2634    (*entryDiffMCEtaPOI)+=(Long_t)nEvtsDiffFlowMCPOI; 
2635    legendDiffFlowEtaPOI->AddEntry(mcepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffMCEtaPOI->Data(),"f");
2636   }
2637   
2638   //SP
2639   if(spCommonHistRes)
2640   {
2641    entryDiffSPEtaPOI->Append("M = ");
2642    (*entryDiffSPEtaPOI)+=(Long_t)avMultDiffFlowSPPOI;
2643    entryDiffSPEtaPOI->Append(", N = ");
2644    (*entryDiffSPEtaPOI)+=(Long_t)nEvtsDiffFlowSPPOI; 
2645    legendDiffFlowEtaPOI->AddEntry(spCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffSPEtaPOI->Data(),"p");
2646   }
2647
2648   //GFC
2649   if(plotGFC2EtaPOI && gfcCommonHistRes2)
2650   {
2651    entryDiffGFC2EtaPOI->Append("M = ");
2652    (*entryDiffGFC2EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2653    entryDiffGFC2EtaPOI->Append(", N = ");
2654    (*entryDiffGFC2EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2655    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffGFC2EtaPOI->Data(),"p");
2656   }
2657   if(plotGFC4EtaPOI && gfcCommonHistRes4)
2658   {
2659    entryDiffGFC4EtaPOI->Append("M = ");
2660    (*entryDiffGFC4EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2661    entryDiffGFC4EtaPOI->Append(", N = ");
2662    (*entryDiffGFC4EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2663    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffGFC4EtaPOI->Data(),"p");
2664   }
2665   if(plotGFC6EtaPOI && gfcCommonHistRes6)
2666   {
2667    entryDiffGFC6EtaPOI->Append("M = ");
2668    (*entryDiffGFC6EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2669    entryDiffGFC6EtaPOI->Append(", N = ");
2670    (*entryDiffGFC6EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2671    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffGFC6EtaPOI->Data(),"p");
2672   } 
2673   if(plotGFC8EtaPOI && gfcCommonHistRes8)
2674   {
2675    entryDiffGFC8EtaPOI->Append("M = ");
2676    (*entryDiffGFC8EtaPOI)+=(Long_t)avMultDiffFlowGFCPOI;
2677    entryDiffGFC8EtaPOI->Append(", N = ");
2678    (*entryDiffGFC8EtaPOI)+=(Long_t)nEvtsDiffFlowGFCPOI; 
2679    legendDiffFlowEtaPOI->AddEntry(gfcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffGFC8EtaPOI->Data(),"p");
2680   }  
2681  
2682   //QC
2683   if(plotQC2EtaPOI && qcCommonHistRes2)
2684   {
2685    entryDiffQC2EtaPOI->Append("M = ");
2686    (*entryDiffQC2EtaPOI)+=(Long_t)avMultDiffFlowQC2POI;
2687    entryDiffQC2EtaPOI->Append(", N = ");
2688    (*entryDiffQC2EtaPOI)+=(Long_t)nEvtsDiffFlowQC2POI; 
2689    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes2->GetHistDiffFlowEtaPOI(),entryDiffQC2EtaPOI->Data(),"p");
2690   }
2691   if(plotQC4EtaPOI && qcCommonHistRes4)
2692   {
2693    entryDiffQC4EtaPOI->Append("M = ");
2694    (*entryDiffQC4EtaPOI)+=(Long_t)avMultDiffFlowQC4POI;
2695    entryDiffQC4EtaPOI->Append(", N = ");
2696    (*entryDiffQC4EtaPOI)+=(Long_t)nEvtsDiffFlowQC4POI; 
2697    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes4->GetHistDiffFlowEtaPOI(),entryDiffQC4EtaPOI->Data(),"p");
2698   }
2699   if(plotQC6EtaPOI && qcCommonHistRes6)
2700   {
2701    entryDiffQC6EtaPOI->Append("M = ");
2702    (*entryDiffQC6EtaPOI)+=(Long_t)avMultDiffFlowQC6POI;
2703    entryDiffQC6EtaPOI->Append(", N = ");
2704    (*entryDiffQC6EtaPOI)+=(Long_t)nEvtsDiffFlowQC6POI; 
2705    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes6->GetHistDiffFlowEtaPOI(),entryDiffQC6EtaPOI->Data(),"p");
2706   }
2707   if(plotQC8EtaPOI && qcCommonHistRes8)
2708   {
2709    entryDiffQC8EtaPOI->Append("M = ");
2710    (*entryDiffQC8EtaPOI)+=(Long_t)avMultDiffFlowQC8POI;
2711    entryDiffQC8EtaPOI->Append(", N = ");
2712    (*entryDiffQC8EtaPOI)+=(Long_t)nEvtsDiffFlowQC8POI; 
2713    legendDiffFlowEtaPOI->AddEntry(qcCommonHistRes8->GetHistDiffFlowEtaPOI(),entryDiffQC8EtaPOI->Data(),"p");
2714   }
2715  
2716   //LYZ2
2717   if(plotLYZ2EtaPOI && lyz2CommonHistRes)
2718   {
2719    entryDiffLYZ2EtaPOI->Append("M = ");
2720    (*entryDiffLYZ2EtaPOI)+=(Long_t)avMultDiffFlowLYZ2POI;
2721    entryDiffLYZ2EtaPOI->Append(", N = ");
2722    (*entryDiffLYZ2EtaPOI)+=(Long_t)nEvtsDiffFlowLYZ2POI; 
2723    legendDiffFlowEtaPOI->AddEntry(lyz2CommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZ2EtaPOI->Data(),"p");
2724   }
2725   
2726   //LYZEP
2727   if(plotLYZEPEtaPOI && lyzepCommonHistRes)
2728   {
2729    entryDiffLYZEPEtaPOI->Append("M = ");
2730    (*entryDiffLYZEPEtaPOI)+=(Long_t)avMultDiffFlowLYZEPPOI;
2731    entryDiffLYZEPEtaPOI->Append(", N = ");
2732    (*entryDiffLYZEPEtaPOI)+=(Long_t)nEvtsDiffFlowLYZEPPOI; 
2733    legendDiffFlowEtaPOI->AddEntry(lyzepCommonHistRes->GetHistDiffFlowEtaPOI(),entryDiffLYZEPEtaPOI->Data(),"p");
2734   }
2735
2736   //drawing finally the legend in the 2nd pad:   
2737   if(textDefault) textDefault->Draw();
2738       
2739   if(legendDiffFlowEtaPOI)
2740   {
2741    legendDiffFlowEtaPOI->SetMargin(0.15);
2742    legendDiffFlowEtaPOI->Draw();
2743   }
2744  }//end of if(plotDiffFlowEtaPOI)
2745  //----------------------------------------------------------------------------------
2746
2747
2748  //=====================================================================================
2749
2750 }
2751
2752 void LoadLibraries(const libModes mode) {
2753   
2754   //--------------------------------------
2755   // Load the needed libraries most of them already loaded by aliroot
2756   //--------------------------------------
2757   gSystem->Load("libTree.so");
2758   gSystem->Load("libGeom.so");
2759   gSystem->Load("libVMC.so");
2760   gSystem->Load("libXMLIO.so");
2761   gSystem->Load("libPhysics.so");
2762   
2763   //----------------------------------------------------------
2764   // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< 
2765   //----------------------------------------------------------
2766   if (mode==mLocal) {
2767     //--------------------------------------------------------
2768     // If you want to use already compiled libraries 
2769     // in the aliroot distribution
2770     //--------------------------------------------------------
2771
2772   //==================================================================================  
2773   //load needed libraries:
2774   gSystem->AddIncludePath("-I$ROOTSYS/include");
2775   gSystem->Load("libTree.so");
2776
2777   // for AliRoot
2778   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
2779   gSystem->Load("libANALYSIS.so");
2780   gSystem->Load("libPWG2flowCommon.so");
2781   cerr<<"libPWG2flowCommon.so loaded ..."<<endl;
2782   
2783   }
2784   
2785   else if (mode==mLocalSource) {
2786  
2787     // In root inline compile
2788
2789     
2790     // Output histosgrams
2791     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
2792     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
2793     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
2794     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
2795        
2796     cout << "finished loading macros!" << endl;  
2797     
2798   }  
2799   
2800 }
2801
2802