]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/macros/redoFinish.C
removed .so from loadlibs
[u/mrichter/AliRoot.git] / PWG2 / FLOW / macros / redoFinish.C
CommitLineData
6a6afe42 1enum libModes {mLocal,mLocalSource};
2
3void redoFinish(TString type="", 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 // mode: if mode=mLocal analyze data on your computer using aliroot
8 // if mode=mLocalSource analyze data on your computer using root + source files
9
9455e15e 10 Bool_t redoFinishAlsoInSubsets = kFALSE;
11
6a6afe42 12 // load needed libraries:
13 LoadLibrariesRDF(mode);
14
15 // access the path of current diretory:
16 TString pwd(gSystem->pwd());
17 pwd+="/";
18
9455e15e 19 cout<<endl;
6a6afe42 20 // access the merged output files and redo the flow analysis on them:
21 // MCEP:
22 TString mergedFileNameMCEP("mergedMCEPanalysis");
23 (mergedFileNameMCEP+=(type.Data()))+=(".root");
24 TFile *mergedFileMCEP = NULL;
25 TList *mergedListMCEP = NULL;
26 TString pwdMCEP=pwd.Data();
27 pwdMCEP+=mergedFileNameMCEP;
28 if(gSystem->AccessPathName(pwdMCEP.Data(),kFileExists))
29 {
30 cout<<"WARNING: You do not have a merged output file "<<pwdMCEP.Data()<<endl;
31 } else
32 {
33 mergedFileMCEP = TFile::Open(pwdMCEP.Data(),"READ");
34 if(mergedFileMCEP)
35 {
36 mergedFileMCEP->GetObject("cobjMCEP",mergedListMCEP);
37 mergedFileMCEP->Close();
38 }
39 }
40 if(mergedListMCEP)
41 {
42 AliFlowAnalysisWithMCEventPlane* mcep = new AliFlowAnalysisWithMCEventPlane();
43 mcep->GetOutputHistograms(mergedListMCEP);
44 mcep->Finish();
45 // save the final results for MCEP in final output file:
46 TString finalOutputFileNameMCEP("outputMCEPanalysis");
47 (finalOutputFileNameMCEP+=(type.Data()))+=(".root");
48 TString pwdFinalMCEP=pwd.Data();
49 pwdFinalMCEP+=finalOutputFileNameMCEP;
50 TFile *finalOutputMCEP = new TFile(pwdFinalMCEP.Data(),"NEW");
51 mergedListMCEP->SetName("cobjMCEP");
52 mergedListMCEP->Write(mergedListMCEP->GetName(),TObject::kSingleKey);
53 finalOutputMCEP->Close();
9455e15e 54 delete mcep;
55 delete finalOutputMCEP;
6a6afe42 56 } else
57 {
58 cout<<"WARNING: mergedListMCEP is NULL !!!!"<<endl;
59 }
60
61 // SP:
62 TString mergedFileNameSP("mergedSPanalysis");
63 (mergedFileNameSP+=(type.Data()))+=(".root");
64 TFile *mergedFileSP = NULL;
65 TList *mergedListSP = NULL;
66 TString pwdSP=pwd.Data();
67 pwdSP+=mergedFileNameSP;
68 if(gSystem->AccessPathName(pwdSP.Data(),kFileExists))
69 {
70 cout<<"WARNING: You do not have a merged output file "<<pwdSP.Data()<<endl;
71 } else
72 {
73 mergedFileSP = TFile::Open(pwdSP.Data(),"READ");
74 if(mergedFileSP)
75 {
76 mergedFileSP->GetObject("cobjSP",mergedListSP);
77 mergedFileSP->Close();
78 }
79 }
80 if(mergedListSP)
81 {
82 AliFlowAnalysisWithScalarProduct* sp = new AliFlowAnalysisWithScalarProduct();
83 sp->GetOutputHistograms(mergedListSP);
84 sp->Finish();
85 // save the final results for SP in final output file:
86 TString finalOutputFileNameSP("outputSPanalysis");
87 (finalOutputFileNameSP+=(type.Data()))+=(".root");
88 TString pwdFinalSP=pwd.Data();
89 pwdFinalSP+=finalOutputFileNameSP;
90 TFile *finalOutputSP = new TFile(pwdFinalSP.Data(),"NEW");
91 mergedListSP->SetName("cobjSP");
92 mergedListSP->Write(mergedListSP->GetName(),TObject::kSingleKey);
93 finalOutputSP->Close();
9455e15e 94 delete sp;
95 delete finalOutputSP;
6a6afe42 96 } else
97 {
98 cout<<"WARNING: mergedListSP is NULL !!!!"<<endl;
99 }
100
101 // GFC:
102 TString mergedFileNameGFC("mergedGFCanalysis");
103 (mergedFileNameGFC+=(type.Data()))+=(".root");
104 TFile *mergedFileGFC = NULL;
105 TList *mergedListGFC = NULL;
106 TString pwdGFC=pwd.Data();
107 pwdGFC+=mergedFileNameGFC;
108 if(gSystem->AccessPathName(pwdGFC.Data(),kFileExists))
109 {
110 cout<<"WARNING: You do not have a merged output file "<<pwdGFC.Data()<<endl;
111 } else
112 {
113 mergedFileGFC = TFile::Open(pwdGFC.Data(),"READ");
114 if(mergedFileGFC)
115 {
116 mergedFileGFC->GetObject("cobjGFC",mergedListGFC);
117 mergedFileGFC->Close();
118 }
119 }
120 if(mergedListGFC)
121 {
122 AliFlowAnalysisWithCumulants* gfc = new AliFlowAnalysisWithCumulants();
123 gfc->GetOutputHistograms(mergedListGFC);
124 gfc->Finish();
125 // save the final results for GFC in final output file:
126 TString finalOutputFileNameGFC("outputGFCanalysis");
127 (finalOutputFileNameGFC+=(type.Data()))+=(".root");
128 TString pwdFinalGFC=pwd.Data();
129 pwdFinalGFC+=finalOutputFileNameGFC;
130 TFile *finalOutputGFC = new TFile(pwdFinalGFC.Data(),"NEW");
131 mergedListGFC->SetName("cobjGFC");
132 mergedListGFC->Write(mergedListGFC->GetName(),TObject::kSingleKey);
133 finalOutputGFC->Close();
9455e15e 134 delete gfc;
135 delete finalOutputGFC;
6a6afe42 136 } else
137 {
138 cout<<"WARNING: mergedListGFC is NULL !!!!"<<endl;
139 }
140
141 // QC:
142 TString mergedFileNameQC("mergedQCanalysis");
143 (mergedFileNameQC+=(type.Data()))+=(".root");
144 TFile *mergedFileQC = NULL;
145 TList *mergedListQC = NULL;
146 TString pwdQC=pwd.Data();
147 pwdQC+=mergedFileNameQC;
148 if(gSystem->AccessPathName(pwdQC.Data(),kFileExists))
149 {
150 cout<<"WARNING: You do not have a merged output file "<<pwdQC.Data()<<endl;
151 } else
152 {
153 mergedFileQC = TFile::Open(pwdQC.Data(),"READ");
154 if(mergedFileQC)
155 {
156 mergedFileQC->GetObject("cobjQC",mergedListQC);
157 mergedFileQC->Close();
158 }
159 }
160 if(mergedListQC)
161 {
162 AliFlowAnalysisWithQCumulants* qc = new AliFlowAnalysisWithQCumulants();
163 qc->GetOutputHistograms(mergedListQC);
164 qc->Finish();
165 // save the final results for QC in final output file:
166 TString finalOutputFileNameQC("outputQCanalysis");
167 (finalOutputFileNameQC+=(type.Data()))+=(".root");
168 TString pwdFinalQC=pwd.Data();
169 pwdFinalQC+=finalOutputFileNameQC;
170 TFile *finalOutputQC = new TFile(pwdFinalQC.Data(),"NEW");
171 mergedListQC->SetName("cobjQC");
172 mergedListQC->Write(mergedListQC->GetName(),TObject::kSingleKey);
173 finalOutputQC->Close();
9455e15e 174 delete qc;
175 delete finalOutputQC;
6a6afe42 176 } else
177 {
178 cout<<"WARNING: mergedListQC is NULL !!!!"<<endl;
179 }
180
181 // FQD:
182 TString mergedFileNameFQD("mergedFQDanalysis");
183 (mergedFileNameFQD+=(type.Data()))+=(".root");
184 TFile *mergedFileFQD = NULL;
185 TList *mergedListFQD = NULL;
186 TString pwdFQD=pwd.Data();
187 pwdFQD+=mergedFileNameFQD;
188 if(gSystem->AccessPathName(pwdFQD.Data(),kFileExists))
189 {
190 cout<<"WARNING: You do not have a merged output file "<<pwdFQD.Data()<<endl;
191 } else
192 {
193 mergedFileFQD = TFile::Open(pwdFQD.Data(),"READ");
194 if(mergedFileFQD)
195 {
196 mergedFileFQD->GetObject("cobjFQD",mergedListFQD);
197 mergedFileFQD->Close();
198 }
199 }
200 if(mergedListFQD)
201 {
ce4a88f5 202 AliFlowAnalysisWithFittingQDistribution* fqd = new AliFlowAnalysisWithFittingQDistribution();
6a6afe42 203 fqd->GetOutputHistograms(mergedListFQD);
7745c8d1 204 fqd->Finish(kTRUE);
6a6afe42 205 // save the final results for FQD in final output file:
206 TString finalOutputFileNameFQD("outputFQDanalysis");
207 (finalOutputFileNameFQD+=(type.Data()))+=(".root");
208 TString pwdFinalFQD=pwd.Data();
209 pwdFinalFQD+=finalOutputFileNameFQD;
210 TFile *finalOutputFQD = new TFile(pwdFinalFQD.Data(),"NEW");
211 mergedListFQD->SetName("cobjFQD");
212 mergedListFQD->Write(mergedListFQD->GetName(),TObject::kSingleKey);
213 finalOutputFQD->Close();
9455e15e 214 delete fqd;
215 delete finalOutputFQD;
6a6afe42 216 } else
217 {
218 cout<<"WARNING: mergedListFQD is NULL !!!!"<<endl;
219 }
220
947cc449 221 // LYZ1SUM:
222 TString mergedFileNameLYZ1SUM("mergedLYZ1SUManalysis");
223 (mergedFileNameLYZ1SUM+=(type.Data()))+=(".root");
224 TFile *mergedFileLYZ1SUM = NULL;
225 TList *mergedListLYZ1SUM = NULL;
226 TString pwdLYZ1SUM=pwd.Data();
227 pwdLYZ1SUM+=mergedFileNameLYZ1SUM;
228 if(gSystem->AccessPathName(pwdLYZ1SUM.Data(),kFileExists))
48385911 229 {
947cc449 230 cout<<"WARNING: You do not have a merged output file "<<pwdLYZ1SUM.Data()<<endl;
48385911 231 } else
232 {
947cc449 233 mergedFileLYZ1SUM = TFile::Open(pwdLYZ1SUM.Data(),"READ");
234 if(mergedFileLYZ1SUM)
48385911 235 {
947cc449 236 mergedFileLYZ1SUM->GetObject("cobjLYZ1SUM",mergedListLYZ1SUM);
237 mergedFileLYZ1SUM->Close();
48385911 238 }
239 }
947cc449 240 if(mergedListLYZ1SUM)
241 {
242 AliFlowAnalysisWithLeeYangZeros* lyz1sum = new AliFlowAnalysisWithLeeYangZeros();
243 lyz1sum->SetFirstRun(kTRUE);
244 lyz1sum->SetUseSum(kTRUE);
245 lyz1sum->GetOutputHistograms(mergedListLYZ1SUM);
246 lyz1sum->Finish();
247 // save the final results for LYZ1SUM in final output file:
248 TString finalOutputFileNameLYZ1SUM("outputLYZ1SUManalysis");
249 (finalOutputFileNameLYZ1SUM+=(type.Data()))+=(".root");
250 TString pwdFinalLYZ1SUM=pwd.Data();
251 pwdFinalLYZ1SUM+=finalOutputFileNameLYZ1SUM;
252 TFile *finalOutputLYZ1SUM = new TFile(pwdFinalLYZ1SUM.Data(),"NEW");
253 mergedListLYZ1SUM->SetName("cobjLYZ1SUM");
254 mergedListLYZ1SUM->Write(mergedListLYZ1SUM->GetName(),TObject::kSingleKey);
255 finalOutputLYZ1SUM->Close();
9455e15e 256 delete lyz1sum;
257 delete finalOutputLYZ1SUM;
947cc449 258 } else
259 {
260 cout<<"WARNING: mergedListLYZ1SUM is NULL !!!!"<<endl;
261 }
262
263 // LYZ2SUM:
264 TString mergedFileNameLYZ2SUM("mergedLYZ2SUManalysis");
265 (mergedFileNameLYZ2SUM+=(type.Data()))+=(".root");
266 TFile *mergedFileLYZ2SUM = NULL;
267 TList *mergedListLYZ2SUM = NULL;
268 TString pwdLYZ2SUM=pwd.Data();
269 pwdLYZ2SUM+=mergedFileNameLYZ2SUM;
270 if(gSystem->AccessPathName(pwdLYZ2SUM.Data(),kFileExists))
271 {
272 cout<<"WARNING: You do not have a merged output file "<<pwdLYZ2SUM.Data()<<endl;
273 } else
274 {
275 mergedFileLYZ2SUM = TFile::Open(pwdLYZ2SUM.Data(),"READ");
276 if(mergedFileLYZ2SUM)
277 {
278 mergedFileLYZ2SUM->GetObject("cobjLYZ2SUM",mergedListLYZ2SUM);
279 mergedFileLYZ2SUM->Close();
280 }
281 }
282 if(mergedListLYZ2SUM)
283 {
284 AliFlowAnalysisWithLeeYangZeros* lyz2sum = new AliFlowAnalysisWithLeeYangZeros();
285 lyz2sum->SetFirstRun(kFALSE);
286 lyz2sum->SetUseSum(kTRUE);
287 lyz2sum->GetOutputHistograms(mergedListLYZ2SUM);
288 lyz2sum->Finish();
289 // save the final results for LYZ2SUM in final output file:
290 TString finalOutputFileNameLYZ2SUM("outputLYZ2SUManalysis");
291 (finalOutputFileNameLYZ2SUM+=(type.Data()))+=(".root");
292 TString pwdFinalLYZ2SUM=pwd.Data();
293 pwdFinalLYZ2SUM+=finalOutputFileNameLYZ2SUM;
294 TFile *finalOutputLYZ2SUM = new TFile(pwdFinalLYZ2SUM.Data(),"NEW");
295 mergedListLYZ2SUM->SetName("cobjLYZ2SUM");
296 mergedListLYZ2SUM->Write(mergedListLYZ2SUM->GetName(),TObject::kSingleKey);
297 finalOutputLYZ2SUM->Close();
9455e15e 298 delete lyz2sum;
299 delete finalOutputLYZ2SUM ;
947cc449 300 } else
301 {
302 cout<<"WARNING: mergedListLYZ2SUM is NULL !!!!"<<endl;
303 }
304
305 // LYZ1PROD:
306 TString mergedFileNameLYZ1PROD("mergedLYZ1PRODanalysis");
307 (mergedFileNameLYZ1PROD+=(type.Data()))+=(".root");
308 TFile *mergedFileLYZ1PROD = NULL;
309 TList *mergedListLYZ1PROD = NULL;
310 TString pwdLYZ1PROD=pwd.Data();
311 pwdLYZ1PROD+=mergedFileNameLYZ1PROD;
312 if(gSystem->AccessPathName(pwdLYZ1PROD.Data(),kFileExists))
313 {
314 cout<<"WARNING: You do not have a merged output file "<<pwdLYZ1PROD.Data()<<endl;
315 } else
316 {
317 mergedFileLYZ1PROD = TFile::Open(pwdLYZ1PROD.Data(),"READ");
318 if(mergedFileLYZ1PROD)
319 {
320 mergedFileLYZ1PROD->GetObject("cobjLYZ1PROD",mergedListLYZ1PROD);
321 mergedFileLYZ1PROD->Close();
322 }
323 }
324 if(mergedListLYZ1PROD)
325 {
326 AliFlowAnalysisWithLeeYangZeros* lyz1prod = new AliFlowAnalysisWithLeeYangZeros();
327 lyz1prod->SetFirstRun(kTRUE);
328 lyz1prod->SetUseSum(kFALSE);
329 lyz1prod->GetOutputHistograms(mergedListLYZ1PROD);
330 lyz1prod->Finish();
331 // save the final results for LYZ1PROD in final output file:
332 TString finalOutputFileNameLYZ1PROD("outputLYZ1PRODanalysis");
333 (finalOutputFileNameLYZ1PROD+=(type.Data()))+=(".root");
334 TString pwdFinalLYZ1PROD=pwd.Data();
335 pwdFinalLYZ1PROD+=finalOutputFileNameLYZ1PROD;
336 TFile *finalOutputLYZ1PROD = new TFile(pwdFinalLYZ1PROD.Data(),"NEW");
337 mergedListLYZ1PROD->SetName("cobjLYZ1PROD");
338 mergedListLYZ1PROD->Write(mergedListLYZ1PROD->GetName(),TObject::kSingleKey);
339 finalOutputLYZ1PROD->Close();
9455e15e 340 delete lyz1prod;
341 delete finalOutputLYZ1PROD;
947cc449 342 } else
343 {
344 cout<<"WARNING: mergedListLYZ1PROD is NULL !!!!"<<endl;
345 }
346
347 // LYZ2PROD:
348 TString mergedFileNameLYZ2PROD("mergedLYZ2PRODanalysis");
349 (mergedFileNameLYZ2PROD+=(type.Data()))+=(".root");
350 TFile *mergedFileLYZ2PROD = NULL;
351 TList *mergedListLYZ2PROD = NULL;
352 TString pwdLYZ2PROD=pwd.Data();
353 pwdLYZ2PROD+=mergedFileNameLYZ2PROD;
354 if(gSystem->AccessPathName(pwdLYZ2PROD.Data(),kFileExists))
355 {
356 cout<<"WARNING: You do not have a merged output file "<<pwdLYZ2PROD.Data()<<endl;
357 } else
358 {
359 mergedFileLYZ2PROD = TFile::Open(pwdLYZ2PROD.Data(),"READ");
360 if(mergedFileLYZ2PROD)
361 {
362 mergedFileLYZ2PROD->GetObject("cobjLYZ2PROD",mergedListLYZ2PROD);
363 mergedFileLYZ2PROD->Close();
364 }
365 }
366 if(mergedListLYZ2PROD)
367 {
368 AliFlowAnalysisWithLeeYangZeros* lyz2prod = new AliFlowAnalysisWithLeeYangZeros();
369 lyz2prod->SetFirstRun(kFALSE);
370 lyz2prod->SetUseSum(kFALSE);
371 lyz2prod->GetOutputHistograms(mergedListLYZ2PROD);
372 lyz2prod->Finish();
373 // save the final results for LYZ2PROD in final output file:
374 TString finalOutputFileNameLYZ2PROD("outputLYZ2PRODanalysis");
375 (finalOutputFileNameLYZ2PROD+=(type.Data()))+=(".root");
376 TString pwdFinalLYZ2PROD=pwd.Data();
377 pwdFinalLYZ2PROD+=finalOutputFileNameLYZ2PROD;
378 TFile *finalOutputLYZ2PROD = new TFile(pwdFinalLYZ2PROD.Data(),"NEW");
379 mergedListLYZ2PROD->SetName("cobjLYZ2PROD");
380 mergedListLYZ2PROD->Write(mergedListLYZ2PROD->GetName(),TObject::kSingleKey);
381 finalOutputLYZ2PROD->Close();
9455e15e 382 delete lyz2prod;
383 delete finalOutputLYZ2PROD;
947cc449 384 } else
385 {
386 cout<<"WARNING: mergedListLYZ2PROD is NULL !!!!"<<endl;
387 }
388
389 // LYZEP:
390 TString mergedFileNameLYZEP("mergedLYZEPanalysis");
391 (mergedFileNameLYZEP+=(type.Data()))+=(".root");
392 TFile *mergedFileLYZEP = NULL;
393 TList *mergedListLYZEP = NULL;
394 TString pwdLYZEP=pwd.Data();
395 pwdLYZEP+=mergedFileNameLYZEP;
396 if(gSystem->AccessPathName(pwdLYZEP.Data(),kFileExists))
397 {
398 cout<<"WARNING: You do not have a merged output file "<<pwdLYZEP.Data()<<endl;
399 } else
400 {
401 mergedFileLYZEP = TFile::Open(pwdLYZEP.Data(),"READ");
402 if(mergedFileLYZEP)
403 {
404 mergedFileLYZEP->GetObject("cobjLYZEP",mergedListLYZEP);
405 mergedFileLYZEP->Close();
406 }
407 }
408 if(mergedListLYZEP)
409 {
410 AliFlowAnalysisWithLYZEventPlane* lyzep = new AliFlowAnalysisWithLYZEventPlane();
411 lyzep->GetOutputHistograms(mergedListLYZEP);
412 lyzep->Finish();
413 // save the final results for LYZEP in final output file:
414 TString finalOutputFileNameLYZEP("outputLYZEPanalysis");
415 (finalOutputFileNameLYZEP+=(type.Data()))+=(".root");
416 TString pwdFinalLYZEP=pwd.Data();
417 pwdFinalLYZEP+=finalOutputFileNameLYZEP;
418 TFile *finalOutputLYZEP = new TFile(pwdFinalLYZEP.Data(),"NEW");
419 mergedListLYZEP->SetName("cobjLYZEP");
420 mergedListLYZEP->Write(mergedListLYZEP->GetName(),TObject::kSingleKey);
421 finalOutputLYZEP->Close();
9455e15e 422 delete lyzep;
423 delete finalOutputLYZEP;
947cc449 424 } else
425 {
426 cout<<"WARNING: mergedListLYZEP is NULL !!!!"<<endl;
427 }
9455e15e 428
429 // redoing Finish() also in subsets:
430 if(redoFinishAlsoInSubsets)
431 {
432 // standard magic:
433 TString *baseDirPath = new TString(gSystem->pwd());
434 TSystemDirectory* baseDir = new TSystemDirectory(".",baseDirPath->Data());
435 TList* listOfFilesInBaseDir = baseDir->GetListOfFiles();
436 // listOfFilesInBaseDir->Print();
437 Int_t nFiles = listOfFilesInBaseDir->GetEntries();
438 Int_t nSubsets = 0;
439 gSystem->cd(baseDirPath->Data());
440 // count subsets:
441 for(Int_t iFile=0;iFile<nFiles;iFile++)
442 {
443 TSystemFile* presentFile = (TSystemFile*)listOfFilesInBaseDir->At(iFile);
444 TString presentFileName = baseDirPath->Data();
445 (presentFileName+="/")+=presentFile->GetName();
446 if(presentFileName.Contains("subset"))
447 {
448 nSubsets++;
449 }
450 } // end of for(Int_t iFile=0;iFile<nFiles;iFile++)
451
452 // redo finish in each subset:
453 gSystem->cd(baseDirPath->Data());
454 for(Int_t i=0;i<nSubsets;i++)
455 {
456 cout<<endl;
457 // access the merged output files and redo the flow analysis on them:
458 // MCEP:
459 TString *mergedFileNameInSubsetMCEP = new TString("subset");
460 (*mergedFileNameInSubsetMCEP)+=(i+1);
461 (*mergedFileNameInSubsetMCEP)+="/";
462 (*mergedFileNameInSubsetMCEP)+="mergedMCEPanalysis";
463 (*mergedFileNameInSubsetMCEP)+=type.Data();
464 (*mergedFileNameInSubsetMCEP)+=".root";
465
466 TFile *mergedFileInSubsetMCEP = NULL;
467 TList *mergedListInSubsetMCEP = NULL;
468 if(gSystem->AccessPathName(mergedFileNameInSubsetMCEP->Data(),kFileExists))
469 {
470 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetMCEP->Data()<<endl;
471 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
472 } else
473 {
474 mergedFileinSubsetMCEP = TFile::Open(mergedFileNameInSubsetMCEP->Data(),"READ");
475 delete mergedFileNameInSubsetMCEP;
476 if(mergedFileinSubsetMCEP)
477 {
478 mergedFileinSubsetMCEP->GetObject("cobjMCEP",mergedListInSubsetMCEP);
479 mergedFileinSubsetMCEP->Close();
480 }
481 }
482 if(mergedListInSubsetMCEP)
483 {
484 AliFlowAnalysisWithMCEventPlane* mcep = new AliFlowAnalysisWithMCEventPlane();
485 mcep->GetOutputHistograms(mergedListInSubsetMCEP);
486 mcep->Finish();
487 // save the final results for MCEP in final output file:
488 TString *finalOutputFileNameinSubsetMCEP = new TString("subset");
489 (*finalOutputFileNameinSubsetMCEP)+=(i+1);
490 (*finalOutputFileNameinSubsetMCEP)+="/";
491 (*finalOutputFileNameinSubsetMCEP)+="outputMCEPanalysis";
492 (*finalOutputFileNameinSubsetMCEP)+=type.Data();
493 (*finalOutputFileNameinSubsetMCEP)+=".root";
494 TFile *finalOutputInSubsetMCEP = new TFile(finalOutputFileNameinSubsetMCEP->Data(),"NEW");
495 mergedListInSubsetMCEP->SetName("cobjMCEP");
496 mergedListInSubsetMCEP->Write(mergedListInSubsetMCEP->GetName(),TObject::kSingleKey);
497 finalOutputInSubsetMCEP->Close();
498 delete finalOutputFileNameinSubsetMCEP;
499 delete finalOutputInSubsetMCEP;
500 delete mcep;
501 } else
502 {
503 cout<<"WARNING: mergedListMCEP is NULL !!!!"<<endl;
504 }
505
506 // SP:
507 TString *mergedFileNameInSubsetSP = new TString("subset");
508 (*mergedFileNameInSubsetSP)+=(i+1);
509 (*mergedFileNameInSubsetSP)+="/";
510 (*mergedFileNameInSubsetSP)+="mergedSPanalysis";
511 (*mergedFileNameInSubsetSP)+=type.Data();
512 (*mergedFileNameInSubsetSP)+=".root";
513
514 TFile *mergedFileInSubsetSP = NULL;
515 TList *mergedListInSubsetSP = NULL;
516 if(gSystem->AccessPathName(mergedFileNameInSubsetSP->Data(),kFileExists))
517 {
518 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetSP->Data()<<endl;
519 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
520 } else
521 {
522 mergedFileinSubsetSP = TFile::Open(mergedFileNameInSubsetSP->Data(),"READ");
523 delete mergedFileNameInSubsetSP;
524 if(mergedFileinSubsetSP)
525 {
526 mergedFileinSubsetSP->GetObject("cobjSP",mergedListInSubsetSP);
527 mergedFileinSubsetSP->Close();
528 }
529 }
530 if(mergedListInSubsetSP)
531 {
532 AliFlowAnalysisWithScalarProduct *sp = new AliFlowAnalysisWithScalarProduct();
533 sp->GetOutputHistograms(mergedListInSubsetSP);
534 sp->Finish();
535 // save the final results for SP in final output file:
536 TString *finalOutputFileNameinSubsetSP = new TString("subset");
537 (*finalOutputFileNameinSubsetSP)+=(i+1);
538 (*finalOutputFileNameinSubsetSP)+="/";
539 (*finalOutputFileNameinSubsetSP)+="outputSPanalysis";
540 (*finalOutputFileNameinSubsetSP)+=type.Data();
541 (*finalOutputFileNameinSubsetSP)+=".root";
542 TFile *finalOutputInSubsetSP = new TFile(finalOutputFileNameinSubsetSP->Data(),"NEW");
543 mergedListInSubsetSP->SetName("cobjSP");
544 mergedListInSubsetSP->Write(mergedListInSubsetSP->GetName(),TObject::kSingleKey);
545 finalOutputInSubsetSP->Close();
546 delete finalOutputFileNameinSubsetSP;
547 delete finalOutputInSubsetSP;
548 delete sp;
549 } else
550 {
551 cout<<"WARNING: mergedListSP is NULL !!!!"<<endl;
552 }
553
554 // GFC:
555 TString *mergedFileNameInSubsetGFC = new TString("subset");
556 (*mergedFileNameInSubsetGFC)+=(i+1);
557 (*mergedFileNameInSubsetGFC)+="/";
558 (*mergedFileNameInSubsetGFC)+="mergedGFCanalysis";
559 (*mergedFileNameInSubsetGFC)+=type.Data();
560 (*mergedFileNameInSubsetGFC)+=".root";
561
562 TFile *mergedFileInSubsetGFC = NULL;
563 TList *mergedListInSubsetGFC = NULL;
564 if(gSystem->AccessPathName(mergedFileNameInSubsetGFC->Data(),kFileExists))
565 {
566 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetGFC->Data()<<endl;
567 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
568 } else
569 {
570 mergedFileinSubsetGFC = TFile::Open(mergedFileNameInSubsetGFC->Data(),"READ");
571 delete mergedFileNameInSubsetGFC;
572 if(mergedFileinSubsetGFC)
573 {
574 mergedFileinSubsetGFC->GetObject("cobjGFC",mergedListInSubsetGFC);
575 mergedFileinSubsetGFC->Close();
576 }
577 }
578 if(mergedListInSubsetGFC)
579 {
580 AliFlowAnalysisWithCumulants *gfc = new AliFlowAnalysisWithCumulants();
581 gfc->GetOutputHistograms(mergedListInSubsetGFC);
582 gfc->Finish();
583 // save the final results for GFC in final output file:
584 TString *finalOutputFileNameinSubsetGFC = new TString("subset");
585 (*finalOutputFileNameinSubsetGFC)+=(i+1);
586 (*finalOutputFileNameinSubsetGFC)+="/";
587 (*finalOutputFileNameinSubsetGFC)+="outputGFCanalysis";
588 (*finalOutputFileNameinSubsetGFC)+=type.Data();
589 (*finalOutputFileNameinSubsetGFC)+=".root";
590 TFile *finalOutputInSubsetGFC = new TFile(finalOutputFileNameinSubsetGFC->Data(),"NEW");
591 mergedListInSubsetGFC->SetName("cobjGFC");
592 mergedListInSubsetGFC->Write(mergedListInSubsetGFC->GetName(),TObject::kSingleKey);
593 finalOutputInSubsetGFC->Close();
594 delete finalOutputFileNameinSubsetGFC;
595 delete finalOutputInSubsetGFC;
596 delete gfc;
597 } else
598 {
599 cout<<"WARNING: mergedListGFC is NULL !!!!"<<endl;
600 }
601
602 // QC:
603 TString *mergedFileNameInSubsetQC = new TString("subset");
604 (*mergedFileNameInSubsetQC)+=(i+1);
605 (*mergedFileNameInSubsetQC)+="/";
606 (*mergedFileNameInSubsetQC)+="mergedQCanalysis";
607 (*mergedFileNameInSubsetQC)+=type.Data();
608 (*mergedFileNameInSubsetQC)+=".root";
609
610 TFile *mergedFileInSubsetQC = NULL;
611 TList *mergedListInSubsetQC = NULL;
612 if(gSystem->AccessPathName(mergedFileNameInSubsetQC->Data(),kFileExists))
613 {
614 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetQC->Data()<<endl;
615 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
616 } else
617 {
618 mergedFileinSubsetQC = TFile::Open(mergedFileNameInSubsetQC->Data(),"READ");
619 delete mergedFileNameInSubsetQC;
620 if(mergedFileinSubsetQC)
621 {
622 mergedFileinSubsetQC->GetObject("cobjQC",mergedListInSubsetQC);
623 mergedFileinSubsetQC->Close();
624 }
625 }
626 if(mergedListInSubsetQC)
627 {
628 AliFlowAnalysisWithQCumulants *qc = new AliFlowAnalysisWithQCumulants();
629 qc->GetOutputHistograms(mergedListInSubsetQC);
630 qc->Finish();
631 // save the final results for QC in final output file:
632 TString *finalOutputFileNameinSubsetQC = new TString("subset");
633 (*finalOutputFileNameinSubsetQC)+=(i+1);
634 (*finalOutputFileNameinSubsetQC)+="/";
635 (*finalOutputFileNameinSubsetQC)+="outputQCanalysis";
636 (*finalOutputFileNameinSubsetQC)+=type.Data();
637 (*finalOutputFileNameinSubsetQC)+=".root";
638 TFile *finalOutputInSubsetQC = new TFile(finalOutputFileNameinSubsetQC->Data(),"NEW");
639 mergedListInSubsetQC->SetName("cobjQC");
640 mergedListInSubsetQC->Write(mergedListInSubsetQC->GetName(),TObject::kSingleKey);
641 finalOutputInSubsetQC->Close();
642 delete finalOutputFileNameinSubsetQC;
643 delete finalOutputInSubsetQC;
644 delete qc;
645 } else
646 {
647 cout<<"WARNING: mergedListQC is NULL !!!!"<<endl;
648 }
649
650 // FQD:
651 TString *mergedFileNameInSubsetFQD = new TString("subset");
652 (*mergedFileNameInSubsetFQD)+=(i+1);
653 (*mergedFileNameInSubsetFQD)+="/";
654 (*mergedFileNameInSubsetFQD)+="mergedFQDanalysis";
655 (*mergedFileNameInSubsetFQD)+=type.Data();
656 (*mergedFileNameInSubsetFQD)+=".root";
657
658 TFile *mergedFileInSubsetFQD = NULL;
659 TList *mergedListInSubsetFQD = NULL;
660 if(gSystem->AccessPathName(mergedFileNameInSubsetFQD->Data(),kFileExists))
661 {
662 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetFQD->Data()<<endl;
663 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
664 } else
665 {
666 mergedFileinSubsetFQD = TFile::Open(mergedFileNameInSubsetFQD->Data(),"READ");
667 if(mergedFileinSubsetFQD)
668 {
669 mergedFileinSubsetFQD->GetObject("cobjFQD",mergedListInSubsetFQD);
670 mergedFileinSubsetFQD->Close();
671 }
672 }
673 if(mergedListInSubsetFQD)
674 {
ce4a88f5 675 AliFlowAnalysisWithFittingQDistribution *fqd = new AliFlowAnalysisWithFittingQDistribution();
9455e15e 676 fqd->GetOutputHistograms(mergedListInSubsetFQD);
677 cout<<endl;
678 cout<<"!!!! WARNING WARNING WARNING WARNING !!!!"<<endl;
679 cout<<endl;
680 cout<<" If Minuit crashed here, remove the file "<<mergedFileNameInSubsetFQD->Data()<<endl;
681 cout<<" and lunch redoFinish.C again. Good luck! "<<endl;
682 cout<<endl;
683 cout<<"!!!! WARNING WARNING WARNING WARNING !!!!"<<endl;
684 cout<<endl;
685 delete mergedFileNameInSubsetFQD;
686 fqd->Finish(kTRUE);
687 // save the final results for FQD in final output file:
688 TString *finalOutputFileNameinSubsetFQD = new TString("subset");
689 (*finalOutputFileNameinSubsetFQD)+=(i+1);
690 (*finalOutputFileNameinSubsetFQD)+="/";
691 (*finalOutputFileNameinSubsetFQD)+="outputFQDanalysis";
692 (*finalOutputFileNameinSubsetFQD)+=type.Data();
693 (*finalOutputFileNameinSubsetFQD)+=".root";
694 TFile *finalOutputInSubsetFQD = new TFile(finalOutputFileNameinSubsetFQD->Data(),"NEW");
695 mergedListInSubsetFQD->SetName("cobjFQD");
696 mergedListInSubsetFQD->Write(mergedListInSubsetFQD->GetName(),TObject::kSingleKey);
697 finalOutputInSubsetFQD->Close();
698 delete finalOutputFileNameinSubsetFQD;
699 delete finalOutputInSubsetFQD;
700 delete fqd;
701 } else
702 {
703 cout<<"WARNING: mergedListFQD is NULL !!!!"<<endl;
704 }
705
706 // LYZ1SUM:
707 TString *mergedFileNameInSubsetLYZ1SUM = new TString("subset");
708 (*mergedFileNameInSubsetLYZ1SUM)+=(i+1);
709 (*mergedFileNameInSubsetLYZ1SUM)+="/";
710 (*mergedFileNameInSubsetLYZ1SUM)+="mergedLYZ1SUManalysis";
711 (*mergedFileNameInSubsetLYZ1SUM)+=type.Data();
712 (*mergedFileNameInSubsetLYZ1SUM)+=".root";
713
714 TFile *mergedFileInSubsetLYZ1SUM = NULL;
715 TList *mergedListInSubsetLYZ1SUM = NULL;
716 if(gSystem->AccessPathName(mergedFileNameInSubsetLYZ1SUM->Data(),kFileExists))
717 {
718 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetLYZ1SUM->Data()<<endl;
719 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
720 } else
721 {
722 mergedFileinSubsetLYZ1SUM = TFile::Open(mergedFileNameInSubsetLYZ1SUM->Data(),"READ");
723 delete mergedFileNameInSubsetLYZ1SUM;
724 if(mergedFileinSubsetLYZ1SUM)
725 {
726 mergedFileinSubsetLYZ1SUM->GetObject("cobjLYZ1SUM",mergedListInSubsetLYZ1SUM);
727 mergedFileinSubsetLYZ1SUM->Close();
728 }
729 }
730 if(mergedListInSubsetLYZ1SUM)
731 {
732 AliFlowAnalysisWithLeeYangZeros *lyz1sum = new AliFlowAnalysisWithLeeYangZeros();
733 lyz1sum->SetFirstRun(kTRUE);
734 lyz1sum->SetUseSum(kTRUE);
735 lyz1sum->GetOutputHistograms(mergedListInSubsetLYZ1SUM);
736 lyz1sum->Finish();
737 // save the final results for LYZ1SUM in final output file:
738 TString *finalOutputFileNameinSubsetLYZ1SUM = new TString("subset");
739 (*finalOutputFileNameinSubsetLYZ1SUM)+=(i+1);
740 (*finalOutputFileNameinSubsetLYZ1SUM)+="/";
741 (*finalOutputFileNameinSubsetLYZ1SUM)+="outputLYZ1SUManalysis";
742 (*finalOutputFileNameinSubsetLYZ1SUM)+=type.Data();
743 (*finalOutputFileNameinSubsetLYZ1SUM)+=".root";
744 TFile *finalOutputInSubsetLYZ1SUM = new TFile(finalOutputFileNameinSubsetLYZ1SUM->Data(),"NEW");
745 mergedListInSubsetLYZ1SUM->SetName("cobjLYZ1SUM");
746 mergedListInSubsetLYZ1SUM->Write(mergedListInSubsetLYZ1SUM->GetName(),TObject::kSingleKey);
747 finalOutputInSubsetLYZ1SUM->Close();
748 delete finalOutputFileNameinSubsetLYZ1SUM;
749 delete finalOutputInSubsetLYZ1SUM;
750 delete lyz1sum;
751 } else
752 {
753 cout<<"WARNING: mergedListLYZ1SUM is NULL !!!!"<<endl;
754 }
755
756 // LYZ1PROD:
757 TString *mergedFileNameInSubsetLYZ1PROD = new TString("subset");
758 (*mergedFileNameInSubsetLYZ1PROD)+=(i+1);
759 (*mergedFileNameInSubsetLYZ1PROD)+="/";
760 (*mergedFileNameInSubsetLYZ1PROD)+="mergedLYZ1PRODanalysis";
761 (*mergedFileNameInSubsetLYZ1PROD)+=type.Data();
762 (*mergedFileNameInSubsetLYZ1PROD)+=".root";
763
764 TFile *mergedFileInSubsetLYZ1PROD = NULL;
765 TList *mergedListInSubsetLYZ1PROD = NULL;
766 if(gSystem->AccessPathName(mergedFileNameInSubsetLYZ1PROD->Data(),kFileExists))
767 {
768 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetLYZ1PROD->Data()<<endl;
769 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
770 } else
771 {
772 mergedFileinSubsetLYZ1PROD = TFile::Open(mergedFileNameInSubsetLYZ1PROD->Data(),"READ");
773 delete mergedFileNameInSubsetLYZ1PROD;
774 if(mergedFileinSubsetLYZ1PROD)
775 {
776 mergedFileinSubsetLYZ1PROD->GetObject("cobjLYZ1PROD",mergedListInSubsetLYZ1PROD);
777 mergedFileinSubsetLYZ1PROD->Close();
778 }
779 }
780 if(mergedListInSubsetLYZ1PROD)
781 {
782 AliFlowAnalysisWithLeeYangZeros *lyz1prod = new AliFlowAnalysisWithLeeYangZeros();
783 lyz1prod->SetFirstRun(kTRUE);
784 lyz1prod->SetUseSum(kFALSE);
785 lyz1prod->GetOutputHistograms(mergedListInSubsetLYZ1PROD);
786 lyz1prod->Finish();
787 // save the final results for LYZ1PROD in final output file:
788 TString *finalOutputFileNameinSubsetLYZ1PROD = new TString("subset");
789 (*finalOutputFileNameinSubsetLYZ1PROD)+=(i+1);
790 (*finalOutputFileNameinSubsetLYZ1PROD)+="/";
791 (*finalOutputFileNameinSubsetLYZ1PROD)+="outputLYZ1PRODanalysis";
792 (*finalOutputFileNameinSubsetLYZ1PROD)+=type.Data();
793 (*finalOutputFileNameinSubsetLYZ1PROD)+=".root";
794 TFile *finalOutputInSubsetLYZ1PROD = new TFile(finalOutputFileNameinSubsetLYZ1PROD->Data(),"NEW");
795 mergedListInSubsetLYZ1PROD->SetName("cobjLYZ1PROD");
796 mergedListInSubsetLYZ1PROD->Write(mergedListInSubsetLYZ1PROD->GetName(),TObject::kSingleKey);
797 finalOutputInSubsetLYZ1PROD->Close();
798 delete finalOutputFileNameinSubsetLYZ1PROD;
799 delete finalOutputInSubsetLYZ1PROD;
800 delete lyz1prod;
801 } else
802 {
803 cout<<"WARNING: mergedListLYZ1PROD is NULL !!!!"<<endl;
804 }
805
806 // LYZ2SUM:
807 TString *mergedFileNameInSubsetLYZ2SUM = new TString("subset");
808 (*mergedFileNameInSubsetLYZ2SUM)+=(i+1);
809 (*mergedFileNameInSubsetLYZ2SUM)+="/";
810 (*mergedFileNameInSubsetLYZ2SUM)+="mergedLYZ2SUManalysis";
811 (*mergedFileNameInSubsetLYZ2SUM)+=type.Data();
812 (*mergedFileNameInSubsetLYZ2SUM)+=".root";
813
814 TFile *mergedFileInSubsetLYZ2SUM = NULL;
815 TList *mergedListInSubsetLYZ2SUM = NULL;
816 if(gSystem->AccessPathName(mergedFileNameInSubsetLYZ2SUM->Data(),kFileExists))
817 {
818 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetLYZ2SUM->Data()<<endl;
819 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
820 } else
821 {
822 mergedFileinSubsetLYZ2SUM = TFile::Open(mergedFileNameInSubsetLYZ2SUM->Data(),"READ");
823 delete mergedFileNameInSubsetLYZ2SUM;
824 if(mergedFileinSubsetLYZ2SUM)
825 {
826 mergedFileinSubsetLYZ2SUM->GetObject("cobjLYZ2SUM",mergedListInSubsetLYZ2SUM);
827 mergedFileinSubsetLYZ2SUM->Close();
828 }
829 }
830 if(mergedListInSubsetLYZ2SUM)
831 {
832 AliFlowAnalysisWithLeeYangZeros *lyz2sum = new AliFlowAnalysisWithLeeYangZeros();
833 lyz2sum->SetFirstRun(kFALSE);
834 lyz2sum->SetUseSum(kTRUE);
835 lyz2sum->GetOutputHistograms(mergedListInSubsetLYZ2SUM);
836 lyz2sum->Finish();
837 // save the final results for LYZ2SUM in final output file:
838 TString *finalOutputFileNameinSubsetLYZ2SUM = new TString("subset");
839 (*finalOutputFileNameinSubsetLYZ2SUM)+=(i+1);
840 (*finalOutputFileNameinSubsetLYZ2SUM)+="/";
841 (*finalOutputFileNameinSubsetLYZ2SUM)+="outputLYZ2SUManalysis";
842 (*finalOutputFileNameinSubsetLYZ2SUM)+=type.Data();
843 (*finalOutputFileNameinSubsetLYZ2SUM)+=".root";
844 TFile *finalOutputInSubsetLYZ2SUM = new TFile(finalOutputFileNameinSubsetLYZ2SUM->Data(),"NEW");
845 mergedListInSubsetLYZ2SUM->SetName("cobjLYZ2SUM");
846 mergedListInSubsetLYZ2SUM->Write(mergedListInSubsetLYZ2SUM->GetName(),TObject::kSingleKey);
847 finalOutputInSubsetLYZ2SUM->Close();
848 delete finalOutputFileNameinSubsetLYZ2SUM;
849 delete finalOutputInSubsetLYZ2SUM;
850 delete lyz2sum;
851 } else
852 {
853 cout<<"WARNING: mergedListLYZ2SUM is NULL !!!!"<<endl;
854 }
855
856 // LYZ2PROD:
857 TString *mergedFileNameInSubsetLYZ2PROD = new TString("subset");
858 (*mergedFileNameInSubsetLYZ2PROD)+=(i+1);
859 (*mergedFileNameInSubsetLYZ2PROD)+="/";
860 (*mergedFileNameInSubsetLYZ2PROD)+="mergedLYZ2PRODanalysis";
861 (*mergedFileNameInSubsetLYZ2PROD)+=type.Data();
862 (*mergedFileNameInSubsetLYZ2PROD)+=".root";
863
864 TFile *mergedFileInSubsetLYZ2PROD = NULL;
865 TList *mergedListInSubsetLYZ2PROD = NULL;
866 if(gSystem->AccessPathName(mergedFileNameInSubsetLYZ2PROD->Data(),kFileExists))
867 {
868 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetLYZ2PROD->Data()<<endl;
869 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
870 } else
871 {
872 mergedFileinSubsetLYZ2PROD = TFile::Open(mergedFileNameInSubsetLYZ2PROD->Data(),"READ");
873 delete mergedFileNameInSubsetLYZ2PROD;
874 if(mergedFileinSubsetLYZ2PROD)
875 {
876 mergedFileinSubsetLYZ2PROD->GetObject("cobjLYZ2PROD",mergedListInSubsetLYZ2PROD);
877 mergedFileinSubsetLYZ2PROD->Close();
878 }
879 }
880 if(mergedListInSubsetLYZ2PROD)
881 {
882 AliFlowAnalysisWithLeeYangZeros *lyz2prod = new AliFlowAnalysisWithLeeYangZeros();
883 lyz2prod->SetFirstRun(kFALSE);
884 lyz2prod->SetUseSum(kFALSE);
885 lyz2prod->GetOutputHistograms(mergedListInSubsetLYZ2PROD);
886 lyz2prod->Finish();
887 // save the final results for LYZ2PROD in final output file:
888 TString *finalOutputFileNameinSubsetLYZ2PROD = new TString("subset");
889 (*finalOutputFileNameinSubsetLYZ2PROD)+=(i+1);
890 (*finalOutputFileNameinSubsetLYZ2PROD)+="/";
891 (*finalOutputFileNameinSubsetLYZ2PROD)+="outputLYZ2PRODanalysis";
892 (*finalOutputFileNameinSubsetLYZ2PROD)+=type.Data();
893 (*finalOutputFileNameinSubsetLYZ2PROD)+=".root";
894 TFile *finalOutputInSubsetLYZ2PROD = new TFile(finalOutputFileNameinSubsetLYZ2PROD->Data(),"NEW");
895 mergedListInSubsetLYZ2PROD->SetName("cobjLYZ2PROD");
896 mergedListInSubsetLYZ2PROD->Write(mergedListInSubsetLYZ2PROD->GetName(),TObject::kSingleKey);
897 finalOutputInSubsetLYZ2PROD->Close();
898 delete finalOutputFileNameinSubsetLYZ2PROD;
899 delete finalOutputInSubsetLYZ2PROD;
900 delete lyz2prod;
901 } else
902 {
903 cout<<"WARNING: mergedListLYZ2PROD is NULL !!!!"<<endl;
904 }
905
906 // LYZEP:
907 TString *mergedFileNameInSubsetLYZEP = new TString("subset");
908 (*mergedFileNameInSubsetLYZEP)+=(i+1);
909 (*mergedFileNameInSubsetLYZEP)+="/";
910 (*mergedFileNameInSubsetLYZEP)+="mergedLYZEPanalysis";
911 (*mergedFileNameInSubsetLYZEP)+=type.Data();
912 (*mergedFileNameInSubsetLYZEP)+=".root";
913
914 TFile *mergedFileInSubsetLYZEP = NULL;
915 TList *mergedListInSubsetLYZEP = NULL;
916 if(gSystem->AccessPathName(mergedFileNameInSubsetLYZEP->Data(),kFileExists))
917 {
918 cout<<"WARNING: You do not have a merged output file "<<mergedFileNameInSubsetLYZEP->Data()<<endl;
919 cout<<" Couldn't redo Finish() on this file in subdirectory subset"<<i+1<<endl;
920 } else
921 {
922 mergedFileinSubsetLYZEP = TFile::Open(mergedFileNameInSubsetLYZEP->Data(),"READ");
923 delete mergedFileNameInSubsetLYZEP;
924 if(mergedFileinSubsetLYZEP)
925 {
926 mergedFileinSubsetLYZEP->GetObject("cobjLYZEP",mergedListInSubsetLYZEP);
927 mergedFileinSubsetLYZEP->Close();
928 }
929 }
930 if(mergedListInSubsetLYZEP)
931 {
932 AliFlowAnalysisWithLYZEventPlane *lyzep = new AliFlowAnalysisWithLYZEventPlane();
933 lyzep->GetOutputHistograms(mergedListInSubsetLYZEP);
934 lyzep->Finish(kTRUE);
935 // save the final results for LYZEP in final output file:
936 TString *finalOutputFileNameinSubsetLYZEP = new TString("subset");
937 (*finalOutputFileNameinSubsetLYZEP)+=(i+1);
938 (*finalOutputFileNameinSubsetLYZEP)+="/";
939 (*finalOutputFileNameinSubsetLYZEP)+="outputLYZEPanalysis";
940 (*finalOutputFileNameinSubsetLYZEP)+=type.Data();
941 (*finalOutputFileNameinSubsetLYZEP)+=".root";
942 TFile *finalOutputInSubsetLYZEP = new TFile(finalOutputFileNameinSubsetLYZEP->Data(),"NEW");
943 mergedListInSubsetLYZEP->SetName("cobjLYZEP");
944 mergedListInSubsetLYZEP->Write(mergedListInSubsetLYZEP->GetName(),TObject::kSingleKey);
945 finalOutputInSubsetLYZEP->Close();
946 delete finalOutputFileNameinSubsetLYZEP;
947 delete finalOutputInSubsetLYZEP;
948 delete lyzep;
949 } else
950 {
951 cout<<"WARNING: mergedListLYZEP is NULL !!!!"<<endl;
952 }
953 } // end of for(Int_t i=0,i<nSubsets;i++)
954
955 delete baseDirPath;
956 delete baseDir;
957
958 } // end of if(redoFinishAlsoInSubsets)
959
6a6afe42 960
961} // end of void reCallFinish(TString type="", Int_t mode=mLocal)
962
963void LoadLibrariesRDF(const libModes mode) {
964
965 //--------------------------------------
966 // Load the needed libraries most of them already loaded by aliroot
967 //--------------------------------------
5d040cf3 968 gSystem->Load("libTree");
969 gSystem->Load("libGeom");
970 gSystem->Load("libVMC");
971 gSystem->Load("libXMLIO");
972 gSystem->Load("libPhysics");
6a6afe42 973
974 //----------------------------------------------------------
975 // >>>>>>>>>>> Local mode <<<<<<<<<<<<<<
976 //----------------------------------------------------------
977 if (mode==mLocal) {
978 //--------------------------------------------------------
979 // If you want to use already compiled libraries
980 // in the aliroot distribution
981 //--------------------------------------------------------
982
983 //==================================================================================
984 //load needed libraries:
985 gSystem->AddIncludePath("-I$ROOTSYS/include");
5d040cf3 986 gSystem->Load("libTree");
6a6afe42 987
988 // for AliRoot
989 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
5d040cf3 990 gSystem->Load("libANALYSIS");
991 gSystem->Load("libPWG2flowCommon");
992 cerr<<"libPWG2flowCommon loaded ..."<<endl;
6a6afe42 993
994 }
995
996 else if (mode==mLocalSource) {
997
998 // In root inline compile
999
1000 // Constants
1001 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
1002 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
1003 gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
1004
1005 // Flow event
1006 gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+");
1007 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
1008 gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
1009
1010 // Cuts
1011 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");
1012
1013 // Output histosgrams
1014 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
1015 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
1016 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
1017 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
1018
1019 cout << "finished loading macros!" << endl;
1020
1021 } // end of else if (mode==mLocalSource)
1022
1023} // end of void LoadLibrariesRDF(const libModes mode)
1024
1025