]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/macros/showSpread.C
renamed estimateSpread to showSpread
[u/mrichter/AliRoot.git] / PWG2 / FLOW / macros / showSpread.C
1 //type of analysis can be: ESD, AOD, MC, ESDMC0, ESDMC1
2 //const TString type = "ESD"; 
3
4 enum libModes {mLocal,mLocalSource};
5 //mLocal: Analyze data on your computer using aliroot
6 //mLocalSource: Analyze data on your computer using root + source files
7
8 //void compareFlowResults(TString type="",Int_t mode=mLocalSource)
9 void showSpread(const Int_t nRuns=10, TString type="",Int_t mode=mLocal)
10
11  // load needed libraries:                       
12  LoadPlotLibraries(mode);  
13  
14  // standard magic:
15  TString execDir(gSystem->pwd());  
16  TSystemDirectory* baseDir = new TSystemDirectory(".",execDir.Data());          
17  TList* dirList = baseDir->GetListOfFiles();
18  Int_t nDirs = dirList->GetEntries();
19  gSystem->cd(execDir);
20  
21  // array to store estimates of each method from different runs:
22  
23  // MCEP:
24  Double_t mcepValueNONAME[nRuns] = {0.}; 
25  Double_t mcepMaxValueNONAME = 0.;       
26  Double_t mcepMinValueNONAME = 1000.;   
27  
28  // SP:
29  Double_t spValueNONAME[nRuns] = {0.}; 
30  Double_t spMaxValueNONAME = 0.;       
31  Double_t spMinValueNONAME = 1000.;   
32  
33  // GFC{2}
34  Double_t gfc2ValueNONAME[nRuns] = {0.}; 
35  Double_t gfc2MaxValueNONAME = 0.;       
36  Double_t gfc2MinValueNONAME = 1000.;       
37
38  // GFC{4}
39  Double_t gfc4ValueNONAME[nRuns] = {0.}; 
40  Double_t gfc4MaxValueNONAME = 0.;       
41  Double_t gfc4MinValueNONAME = 1000.;       
42
43  // GFC{6}
44  Double_t gfc6ValueNONAME[nRuns] = {0.}; 
45  Double_t gfc6MaxValueNONAME = 0.;       
46  Double_t gfc6MinValueNONAME = 1000.;       
47
48  // GFC{8}
49  Double_t gfc8ValueNONAME[nRuns] = {0.}; 
50  Double_t gfc8MaxValueNONAME = 0.;       
51  Double_t gfc8MinValueNONAME = 1000.;       
52  
53  // QC{2}
54  Double_t qc2ValueNONAME[nRuns] = {0.}; 
55  Double_t qc2MaxValueNONAME = 0.;       
56  Double_t qc2MinValueNONAME = 1000.;       
57
58  // QC{4}
59  Double_t qc4ValueNONAME[nRuns] = {0.}; 
60  Double_t qc4MaxValueNONAME = 0.;       
61  Double_t qc4MinValueNONAME = 1000.;       
62
63  // QC{6}
64  Double_t qc6ValueNONAME[nRuns] = {0.}; 
65  Double_t qc6MaxValueNONAME = 0.;       
66  Double_t qc6MinValueNONAME = 1000.;       
67
68  // QC{8}
69  Double_t qc8ValueNONAME[nRuns] = {0.}; 
70  Double_t qc8MaxValueNONAME = 0.;       
71  Double_t qc8MinValueNONAME = 1000.; 
72  
73  // FQD:
74  Double_t fqdValueNONAME[nRuns] = {0.}; 
75  Double_t fqdMaxValueNONAME = 0.;       
76  Double_t fqdMinValueNONAME = 1000.;   
77  
78  // LYZ1:
79  Double_t lyz1ValueNONAME[nRuns] = {0.}; 
80  Double_t lyz1MaxValueNONAME = 0.;       
81  Double_t lyz1MinValueNONAME = 1000.;
82  
83  // LYZEP:
84  Double_t lyzepValueNONAME[nRuns] = {0.}; 
85  Double_t lyzepMaxValueNONAME = 0.;       
86  Double_t lyzepMinValueNONAME = 1000.;            
87              
88  Int_t counter = 0;
89   
90  for(Int_t iDir=0;iDir<nDirs;++iDir)
91  {
92   TSystemFile* presentDir = (TSystemFile*)dirList->At(iDir);
93   if(!presentDir || !presentDir->IsDirectory() || strcmp(presentDir->GetName(), ".") == 0 || 
94      strcmp(presentDir->GetName(), "..") == 0) continue; 
95           
96   if (counter >= nRuns) break;       
97                        
98   TString presentDirName(gSystem->pwd()); 
99   presentDirName += "/";
100   presentDirName += presentDir->GetName();
101   presentDirName += "/";
102    
103   // accessing the output .root files for each method:
104   // MCEP:     
105   TString fileNameMCEP = presentDirName;   
106   fileNameMCEP+="outputMCEPanalysis.root";
107   TFile *fileMCEP = TFile::Open(fileNameMCEP.Data(), "READ");      
108   TList *listMCEP = NULL;
109   AliFlowCommonHistResults *mcepCommonHistRes = NULL; 
110   
111   if(fileMCEP) 
112   {
113    fileMCEP->GetObject("cobjMCEP",listMCEP); 
114    if(listMCEP) 
115    {
116     mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listMCEP->FindObject("AliFlowCommonHistResultsMCEP")); 
117    }  
118   }
119   
120   if(mcepCommonHistRes && mcepCommonHistRes->GetHistIntFlow())
121   {
122    mcepValueNONAME[counter] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
123    if(mcepValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
124    {
125     if(mcepMaxValueNONAME < mcepValueNONAME[counter]) mcepMaxValueNONAME = mcepValueNONAME[counter]; 
126     if(mcepMinValueNONAME > mcepValueNONAME[counter]) mcepMinValueNONAME = mcepValueNONAME[counter]; 
127    } 
128   }
129   
130   // SP:     
131   TString fileNameSP = presentDirName;   
132   fileNameSP+="outputSPanalysis.root";
133   TFile *fileSP = TFile::Open(fileNameSP.Data(), "READ");      
134   TList *listSP = NULL;
135   AliFlowCommonHistResults *spCommonHistRes = NULL; 
136   
137   if(fileSP) 
138   {
139    fileSP->GetObject("cobjSP",listSP); 
140    if(listSP) 
141    {
142     spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listSP->FindObject("AliFlowCommonHistResultsSP")); 
143    }  
144   }
145   
146   if(spCommonHistRes && spCommonHistRes->GetHistIntFlow())
147   {
148    spValueNONAME[counter] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1);
149    if(spValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
150    {
151     if(spMaxValueNONAME < spValueNONAME[counter]) spMaxValueNONAME = spValueNONAME[counter]; 
152     if(spMinValueNONAME > spValueNONAME[counter]) spMinValueNONAME = spValueNONAME[counter]; 
153    } 
154   }
155   
156   // GFC:     
157   TString fileNameGFC = presentDirName;   
158   fileNameGFC+="outputGFCanalysis.root";
159   TFile *fileGFC = TFile::Open(fileNameGFC.Data(), "READ");      
160   TList *listGFC = NULL;
161   AliFlowCommonHistResults *gfc2CommonHistRes = NULL; 
162   AliFlowCommonHistResults *gfc4CommonHistRes = NULL; 
163   AliFlowCommonHistResults *gfc6CommonHistRes = NULL; 
164   AliFlowCommonHistResults *gfc8CommonHistRes = NULL; 
165  
166   if(fileGFC) 
167   {
168    fileGFC->GetObject("cobjGFC",listGFC); 
169    if(listGFC) 
170    {
171     gfc2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC")); 
172     gfc4CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults4thOrderGFC")); 
173     gfc6CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults6thOrderGFC")); 
174     gfc8CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults8thOrderGFC")); 
175    }  
176   }
177     
178   if(gfc2CommonHistRes && gfc2CommonHistRes->GetHistIntFlow())
179   {
180    gfc2ValueNONAME[counter] = (gfc2CommonHistRes->GetHistIntFlow())->GetBinContent(1);
181    if(gfc2ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
182    {
183     if(gfc2MaxValueNONAME < gfc2ValueNONAME[counter]) gfc2MaxValueNONAME = gfc2ValueNONAME[counter]; 
184     if(gfc2MinValueNONAME > gfc2ValueNONAME[counter]) gfc2MinValueNONAME = gfc2ValueNONAME[counter]; 
185    } 
186   }
187   
188   if(gfc4CommonHistRes && gfc4CommonHistRes->GetHistIntFlow())
189   {
190    gfc4ValueNONAME[counter] = (gfc4CommonHistRes->GetHistIntFlow())->GetBinContent(1);
191    if(gfc4ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
192    {
193     if(gfc4MaxValueNONAME < gfc4ValueNONAME[counter]) gfc4MaxValueNONAME = gfc4ValueNONAME[counter]; 
194     if(gfc4MinValueNONAME > gfc4ValueNONAME[counter]) gfc4MinValueNONAME = gfc4ValueNONAME[counter]; 
195    } 
196   }
197    
198   if(gfc6CommonHistRes && gfc6CommonHistRes->GetHistIntFlow())
199   {
200    gfc6ValueNONAME[counter] = (gfc6CommonHistRes->GetHistIntFlow())->GetBinContent(1);
201    if(gfc6ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
202    {
203     if(gfc6MaxValueNONAME < gfc6ValueNONAME[counter]) gfc6MaxValueNONAME = gfc6ValueNONAME[counter]; 
204     if(gfc6MinValueNONAME > gfc6ValueNONAME[counter]) gfc6MinValueNONAME = gfc6ValueNONAME[counter]; 
205    } 
206   }
207   
208   if(gfc8CommonHistRes && gfc8CommonHistRes->GetHistIntFlow())
209   {
210    gfc8ValueNONAME[counter] = (gfc8CommonHistRes->GetHistIntFlow())->GetBinContent(1);
211    if(gfc8ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
212    {
213     if(gfc8MaxValueNONAME < gfc8ValueNONAME[counter]) gfc8MaxValueNONAME = gfc8ValueNONAME[counter]; 
214     if(gfc8MinValueNONAME > gfc8ValueNONAME[counter]) gfc8MinValueNONAME = gfc8ValueNONAME[counter]; 
215    } 
216   } 
217                              
218   // QC:     
219   TString fileNameQC = presentDirName;   
220   fileNameQC+="outputQCanalysis.root";
221   TFile *fileQC = TFile::Open(fileNameQC.Data(), "READ");      
222   TList *listQC = NULL;
223   AliFlowCommonHistResults *qc2CommonHistRes = NULL; 
224   AliFlowCommonHistResults *qc4CommonHistRes = NULL; 
225   AliFlowCommonHistResults *qc6CommonHistRes = NULL; 
226   AliFlowCommonHistResults *qc8CommonHistRes = NULL; 
227  
228   if(fileQC) 
229   {
230    fileQC->GetObject("cobjQC",listQC); 
231    if(listQC) 
232    {
233     qc2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults2ndOrderQC")); 
234     qc4CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults4thOrderQC")); 
235     qc6CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults6thOrderQC")); 
236     qc8CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults8thOrderQC")); 
237    }  
238   }
239     
240   if(qc2CommonHistRes && qc2CommonHistRes->GetHistIntFlow())
241   {
242    qc2ValueNONAME[counter] = (qc2CommonHistRes->GetHistIntFlow())->GetBinContent(1);
243    if(qc2ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
244    {
245     if(qc2MaxValueNONAME < qc2ValueNONAME[counter]) qc2MaxValueNONAME = qc2ValueNONAME[counter]; 
246     if(qc2MinValueNONAME > qc2ValueNONAME[counter]) qc2MinValueNONAME = qc2ValueNONAME[counter]; 
247    } 
248   }
249   
250   if(qc4CommonHistRes && qc4CommonHistRes->GetHistIntFlow())
251   {
252    qc4ValueNONAME[counter] = (qc4CommonHistRes->GetHistIntFlow())->GetBinContent(1);
253    if(qc4ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
254    {
255     if(qc4MaxValueNONAME < qc4ValueNONAME[counter]) qc4MaxValueNONAME = qc4ValueNONAME[counter]; 
256     if(qc4MinValueNONAME > qc4ValueNONAME[counter]) qc4MinValueNONAME = qc4ValueNONAME[counter]; 
257    } 
258   }
259    
260   if(qc6CommonHistRes && qc6CommonHistRes->GetHistIntFlow())
261   {
262    qc6ValueNONAME[counter] = (qc6CommonHistRes->GetHistIntFlow())->GetBinContent(1);
263    if(qc6ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
264    {
265     if(qc6MaxValueNONAME < qc6ValueNONAME[counter]) qc6MaxValueNONAME = qc6ValueNONAME[counter]; 
266     if(qc6MinValueNONAME > qc6ValueNONAME[counter]) qc6MinValueNONAME = qc6ValueNONAME[counter]; 
267    } 
268   }
269   
270   if(qc8CommonHistRes && qc8CommonHistRes->GetHistIntFlow())
271   {
272    qc8ValueNONAME[counter] = (qc8CommonHistRes->GetHistIntFlow())->GetBinContent(1);
273    if(qc8ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
274    {
275     if(qc8MaxValueNONAME < qc8ValueNONAME[counter]) qc8MaxValueNONAME = qc8ValueNONAME[counter]; 
276     if(qc8MinValueNONAME > qc8ValueNONAME[counter]) qc8MinValueNONAME = qc8ValueNONAME[counter]; 
277    } 
278   } 
279   
280   // FQD:     
281   TString fileNameFQD = presentDirName;   
282   fileNameFQD+="outputFQDanalysis.root";
283   TFile *fileFQD = TFile::Open(fileNameFQD.Data(), "READ");      
284   TList *listFQD = NULL;
285   AliFlowCommonHistResults *fqdCommonHistRes = NULL; 
286   
287   if(fileFQD) 
288   {
289    fileFQD->GetObject("cobjFQD",listFQD); 
290    if(listFQD) 
291    {
292     fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listFQD->FindObject("AliFlowCommonHistResultsFQD")); 
293    }  
294   }
295   
296   if(fqdCommonHistRes && fqdCommonHistRes->GetHistIntFlow())
297   {
298    fqdValueNONAME[counter] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1);
299    if(fqdValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
300    {
301     if(fqdMaxValueNONAME < fqdValueNONAME[counter]) fqdMaxValueNONAME = fqdValueNONAME[counter]; 
302     if(fqdMinValueNONAME > fqdValueNONAME[counter]) fqdMinValueNONAME = fqdValueNONAME[counter]; 
303    } 
304   }
305   
306   // LYZ1:     
307   TString fileNameLYZ1 = presentDirName;   
308   fileNameLYZ1+="outputLYZ1analysis.root";
309   TFile *fileLYZ1 = TFile::Open(fileNameLYZ1.Data(), "READ");      
310   TList *listLYZ1 = NULL;
311   AliFlowCommonHistResults *lyz1CommonHistRes = NULL; 
312   
313   if(fileLYZ1) 
314   {
315    fileLYZ1->GetObject("cobjLYZ1",listLYZ1); 
316    if(listLYZ1) 
317    {
318     lyz1CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listLYZ1->FindObject("AliFlowCommonHistResultsLYZ1")); 
319    }  
320   }
321   
322   if(lyz1CommonHistRes && lyz1CommonHistRes->GetHistIntFlow())
323   {
324    lyz1ValueNONAME[counter] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinContent(1);
325    if(lyz1ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
326    {
327     if(lyz1MaxValueNONAME < lyz1ValueNONAME[counter]) lyz1MaxValueNONAME = lyz1ValueNONAME[counter]; 
328     if(lyz1MinValueNONAME > lyz1ValueNONAME[counter]) lyz1MinValueNONAME = lyz1ValueNONAME[counter]; 
329    } 
330   }
331   
332   // LYZEP:     
333   TString fileNameLYZEP = presentDirName;   
334   fileNameLYZEP+="outputLYZEPanalysis.root";
335   TFile *fileLYZEP = TFile::Open(fileNameLYZEP.Data(), "READ");      
336   TList *listLYZEP = NULL;
337   AliFlowCommonHistResults *lyzepCommonHistRes = NULL; 
338   
339   if(fileLYZEP) 
340   {
341    fileLYZEP->GetObject("cobjLYZEP",listLYZEP); 
342    if(listLYZEP) 
343    {
344     lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listLYZEP->FindObject("AliFlowCommonHistResultsLYZEP")); 
345    }  
346   }
347   
348   if(lyzepCommonHistRes && lyzepCommonHistRes->GetHistIntFlow())
349   {
350    lyzepValueNONAME[counter] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
351    if(lyzepValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
352    {
353     if(lyzepMaxValueNONAME < lyzepValueNONAME[counter]) lyzepMaxValueNONAME = lyzepValueNONAME[counter]; 
354     if(lyzepMinValueNONAME > lyzepValueNONAME[counter]) lyzepMinValueNONAME = lyzepValueNONAME[counter]; 
355    } 
356   }
357   
358   counter++;
359   
360  } // end of for(Int_t iDir=0;iDir<nDirs;++iDir)
361  
362  
363  
364
365  
366  
367  //removing the title and stat. box from all histograms:
368  //gStyle->SetOptTitle(0);
369  gStyle->SetOptStat(0);  
370  
371  // box width:
372  const Double_t boxWidth = 0.25;
373   
374  // the number of different methods:
375  const Int_t nMethods = 13;
376  
377  // the number of runs:
378  const Int_t nPoints = counter;
379    
380  // booking the style histogram for the integrated flow results from all methods for NONAME, RPs and POIs:
381  // assigning bin numbers to methods:
382  Int_t binMCEP = 1; 
383  Int_t binSP = 2;
384  Int_t binGFC2 = 3; 
385  Int_t binGFC4 = 5; 
386  Int_t binGFC6 = 7; 
387  Int_t binGFC8 = 9; 
388  Int_t binQC2 = 4; 
389  Int_t binQC4 = 6; 
390  Int_t binQC6 = 8; 
391  Int_t binQC8 = 10; 
392  Int_t binFQD = 11; 
393  Int_t binLYZ1 = 12; 
394  Int_t binLYZEP = 13; 
395  
396  TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods);      
397  //intFlowAll->SetLabelSize(0.036,"X");
398  //intFlowAll->SetLabelSize(0.036,"Y");
399  //intFlowAll->SetMarkerStyle(markerStyle);
400  //intFlowAll->SetMarkerColor(markerColor);
401  (intFlowAll->GetXaxis())->SetBinLabel(binMCEP,"v_{2}{MC}");
402  (intFlowAll->GetXaxis())->SetBinLabel(binSP,"v_{2}{SP}");
403  (intFlowAll->GetXaxis())->SetBinLabel(binGFC2,"v_{2}{2,GFC}");
404  (intFlowAll->GetXaxis())->SetBinLabel(binQC2,"v_{2}{2,QC}");
405  (intFlowAll->GetXaxis())->SetBinLabel(binGFC4,"v_{2}{4,GFC}");
406  (intFlowAll->GetXaxis())->SetBinLabel(binQC4,"v_{2}{4,QC}");
407  (intFlowAll->GetXaxis())->SetBinLabel(binGFC6,"v_{2}{6,GFC}");
408  (intFlowAll->GetXaxis())->SetBinLabel(binQC6,"v_{2}{6,QC}");
409  (intFlowAll->GetXaxis())->SetBinLabel(binGFC8,"v_{2}{8,GFC}");
410  (intFlowAll->GetXaxis())->SetBinLabel(binQC8,"v_{2}{8,QC}");
411  (intFlowAll->GetXaxis())->SetBinLabel(binFQD,"v_{2}{FQD}");
412  (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1,"v_{2}{LYZ}");
413  (intFlowAll->GetXaxis())->SetBinLabel(binLYZEP,"v_{2}{LYZEP}");
414   
415  
416  
417  //=============================================================================
418  //                             NONAME 
419  //=============================================================================
420    
421  TH1D *intFlowNONAME = new TH1D(*intFlowAll); 
422  
423  Double_t mcepNONAME[nPoints] = {0.};  
424  Double_t spNONAME[nPoints] = {0.}; 
425  Double_t gfc2NONAME[nPoints] = {0.};
426  Double_t gfc4NONAME[nPoints] = {0.};
427  Double_t gfc6NONAME[nPoints] = {0.};
428  Double_t gfc8NONAME[nPoints] = {0.};
429  Double_t qc2NONAME[nPoints] = {0.};
430  Double_t qc4NONAME[nPoints] = {0.};
431  Double_t qc6NONAME[nPoints] = {0.};
432  Double_t qc8NONAME[nPoints] = {0.};
433  Double_t fqdNONAME[nPoints] = {0.}; 
434  Double_t lyz1NONAME[nPoints] = {0.}; 
435  Double_t lyzepNONAME[nPoints] = {0.}; 
436  
437  for(Int_t i=0;i<nPoints;i++)
438  {
439   mcepNONAME[i]=binMCEP-0.5;
440   spNONAME[i]=binSP-0.5;
441   gfc2NONAME[i]=binGFC2-0.5;
442   gfc4NONAME[i]=binGFC4-0.5;
443   gfc6NONAME[i]=binGFC6-0.5;
444   gfc8NONAME[i]=binGFC8-0.5;
445   qc2NONAME[i]=binQC2-0.5;
446   qc4NONAME[i]=binQC4-0.5;
447   qc6NONAME[i]=binQC6-0.5;
448   qc8NONAME[i]=binQC8-0.5;
449   fqdNONAME[i]=binFQD-0.5;
450   lyz1NONAME[i]=binLYZ1-0.5;
451   lyzepNONAME[i]=binLYZEP-0.5;
452  }
453  
454  // MCEP:
455  TGraph* mcepTGraphNONAME = new TGraph(nPoints, mcepNONAME, mcepValueNONAME);
456  mcepTGraphNONAME->SetMarkerStyle(21);
457  mcepTGraphNONAME->SetMarkerColor(kBlack); 
458  
459  TGraph *mcepBoxNONAME = new TGraph(5);
460  mcepBoxNONAME->SetPoint(1,(binMCEP-0.5)-boxWidth,mcepMinValueNONAME);
461  mcepBoxNONAME->SetPoint(2,(binMCEP-0.5)+boxWidth,mcepMinValueNONAME);
462  mcepBoxNONAME->SetPoint(3,(binMCEP-0.5)+boxWidth,mcepMaxValueNONAME);
463  mcepBoxNONAME->SetPoint(4,(binMCEP-0.5)-boxWidth,mcepMaxValueNONAME);
464  mcepBoxNONAME->SetPoint(5,(binMCEP-0.5)-boxWidth,mcepMinValueNONAME);    
465  mcepBoxNONAME->SetFillStyle(1001);
466  mcepBoxNONAME->SetFillColor(kGray);
467  
468  // SP:
469  TGraph* spTGraphNONAME = new TGraph(nPoints, spNONAME, spValueNONAME);
470  spTGraphNONAME->SetMarkerStyle(21);
471  spTGraphNONAME->SetMarkerColor(kViolet+3); 
472  
473  TGraph *spBoxNONAME = new TGraph(5);
474  spBoxNONAME->SetPoint(1,(binSP-0.5)-boxWidth,spMinValueNONAME);
475  spBoxNONAME->SetPoint(2,(binSP-0.5)+boxWidth,spMinValueNONAME);
476  spBoxNONAME->SetPoint(3,(binSP-0.5)+boxWidth,spMaxValueNONAME);
477  spBoxNONAME->SetPoint(4,(binSP-0.5)-boxWidth,spMaxValueNONAME);
478  spBoxNONAME->SetPoint(5,(binSP-0.5)-boxWidth,spMinValueNONAME);    
479  spBoxNONAME->SetFillStyle(1001);
480  spBoxNONAME->SetFillColor(kViolet-9);
481  
482  // GFC{2}:
483  TGraph* gfc2TGraphNONAME = new TGraph(nPoints, gfc2NONAME, gfc2ValueNONAME);
484  gfc2TGraphNONAME->SetMarkerStyle(21);
485  gfc2TGraphNONAME->SetMarkerColor(kBlue); 
486  
487  TGraph *gfc2BoxNONAME = new TGraph(5);
488  gfc2BoxNONAME->SetPoint(1,(binGFC2-0.5)-boxWidth,gfc2MinValueNONAME);
489  gfc2BoxNONAME->SetPoint(2,(binGFC2-0.5)+boxWidth,gfc2MinValueNONAME);
490  gfc2BoxNONAME->SetPoint(3,(binGFC2-0.5)+boxWidth,gfc2MaxValueNONAME);
491  gfc2BoxNONAME->SetPoint(4,(binGFC2-0.5)-boxWidth,gfc2MaxValueNONAME);
492  gfc2BoxNONAME->SetPoint(5,(binGFC2-0.5)-boxWidth,gfc2MinValueNONAME);    
493  gfc2BoxNONAME->SetFillStyle(1001);
494  gfc2BoxNONAME->SetFillColor(kBlue-10);
495  
496  // GFC{4}:
497  TGraph* gfc4TGraphNONAME = new TGraph(nPoints, gfc4NONAME, gfc4ValueNONAME);
498  gfc4TGraphNONAME->SetMarkerStyle(21);
499  gfc4TGraphNONAME->SetMarkerColor(kBlue); 
500  
501  TGraph *gfc4BoxNONAME = new TGraph(5);
502  gfc4BoxNONAME->SetPoint(1,(binGFC4-0.5)-boxWidth,gfc4MinValueNONAME);
503  gfc4BoxNONAME->SetPoint(2,(binGFC4-0.5)+boxWidth,gfc4MinValueNONAME);
504  gfc4BoxNONAME->SetPoint(3,(binGFC4-0.5)+boxWidth,gfc4MaxValueNONAME);
505  gfc4BoxNONAME->SetPoint(4,(binGFC4-0.5)-boxWidth,gfc4MaxValueNONAME);
506  gfc4BoxNONAME->SetPoint(5,(binGFC4-0.5)-boxWidth,gfc4MinValueNONAME);    
507  gfc4BoxNONAME->SetFillStyle(1001);
508  gfc4BoxNONAME->SetFillColor(kBlue-10);
509
510  // GFC{6}:
511  TGraph* gfc6TGraphNONAME = new TGraph(nPoints, gfc6NONAME, gfc6ValueNONAME);
512  gfc6TGraphNONAME->SetMarkerStyle(21);
513  gfc6TGraphNONAME->SetMarkerColor(kBlue); 
514  
515  TGraph *gfc6BoxNONAME = new TGraph(5);
516  gfc6BoxNONAME->SetPoint(1,(binGFC6-0.5)-boxWidth,gfc6MinValueNONAME);
517  gfc6BoxNONAME->SetPoint(2,(binGFC6-0.5)+boxWidth,gfc6MinValueNONAME);
518  gfc6BoxNONAME->SetPoint(3,(binGFC6-0.5)+boxWidth,gfc6MaxValueNONAME);
519  gfc6BoxNONAME->SetPoint(4,(binGFC6-0.5)-boxWidth,gfc6MaxValueNONAME);
520  gfc6BoxNONAME->SetPoint(5,(binGFC6-0.5)-boxWidth,gfc6MinValueNONAME);    
521  gfc6BoxNONAME->SetFillStyle(1001);
522  gfc6BoxNONAME->SetFillColor(kBlue-10);
523
524  // GFC{8}:
525  TGraph* gfc8TGraphNONAME = new TGraph(nPoints, gfc8NONAME, gfc8ValueNONAME);
526  gfc8TGraphNONAME->SetMarkerStyle(21);
527  gfc8TGraphNONAME->SetMarkerColor(kBlue); 
528  
529  TGraph *gfc8BoxNONAME = new TGraph(5);
530  gfc8BoxNONAME->SetPoint(1,(binGFC8-0.5)-boxWidth,gfc8MinValueNONAME);
531  gfc8BoxNONAME->SetPoint(2,(binGFC8-0.5)+boxWidth,gfc8MinValueNONAME);
532  gfc8BoxNONAME->SetPoint(3,(binGFC8-0.5)+boxWidth,gfc8MaxValueNONAME);
533  gfc8BoxNONAME->SetPoint(4,(binGFC8-0.5)-boxWidth,gfc8MaxValueNONAME);
534  gfc8BoxNONAME->SetPoint(5,(binGFC8-0.5)-boxWidth,gfc8MinValueNONAME);    
535  gfc8BoxNONAME->SetFillStyle(1001);
536  gfc8BoxNONAME->SetFillColor(kBlue-10);
537  
538  // QC{2}:
539  TGraph* qc2TGraphNONAME = new TGraph(nPoints, qc2NONAME, qc2ValueNONAME);
540  qc2TGraphNONAME->SetMarkerStyle(21);
541  qc2TGraphNONAME->SetMarkerColor(kRed); 
542  
543  TGraph *qc2BoxNONAME = new TGraph(5);
544  qc2BoxNONAME->SetPoint(1,(binQC2-0.5)-boxWidth,qc2MinValueNONAME);
545  qc2BoxNONAME->SetPoint(2,(binQC2-0.5)+boxWidth,qc2MinValueNONAME);
546  qc2BoxNONAME->SetPoint(3,(binQC2-0.5)+boxWidth,qc2MaxValueNONAME);
547  qc2BoxNONAME->SetPoint(4,(binQC2-0.5)-boxWidth,qc2MaxValueNONAME);
548  qc2BoxNONAME->SetPoint(5,(binQC2-0.5)-boxWidth,qc2MinValueNONAME);    
549  qc2BoxNONAME->SetFillStyle(1001);
550  qc2BoxNONAME->SetFillColor(kRed-10);
551  
552  // QC{4}:
553  TGraph* qc4TGraphNONAME = new TGraph(nPoints, qc4NONAME, qc4ValueNONAME);
554  qc4TGraphNONAME->SetMarkerStyle(21);
555  qc4TGraphNONAME->SetMarkerColor(kRed); 
556  
557  TGraph *qc4BoxNONAME = new TGraph(5);
558  qc4BoxNONAME->SetPoint(1,(binQC4-0.5)-boxWidth,qc4MinValueNONAME);
559  qc4BoxNONAME->SetPoint(2,(binQC4-0.5)+boxWidth,qc4MinValueNONAME);
560  qc4BoxNONAME->SetPoint(3,(binQC4-0.5)+boxWidth,qc4MaxValueNONAME);
561  qc4BoxNONAME->SetPoint(4,(binQC4-0.5)-boxWidth,qc4MaxValueNONAME);
562  qc4BoxNONAME->SetPoint(5,(binQC4-0.5)-boxWidth,qc4MinValueNONAME);    
563  qc4BoxNONAME->SetFillStyle(1001);
564  qc4BoxNONAME->SetFillColor(kRed-10);
565
566  // QC{6}:
567  TGraph* qc6TGraphNONAME = new TGraph(nPoints, qc6NONAME, qc6ValueNONAME);
568  qc6TGraphNONAME->SetMarkerStyle(21);
569  qc6TGraphNONAME->SetMarkerColor(kRed); 
570  
571  TGraph *qc6BoxNONAME = new TGraph(5);
572  qc6BoxNONAME->SetPoint(1,(binQC6-0.5)-boxWidth,qc6MinValueNONAME);
573  qc6BoxNONAME->SetPoint(2,(binQC6-0.5)+boxWidth,qc6MinValueNONAME);
574  qc6BoxNONAME->SetPoint(3,(binQC6-0.5)+boxWidth,qc6MaxValueNONAME);
575  qc6BoxNONAME->SetPoint(4,(binQC6-0.5)-boxWidth,qc6MaxValueNONAME);
576  qc6BoxNONAME->SetPoint(5,(binQC6-0.5)-boxWidth,qc6MinValueNONAME);    
577  qc6BoxNONAME->SetFillStyle(1001);
578  qc6BoxNONAME->SetFillColor(kRed-10);
579
580  // QC{8}:
581  TGraph* qc8TGraphNONAME = new TGraph(nPoints, qc8NONAME, qc8ValueNONAME);
582  qc8TGraphNONAME->SetMarkerStyle(21);
583  qc8TGraphNONAME->SetMarkerColor(kRed); 
584  
585  TGraph *qc8BoxNONAME = new TGraph(5);
586  qc8BoxNONAME->SetPoint(1,(binQC8-0.5)-boxWidth,qc8MinValueNONAME);
587  qc8BoxNONAME->SetPoint(2,(binQC8-0.5)+boxWidth,qc8MinValueNONAME);
588  qc8BoxNONAME->SetPoint(3,(binQC8-0.5)+boxWidth,qc8MaxValueNONAME);
589  qc8BoxNONAME->SetPoint(4,(binQC8-0.5)-boxWidth,qc8MaxValueNONAME);
590  qc8BoxNONAME->SetPoint(5,(binQC8-0.5)-boxWidth,qc8MinValueNONAME);    
591  qc8BoxNONAME->SetFillStyle(1001);
592  qc8BoxNONAME->SetFillColor(kRed-10);
593  
594  // FQD:
595  TGraph* fqdTGraphNONAME = new TGraph(nPoints, fqdNONAME, fqdValueNONAME);
596  fqdTGraphNONAME->SetMarkerStyle(21);
597  fqdTGraphNONAME->SetMarkerColor(kOrange+7); 
598  
599  TGraph *fqdBoxNONAME = new TGraph(5);
600  fqdBoxNONAME->SetPoint(1,(binFQD-0.5)-boxWidth,fqdMinValueNONAME);
601  fqdBoxNONAME->SetPoint(2,(binFQD-0.5)+boxWidth,fqdMinValueNONAME);
602  fqdBoxNONAME->SetPoint(3,(binFQD-0.5)+boxWidth,fqdMaxValueNONAME);
603  fqdBoxNONAME->SetPoint(4,(binFQD-0.5)-boxWidth,fqdMaxValueNONAME);
604  fqdBoxNONAME->SetPoint(5,(binFQD-0.5)-boxWidth,fqdMinValueNONAME);    
605  fqdBoxNONAME->SetFillStyle(1001);
606  fqdBoxNONAME->SetFillColor(kOrange-9);
607  
608  // LYZ1:
609  TGraph* lyz1TGraphNONAME = new TGraph(nPoints, lyz1NONAME, lyz1ValueNONAME);
610  lyz1TGraphNONAME->SetMarkerStyle(21);
611  lyz1TGraphNONAME->SetMarkerColor(kYellow+3); 
612  
613  TGraph *lyz1BoxNONAME = new TGraph(5);
614  lyz1BoxNONAME->SetPoint(1,(binLYZ1-0.5)-boxWidth,lyz1MinValueNONAME);
615  lyz1BoxNONAME->SetPoint(2,(binLYZ1-0.5)+boxWidth,lyz1MinValueNONAME);
616  lyz1BoxNONAME->SetPoint(3,(binLYZ1-0.5)+boxWidth,lyz1MaxValueNONAME);
617  lyz1BoxNONAME->SetPoint(4,(binLYZ1-0.5)-boxWidth,lyz1MaxValueNONAME);
618  lyz1BoxNONAME->SetPoint(5,(binLYZ1-0.5)-boxWidth,lyz1MinValueNONAME);    
619  lyz1BoxNONAME->SetFillStyle(1001);
620  lyz1BoxNONAME->SetFillColor(kYellow-8);
621    
622  // LYZEP:
623  TGraph* lyzepTGraphNONAME = new TGraph(nPoints, lyzepNONAME, lyzepValueNONAME);
624  lyzepTGraphNONAME->SetMarkerStyle(21);
625  lyzepTGraphNONAME->SetMarkerColor(kGreen+3); 
626  
627  TGraph *lyzepBoxNONAME = new TGraph(5);
628  lyzepBoxNONAME->SetPoint(1,(binLYZEP-0.5)-boxWidth,lyzepMinValueNONAME);
629  lyzepBoxNONAME->SetPoint(2,(binLYZEP-0.5)+boxWidth,lyzepMinValueNONAME);
630  lyzepBoxNONAME->SetPoint(3,(binLYZEP-0.5)+boxWidth,lyzepMaxValueNONAME);
631  lyzepBoxNONAME->SetPoint(4,(binLYZEP-0.5)-boxWidth,lyzepMaxValueNONAME);
632  lyzepBoxNONAME->SetPoint(5,(binLYZEP-0.5)-boxWidth,lyzepMinValueNONAME);    
633  lyzepBoxNONAME->SetFillStyle(1001);
634  lyzepBoxNONAME->SetFillColor(kGreen-9);
635    
636    
637  TCanvas* intFlowCanvasNONAME = new TCanvas("Integrated Flow NONAME","Integrated Flow NONAME",1000,600);
638  
639  intFlowCanvasNONAME->Divide(2,1);
640  
641  // 1st pad is for plot:
642  (intFlowCanvasNONAME->cd(1))->SetPad(0.0,0.0,0.75,1.0);
643  
644  if(intFlowNONAME) 
645  {
646   intFlowNONAME->SetTitle("Integrated Flow NONAME");
647   (intFlowNONAME->GetYaxis())->SetRangeUser(0,0.20);
648   intFlowNONAME->Draw();
649  }
650  
651  // MCEP 
652  if(mcepBoxNONAME) mcepBoxNONAME->Draw("LFSAME");
653  if(mcepTGraphNONAME) mcepTGraphNONAME->Draw("PSAME");
654  
655  // SP 
656  if(spBoxNONAME) spBoxNONAME->Draw("LFSAME");
657  if(spTGraphNONAME) spTGraphNONAME->Draw("PSAME");
658  
659  // GFC{2} 
660  if(gfc2BoxNONAME) gfc2BoxNONAME->Draw("LFSAME");
661  if(gfc2TGraphNONAME) gfc2TGraphNONAME->Draw("PSAME");
662   
663  // GFC{4} 
664  if(gfc4BoxNONAME) gfc4BoxNONAME->Draw("LFSAME");
665  if(gfc4TGraphNONAME) gfc4TGraphNONAME->Draw("PSAME");
666
667  // GFC{6} 
668  if(gfc6BoxNONAME) gfc6BoxNONAME->Draw("LFSAME");
669  if(gfc6TGraphNONAME) gfc6TGraphNONAME->Draw("PSAME");
670
671  // GFC{8} 
672  if(gfc8BoxNONAME) gfc8BoxNONAME->Draw("LFSAME");
673  if(gfc8TGraphNONAME) gfc8TGraphNONAME->Draw("PSAME");
674  
675  // QC{2} 
676  if(qc2BoxNONAME) qc2BoxNONAME->Draw("LFSAME");
677  if(qc2TGraphNONAME) qc2TGraphNONAME->Draw("PSAME");
678   
679  // QC{4} 
680  if(qc4BoxNONAME) qc4BoxNONAME->Draw("LFSAME");
681  if(qc4TGraphNONAME) qc4TGraphNONAME->Draw("PSAME");
682
683  // QC{6} 
684  if(qc6BoxNONAME) qc6BoxNONAME->Draw("LFSAME");
685  if(qc6TGraphNONAME) qc6TGraphNONAME->Draw("PSAME");
686
687  // QC{8} 
688  if(qc8BoxNONAME) qc8BoxNONAME->Draw("LFSAME");
689  if(qc8TGraphNONAME) qc8TGraphNONAME->Draw("PSAME");
690  
691  // FQD 
692  if(fqdBoxNONAME) fqdBoxNONAME->Draw("LFSAME");
693  if(fqdTGraphNONAME) fqdTGraphNONAME->Draw("PSAME");
694  
695  // LYZ1 
696  if(lyz1BoxNONAME) lyz1BoxNONAME->Draw("LFSAME");
697  if(lyz1TGraphNONAME) lyz1TGraphNONAME->Draw("PSAME");
698  
699  // LYZEP 
700  //if(lyzepBoxNONAME) lyzepBoxNONAME->Draw("LFSAME");
701  //if(lyzepTGraphNONAME) lyzepTGraphNONAME->Draw("PSAME");
702   
703  (intFlowCanvasNONAME->cd(2))->SetPad(0.75,0.0,1.0,1.0);
704
705 }
706
707
708 void LoadPlotLibraries(const libModes mode) {
709   
710   //--------------------------------------
711   // Load the needed libraries most of them already loaded by aliroot
712   //--------------------------------------
713   gSystem->Load("libTree.so");
714   gSystem->Load("libGeom.so");
715   gSystem->Load("libVMC.so");
716   gSystem->Load("libXMLIO.so");
717   gSystem->Load("libPhysics.so");
718   
719   //----------------------------------------------------------
720   // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< 
721   //----------------------------------------------------------
722   if (mode==mLocal) {
723     //--------------------------------------------------------
724     // If you want to use already compiled libraries 
725     // in the aliroot distribution
726     //--------------------------------------------------------
727
728   //==================================================================================  
729   //load needed libraries:
730   gSystem->AddIncludePath("-I$ROOTSYS/include");
731   gSystem->Load("libTree.so");
732
733   // for AliRoot
734   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
735   gSystem->Load("libANALYSIS.so");
736   gSystem->Load("libPWG2flowCommon.so");
737   cerr<<"libPWG2flowCommon.so loaded ..."<<endl;
738   
739   }
740   
741   else if (mode==mLocalSource) {
742  
743     // In root inline compile
744   
745     // Constants  
746     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
747     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
748     gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
749     
750     // Flow event
751     gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+"); 
752     gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");    
753     gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
754     
755     // Cuts
756     gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");    
757     
758     // Output histosgrams
759     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
760     gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
761     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
762     gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
763        
764     cout << "finished loading macros!" << endl;  
765     
766   }  
767   
768   
769 }
770
771