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