]>
Commit | Line | Data |
---|---|---|
e47370f7 | 1 | enum libModes {mLocal,mLocalSource}; |
e47370f7 | 2 | |
6a6afe42 | 3 | void showSpread(TString type="", const Int_t nRuns=-1, Int_t mode=mLocal) |
4 | { | |
5 | // type: type of analysis can be ESD, AOD, MC, ESDMC0, ESDMC1 | |
6 | // (if type="" output files are from MC simulation (default)) | |
7 | // nRuns: specify here from how many small statistics output .root files | |
8 | // flow estimates will be shown (if nRuns = -1 all of them will be shown) | |
9 | // mode: if mode=mLocal analyze data on your computer using aliroot | |
10 | // if mode=mLocalSource analyze data on your computer using root + source files | |
11 | ||
e47370f7 | 12 | // load needed libraries: |
b78897bc | 13 | LoadSpreadLibraries(mode); |
e47370f7 | 14 | |
6a6afe42 | 15 | // access the path of current directory: |
16 | TString pwd(gSystem->pwd()); | |
17 | pwd+="/"; | |
18 | ||
e47370f7 | 19 | // standard magic: |
20 | TString execDir(gSystem->pwd()); | |
21 | TSystemDirectory* baseDir = new TSystemDirectory(".",execDir.Data()); | |
22 | TList* dirList = baseDir->GetListOfFiles(); | |
23 | Int_t nDirs = dirList->GetEntries(); | |
24 | gSystem->cd(execDir); | |
25 | ||
6a6afe42 | 26 | Int_t countDirectories = 0; |
27 | if(dirList) | |
28 | { | |
29 | for(Int_t i=0;i<nDirs;i++) | |
30 | { | |
31 | if((dirList->At(i))->InheritsFrom("TSystemDirectory") && | |
32 | !(strcmp((dirList->At(i))->GetName(),".") == 0 ) && | |
33 | !(strcmp((dirList->At(i))->GetName(),"..") == 0 )) | |
34 | { | |
35 | countDirectories++; | |
36 | } | |
37 | } | |
38 | } | |
39 | ||
40 | // assigning bin numbers to methods: | |
41 | Int_t binMCEP = 1; | |
42 | Int_t binSP = 2; | |
43 | Int_t binGFC2 = 3; | |
44 | Int_t binGFC4 = 5; | |
45 | Int_t binGFC6 = 7; | |
46 | Int_t binGFC8 = 9; | |
47 | Int_t binQC2 = 4; | |
48 | Int_t binQC4 = 6; | |
49 | Int_t binQC6 = 8; | |
50 | Int_t binQC8 = 10; | |
51 | Int_t binFQD = 11; | |
52 | Int_t binLYZ1 = 12; | |
53 | Int_t binLYZEP = 13; | |
54 | ||
55 | // one subdirectory gives one estimate for each method: | |
56 | const Int_t nEstimates = countDirectories; | |
57 | ||
58 | // arrays to store estimates and errors of each method from different small statistics runs: | |
e47370f7 | 59 | // MCEP: |
6a6afe42 | 60 | Double_t mcepValueNONAME[nEstimates] = {0.}; |
61 | Double_t mcepErrorNONAME[nEstimates] = {0.}; | |
62 | Double_t mcepMaxValueNONAME = 0.; // to be improved | |
63 | Double_t mcepMinValueNONAME = 1000.; // to be improved | |
e47370f7 | 64 | |
65 | // SP: | |
6a6afe42 | 66 | Double_t spValueNONAME[nEstimates] = {0.}; |
67 | Double_t spErrorNONAME[nEstimates] = {0.}; | |
68 | Double_t spMaxValueNONAME = 0.; // to be improved | |
69 | Double_t spMinValueNONAME = 1000.; // to be improved | |
70 | ||
71 | // GFC{2}: | |
72 | Double_t gfc2ValueNONAME[nEstimates] = {0.}; | |
73 | Double_t gfc2ErrorNONAME[nEstimates] = {0.}; | |
74 | Double_t gfc2MaxValueNONAME = 0.; // to be improved | |
75 | Double_t gfc2MinValueNONAME = 1000.; // to be improved | |
76 | ||
77 | // GFC{4}: | |
78 | Double_t gfc4ValueNONAME[nEstimates] = {0.}; | |
79 | Double_t gfc4ErrorNONAME[nEstimates] = {0.}; | |
80 | Double_t gfc4MaxValueNONAME = 0.; // to be improved | |
81 | Double_t gfc4MinValueNONAME = 1000.; // to be improved | |
82 | ||
83 | // GFC{6}: | |
84 | Double_t gfc6ValueNONAME[nEstimates] = {0.}; | |
85 | Double_t gfc6ErrorNONAME[nEstimates] = {0.}; | |
86 | Double_t gfc6MaxValueNONAME = 0.; // to be improved | |
87 | Double_t gfc6MinValueNONAME = 1000.; // to be improved | |
e47370f7 | 88 | |
6a6afe42 | 89 | // GFC{8}: |
90 | Double_t gfc8ValueNONAME[nEstimates] = {0.}; | |
91 | Double_t gfc8ErrorNONAME[nEstimates] = {0.}; | |
92 | Double_t gfc8MaxValueNONAME = 0.; // to be improved | |
93 | Double_t gfc8MinValueNONAME = 1000.; // to be improved | |
94 | ||
95 | // QC{2}: | |
96 | Double_t qc2ValueNONAME[nEstimates] = {0.}; | |
97 | Double_t qc2ErrorNONAME[nEstimates] = {0.}; | |
98 | Double_t qc2MaxValueNONAME = 0.; // to be improved | |
99 | Double_t qc2MinValueNONAME = 1000.; // to be improved | |
100 | ||
101 | // QC{4}: | |
102 | Double_t qc4ValueNONAME[nEstimates] = {0.}; | |
103 | Double_t qc4ErrorNONAME[nEstimates] = {0.}; | |
104 | Double_t qc4MaxValueNONAME = 0.; // to be improved | |
105 | Double_t qc4MinValueNONAME = 1000.; // to be improved | |
106 | ||
107 | // QC{6}: | |
108 | Double_t qc6ValueNONAME[nEstimates] = {0.}; | |
109 | Double_t qc6ErrorNONAME[nEstimates] = {0.}; | |
110 | Double_t qc6MaxValueNONAME = 0.; // to be improved | |
111 | Double_t qc6MinValueNONAME = 1000.; // to be improved | |
e47370f7 | 112 | |
6a6afe42 | 113 | // QC{8}: |
114 | Double_t qc8ValueNONAME[nEstimates] = {0.}; | |
115 | Double_t qc8ErrorNONAME[nEstimates] = {0.}; | |
116 | Double_t qc8MaxValueNONAME = 0.; // to be improved | |
117 | Double_t qc8MinValueNONAME = 1000.; // to be improved | |
e47370f7 | 118 | |
119 | // FQD: | |
6a6afe42 | 120 | Double_t fqdValueNONAME[nEstimates] = {0.}; |
121 | Double_t fqdErrorNONAME[nEstimates] = {0.}; | |
122 | Double_t fqdMaxValueNONAME = 0.; // to be improved | |
123 | Double_t fqdMinValueNONAME = 1000.; // to be improved | |
124 | ||
e47370f7 | 125 | // LYZ1: |
6a6afe42 | 126 | Double_t lyz1ValueNONAME[nEstimates] = {0.}; |
127 | Double_t lyz1ErrorNONAME[nEstimates] = {0.}; | |
128 | Double_t lyz1MaxValueNONAME = 0.; // to be improved | |
129 | Double_t lyz1MinValueNONAME = 1000.; // to be improved | |
130 | ||
e47370f7 | 131 | // LYZEP: |
6a6afe42 | 132 | Double_t lyzepValueNONAME[nEstimates] = {0.}; |
133 | Double_t lyzepErrorNONAME[nEstimates] = {0.}; | |
134 | Double_t lyzepMaxValueNONAME = 0.; // to be improved | |
135 | Double_t lyzepMinValueNONAME = 1000.; // to be improved | |
e47370f7 | 136 | |
137 | Int_t counter = 0; | |
138 | ||
139 | for(Int_t iDir=0;iDir<nDirs;++iDir) | |
140 | { | |
141 | TSystemFile* presentDir = (TSystemFile*)dirList->At(iDir); | |
142 | if(!presentDir || !presentDir->IsDirectory() || strcmp(presentDir->GetName(), ".") == 0 || | |
143 | strcmp(presentDir->GetName(), "..") == 0) continue; | |
6a6afe42 | 144 | |
145 | if(!(nRuns == -1)) | |
146 | { | |
147 | if (counter >= nRuns) break; | |
148 | } | |
149 | ||
e47370f7 | 150 | TString presentDirName(gSystem->pwd()); |
151 | presentDirName += "/"; | |
152 | presentDirName += presentDir->GetName(); | |
153 | presentDirName += "/"; | |
154 | ||
6a6afe42 | 155 | // accessing the small statistics output .root files for each method: |
e47370f7 | 156 | // MCEP: |
157 | TString fileNameMCEP = presentDirName; | |
6a6afe42 | 158 | fileNameMCEP+="outputMCEPanalysis"; |
159 | (fileNameMCEP+=type.Data())+=".root"; | |
e47370f7 | 160 | TFile *fileMCEP = TFile::Open(fileNameMCEP.Data(), "READ"); |
e47370f7 | 161 | if(fileMCEP) |
162 | { | |
6a6afe42 | 163 | TList *listMCEP = NULL; |
164 | AliFlowCommonHistResults *mcepCommonHistRes = NULL; | |
e47370f7 | 165 | fileMCEP->GetObject("cobjMCEP",listMCEP); |
6a6afe42 | 166 | fileMCEP->Close(); |
e47370f7 | 167 | if(listMCEP) |
168 | { | |
169 | mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listMCEP->FindObject("AliFlowCommonHistResultsMCEP")); | |
6a6afe42 | 170 | if(mcepCommonHistRes && mcepCommonHistRes->GetHistIntFlow()) |
171 | { | |
172 | mcepValueNONAME[counter] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
173 | mcepErrorNONAME[counter] = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
174 | if(mcepValueNONAME[counter]>0.) // to be improved | |
175 | { | |
176 | if(mcepMaxValueNONAME < mcepValueNONAME[counter]) mcepMaxValueNONAME = mcepValueNONAME[counter]; | |
177 | if(mcepMinValueNONAME > mcepValueNONAME[counter]) mcepMinValueNONAME = mcepValueNONAME[counter]; | |
178 | } | |
179 | } | |
180 | } // end of if(listMCEP) | |
181 | } // end of if(fileMCEP) | |
e47370f7 | 182 | |
183 | // SP: | |
184 | TString fileNameSP = presentDirName; | |
6a6afe42 | 185 | fileNameSP+="outputSPanalysis"; |
186 | (fileNameSP+=type.Data())+=".root"; | |
e47370f7 | 187 | TFile *fileSP = TFile::Open(fileNameSP.Data(), "READ"); |
e47370f7 | 188 | if(fileSP) |
189 | { | |
6a6afe42 | 190 | TList *listSP = NULL; |
191 | AliFlowCommonHistResults *spCommonHistRes = NULL; | |
e47370f7 | 192 | fileSP->GetObject("cobjSP",listSP); |
6a6afe42 | 193 | fileSP->Close(); |
e47370f7 | 194 | if(listSP) |
195 | { | |
196 | spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listSP->FindObject("AliFlowCommonHistResultsSP")); | |
6a6afe42 | 197 | if(spCommonHistRes && spCommonHistRes->GetHistIntFlow()) |
198 | { | |
199 | spValueNONAME[counter] = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
200 | spErrorNONAME[counter] = (spCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
201 | if(spValueNONAME[counter]>0.) // to be improved | |
202 | { | |
203 | if(spMaxValueNONAME < spValueNONAME[counter]) spMaxValueNONAME = spValueNONAME[counter]; | |
204 | if(spMinValueNONAME > spValueNONAME[counter]) spMinValueNONAME = spValueNONAME[counter]; | |
205 | } | |
206 | } | |
207 | } // end of if(listSP) | |
208 | } // end of if(fileSP) | |
e47370f7 | 209 | |
210 | // GFC: | |
211 | TString fileNameGFC = presentDirName; | |
6a6afe42 | 212 | fileNameGFC+="outputGFCanalysis"; |
213 | (fileNameGFC+=type.Data())+=".root"; | |
e47370f7 | 214 | TFile *fileGFC = TFile::Open(fileNameGFC.Data(), "READ"); |
e47370f7 | 215 | if(fileGFC) |
216 | { | |
6a6afe42 | 217 | TList *listGFC = NULL; |
218 | AliFlowCommonHistResults *gfc2CommonHistRes = NULL; | |
219 | AliFlowCommonHistResults *gfc4CommonHistRes = NULL; | |
220 | AliFlowCommonHistResults *gfc6CommonHistRes = NULL; | |
221 | AliFlowCommonHistResults *gfc8CommonHistRes = NULL; | |
e47370f7 | 222 | fileGFC->GetObject("cobjGFC",listGFC); |
6a6afe42 | 223 | fileGFC->Close(); |
e47370f7 | 224 | if(listGFC) |
225 | { | |
6a6afe42 | 226 | gfc2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC")); |
227 | gfc4CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults4thOrderGFC")); | |
228 | gfc6CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults6thOrderGFC")); | |
e47370f7 | 229 | gfc8CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listGFC->FindObject("AliFlowCommonHistResults8thOrderGFC")); |
6a6afe42 | 230 | if(gfc2CommonHistRes && gfc2CommonHistRes->GetHistIntFlow()) |
231 | { | |
232 | gfc2ValueNONAME[counter] = (gfc2CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
233 | gfc2ErrorNONAME[counter] = (gfc2CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
234 | if(gfc2ValueNONAME[counter]>0.) // to be improved | |
235 | { | |
236 | if(gfc2MaxValueNONAME < gfc2ValueNONAME[counter]) gfc2MaxValueNONAME = gfc2ValueNONAME[counter]; | |
237 | if(gfc2MinValueNONAME > gfc2ValueNONAME[counter]) gfc2MinValueNONAME = gfc2ValueNONAME[counter]; | |
238 | } | |
239 | } | |
240 | if(gfc4CommonHistRes && gfc4CommonHistRes->GetHistIntFlow()) | |
241 | { | |
242 | gfc4ValueNONAME[counter] = (gfc4CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
243 | gfc4ErrorNONAME[counter] = (gfc4CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
244 | if(gfc4ValueNONAME[counter]>0.) // to be improved | |
245 | { | |
246 | if(gfc4MaxValueNONAME < gfc4ValueNONAME[counter]) gfc4MaxValueNONAME = gfc4ValueNONAME[counter]; | |
247 | if(gfc4MinValueNONAME > gfc4ValueNONAME[counter]) gfc4MinValueNONAME = gfc4ValueNONAME[counter]; | |
248 | } | |
249 | } | |
250 | if(gfc6CommonHistRes && gfc6CommonHistRes->GetHistIntFlow()) | |
251 | { | |
252 | gfc6ValueNONAME[counter] = (gfc6CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
253 | gfc6ErrorNONAME[counter] = (gfc6CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
254 | if(gfc6ValueNONAME[counter]>0.) // to be improved | |
255 | { | |
256 | if(gfc6MaxValueNONAME < gfc6ValueNONAME[counter]) gfc6MaxValueNONAME = gfc6ValueNONAME[counter]; | |
257 | if(gfc6MinValueNONAME > gfc6ValueNONAME[counter]) gfc6MinValueNONAME = gfc6ValueNONAME[counter]; | |
258 | } | |
259 | } | |
260 | if(gfc8CommonHistRes && gfc8CommonHistRes->GetHistIntFlow()) | |
261 | { | |
262 | gfc8ValueNONAME[counter] = (gfc8CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
263 | gfc8ErrorNONAME[counter] = (gfc8CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
264 | if(gfc8ValueNONAME[counter]>0.) // to be improved | |
265 | { | |
266 | if(gfc8MaxValueNONAME < gfc8ValueNONAME[counter]) gfc8MaxValueNONAME = gfc8ValueNONAME[counter]; | |
267 | if(gfc8MinValueNONAME > gfc8ValueNONAME[counter]) gfc8MinValueNONAME = gfc8ValueNONAME[counter]; | |
268 | } | |
269 | } | |
270 | } // end of if(listGFC) | |
271 | } // end of if(fileGFC) | |
e47370f7 | 272 | |
e47370f7 | 273 | // QC: |
274 | TString fileNameQC = presentDirName; | |
6a6afe42 | 275 | fileNameQC+="outputQCanalysis"; |
276 | (fileNameQC+=type.Data())+=".root"; | |
e47370f7 | 277 | TFile *fileQC = TFile::Open(fileNameQC.Data(), "READ"); |
e47370f7 | 278 | if(fileQC) |
279 | { | |
6a6afe42 | 280 | TList *listQC = NULL; |
281 | AliFlowCommonHistResults *qc2CommonHistRes = NULL; | |
282 | AliFlowCommonHistResults *qc4CommonHistRes = NULL; | |
283 | AliFlowCommonHistResults *qc6CommonHistRes = NULL; | |
284 | AliFlowCommonHistResults *qc8CommonHistRes = NULL; | |
e47370f7 | 285 | fileQC->GetObject("cobjQC",listQC); |
6a6afe42 | 286 | fileQC->Close(); |
e47370f7 | 287 | if(listQC) |
288 | { | |
6a6afe42 | 289 | qc2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults2ndOrderQC")); |
290 | qc4CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults4thOrderQC")); | |
291 | qc6CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults6thOrderQC")); | |
e47370f7 | 292 | qc8CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listQC->FindObject("AliFlowCommonHistResults8thOrderQC")); |
6a6afe42 | 293 | if(qc2CommonHistRes && qc2CommonHistRes->GetHistIntFlow()) |
294 | { | |
295 | qc2ValueNONAME[counter] = (qc2CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
296 | qc2ErrorNONAME[counter] = (qc2CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
297 | if(qc2ValueNONAME[counter]>0.) // to be improved | |
298 | { | |
299 | if(qc2MaxValueNONAME < qc2ValueNONAME[counter]) qc2MaxValueNONAME = qc2ValueNONAME[counter]; | |
300 | if(qc2MinValueNONAME > qc2ValueNONAME[counter]) qc2MinValueNONAME = qc2ValueNONAME[counter]; | |
301 | } | |
302 | } | |
303 | if(qc4CommonHistRes && qc4CommonHistRes->GetHistIntFlow()) | |
304 | { | |
305 | qc4ValueNONAME[counter] = (qc4CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
306 | qc4ErrorNONAME[counter] = (qc4CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
307 | if(qc4ValueNONAME[counter]>0.) // to be improved | |
308 | { | |
309 | if(qc4MaxValueNONAME < qc4ValueNONAME[counter]) qc4MaxValueNONAME = qc4ValueNONAME[counter]; | |
310 | if(qc4MinValueNONAME > qc4ValueNONAME[counter]) qc4MinValueNONAME = qc4ValueNONAME[counter]; | |
311 | } | |
312 | } | |
313 | if(qc6CommonHistRes && qc6CommonHistRes->GetHistIntFlow()) | |
314 | { | |
315 | qc6ValueNONAME[counter] = (qc6CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
316 | qc6ErrorNONAME[counter] = (qc6CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
317 | if(qc6ValueNONAME[counter]>0.) // to be improved | |
318 | { | |
319 | if(qc6MaxValueNONAME < qc6ValueNONAME[counter]) qc6MaxValueNONAME = qc6ValueNONAME[counter]; | |
320 | if(qc6MinValueNONAME > qc6ValueNONAME[counter]) qc6MinValueNONAME = qc6ValueNONAME[counter]; | |
321 | } | |
322 | } | |
323 | if(qc8CommonHistRes && qc8CommonHistRes->GetHistIntFlow()) | |
324 | { | |
325 | qc8ValueNONAME[counter] = (qc8CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
326 | qc8ErrorNONAME[counter] = (qc8CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
327 | if(qc8ValueNONAME[counter]>0.) // to be improved | |
328 | { | |
329 | if(qc8MaxValueNONAME < qc8ValueNONAME[counter]) qc8MaxValueNONAME = qc8ValueNONAME[counter]; | |
330 | if(qc8MinValueNONAME > qc8ValueNONAME[counter]) qc8MinValueNONAME = qc8ValueNONAME[counter]; | |
331 | } | |
332 | } | |
333 | } // end of if(listQC) | |
334 | } // end of if(fileQC) | |
335 | ||
e47370f7 | 336 | // FQD: |
337 | TString fileNameFQD = presentDirName; | |
6a6afe42 | 338 | fileNameFQD+="outputFQDanalysis"; |
339 | (fileNameFQD+=type.Data())+=".root"; | |
e47370f7 | 340 | TFile *fileFQD = TFile::Open(fileNameFQD.Data(), "READ"); |
e47370f7 | 341 | if(fileFQD) |
342 | { | |
6a6afe42 | 343 | TList *listFQD = NULL; |
344 | AliFlowCommonHistResults *fqdCommonHistRes = NULL; | |
e47370f7 | 345 | fileFQD->GetObject("cobjFQD",listFQD); |
6a6afe42 | 346 | fileFQD->Close(); |
e47370f7 | 347 | if(listFQD) |
348 | { | |
349 | fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listFQD->FindObject("AliFlowCommonHistResultsFQD")); | |
6a6afe42 | 350 | if(fqdCommonHistRes && fqdCommonHistRes->GetHistIntFlow()) |
351 | { | |
352 | fqdValueNONAME[counter] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
353 | fqdErrorNONAME[counter] = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
354 | if(fqdValueNONAME[counter]>0.) // to be improved | |
355 | { | |
356 | if(fqdMaxValueNONAME < fqdValueNONAME[counter]) fqdMaxValueNONAME = fqdValueNONAME[counter]; | |
357 | if(fqdMinValueNONAME > fqdValueNONAME[counter]) fqdMinValueNONAME = fqdValueNONAME[counter]; | |
358 | } | |
359 | } | |
360 | } // end of if(listFQD) | |
361 | } // end of if(fileFQD) | |
e47370f7 | 362 | |
48385911 | 363 | // LYZ1: |
364 | TString fileNameLYZ1 = presentDirName; | |
365 | fileNameLYZ1+="outputLYZ1analysis"; | |
366 | (fileNameLYZ1+=type.Data())+=".root"; | |
367 | TFile *fileLYZ1 = TFile::Open(fileNameLYZ1.Data(), "READ"); | |
368 | if(fileLYZ1) | |
369 | { | |
370 | TList *listLYZ1 = NULL; | |
371 | AliFlowCommonHistResults *lyz1CommonHistRes = NULL; | |
372 | fileLYZ1->GetObject("cobjLYZ1",listLYZ1); | |
373 | fileLYZ1->Close(); | |
374 | if(listLYZ1) | |
375 | { | |
376 | lyz1CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (listLYZ1->FindObject("AliFlowCommonHistResultsLYZ1")); | |
377 | if(lyz1CommonHistRes && lyz1CommonHistRes->GetHistIntFlow()) | |
378 | { | |
379 | lyz1ValueNONAME[counter] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
380 | lyz1ErrorNONAME[counter] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
381 | if(lyz1ValueNONAME[counter]>0.) // to be improved | |
382 | { | |
383 | if(lyz1MaxValueNONAME < lyz1ValueNONAME[counter]) lyz1MaxValueNONAME = lyz1ValueNONAME[counter]; | |
384 | if(lyz1MinValueNONAME > lyz1ValueNONAME[counter]) lyz1MinValueNONAME = lyz1ValueNONAME[counter]; | |
385 | } | |
386 | } | |
387 | } // end of if(listLYZ1) | |
388 | } // end of if(fileLYZ1) | |
6a6afe42 | 389 | |
e47370f7 | 390 | counter++; |
391 | ||
392 | } // end of for(Int_t iDir=0;iDir<nDirs;++iDir) | |
393 | ||
6a6afe42 | 394 | // accessing the large statistics merged output .root files for each method: |
395 | // MCEP: | |
396 | TString mergedOutputFileNameMCEP(pwd.Data()); | |
397 | ((mergedOutputFileNameMCEP+="outputMCEPanalysis")+=type.Data())+=".root"; | |
398 | TFile *mergedOutputFileMCEP = NULL; | |
399 | TList *mergedOutputListMCEP = NULL; | |
400 | Double_t mergedValueMCEP = 0.; | |
401 | Double_t mergedErrorMCEP = 0.; | |
402 | if(gSystem->AccessPathName(mergedOutputFileNameMCEP.Data(),kFileExists)) | |
403 | { | |
404 | cout<<"WARNING: You do not have a merged output file "<<mergedOutputFileNameMCEP.Data()<<endl; | |
405 | } else | |
406 | { | |
407 | mergedOutputFileMCEP = TFile::Open(mergedOutputFileNameMCEP.Data(),"READ"); | |
408 | if(mergedOutputFileMCEP) | |
409 | { | |
410 | mergedOutputFileMCEP->GetObject("cobjMCEP",mergedOutputListMCEP); | |
411 | mergedOutputFileMCEP->Close(); | |
412 | if(mergedOutputListMCEP) | |
413 | { | |
414 | AliFlowCommonHistResults *mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
415 | (mergedOutputListMCEP->FindObject("AliFlowCommonHistResultsMCEP")); | |
416 | if(mcepCommonHistRes && mcepCommonHistRes->GetHistIntFlow()) | |
417 | { | |
418 | mergedValueMCEP = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
419 | mergedErrorMCEP = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
420 | } | |
421 | } | |
422 | } // end of if(mergedOutputFileMCEP) | |
423 | } // end of else | |
424 | ||
425 | // SP: | |
426 | TString mergedOutputFileNameSP(pwd.Data()); | |
427 | ((mergedOutputFileNameSP+="outputSPanalysis")+=type.Data())+=".root"; | |
428 | TFile *mergedOutputFileSP = NULL; | |
429 | TList *mergedOutputListSP = NULL; | |
430 | Double_t mergedValueSP = 0.; | |
431 | Double_t mergedErrorSP = 0.; | |
432 | if(gSystem->AccessPathName(mergedOutputFileNameSP.Data(),kFileExists)) | |
433 | { | |
434 | cout<<"WARNING: You do not have a merged output file "<<mergedOutputFileNameSP.Data()<<endl; | |
435 | } else | |
436 | { | |
437 | mergedOutputFileSP = TFile::Open(mergedOutputFileNameSP.Data(),"READ"); | |
438 | if(mergedOutputFileSP) | |
439 | { | |
440 | mergedOutputFileSP->GetObject("cobjSP",mergedOutputListSP); | |
441 | mergedOutputFileSP->Close(); | |
442 | if(mergedOutputListSP) | |
443 | { | |
444 | AliFlowCommonHistResults *spCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
445 | (mergedOutputListSP->FindObject("AliFlowCommonHistResultsSP")); | |
446 | if(spCommonHistRes && spCommonHistRes->GetHistIntFlow()) | |
447 | { | |
448 | mergedValueSP = (spCommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
449 | mergedErrorSP = (spCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
450 | } | |
451 | } | |
452 | } // end of if(mergedOutputFileSP) | |
453 | } // end of else | |
e47370f7 | 454 | |
6a6afe42 | 455 | // GFC: |
456 | TString mergedOutputFileNameGFC(pwd.Data()); | |
457 | ((mergedOutputFileNameGFC+="outputGFCanalysis")+=type.Data())+=".root"; | |
458 | TFile *mergedOutputFileGFC = NULL; | |
459 | TList *mergedOutputListGFC = NULL; | |
460 | Double_t mergedValueGFC2 = 0.; | |
461 | Double_t mergedErrorGFC2 = 0.; | |
462 | Double_t mergedValueGFC4 = 0.; | |
463 | Double_t mergedErrorGFC4 = 0.; | |
464 | Double_t mergedValueGFC6 = 0.; | |
465 | Double_t mergedErrorGFC6 = 0.; | |
466 | Double_t mergedValueGFC8 = 0.; | |
467 | Double_t mergedErrorGFC8 = 0.; | |
468 | if(gSystem->AccessPathName(mergedOutputFileNameGFC.Data(),kFileExists)) | |
469 | { | |
470 | cout<<"WARNING: You do not have a merged output file "<<mergedOutputFileNameGFC.Data()<<endl; | |
471 | } else | |
472 | { | |
473 | mergedOutputFileGFC = TFile::Open(mergedOutputFileNameGFC.Data(),"READ"); | |
474 | if(mergedOutputFileGFC) | |
475 | { | |
476 | mergedOutputFileGFC->GetObject("cobjGFC",mergedOutputListGFC); | |
477 | mergedOutputFileGFC->Close(); | |
478 | if(mergedOutputListGFC) | |
479 | { | |
480 | AliFlowCommonHistResults *gfc2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
481 | (mergedOutputListGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC")); | |
482 | AliFlowCommonHistResults *gfc4CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
483 | (mergedOutputListGFC->FindObject("AliFlowCommonHistResults4thOrderGFC")); | |
484 | AliFlowCommonHistResults *gfc6CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
485 | (mergedOutputListGFC->FindObject("AliFlowCommonHistResults6thOrderGFC")); | |
486 | AliFlowCommonHistResults *gfc8CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
487 | (mergedOutputListGFC->FindObject("AliFlowCommonHistResults8thOrderGFC")); | |
488 | if(gfc2CommonHistRes && gfc2CommonHistRes->GetHistIntFlow()) | |
489 | { | |
490 | mergedValueGFC2 = (gfc2CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
491 | mergedErrorGFC2 = (gfc2CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
492 | } | |
493 | if(gfc4CommonHistRes && gfc4CommonHistRes->GetHistIntFlow()) | |
494 | { | |
495 | mergedValueGFC4 = (gfc4CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
496 | mergedErrorGFC4 = (gfc4CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
497 | } | |
498 | if(gfc6CommonHistRes && gfc6CommonHistRes->GetHistIntFlow()) | |
499 | { | |
500 | mergedValueGFC6 = (gfc6CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
501 | mergedErrorGFC6 = (gfc6CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
502 | } | |
503 | if(gfc8CommonHistRes && gfc8CommonHistRes->GetHistIntFlow()) | |
504 | { | |
505 | mergedValueGFC8 = (gfc8CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
506 | mergedErrorGFC8 = (gfc8CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
507 | } | |
508 | } | |
509 | } // end of if(mergedOutputFileGFC) | |
510 | } // end of else | |
e47370f7 | 511 | |
6a6afe42 | 512 | // QC: |
513 | TString mergedOutputFileNameQC(pwd.Data()); | |
514 | ((mergedOutputFileNameQC+="outputQCanalysis")+=type.Data())+=".root"; | |
515 | TFile *mergedOutputFileQC = NULL; | |
516 | TList *mergedOutputListQC = NULL; | |
517 | Double_t mergedValueQC2 = 0.; | |
518 | Double_t mergedErrorQC2 = 0.; | |
519 | Double_t mergedValueQC4 = 0.; | |
520 | Double_t mergedErrorQC4 = 0.; | |
521 | Double_t mergedValueQC6 = 0.; | |
522 | Double_t mergedErrorQC6 = 0.; | |
523 | Double_t mergedValueQC8 = 0.; | |
524 | Double_t mergedErrorQC8 = 0.; | |
525 | if(gSystem->AccessPathName(mergedOutputFileNameQC.Data(),kFileExists)) | |
526 | { | |
527 | cout<<"WARNING: You do not have a merged output file "<<mergedOutputFileNameQC.Data()<<endl; | |
528 | } else | |
529 | { | |
530 | mergedOutputFileQC = TFile::Open(mergedOutputFileNameQC.Data(),"READ"); | |
531 | if(mergedOutputFileQC) | |
532 | { | |
533 | mergedOutputFileQC->GetObject("cobjQC",mergedOutputListQC); | |
534 | mergedOutputFileQC->Close(); | |
535 | if(mergedOutputListQC) | |
536 | { | |
537 | AliFlowCommonHistResults *qc2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
538 | (mergedOutputListQC->FindObject("AliFlowCommonHistResults2ndOrderQC")); | |
539 | AliFlowCommonHistResults *qc4CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
540 | (mergedOutputListQC->FindObject("AliFlowCommonHistResults4thOrderQC")); | |
541 | AliFlowCommonHistResults *qc6CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
542 | (mergedOutputListQC->FindObject("AliFlowCommonHistResults6thOrderQC")); | |
543 | AliFlowCommonHistResults *qc8CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
544 | (mergedOutputListQC->FindObject("AliFlowCommonHistResults8thOrderQC")); | |
545 | if(qc2CommonHistRes && qc2CommonHistRes->GetHistIntFlow()) | |
546 | { | |
547 | mergedValueQC2 = (qc2CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
548 | mergedErrorQC2 = (qc2CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
549 | } | |
550 | if(qc4CommonHistRes && qc4CommonHistRes->GetHistIntFlow()) | |
551 | { | |
552 | mergedValueQC4 = (qc4CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
553 | mergedErrorQC4 = (qc4CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
554 | } | |
555 | if(qc6CommonHistRes && qc6CommonHistRes->GetHistIntFlow()) | |
556 | { | |
557 | mergedValueQC6 = (qc6CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
558 | mergedErrorQC6 = (qc6CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
559 | } | |
560 | if(qc8CommonHistRes && qc8CommonHistRes->GetHistIntFlow()) | |
561 | { | |
562 | mergedValueQC8 = (qc8CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
563 | mergedErrorQC8 = (qc8CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
564 | } | |
565 | } | |
566 | } // end of if(mergedOutputFileGFC) | |
567 | } // end of else | |
568 | ||
569 | // FQD: | |
570 | TString mergedOutputFileNameFQD(pwd.Data()); | |
571 | ((mergedOutputFileNameFQD+="outputFQDanalysis")+=type.Data())+=".root"; | |
572 | TFile *mergedOutputFileFQD = NULL; | |
573 | TList *mergedOutputListFQD = NULL; | |
574 | Double_t mergedValueFQD = 0.; | |
575 | Double_t mergedErrorFQD = 0.; | |
576 | if(gSystem->AccessPathName(mergedOutputFileNameFQD.Data(),kFileExists)) | |
577 | { | |
578 | cout<<"WARNING: You do not have a merged output file "<<mergedOutputFileNameFQD.Data()<<endl; | |
579 | } else | |
580 | { | |
581 | mergedOutputFileFQD = TFile::Open(mergedOutputFileNameFQD.Data(),"READ"); | |
582 | if(mergedOutputFileFQD) | |
583 | { | |
584 | mergedOutputFileFQD->GetObject("cobjFQD",mergedOutputListFQD); | |
585 | mergedOutputFileFQD->Close(); | |
586 | if(mergedOutputListFQD) | |
587 | { | |
588 | AliFlowCommonHistResults *fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
589 | (mergedOutputListFQD->FindObject("AliFlowCommonHistResultsFQD")); | |
590 | if(fqdCommonHistRes && fqdCommonHistRes->GetHistIntFlow()) | |
591 | { | |
592 | mergedValueFQD = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
593 | mergedErrorFQD = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
594 | } | |
595 | } | |
596 | } // end of if(mergedOutputFileFQD) | |
597 | } // end of else | |
598 | ||
48385911 | 599 | // LYZ1: |
600 | TString mergedOutputFileNameLYZ1(pwd.Data()); | |
601 | ((mergedOutputFileNameLYZ1+="outputLYZ1analysis")+=type.Data())+=".root"; | |
602 | TFile *mergedOutputFileLYZ1 = NULL; | |
603 | TList *mergedOutputListLYZ1 = NULL; | |
604 | Double_t mergedValueLYZ1 = 0.; | |
605 | Double_t mergedErrorLYZ1 = 0.; | |
606 | if(gSystem->AccessPathName(mergedOutputFileNameLYZ1.Data(),kFileExists)) | |
607 | { | |
608 | cout<<"WARNING: You do not have a merged output file "<<mergedOutputFileNameLYZ1.Data()<<endl; | |
609 | } else | |
610 | { | |
611 | mergedOutputFileLYZ1 = TFile::Open(mergedOutputFileNameLYZ1.Data(),"READ"); | |
612 | if(mergedOutputFileLYZ1) | |
613 | { | |
614 | mergedOutputFileLYZ1->GetObject("cobjLYZ1",mergedOutputListLYZ1); | |
615 | mergedOutputFileLYZ1->Close(); | |
616 | if(mergedOutputListLYZ1) | |
617 | { | |
618 | AliFlowCommonHistResults *lyz1CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> | |
619 | (mergedOutputListLYZ1->FindObject("AliFlowCommonHistResultsLYZ1")); | |
620 | if(lyz1CommonHistRes && lyz1CommonHistRes->GetHistIntFlow()) | |
621 | { | |
622 | mergedValueLYZ1 = (lyz1CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
623 | mergedErrorLYZ1 = (lyz1CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
624 | } | |
625 | } | |
626 | } // end of if(mergedOutputFileLYZ1) | |
627 | } // end of else | |
6a6afe42 | 628 | |
b78897bc | 629 | // removing the title and stat. box from all histograms: |
630 | // gStyle->SetOptTitle(0); | |
e47370f7 | 631 | gStyle->SetOptStat(0); |
632 | ||
633 | // box width: | |
634 | const Double_t boxWidth = 0.25; | |
635 | ||
636 | // the number of different methods: | |
637 | const Int_t nMethods = 13; | |
638 | ||
6a6afe42 | 639 | // the number of small statistics runs: |
e47370f7 | 640 | const Int_t nPoints = counter; |
641 | ||
642 | // booking the style histogram for the integrated flow results from all methods for NONAME, RPs and POIs: | |
e47370f7 | 643 | TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods); |
644 | //intFlowAll->SetLabelSize(0.036,"X"); | |
645 | //intFlowAll->SetLabelSize(0.036,"Y"); | |
646 | //intFlowAll->SetMarkerStyle(markerStyle); | |
647 | //intFlowAll->SetMarkerColor(markerColor); | |
b78897bc | 648 | (intFlowAll->GetYaxis())->SetTickLength(0.01); |
e47370f7 | 649 | (intFlowAll->GetXaxis())->SetBinLabel(binMCEP,"v_{2}{MC}"); |
650 | (intFlowAll->GetXaxis())->SetBinLabel(binSP,"v_{2}{SP}"); | |
651 | (intFlowAll->GetXaxis())->SetBinLabel(binGFC2,"v_{2}{2,GFC}"); | |
652 | (intFlowAll->GetXaxis())->SetBinLabel(binQC2,"v_{2}{2,QC}"); | |
653 | (intFlowAll->GetXaxis())->SetBinLabel(binGFC4,"v_{2}{4,GFC}"); | |
654 | (intFlowAll->GetXaxis())->SetBinLabel(binQC4,"v_{2}{4,QC}"); | |
655 | (intFlowAll->GetXaxis())->SetBinLabel(binGFC6,"v_{2}{6,GFC}"); | |
656 | (intFlowAll->GetXaxis())->SetBinLabel(binQC6,"v_{2}{6,QC}"); | |
657 | (intFlowAll->GetXaxis())->SetBinLabel(binGFC8,"v_{2}{8,GFC}"); | |
658 | (intFlowAll->GetXaxis())->SetBinLabel(binQC8,"v_{2}{8,QC}"); | |
659 | (intFlowAll->GetXaxis())->SetBinLabel(binFQD,"v_{2}{FQD}"); | |
660 | (intFlowAll->GetXaxis())->SetBinLabel(binLYZ1,"v_{2}{LYZ}"); | |
661 | (intFlowAll->GetXaxis())->SetBinLabel(binLYZEP,"v_{2}{LYZEP}"); | |
e47370f7 | 662 | |
663 | //============================================================================= | |
6a6afe42 | 664 | // NONAME histogram |
e47370f7 | 665 | //============================================================================= |
666 | ||
667 | TH1D *intFlowNONAME = new TH1D(*intFlowAll); | |
668 | ||
669 | Double_t mcepNONAME[nPoints] = {0.}; | |
670 | Double_t spNONAME[nPoints] = {0.}; | |
671 | Double_t gfc2NONAME[nPoints] = {0.}; | |
672 | Double_t gfc4NONAME[nPoints] = {0.}; | |
673 | Double_t gfc6NONAME[nPoints] = {0.}; | |
674 | Double_t gfc8NONAME[nPoints] = {0.}; | |
675 | Double_t qc2NONAME[nPoints] = {0.}; | |
676 | Double_t qc4NONAME[nPoints] = {0.}; | |
677 | Double_t qc6NONAME[nPoints] = {0.}; | |
678 | Double_t qc8NONAME[nPoints] = {0.}; | |
679 | Double_t fqdNONAME[nPoints] = {0.}; | |
680 | Double_t lyz1NONAME[nPoints] = {0.}; | |
681 | Double_t lyzepNONAME[nPoints] = {0.}; | |
682 | ||
683 | for(Int_t i=0;i<nPoints;i++) | |
684 | { | |
685 | mcepNONAME[i]=binMCEP-0.5; | |
686 | spNONAME[i]=binSP-0.5; | |
687 | gfc2NONAME[i]=binGFC2-0.5; | |
688 | gfc4NONAME[i]=binGFC4-0.5; | |
689 | gfc6NONAME[i]=binGFC6-0.5; | |
690 | gfc8NONAME[i]=binGFC8-0.5; | |
691 | qc2NONAME[i]=binQC2-0.5; | |
692 | qc4NONAME[i]=binQC4-0.5; | |
693 | qc6NONAME[i]=binQC6-0.5; | |
694 | qc8NONAME[i]=binQC8-0.5; | |
695 | fqdNONAME[i]=binFQD-0.5; | |
696 | lyz1NONAME[i]=binLYZ1-0.5; | |
697 | lyzepNONAME[i]=binLYZEP-0.5; | |
698 | } | |
699 | ||
700 | // MCEP: | |
48385911 | 701 | TGraphErrors *mcepMeanNONAME = new TGraphErrors(1); |
702 | mcepMeanNONAME->SetPoint(0,binMCEP-0.5,mergedValueMCEP); | |
703 | mcepMeanNONAME->SetPointError(0,0,mergedErrorMCEP); | |
6a6afe42 | 704 | mcepMeanNONAME->SetMarkerStyle(25); |
705 | mcepMeanNONAME->SetMarkerColor(kBlack); | |
48385911 | 706 | mcepMeanNONAME->SetLineColor(kBlack); |
6a6afe42 | 707 | mcepMeanNONAME->SetMarkerSize(1.25); |
708 | ||
e47370f7 | 709 | TGraph* mcepTGraphNONAME = new TGraph(nPoints, mcepNONAME, mcepValueNONAME); |
fd46c3dd | 710 | mcepTGraphNONAME->SetMarkerStyle(21); |
48385911 | 711 | mcepTGraphNONAME->SetMarkerColor(kGray+1); |
fd46c3dd | 712 | mcepTGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 713 | |
714 | TGraph *mcepBoxNONAME = new TGraph(5); | |
6a6afe42 | 715 | mcepBoxNONAME->SetPoint(0,(binMCEP-0.5)-boxWidth,mcepMinValueNONAME); |
716 | mcepBoxNONAME->SetPoint(1,(binMCEP-0.5)+boxWidth,mcepMinValueNONAME); | |
717 | mcepBoxNONAME->SetPoint(2,(binMCEP-0.5)+boxWidth,mcepMaxValueNONAME); | |
718 | mcepBoxNONAME->SetPoint(3,(binMCEP-0.5)-boxWidth,mcepMaxValueNONAME); | |
719 | mcepBoxNONAME->SetPoint(4,(binMCEP-0.5)-boxWidth,mcepMinValueNONAME); | |
e47370f7 | 720 | mcepBoxNONAME->SetFillStyle(1001); |
721 | mcepBoxNONAME->SetFillColor(kGray); | |
6a6afe42 | 722 | |
e47370f7 | 723 | // SP: |
48385911 | 724 | TGraphErrors *spMeanNONAME = new TGraphErrors(1); |
6a6afe42 | 725 | spMeanNONAME->SetPoint(0,binSP-0.5,mergedValueSP); |
48385911 | 726 | spMeanNONAME->SetPointError(0,0,mergedErrorSP); |
6a6afe42 | 727 | spMeanNONAME->SetMarkerStyle(25); |
48385911 | 728 | spMeanNONAME->SetMarkerColor(kBlack); |
729 | spMeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 730 | spMeanNONAME->SetMarkerSize(1.25); |
731 | ||
e47370f7 | 732 | TGraph* spTGraphNONAME = new TGraph(nPoints, spNONAME, spValueNONAME); |
fd46c3dd | 733 | spTGraphNONAME->SetMarkerStyle(21); |
48385911 | 734 | spTGraphNONAME->SetMarkerColor(kViolet-8); |
fd46c3dd | 735 | spTGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 736 | |
737 | TGraph *spBoxNONAME = new TGraph(5); | |
6a6afe42 | 738 | spBoxNONAME->SetPoint(0,(binSP-0.5)-boxWidth,spMinValueNONAME); |
739 | spBoxNONAME->SetPoint(1,(binSP-0.5)+boxWidth,spMinValueNONAME); | |
740 | spBoxNONAME->SetPoint(2,(binSP-0.5)+boxWidth,spMaxValueNONAME); | |
741 | spBoxNONAME->SetPoint(3,(binSP-0.5)-boxWidth,spMaxValueNONAME); | |
742 | spBoxNONAME->SetPoint(4,(binSP-0.5)-boxWidth,spMinValueNONAME); | |
e47370f7 | 743 | spBoxNONAME->SetFillStyle(1001); |
744 | spBoxNONAME->SetFillColor(kViolet-9); | |
745 | ||
746 | // GFC{2}: | |
48385911 | 747 | TGraphErrors *gfc2MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 748 | gfc2MeanNONAME->SetPoint(0,binGFC2-0.5,mergedValueGFC2); |
48385911 | 749 | gfc2MeanNONAME->SetPointError(0,0,mergedErrorGFC2); |
6a6afe42 | 750 | gfc2MeanNONAME->SetMarkerStyle(25); |
48385911 | 751 | gfc2MeanNONAME->SetMarkerColor(kBlack); |
752 | gfc2MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 753 | gfc2MeanNONAME->SetMarkerSize(1.25); |
754 | ||
e47370f7 | 755 | TGraph* gfc2TGraphNONAME = new TGraph(nPoints, gfc2NONAME, gfc2ValueNONAME); |
fd46c3dd | 756 | gfc2TGraphNONAME->SetMarkerStyle(21); |
48385911 | 757 | gfc2TGraphNONAME->SetMarkerColor(kBlue-9); |
fd46c3dd | 758 | gfc2TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 759 | |
760 | TGraph *gfc2BoxNONAME = new TGraph(5); | |
6a6afe42 | 761 | gfc2BoxNONAME->SetPoint(0,(binGFC2-0.5)-boxWidth,gfc2MinValueNONAME); |
762 | gfc2BoxNONAME->SetPoint(1,(binGFC2-0.5)+boxWidth,gfc2MinValueNONAME); | |
763 | gfc2BoxNONAME->SetPoint(2,(binGFC2-0.5)+boxWidth,gfc2MaxValueNONAME); | |
764 | gfc2BoxNONAME->SetPoint(3,(binGFC2-0.5)-boxWidth,gfc2MaxValueNONAME); | |
765 | gfc2BoxNONAME->SetPoint(4,(binGFC2-0.5)-boxWidth,gfc2MinValueNONAME); | |
e47370f7 | 766 | gfc2BoxNONAME->SetFillStyle(1001); |
767 | gfc2BoxNONAME->SetFillColor(kBlue-10); | |
768 | ||
769 | // GFC{4}: | |
48385911 | 770 | TGraphErrors *gfc4MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 771 | gfc4MeanNONAME->SetPoint(0,binGFC4-0.5,mergedValueGFC4); |
48385911 | 772 | gfc4MeanNONAME->SetPointError(0,0,mergedErrorGFC4); |
6a6afe42 | 773 | gfc4MeanNONAME->SetMarkerStyle(25); |
48385911 | 774 | gfc4MeanNONAME->SetMarkerColor(kBlack); |
775 | gfc4MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 776 | gfc4MeanNONAME->SetMarkerSize(1.25); |
777 | ||
e47370f7 | 778 | TGraph* gfc4TGraphNONAME = new TGraph(nPoints, gfc4NONAME, gfc4ValueNONAME); |
fd46c3dd | 779 | gfc4TGraphNONAME->SetMarkerStyle(21); |
48385911 | 780 | gfc4TGraphNONAME->SetMarkerColor(kBlue-9); |
fd46c3dd | 781 | gfc4TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 782 | |
783 | TGraph *gfc4BoxNONAME = new TGraph(5); | |
6a6afe42 | 784 | gfc4BoxNONAME->SetPoint(0,(binGFC4-0.5)-boxWidth,gfc4MinValueNONAME); |
785 | gfc4BoxNONAME->SetPoint(1,(binGFC4-0.5)+boxWidth,gfc4MinValueNONAME); | |
786 | gfc4BoxNONAME->SetPoint(2,(binGFC4-0.5)+boxWidth,gfc4MaxValueNONAME); | |
787 | gfc4BoxNONAME->SetPoint(3,(binGFC4-0.5)-boxWidth,gfc4MaxValueNONAME); | |
788 | gfc4BoxNONAME->SetPoint(4,(binGFC4-0.5)-boxWidth,gfc4MinValueNONAME); | |
e47370f7 | 789 | gfc4BoxNONAME->SetFillStyle(1001); |
790 | gfc4BoxNONAME->SetFillColor(kBlue-10); | |
6a6afe42 | 791 | |
e47370f7 | 792 | // GFC{6}: |
48385911 | 793 | TGraphErrors *gfc6MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 794 | gfc6MeanNONAME->SetPoint(0,binGFC6-0.5,mergedValueGFC6); |
48385911 | 795 | gfc6MeanNONAME->SetPointError(0,0,mergedErrorGFC6); |
6a6afe42 | 796 | gfc6MeanNONAME->SetMarkerStyle(25); |
48385911 | 797 | gfc6MeanNONAME->SetMarkerColor(kBlack); |
798 | gfc6MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 799 | gfc6MeanNONAME->SetMarkerSize(1.25); |
800 | ||
e47370f7 | 801 | TGraph* gfc6TGraphNONAME = new TGraph(nPoints, gfc6NONAME, gfc6ValueNONAME); |
fd46c3dd | 802 | gfc6TGraphNONAME->SetMarkerStyle(21); |
48385911 | 803 | gfc6TGraphNONAME->SetMarkerColor(kBlue-9); |
fd46c3dd | 804 | gfc6TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 805 | |
806 | TGraph *gfc6BoxNONAME = new TGraph(5); | |
6a6afe42 | 807 | gfc6BoxNONAME->SetPoint(0,(binGFC6-0.5)-boxWidth,gfc6MinValueNONAME); |
808 | gfc6BoxNONAME->SetPoint(1,(binGFC6-0.5)+boxWidth,gfc6MinValueNONAME); | |
809 | gfc6BoxNONAME->SetPoint(2,(binGFC6-0.5)+boxWidth,gfc6MaxValueNONAME); | |
810 | gfc6BoxNONAME->SetPoint(3,(binGFC6-0.5)-boxWidth,gfc6MaxValueNONAME); | |
811 | gfc6BoxNONAME->SetPoint(4,(binGFC6-0.5)-boxWidth,gfc6MinValueNONAME); | |
e47370f7 | 812 | gfc6BoxNONAME->SetFillStyle(1001); |
813 | gfc6BoxNONAME->SetFillColor(kBlue-10); | |
6a6afe42 | 814 | |
e47370f7 | 815 | // GFC{8}: |
48385911 | 816 | TGraphErrors *gfc8MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 817 | gfc8MeanNONAME->SetPoint(0,binGFC8-0.5,mergedValueGFC8); |
48385911 | 818 | gfc8MeanNONAME->SetPointError(0,0,mergedErrorGFC8); |
6a6afe42 | 819 | gfc8MeanNONAME->SetMarkerStyle(25); |
48385911 | 820 | gfc8MeanNONAME->SetMarkerColor(kBlack); |
821 | gfc8MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 822 | gfc8MeanNONAME->SetMarkerSize(1.25); |
823 | ||
e47370f7 | 824 | TGraph* gfc8TGraphNONAME = new TGraph(nPoints, gfc8NONAME, gfc8ValueNONAME); |
fd46c3dd | 825 | gfc8TGraphNONAME->SetMarkerStyle(21); |
48385911 | 826 | gfc8TGraphNONAME->SetMarkerColor(kBlue-9); |
fd46c3dd | 827 | gfc8TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 828 | |
829 | TGraph *gfc8BoxNONAME = new TGraph(5); | |
6a6afe42 | 830 | gfc8BoxNONAME->SetPoint(0,(binGFC8-0.5)-boxWidth,gfc8MinValueNONAME); |
831 | gfc8BoxNONAME->SetPoint(1,(binGFC8-0.5)+boxWidth,gfc8MinValueNONAME); | |
832 | gfc8BoxNONAME->SetPoint(2,(binGFC8-0.5)+boxWidth,gfc8MaxValueNONAME); | |
833 | gfc8BoxNONAME->SetPoint(3,(binGFC8-0.5)-boxWidth,gfc8MaxValueNONAME); | |
834 | gfc8BoxNONAME->SetPoint(4,(binGFC8-0.5)-boxWidth,gfc8MinValueNONAME); | |
e47370f7 | 835 | gfc8BoxNONAME->SetFillStyle(1001); |
836 | gfc8BoxNONAME->SetFillColor(kBlue-10); | |
837 | ||
838 | // QC{2}: | |
48385911 | 839 | TGraphErrors *qc2MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 840 | qc2MeanNONAME->SetPoint(0,binQC2-0.5,mergedValueQC2); |
48385911 | 841 | qc2MeanNONAME->SetPointError(0,0,mergedErrorQC2); |
6a6afe42 | 842 | qc2MeanNONAME->SetMarkerStyle(25); |
48385911 | 843 | qc2MeanNONAME->SetMarkerColor(kBlack); |
844 | qc2MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 845 | qc2MeanNONAME->SetMarkerSize(1.25); |
846 | ||
e47370f7 | 847 | TGraph* qc2TGraphNONAME = new TGraph(nPoints, qc2NONAME, qc2ValueNONAME); |
fd46c3dd | 848 | qc2TGraphNONAME->SetMarkerStyle(21); |
48385911 | 849 | qc2TGraphNONAME->SetMarkerColor(kRed-7); |
fd46c3dd | 850 | qc2TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 851 | |
852 | TGraph *qc2BoxNONAME = new TGraph(5); | |
6a6afe42 | 853 | qc2BoxNONAME->SetPoint(0,(binQC2-0.5)-boxWidth,qc2MinValueNONAME); |
854 | qc2BoxNONAME->SetPoint(1,(binQC2-0.5)+boxWidth,qc2MinValueNONAME); | |
855 | qc2BoxNONAME->SetPoint(2,(binQC2-0.5)+boxWidth,qc2MaxValueNONAME); | |
856 | qc2BoxNONAME->SetPoint(3,(binQC2-0.5)-boxWidth,qc2MaxValueNONAME); | |
857 | qc2BoxNONAME->SetPoint(4,(binQC2-0.5)-boxWidth,qc2MinValueNONAME); | |
e47370f7 | 858 | qc2BoxNONAME->SetFillStyle(1001); |
859 | qc2BoxNONAME->SetFillColor(kRed-10); | |
860 | ||
861 | // QC{4}: | |
48385911 | 862 | TGraphErrors *qc4MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 863 | qc4MeanNONAME->SetPoint(0,binQC4-0.5,mergedValueQC4); |
48385911 | 864 | qc4MeanNONAME->SetPointError(0,0,mergedErrorQC4); |
6a6afe42 | 865 | qc4MeanNONAME->SetMarkerStyle(25); |
48385911 | 866 | qc4MeanNONAME->SetMarkerColor(kBlack); |
867 | qc4MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 868 | qc4MeanNONAME->SetMarkerSize(1.25); |
869 | ||
e47370f7 | 870 | TGraph* qc4TGraphNONAME = new TGraph(nPoints, qc4NONAME, qc4ValueNONAME); |
fd46c3dd | 871 | qc4TGraphNONAME->SetMarkerStyle(21); |
48385911 | 872 | qc4TGraphNONAME->SetMarkerColor(kRed-7); |
fd46c3dd | 873 | qc4TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 874 | |
875 | TGraph *qc4BoxNONAME = new TGraph(5); | |
6a6afe42 | 876 | qc4BoxNONAME->SetPoint(0,(binQC4-0.5)-boxWidth,qc4MinValueNONAME); |
877 | qc4BoxNONAME->SetPoint(1,(binQC4-0.5)+boxWidth,qc4MinValueNONAME); | |
878 | qc4BoxNONAME->SetPoint(2,(binQC4-0.5)+boxWidth,qc4MaxValueNONAME); | |
879 | qc4BoxNONAME->SetPoint(3,(binQC4-0.5)-boxWidth,qc4MaxValueNONAME); | |
880 | qc4BoxNONAME->SetPoint(4,(binQC4-0.5)-boxWidth,qc4MinValueNONAME); | |
e47370f7 | 881 | qc4BoxNONAME->SetFillStyle(1001); |
882 | qc4BoxNONAME->SetFillColor(kRed-10); | |
6a6afe42 | 883 | |
e47370f7 | 884 | // QC{6}: |
48385911 | 885 | TGraphErrors *qc6MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 886 | qc6MeanNONAME->SetPoint(0,binQC6-0.5,mergedValueQC6); |
48385911 | 887 | qc6MeanNONAME->SetPointError(0,0,mergedErrorQC6); |
6a6afe42 | 888 | qc6MeanNONAME->SetMarkerStyle(25); |
48385911 | 889 | qc6MeanNONAME->SetMarkerColor(kBlack); |
890 | qc6MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 891 | qc6MeanNONAME->SetMarkerSize(1.25); |
892 | ||
e47370f7 | 893 | TGraph* qc6TGraphNONAME = new TGraph(nPoints, qc6NONAME, qc6ValueNONAME); |
fd46c3dd | 894 | qc6TGraphNONAME->SetMarkerStyle(21); |
48385911 | 895 | qc6TGraphNONAME->SetMarkerColor(kRed-7); |
fd46c3dd | 896 | qc6TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 897 | |
898 | TGraph *qc6BoxNONAME = new TGraph(5); | |
6a6afe42 | 899 | qc6BoxNONAME->SetPoint(0,(binQC6-0.5)-boxWidth,qc6MinValueNONAME); |
900 | qc6BoxNONAME->SetPoint(1,(binQC6-0.5)+boxWidth,qc6MinValueNONAME); | |
901 | qc6BoxNONAME->SetPoint(2,(binQC6-0.5)+boxWidth,qc6MaxValueNONAME); | |
902 | qc6BoxNONAME->SetPoint(3,(binQC6-0.5)-boxWidth,qc6MaxValueNONAME); | |
903 | qc6BoxNONAME->SetPoint(4,(binQC6-0.5)-boxWidth,qc6MinValueNONAME); | |
e47370f7 | 904 | qc6BoxNONAME->SetFillStyle(1001); |
905 | qc6BoxNONAME->SetFillColor(kRed-10); | |
6a6afe42 | 906 | |
e47370f7 | 907 | // QC{8}: |
48385911 | 908 | TGraphErrors *qc8MeanNONAME = new TGraphErrors(1); |
6a6afe42 | 909 | qc8MeanNONAME->SetPoint(0,binQC8-0.5,mergedValueQC8); |
48385911 | 910 | qc8MeanNONAME->SetPointError(0,0,mergedErrorQC8); |
6a6afe42 | 911 | qc8MeanNONAME->SetMarkerStyle(25); |
48385911 | 912 | qc8MeanNONAME->SetMarkerColor(kBlack); |
913 | qc8MeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 914 | qc8MeanNONAME->SetMarkerSize(1.25); |
915 | ||
e47370f7 | 916 | TGraph* qc8TGraphNONAME = new TGraph(nPoints, qc8NONAME, qc8ValueNONAME); |
fd46c3dd | 917 | qc8TGraphNONAME->SetMarkerStyle(21); |
48385911 | 918 | qc8TGraphNONAME->SetMarkerColor(kRed-7); |
fd46c3dd | 919 | qc8TGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 920 | |
921 | TGraph *qc8BoxNONAME = new TGraph(5); | |
6a6afe42 | 922 | qc8BoxNONAME->SetPoint(0,(binQC8-0.5)-boxWidth,qc8MinValueNONAME); |
923 | qc8BoxNONAME->SetPoint(1,(binQC8-0.5)+boxWidth,qc8MinValueNONAME); | |
924 | qc8BoxNONAME->SetPoint(2,(binQC8-0.5)+boxWidth,qc8MaxValueNONAME); | |
925 | qc8BoxNONAME->SetPoint(3,(binQC8-0.5)-boxWidth,qc8MaxValueNONAME); | |
926 | qc8BoxNONAME->SetPoint(4,(binQC8-0.5)-boxWidth,qc8MinValueNONAME); | |
e47370f7 | 927 | qc8BoxNONAME->SetFillStyle(1001); |
928 | qc8BoxNONAME->SetFillColor(kRed-10); | |
929 | ||
930 | // FQD: | |
48385911 | 931 | TGraphErrors *fqdMeanNONAME = new TGraphErrors(1); |
6a6afe42 | 932 | fqdMeanNONAME->SetPoint(0,binFQD-0.5,mergedValueFQD); |
48385911 | 933 | fqdMeanNONAME->SetPointError(0,0,mergedErrorFQD); |
6a6afe42 | 934 | fqdMeanNONAME->SetMarkerStyle(25); |
48385911 | 935 | fqdMeanNONAME->SetMarkerColor(kBlack); |
936 | fqdMeanNONAME->SetLineColor(kBlack); | |
6a6afe42 | 937 | fqdMeanNONAME->SetMarkerSize(1.25); |
938 | ||
e47370f7 | 939 | TGraph* fqdTGraphNONAME = new TGraph(nPoints, fqdNONAME, fqdValueNONAME); |
fd46c3dd | 940 | fqdTGraphNONAME->SetMarkerStyle(21); |
48385911 | 941 | fqdTGraphNONAME->SetMarkerColor(kOrange-8); |
fd46c3dd | 942 | fqdTGraphNONAME->SetMarkerSize(0.75); |
e47370f7 | 943 | |
944 | TGraph *fqdBoxNONAME = new TGraph(5); | |
6a6afe42 | 945 | fqdBoxNONAME->SetPoint(0,(binFQD-0.5)-boxWidth,fqdMinValueNONAME); |
946 | fqdBoxNONAME->SetPoint(1,(binFQD-0.5)+boxWidth,fqdMinValueNONAME); | |
947 | fqdBoxNONAME->SetPoint(2,(binFQD-0.5)+boxWidth,fqdMaxValueNONAME); | |
948 | fqdBoxNONAME->SetPoint(3,(binFQD-0.5)-boxWidth,fqdMaxValueNONAME); | |
949 | fqdBoxNONAME->SetPoint(4,(binFQD-0.5)-boxWidth,fqdMinValueNONAME); | |
e47370f7 | 950 | fqdBoxNONAME->SetFillStyle(1001); |
951 | fqdBoxNONAME->SetFillColor(kOrange-9); | |
952 | ||
48385911 | 953 | // LYZ1: |
954 | TGraphErrors *lyz1MeanNONAME = new TGraphErrors(1); | |
955 | lyz1MeanNONAME->SetPoint(0,binLYZ1-0.5,mergedValueLYZ1); | |
956 | lyz1MeanNONAME->SetPointError(0,0,mergedErrorLYZ1); | |
957 | lyz1MeanNONAME->SetMarkerStyle(25); | |
958 | lyz1MeanNONAME->SetMarkerColor(kBlack); | |
959 | lyz1MeanNONAME->SetLineColor(kBlack); | |
960 | lyz1MeanNONAME->SetMarkerSize(1.25); | |
961 | ||
962 | TGraph* lyz1TGraphNONAME = new TGraph(nPoints, lyz1NONAME, lyz1ValueNONAME); | |
963 | lyz1TGraphNONAME->SetMarkerStyle(21); | |
964 | lyz1TGraphNONAME->SetMarkerColor(kYellow-5); | |
965 | lyz1TGraphNONAME->SetMarkerSize(0.75); | |
966 | ||
967 | TGraph *lyz1BoxNONAME = new TGraph(5); | |
968 | lyz1BoxNONAME->SetPoint(0,(binLYZ1-0.5)-boxWidth,lyz1MinValueNONAME); | |
969 | lyz1BoxNONAME->SetPoint(1,(binLYZ1-0.5)+boxWidth,lyz1MinValueNONAME); | |
970 | lyz1BoxNONAME->SetPoint(2,(binLYZ1-0.5)+boxWidth,lyz1MaxValueNONAME); | |
971 | lyz1BoxNONAME->SetPoint(3,(binLYZ1-0.5)-boxWidth,lyz1MaxValueNONAME); | |
972 | lyz1BoxNONAME->SetPoint(4,(binLYZ1-0.5)-boxWidth,lyz1MinValueNONAME); | |
973 | lyz1BoxNONAME->SetFillStyle(1001); | |
974 | lyz1BoxNONAME->SetFillColor(kYellow-8); | |
975 | ||
e47370f7 | 976 | TCanvas* intFlowCanvasNONAME = new TCanvas("Integrated Flow NONAME","Integrated Flow NONAME",1000,600); |
977 | ||
978 | intFlowCanvasNONAME->Divide(2,1); | |
979 | ||
980 | // 1st pad is for plot: | |
981 | (intFlowCanvasNONAME->cd(1))->SetPad(0.0,0.0,0.75,1.0); | |
982 | ||
6a6afe42 | 983 | |
e47370f7 | 984 | if(intFlowNONAME) |
985 | { | |
b78897bc | 986 | TString intFlowNameNONAME("Superimposing "); |
6a6afe42 | 987 | intFlowNameNONAME+=counter; |
b78897bc | 988 | intFlowNameNONAME+=" independent runs"; |
989 | intFlowNONAME->SetTitle(intFlowNameNONAME.Data()); | |
e47370f7 | 990 | (intFlowNONAME->GetYaxis())->SetRangeUser(0,0.20); |
991 | intFlowNONAME->Draw(); | |
992 | } | |
993 | ||
6a6afe42 | 994 | // MCEP: |
b78897bc | 995 | if(mcepBoxNONAME && mcepMinValueNONAME < 1000.) mcepBoxNONAME->Draw("LFSAME"); |
e47370f7 | 996 | if(mcepTGraphNONAME) mcepTGraphNONAME->Draw("PSAME"); |
6a6afe42 | 997 | if(mcepMeanNONAME) mcepMeanNONAME->Draw("PSAME"); |
e47370f7 | 998 | |
6a6afe42 | 999 | // SP: |
b78897bc | 1000 | if(spBoxNONAME && spMinValueNONAME < 1000.) spBoxNONAME->Draw("LFSAME"); |
e47370f7 | 1001 | if(spTGraphNONAME) spTGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1002 | if(spMeanNONAME) spMeanNONAME->Draw("PSAME"); |
e47370f7 | 1003 | |
6a6afe42 | 1004 | // GFC{2}: |
b78897bc | 1005 | if(gfc2BoxNONAME && gfc2MinValueNONAME < 1000.) gfc2BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1006 | if(gfc2TGraphNONAME) gfc2TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1007 | if(gfc2MeanNONAME) gfc2MeanNONAME->Draw("PSAME"); |
1008 | ||
1009 | // GFC{4}: | |
b78897bc | 1010 | if(gfc4BoxNONAME && gfc4MinValueNONAME < 1000.) gfc4BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1011 | if(gfc4TGraphNONAME) gfc4TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1012 | if(gfc4MeanNONAME) gfc4MeanNONAME->Draw("PSAME"); |
1013 | ||
1014 | // GFC{6}: | |
b78897bc | 1015 | if(gfc6BoxNONAME && gfc6MinValueNONAME < 1000.) gfc6BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1016 | if(gfc6TGraphNONAME) gfc6TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1017 | if(gfc6MeanNONAME) gfc6MeanNONAME->Draw("PSAME"); |
1018 | ||
1019 | // GFC{8}: | |
b78897bc | 1020 | if(gfc8BoxNONAME && gfc8MinValueNONAME < 1000.) gfc8BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1021 | if(gfc8TGraphNONAME) gfc8TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1022 | if(gfc8MeanNONAME) gfc8MeanNONAME->Draw("PSAME"); |
e47370f7 | 1023 | |
6a6afe42 | 1024 | // QC{2}: |
b78897bc | 1025 | if(qc2BoxNONAME && qc2MinValueNONAME < 1000.) qc2BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1026 | if(qc2TGraphNONAME) qc2TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1027 | if(qc2MeanNONAME) qc2MeanNONAME->Draw("PSAME"); |
1028 | ||
1029 | // QC{4}: | |
b78897bc | 1030 | if(qc4BoxNONAME && qc4MinValueNONAME < 1000.) qc4BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1031 | if(qc4TGraphNONAME) qc4TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1032 | if(qc4MeanNONAME) qc4MeanNONAME->Draw("PSAME"); |
1033 | ||
1034 | // QC{6}: | |
b78897bc | 1035 | if(qc6BoxNONAME && qc6MinValueNONAME < 1000.) qc6BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1036 | if(qc6TGraphNONAME) qc6TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1037 | if(qc6MeanNONAME) qc6MeanNONAME->Draw("PSAME"); |
1038 | ||
1039 | // QC{8}: | |
b78897bc | 1040 | if(qc8BoxNONAME && qc8MinValueNONAME < 1000.) qc8BoxNONAME->Draw("LFSAME"); |
e47370f7 | 1041 | if(qc8TGraphNONAME) qc8TGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1042 | if(qc8MeanNONAME) qc8MeanNONAME->Draw("PSAME"); |
e47370f7 | 1043 | |
6a6afe42 | 1044 | // FQD: |
b78897bc | 1045 | if(fqdBoxNONAME && fqdMinValueNONAME < 1000.) fqdBoxNONAME->Draw("LFSAME"); |
e47370f7 | 1046 | if(fqdTGraphNONAME) fqdTGraphNONAME->Draw("PSAME"); |
6a6afe42 | 1047 | if(fqdMeanNONAME) fqdMeanNONAME->Draw("PSAME"); |
1048 | ||
48385911 | 1049 | // LYZ1: |
1050 | if(lyz1BoxNONAME && lyz1MinValueNONAME < 1000.) lyz1BoxNONAME->Draw("LFSAME"); | |
1051 | if(lyz1TGraphNONAME) lyz1TGraphNONAME->Draw("PSAME"); | |
1052 | if(lyz1MeanNONAME) lyz1MeanNONAME->Draw("PSAME"); | |
b78897bc | 1053 | |
1054 | // 2nd pad is for legend: | |
e47370f7 | 1055 | (intFlowCanvasNONAME->cd(2))->SetPad(0.75,0.0,1.0,1.0); |
6a6afe42 | 1056 | |
b78897bc | 1057 | // count real estimates: |
1058 | Int_t mcepCountRealNONAME = 0; | |
1059 | Int_t spCountRealNONAME = 0; | |
1060 | Int_t gfc2CountRealNONAME = 0; | |
1061 | Int_t gfc4CountRealNONAME = 0; | |
1062 | Int_t gfc6CountRealNONAME = 0; | |
1063 | Int_t gfc8CountRealNONAME = 0; | |
1064 | Int_t qc2CountRealNONAME = 0; | |
1065 | Int_t qc4CountRealNONAME = 0; | |
1066 | Int_t qc6CountRealNONAME = 0; | |
1067 | Int_t qc8CountRealNONAME = 0; | |
1068 | Int_t fqdCountRealNONAME = 0; | |
48385911 | 1069 | Int_t lyz1CountRealNONAME = 0; |
6a6afe42 | 1070 | |
1071 | for(Int_t i=0;i<nEstimates;i++) | |
b78897bc | 1072 | { |
1073 | if(mcepValueNONAME[i]>0.) mcepCountRealNONAME++; | |
1074 | if(spValueNONAME[i]>0.) spCountRealNONAME++; | |
1075 | if(gfc2ValueNONAME[i]>0.) gfc2CountRealNONAME++; | |
1076 | if(gfc4ValueNONAME[i]>0.) gfc4CountRealNONAME++; | |
1077 | if(gfc6ValueNONAME[i]>0.) gfc6CountRealNONAME++; | |
1078 | if(gfc8ValueNONAME[i]>0.) gfc8CountRealNONAME++; | |
1079 | if(qc2ValueNONAME[i]>0.) qc2CountRealNONAME++; | |
1080 | if(qc4ValueNONAME[i]>0.) qc4CountRealNONAME++; | |
1081 | if(qc6ValueNONAME[i]>0.) qc6CountRealNONAME++; | |
1082 | if(qc8ValueNONAME[i]>0.) qc8CountRealNONAME++; | |
1083 | if(fqdValueNONAME[i]>0.) fqdCountRealNONAME++; | |
48385911 | 1084 | if(lyz1ValueNONAME[i]>0.) lyz1CountRealNONAME++; |
b78897bc | 1085 | } |
1086 | ||
1087 | TPaveText *textDefaultNONAME = new TPaveText(0.05,0.67,0.95,0.90,"NDC"); | |
1088 | textDefaultNONAME->SetTextFont(72); | |
1089 | textDefaultNONAME->SetTextSize(0.08); | |
1090 | ||
1091 | TString *entryDefaultRealNONAME = new TString("Real estimates"); | |
1092 | //TString *entryDefaultOutOfNONAME = new TString("out of"); | |
1093 | TString *entryDefaultTotalNumberNONAME = new TString(" out of total number of "); | |
1094 | TString *entryDefaultTotalIndNONAME = new TString("independent"); | |
1095 | TString *entryDefaultTotalSimNONAME = new TString("simulations:"); | |
1096 | ||
1097 | textDefaultNONAME->AddText(entryDefaultRealNONAME->Data()); | |
1098 | //textDefaultNONAME->AddText(entryDefaultOutOfNONAME->Data()); | |
1099 | textDefaultNONAME->AddText(entryDefaultTotalNumberNONAME->Data()); | |
1100 | textDefaultNONAME->AddText(entryDefaultTotalIndNONAME->Data()); | |
1101 | textDefaultNONAME->AddText(entryDefaultTotalSimNONAME->Data()); | |
1102 | ||
1103 | // results: | |
1104 | TPaveText *textResultsNONAME = new TPaveText(0.05,0.12,0.95,0.60,"NDC"); | |
1105 | textResultsNONAME->SetTextFont(72); | |
1106 | textResultsNONAME->SetTextSize(0.06); | |
1107 | ||
1108 | // entries: | |
1109 | TString *entryIntFlowMCNONAME = new TString("MC ................ "); | |
1110 | TString *entryIntFlowSPNONAME = new TString("SP ................ "); | |
1111 | TString *entryIntFlowGFC2NONAME = new TString("GFC{2} ........ "); | |
1112 | TString *entryIntFlowGFC4NONAME = new TString("GFC{4} ........ "); | |
1113 | TString *entryIntFlowGFC6NONAME = new TString("GFC{6} ........ "); | |
1114 | TString *entryIntFlowGFC8NONAME = new TString("GFC{8} ........ "); | |
1115 | TString *entryIntFlowQC2NONAME = new TString("QC{2} .......... "); | |
1116 | TString *entryIntFlowQC4NONAME = new TString("QC{4} .......... "); | |
1117 | TString *entryIntFlowQC6NONAME = new TString("QC{6} .......... "); | |
1118 | TString *entryIntFlowQC8NONAME = new TString("QC{8} .......... "); | |
1119 | TString *entryIntFlowFQDNONAME = new TString("FQD ............. "); | |
1120 | TString *entryIntFlowLYZ1NONAME = new TString("LYZ ............. "); | |
1121 | TString *entryIntFlowLYZEPNONAME = new TString("LYZEP ........ "); | |
1122 | ||
1123 | if(entryIntFlowMCNONAME) | |
1124 | { | |
1125 | (*entryIntFlowMCNONAME)+=(Long_t)mcepCountRealNONAME; | |
1126 | entryIntFlowMCNONAME->Append(" out of "); | |
1127 | (*entryIntFlowMCNONAME)+=(Long_t)counter; | |
1128 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowMCNONAME->Data()); | |
1129 | } | |
1130 | ||
1131 | if(entryIntFlowSPNONAME) | |
1132 | { | |
1133 | (*entryIntFlowSPNONAME)+=(Long_t)spCountRealNONAME; | |
1134 | entryIntFlowSPNONAME->Append(" out of "); | |
1135 | (*entryIntFlowSPNONAME)+=(Long_t)counter; | |
1136 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowSPNONAME->Data()); | |
1137 | } | |
1138 | ||
1139 | if(entryIntFlowGFC2NONAME) | |
1140 | { | |
1141 | (*entryIntFlowGFC2NONAME)+=(Long_t)gfc2CountRealNONAME; | |
1142 | entryIntFlowGFC2NONAME->Append(" out of "); | |
1143 | (*entryIntFlowGFC2NONAME)+=(Long_t)counter; | |
1144 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowGFC2NONAME->Data()); | |
1145 | } | |
1146 | ||
1147 | if(entryIntFlowGFC4NONAME) | |
1148 | { | |
1149 | (*entryIntFlowGFC4NONAME)+=(Long_t)gfc4CountRealNONAME; | |
1150 | entryIntFlowGFC4NONAME->Append(" out of "); | |
1151 | (*entryIntFlowGFC4NONAME)+=(Long_t)counter; | |
1152 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowGFC4NONAME->Data()); | |
1153 | } | |
1154 | ||
1155 | if(entryIntFlowGFC6NONAME) | |
1156 | { | |
1157 | (*entryIntFlowGFC6NONAME)+=(Long_t)gfc6CountRealNONAME; | |
1158 | entryIntFlowGFC6NONAME->Append(" out of "); | |
1159 | (*entryIntFlowGFC6NONAME)+=(Long_t)counter; | |
1160 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowGFC6NONAME->Data()); | |
1161 | } | |
e47370f7 | 1162 | |
b78897bc | 1163 | if(entryIntFlowGFC8NONAME) |
1164 | { | |
1165 | (*entryIntFlowGFC8NONAME)+=(Long_t)gfc8CountRealNONAME; | |
1166 | entryIntFlowGFC8NONAME->Append(" out of "); | |
1167 | (*entryIntFlowGFC8NONAME)+=(Long_t)counter; | |
1168 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowGFC8NONAME->Data()); | |
1169 | } | |
1170 | ||
1171 | if(entryIntFlowQC2NONAME) | |
1172 | { | |
1173 | (*entryIntFlowQC2NONAME)+=(Long_t)qc2CountRealNONAME; | |
1174 | entryIntFlowQC2NONAME->Append(" out of "); | |
1175 | (*entryIntFlowQC2NONAME)+=(Long_t)counter; | |
1176 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowQC2NONAME->Data()); | |
1177 | } | |
1178 | ||
1179 | if(entryIntFlowQC4NONAME) | |
1180 | { | |
1181 | (*entryIntFlowQC4NONAME)+=(Long_t)qc4CountRealNONAME; | |
1182 | entryIntFlowQC4NONAME->Append(" out of "); | |
1183 | (*entryIntFlowQC4NONAME)+=(Long_t)counter; | |
1184 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowQC4NONAME->Data()); | |
1185 | } | |
1186 | ||
1187 | if(entryIntFlowQC2NONAME) | |
1188 | { | |
1189 | (*entryIntFlowQC6NONAME)+=(Long_t)qc6CountRealNONAME; | |
1190 | entryIntFlowQC6NONAME->Append(" out of "); | |
1191 | (*entryIntFlowQC6NONAME)+=(Long_t)counter; | |
1192 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowQC6NONAME->Data()); | |
1193 | } | |
1194 | ||
1195 | if(entryIntFlowQC8NONAME) | |
1196 | { | |
1197 | (*entryIntFlowQC8NONAME)+=(Long_t)qc8CountRealNONAME; | |
1198 | entryIntFlowQC8NONAME->Append(" out of "); | |
1199 | (*entryIntFlowQC8NONAME)+=(Long_t)counter; | |
1200 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowQC8NONAME->Data()); | |
1201 | } | |
1202 | ||
1203 | if(entryIntFlowFQDNONAME) | |
1204 | { | |
1205 | (*entryIntFlowFQDNONAME)+=(Long_t)fqdCountRealNONAME; | |
1206 | entryIntFlowFQDNONAME->Append(" out of "); | |
1207 | (*entryIntFlowFQDNONAME)+=(Long_t)counter; | |
1208 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowFQDNONAME->Data()); | |
1209 | } | |
1210 | ||
48385911 | 1211 | |
b78897bc | 1212 | if(entryIntFlowLYZ1NONAME) |
1213 | { | |
1214 | (*entryIntFlowLYZ1NONAME)+=(Long_t)lyz1CountRealNONAME; | |
1215 | entryIntFlowLYZ1NONAME->Append(" out of "); | |
1216 | (*entryIntFlowLYZ1NONAME)+=(Long_t)counter; | |
1217 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowLYZ1NONAME->Data()); | |
1218 | } | |
1219 | ||
48385911 | 1220 | /* |
b78897bc | 1221 | if(entryIntFlowLYZEPNONAME) |
1222 | { | |
1223 | (*entryIntFlowLYZEPNONAME)+=(Long_t)lyzepCountRealNONAME; | |
1224 | entryIntFlowLYZEPNONAME->Append(" out of "); | |
1225 | (*entryIntFlowLYZEPNONAME)+=(Long_t)counter; | |
1226 | if(textResultsNONAME)textResultsNONAME->AddText(entryIntFlowLYZEPNONAME->Data()); | |
1227 | } | |
6a6afe42 | 1228 | */ |
b78897bc | 1229 | |
1230 | if(textDefaultNONAME) textDefaultNONAME->Draw(); | |
1231 | if(textResultsNONAME) textResultsNONAME->Draw(); | |
1232 | ||
e47370f7 | 1233 | } |
1234 | ||
b78897bc | 1235 | void LoadSpreadLibraries(const libModes mode) { |
e47370f7 | 1236 | |
1237 | //-------------------------------------- | |
1238 | // Load the needed libraries most of them already loaded by aliroot | |
1239 | //-------------------------------------- | |
1240 | gSystem->Load("libTree.so"); | |
1241 | gSystem->Load("libGeom.so"); | |
1242 | gSystem->Load("libVMC.so"); | |
1243 | gSystem->Load("libXMLIO.so"); | |
1244 | gSystem->Load("libPhysics.so"); | |
1245 | ||
1246 | //---------------------------------------------------------- | |
1247 | // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< | |
1248 | //---------------------------------------------------------- | |
1249 | if (mode==mLocal) { | |
1250 | //-------------------------------------------------------- | |
1251 | // If you want to use already compiled libraries | |
1252 | // in the aliroot distribution | |
1253 | //-------------------------------------------------------- | |
1254 | ||
1255 | //================================================================================== | |
1256 | //load needed libraries: | |
1257 | gSystem->AddIncludePath("-I$ROOTSYS/include"); | |
1258 | gSystem->Load("libTree.so"); | |
1259 | ||
1260 | // for AliRoot | |
1261 | gSystem->AddIncludePath("-I$ALICE_ROOT/include"); | |
1262 | gSystem->Load("libANALYSIS.so"); | |
1263 | gSystem->Load("libPWG2flowCommon.so"); | |
1264 | cerr<<"libPWG2flowCommon.so loaded ..."<<endl; | |
1265 | ||
1266 | } | |
1267 | ||
1268 | else if (mode==mLocalSource) { | |
1269 | ||
1270 | // In root inline compile | |
1271 | ||
1272 | // Constants | |
1273 | gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+"); | |
1274 | gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+"); | |
1275 | gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+"); | |
1276 | ||
1277 | // Flow event | |
1278 | gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+"); | |
1279 | gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+"); | |
1280 | gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+"); | |
1281 | ||
1282 | // Cuts | |
1283 | gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+"); | |
1284 | ||
1285 | // Output histosgrams | |
1286 | gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+"); | |
1287 | gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+"); | |
1288 | gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+"); | |
1289 | gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+"); | |
1290 | ||
1291 | cout << "finished loading macros!" << endl; | |
1292 | ||
1293 | } | |
1294 | ||
1295 | ||
1296 | } | |
1297 | ||
1298 |