1 //type of analysis can be: ESD, AOD, MC, ESDMC0, ESDMC1
2 //const TString type = "ESD";
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
8 //void compareFlowResults(TString type="",Int_t mode=mLocalSource)
9 void showSpread(const Int_t nRuns=10, TString type="",Int_t mode=mLocal)
11 // load needed libraries:
12 LoadPlotLibraries(mode);
15 TString execDir(gSystem->pwd());
16 TSystemDirectory* baseDir = new TSystemDirectory(".",execDir.Data());
17 TList* dirList = baseDir->GetListOfFiles();
18 Int_t nDirs = dirList->GetEntries();
21 // array to store estimates of each method from different runs:
24 Double_t mcepValueNONAME[nRuns] = {0.};
25 Double_t mcepMaxValueNONAME = 0.;
26 Double_t mcepMinValueNONAME = 1000.;
29 Double_t spValueNONAME[nRuns] = {0.};
30 Double_t spMaxValueNONAME = 0.;
31 Double_t spMinValueNONAME = 1000.;
34 Double_t gfc2ValueNONAME[nRuns] = {0.};
35 Double_t gfc2MaxValueNONAME = 0.;
36 Double_t gfc2MinValueNONAME = 1000.;
39 Double_t gfc4ValueNONAME[nRuns] = {0.};
40 Double_t gfc4MaxValueNONAME = 0.;
41 Double_t gfc4MinValueNONAME = 1000.;
44 Double_t gfc6ValueNONAME[nRuns] = {0.};
45 Double_t gfc6MaxValueNONAME = 0.;
46 Double_t gfc6MinValueNONAME = 1000.;
49 Double_t gfc8ValueNONAME[nRuns] = {0.};
50 Double_t gfc8MaxValueNONAME = 0.;
51 Double_t gfc8MinValueNONAME = 1000.;
54 Double_t qc2ValueNONAME[nRuns] = {0.};
55 Double_t qc2MaxValueNONAME = 0.;
56 Double_t qc2MinValueNONAME = 1000.;
59 Double_t qc4ValueNONAME[nRuns] = {0.};
60 Double_t qc4MaxValueNONAME = 0.;
61 Double_t qc4MinValueNONAME = 1000.;
64 Double_t qc6ValueNONAME[nRuns] = {0.};
65 Double_t qc6MaxValueNONAME = 0.;
66 Double_t qc6MinValueNONAME = 1000.;
69 Double_t qc8ValueNONAME[nRuns] = {0.};
70 Double_t qc8MaxValueNONAME = 0.;
71 Double_t qc8MinValueNONAME = 1000.;
74 Double_t fqdValueNONAME[nRuns] = {0.};
75 Double_t fqdMaxValueNONAME = 0.;
76 Double_t fqdMinValueNONAME = 1000.;
79 Double_t lyz1ValueNONAME[nRuns] = {0.};
80 Double_t lyz1MaxValueNONAME = 0.;
81 Double_t lyz1MinValueNONAME = 1000.;
84 Double_t lyzepValueNONAME[nRuns] = {0.};
85 Double_t lyzepMaxValueNONAME = 0.;
86 Double_t lyzepMinValueNONAME = 1000.;
90 for(Int_t iDir=0;iDir<nDirs;++iDir)
92 TSystemFile* presentDir = (TSystemFile*)dirList->At(iDir);
93 if(!presentDir || !presentDir->IsDirectory() || strcmp(presentDir->GetName(), ".") == 0 ||
94 strcmp(presentDir->GetName(), "..") == 0) continue;
96 if (counter >= nRuns) break;
98 TString presentDirName(gSystem->pwd());
99 presentDirName += "/";
100 presentDirName += presentDir->GetName();
101 presentDirName += "/";
103 // accessing the output .root files for each method:
105 TString fileNameMCEP = presentDirName;
106 fileNameMCEP+="outputMCEPanalysis.root";
107 TFile *fileMCEP = TFile::Open(fileNameMCEP.Data(), "READ");
108 TList *listMCEP = NULL;
109 AliFlowCommonHistResults *mcepCommonHistRes = NULL;
113 fileMCEP->GetObject("cobjMCEP",listMCEP);
116 mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listMCEP->FindObject("AliFlowCommonHistResultsMCEP"));
120 if(mcepCommonHistRes && mcepCommonHistRes->GetHistIntFlow())
122 mcepValueNONAME[counter] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
123 if(mcepValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
125 if(mcepMaxValueNONAME < mcepValueNONAME[counter]) mcepMaxValueNONAME = mcepValueNONAME[counter];
126 if(mcepMinValueNONAME > mcepValueNONAME[counter]) mcepMinValueNONAME = mcepValueNONAME[counter];
131 TString fileNameSP = presentDirName;
132 fileNameSP+="outputSPanalysis.root";
133 TFile *fileSP = TFile::Open(fileNameSP.Data(), "READ");
134 TList *listSP = NULL;
135 AliFlowCommonHistResults *spCommonHistRes = NULL;
139 fileSP->GetObject("cobjSP",listSP);
142 spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listSP->FindObject("AliFlowCommonHistResultsSP"));
146 if(spCommonHistRes && spCommonHistRes->GetHistIntFlow())
148 spValueNONAME[counter] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1);
149 if(spValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
151 if(spMaxValueNONAME < spValueNONAME[counter]) spMaxValueNONAME = spValueNONAME[counter];
152 if(spMinValueNONAME > spValueNONAME[counter]) spMinValueNONAME = spValueNONAME[counter];
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;
168 fileGFC->GetObject("cobjGFC",listGFC);
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"));
178 if(gfc2CommonHistRes && gfc2CommonHistRes->GetHistIntFlow())
180 gfc2ValueNONAME[counter] = (gfc2CommonHistRes->GetHistIntFlow())->GetBinContent(1);
181 if(gfc2ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
183 if(gfc2MaxValueNONAME < gfc2ValueNONAME[counter]) gfc2MaxValueNONAME = gfc2ValueNONAME[counter];
184 if(gfc2MinValueNONAME > gfc2ValueNONAME[counter]) gfc2MinValueNONAME = gfc2ValueNONAME[counter];
188 if(gfc4CommonHistRes && gfc4CommonHistRes->GetHistIntFlow())
190 gfc4ValueNONAME[counter] = (gfc4CommonHistRes->GetHistIntFlow())->GetBinContent(1);
191 if(gfc4ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
193 if(gfc4MaxValueNONAME < gfc4ValueNONAME[counter]) gfc4MaxValueNONAME = gfc4ValueNONAME[counter];
194 if(gfc4MinValueNONAME > gfc4ValueNONAME[counter]) gfc4MinValueNONAME = gfc4ValueNONAME[counter];
198 if(gfc6CommonHistRes && gfc6CommonHistRes->GetHistIntFlow())
200 gfc6ValueNONAME[counter] = (gfc6CommonHistRes->GetHistIntFlow())->GetBinContent(1);
201 if(gfc6ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
203 if(gfc6MaxValueNONAME < gfc6ValueNONAME[counter]) gfc6MaxValueNONAME = gfc6ValueNONAME[counter];
204 if(gfc6MinValueNONAME > gfc6ValueNONAME[counter]) gfc6MinValueNONAME = gfc6ValueNONAME[counter];
208 if(gfc8CommonHistRes && gfc8CommonHistRes->GetHistIntFlow())
210 gfc8ValueNONAME[counter] = (gfc8CommonHistRes->GetHistIntFlow())->GetBinContent(1);
211 if(gfc8ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
213 if(gfc8MaxValueNONAME < gfc8ValueNONAME[counter]) gfc8MaxValueNONAME = gfc8ValueNONAME[counter];
214 if(gfc8MinValueNONAME > gfc8ValueNONAME[counter]) gfc8MinValueNONAME = gfc8ValueNONAME[counter];
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;
230 fileQC->GetObject("cobjQC",listQC);
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"));
240 if(qc2CommonHistRes && qc2CommonHistRes->GetHistIntFlow())
242 qc2ValueNONAME[counter] = (qc2CommonHistRes->GetHistIntFlow())->GetBinContent(1);
243 if(qc2ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
245 if(qc2MaxValueNONAME < qc2ValueNONAME[counter]) qc2MaxValueNONAME = qc2ValueNONAME[counter];
246 if(qc2MinValueNONAME > qc2ValueNONAME[counter]) qc2MinValueNONAME = qc2ValueNONAME[counter];
250 if(qc4CommonHistRes && qc4CommonHistRes->GetHistIntFlow())
252 qc4ValueNONAME[counter] = (qc4CommonHistRes->GetHistIntFlow())->GetBinContent(1);
253 if(qc4ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
255 if(qc4MaxValueNONAME < qc4ValueNONAME[counter]) qc4MaxValueNONAME = qc4ValueNONAME[counter];
256 if(qc4MinValueNONAME > qc4ValueNONAME[counter]) qc4MinValueNONAME = qc4ValueNONAME[counter];
260 if(qc6CommonHistRes && qc6CommonHistRes->GetHistIntFlow())
262 qc6ValueNONAME[counter] = (qc6CommonHistRes->GetHistIntFlow())->GetBinContent(1);
263 if(qc6ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
265 if(qc6MaxValueNONAME < qc6ValueNONAME[counter]) qc6MaxValueNONAME = qc6ValueNONAME[counter];
266 if(qc6MinValueNONAME > qc6ValueNONAME[counter]) qc6MinValueNONAME = qc6ValueNONAME[counter];
270 if(qc8CommonHistRes && qc8CommonHistRes->GetHistIntFlow())
272 qc8ValueNONAME[counter] = (qc8CommonHistRes->GetHistIntFlow())->GetBinContent(1);
273 if(qc8ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
275 if(qc8MaxValueNONAME < qc8ValueNONAME[counter]) qc8MaxValueNONAME = qc8ValueNONAME[counter];
276 if(qc8MinValueNONAME > qc8ValueNONAME[counter]) qc8MinValueNONAME = qc8ValueNONAME[counter];
281 TString fileNameFQD = presentDirName;
282 fileNameFQD+="outputFQDanalysis.root";
283 TFile *fileFQD = TFile::Open(fileNameFQD.Data(), "READ");
284 TList *listFQD = NULL;
285 AliFlowCommonHistResults *fqdCommonHistRes = NULL;
289 fileFQD->GetObject("cobjFQD",listFQD);
292 fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listFQD->FindObject("AliFlowCommonHistResultsFQD"));
296 if(fqdCommonHistRes && fqdCommonHistRes->GetHistIntFlow())
298 fqdValueNONAME[counter] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1);
299 if(fqdValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
301 if(fqdMaxValueNONAME < fqdValueNONAME[counter]) fqdMaxValueNONAME = fqdValueNONAME[counter];
302 if(fqdMinValueNONAME > fqdValueNONAME[counter]) fqdMinValueNONAME = fqdValueNONAME[counter];
307 TString fileNameLYZ1 = presentDirName;
308 fileNameLYZ1+="outputLYZ1analysis.root";
309 TFile *fileLYZ1 = TFile::Open(fileNameLYZ1.Data(), "READ");
310 TList *listLYZ1 = NULL;
311 AliFlowCommonHistResults *lyz1CommonHistRes = NULL;
315 fileLYZ1->GetObject("cobjLYZ1",listLYZ1);
318 lyz1CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listLYZ1->FindObject("AliFlowCommonHistResultsLYZ1"));
322 if(lyz1CommonHistRes && lyz1CommonHistRes->GetHistIntFlow())
324 lyz1ValueNONAME[counter] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinContent(1);
325 if(lyz1ValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
327 if(lyz1MaxValueNONAME < lyz1ValueNONAME[counter]) lyz1MaxValueNONAME = lyz1ValueNONAME[counter];
328 if(lyz1MinValueNONAME > lyz1ValueNONAME[counter]) lyz1MinValueNONAME = lyz1ValueNONAME[counter];
333 TString fileNameLYZEP = presentDirName;
334 fileNameLYZEP+="outputLYZEPanalysis.root";
335 TFile *fileLYZEP = TFile::Open(fileNameLYZEP.Data(), "READ");
336 TList *listLYZEP = NULL;
337 AliFlowCommonHistResults *lyzepCommonHistRes = NULL;
341 fileLYZEP->GetObject("cobjLYZEP",listLYZEP);
344 lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listLYZEP->FindObject("AliFlowCommonHistResultsLYZEP"));
348 if(lyzepCommonHistRes && lyzepCommonHistRes->GetHistIntFlow())
350 lyzepValueNONAME[counter] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1);
351 if(lyzepValueNONAME[counter]>0.) // modify this condition for RPs and POIs !!!
353 if(lyzepMaxValueNONAME < lyzepValueNONAME[counter]) lyzepMaxValueNONAME = lyzepValueNONAME[counter];
354 if(lyzepMinValueNONAME > lyzepValueNONAME[counter]) lyzepMinValueNONAME = lyzepValueNONAME[counter];
360 } // end of for(Int_t iDir=0;iDir<nDirs;++iDir)
367 //removing the title and stat. box from all histograms:
368 //gStyle->SetOptTitle(0);
369 gStyle->SetOptStat(0);
372 const Double_t boxWidth = 0.25;
374 // the number of different methods:
375 const Int_t nMethods = 13;
377 // the number of runs:
378 const Int_t nPoints = counter;
380 // booking the style histogram for the integrated flow results from all methods for NONAME, RPs and POIs:
381 // assigning bin numbers to methods:
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}");
417 //=============================================================================
419 //=============================================================================
421 TH1D *intFlowNONAME = new TH1D(*intFlowAll);
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.};
437 for(Int_t i=0;i<nPoints;i++)
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;
455 TGraph* mcepTGraphNONAME = new TGraph(nPoints, mcepNONAME, mcepValueNONAME);
456 mcepTGraphNONAME->SetMarkerStyle(21);
457 mcepTGraphNONAME->SetMarkerColor(kBlack);
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);
469 TGraph* spTGraphNONAME = new TGraph(nPoints, spNONAME, spValueNONAME);
470 spTGraphNONAME->SetMarkerStyle(21);
471 spTGraphNONAME->SetMarkerColor(kViolet+3);
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);
483 TGraph* gfc2TGraphNONAME = new TGraph(nPoints, gfc2NONAME, gfc2ValueNONAME);
484 gfc2TGraphNONAME->SetMarkerStyle(21);
485 gfc2TGraphNONAME->SetMarkerColor(kBlue);
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);
497 TGraph* gfc4TGraphNONAME = new TGraph(nPoints, gfc4NONAME, gfc4ValueNONAME);
498 gfc4TGraphNONAME->SetMarkerStyle(21);
499 gfc4TGraphNONAME->SetMarkerColor(kBlue);
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);
511 TGraph* gfc6TGraphNONAME = new TGraph(nPoints, gfc6NONAME, gfc6ValueNONAME);
512 gfc6TGraphNONAME->SetMarkerStyle(21);
513 gfc6TGraphNONAME->SetMarkerColor(kBlue);
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);
525 TGraph* gfc8TGraphNONAME = new TGraph(nPoints, gfc8NONAME, gfc8ValueNONAME);
526 gfc8TGraphNONAME->SetMarkerStyle(21);
527 gfc8TGraphNONAME->SetMarkerColor(kBlue);
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);
539 TGraph* qc2TGraphNONAME = new TGraph(nPoints, qc2NONAME, qc2ValueNONAME);
540 qc2TGraphNONAME->SetMarkerStyle(21);
541 qc2TGraphNONAME->SetMarkerColor(kRed);
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);
553 TGraph* qc4TGraphNONAME = new TGraph(nPoints, qc4NONAME, qc4ValueNONAME);
554 qc4TGraphNONAME->SetMarkerStyle(21);
555 qc4TGraphNONAME->SetMarkerColor(kRed);
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);
567 TGraph* qc6TGraphNONAME = new TGraph(nPoints, qc6NONAME, qc6ValueNONAME);
568 qc6TGraphNONAME->SetMarkerStyle(21);
569 qc6TGraphNONAME->SetMarkerColor(kRed);
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);
581 TGraph* qc8TGraphNONAME = new TGraph(nPoints, qc8NONAME, qc8ValueNONAME);
582 qc8TGraphNONAME->SetMarkerStyle(21);
583 qc8TGraphNONAME->SetMarkerColor(kRed);
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);
595 TGraph* fqdTGraphNONAME = new TGraph(nPoints, fqdNONAME, fqdValueNONAME);
596 fqdTGraphNONAME->SetMarkerStyle(21);
597 fqdTGraphNONAME->SetMarkerColor(kOrange+7);
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);
609 TGraph* lyz1TGraphNONAME = new TGraph(nPoints, lyz1NONAME, lyz1ValueNONAME);
610 lyz1TGraphNONAME->SetMarkerStyle(21);
611 lyz1TGraphNONAME->SetMarkerColor(kYellow+3);
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);
623 TGraph* lyzepTGraphNONAME = new TGraph(nPoints, lyzepNONAME, lyzepValueNONAME);
624 lyzepTGraphNONAME->SetMarkerStyle(21);
625 lyzepTGraphNONAME->SetMarkerColor(kGreen+3);
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);
637 TCanvas* intFlowCanvasNONAME = new TCanvas("Integrated Flow NONAME","Integrated Flow NONAME",1000,600);
639 intFlowCanvasNONAME->Divide(2,1);
641 // 1st pad is for plot:
642 (intFlowCanvasNONAME->cd(1))->SetPad(0.0,0.0,0.75,1.0);
646 intFlowNONAME->SetTitle("Integrated Flow NONAME");
647 (intFlowNONAME->GetYaxis())->SetRangeUser(0,0.20);
648 intFlowNONAME->Draw();
652 if(mcepBoxNONAME) mcepBoxNONAME->Draw("LFSAME");
653 if(mcepTGraphNONAME) mcepTGraphNONAME->Draw("PSAME");
656 if(spBoxNONAME) spBoxNONAME->Draw("LFSAME");
657 if(spTGraphNONAME) spTGraphNONAME->Draw("PSAME");
660 if(gfc2BoxNONAME) gfc2BoxNONAME->Draw("LFSAME");
661 if(gfc2TGraphNONAME) gfc2TGraphNONAME->Draw("PSAME");
664 if(gfc4BoxNONAME) gfc4BoxNONAME->Draw("LFSAME");
665 if(gfc4TGraphNONAME) gfc4TGraphNONAME->Draw("PSAME");
668 if(gfc6BoxNONAME) gfc6BoxNONAME->Draw("LFSAME");
669 if(gfc6TGraphNONAME) gfc6TGraphNONAME->Draw("PSAME");
672 if(gfc8BoxNONAME) gfc8BoxNONAME->Draw("LFSAME");
673 if(gfc8TGraphNONAME) gfc8TGraphNONAME->Draw("PSAME");
676 if(qc2BoxNONAME) qc2BoxNONAME->Draw("LFSAME");
677 if(qc2TGraphNONAME) qc2TGraphNONAME->Draw("PSAME");
680 if(qc4BoxNONAME) qc4BoxNONAME->Draw("LFSAME");
681 if(qc4TGraphNONAME) qc4TGraphNONAME->Draw("PSAME");
684 if(qc6BoxNONAME) qc6BoxNONAME->Draw("LFSAME");
685 if(qc6TGraphNONAME) qc6TGraphNONAME->Draw("PSAME");
688 if(qc8BoxNONAME) qc8BoxNONAME->Draw("LFSAME");
689 if(qc8TGraphNONAME) qc8TGraphNONAME->Draw("PSAME");
692 if(fqdBoxNONAME) fqdBoxNONAME->Draw("LFSAME");
693 if(fqdTGraphNONAME) fqdTGraphNONAME->Draw("PSAME");
696 if(lyz1BoxNONAME) lyz1BoxNONAME->Draw("LFSAME");
697 if(lyz1TGraphNONAME) lyz1TGraphNONAME->Draw("PSAME");
700 //if(lyzepBoxNONAME) lyzepBoxNONAME->Draw("LFSAME");
701 //if(lyzepTGraphNONAME) lyzepTGraphNONAME->Draw("PSAME");
703 (intFlowCanvasNONAME->cd(2))->SetPad(0.75,0.0,1.0,1.0);
708 void LoadPlotLibraries(const libModes mode) {
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");
719 //----------------------------------------------------------
720 // >>>>>>>>>>> Local mode <<<<<<<<<<<<<<
721 //----------------------------------------------------------
723 //--------------------------------------------------------
724 // If you want to use already compiled libraries
725 // in the aliroot distribution
726 //--------------------------------------------------------
728 //==================================================================================
729 //load needed libraries:
730 gSystem->AddIncludePath("-I$ROOTSYS/include");
731 gSystem->Load("libTree.so");
734 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
735 gSystem->Load("libANALYSIS.so");
736 gSystem->Load("libPWG2flowCommon.so");
737 cerr<<"libPWG2flowCommon.so loaded ..."<<endl;
741 else if (mode==mLocalSource) {
743 // In root inline compile
746 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
747 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
748 gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
751 gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+");
752 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
753 gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
756 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");
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+");
764 cout << "finished loading macros!" << endl;