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