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