]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/macros/mergeOutput.C
changed the order of call of endofcycle so that images are produced
[u/mrichter/AliRoot.git] / PWG2 / FLOW / macros / mergeOutput.C
CommitLineData
fe11f681 1enum libModes {mLocal,mLocalSource};
2
9455e15e 3void mergeOutput(TString type="", Int_t mode=mLocal)
fe11f681 4{
5 // type: type of analysis can be ESD, AOD, MC, ESDMC0, ESDMC1
9455e15e 6 // (if type="" than output files are from MC simulation (default))
7 // mode: if mode=mLocal than analyze data on your computer using aliroot
8 // if mode=mLocalSource than analyze data on your computer using root + source files
9
10 // settings for merging:
11 Bool_t devideOutputFilesInEqualSubsets = kFALSE; // if kFALSE: All output files will be merged in a single output file
12 // (this is deafult for merging on Grid).
13 // if kTRUE: All output files will be merged in a single output file, but ALSO
14 // all output files will be devided in N equal subsets (nSubsets) and for
15 // each subset merging will be done separately. Merged output files for subsets
16 // are stored in subdirectories subset1, subset2, ..., subsetN.
17 // This feature is used to estimate the spread.
18
19 const Int_t nSubsets = 10; //number od subsets used to estimate spread
20 const Int_t cycle = 10; // merging is done in cycles and this is the cycle period
21
22 // default names of subdirectories in which merged output files for subsets are stored:
23 TString *dirNameSubset = NULL;
24 if(devideOutputFilesInEqualSubsets)
fe11f681 25 {
9455e15e 26 dirNameSubset = new TString("subset");
fe11f681 27 }
fe11f681 28
9455e15e 29 if(cycle>100 && !devideOutputFilesInEqualSubsets)
fe11f681 30 {
9455e15e 31 cout<<"WARNING: Cycle is too big !!!!"<<endl;
32 cout<<" Set const Int_t cycle to smaller value in the macro."<<endl;
33 exit(0);
fe11f681 34 }
fe11f681 35
9455e15e 36 if(cycle>10 && devideOutputFilesInEqualSubsets)
fe11f681 37 {
9455e15e 38 cout<<"WARNING: Cycle is too big !!!!"<<endl;
39 cout<<" Set const Int_t cycle to smaller value in the macro."<<endl;
40 exit(0);
fe11f681 41 }
9455e15e 42
43 if(cycle<=0)
fe11f681 44 {
9455e15e 45 cout<<"WARNING: Cycle must be a positive integer !!!!"<<endl;
46 cout<<" Set const Int_t cycle to a positive integer in the macro."<<endl;
47 exit(0);
fe11f681 48 }
fe11f681 49
9455e15e 50 if(devideOutputFilesInEqualSubsets && nSubsets<=0)
fe11f681 51 {
9455e15e 52 cout<<"WARNING: Number od subsets must be a positive integer !!!!"<<endl;
53 cout<<" Set const Int_t nSubsets to a positive integer in the macro."<<endl;
54 exit(0);
fe11f681 55 }
fe11f681 56
9455e15e 57 // load needed libraries:
58 LoadLibrariesMO(mode);
59
60 // standard magic:
61 TString *baseDirPath = new TString(gSystem->pwd());
62 TSystemDirectory* baseDir = new TSystemDirectory(".",baseDirPath->Data());
63 TList* listOfFilesInBaseDir = baseDir->GetListOfFiles();
64 // listOfFilesInBaseDir->Print();
65 Int_t nFiles = listOfFilesInBaseDir->GetEntries();
fe11f681 66
9455e15e 67 // checking if subdirectories with default names for subsets already exist:
68 gSystem->cd(baseDirPath->Data());
69 if(devideOutputFilesInEqualSubsets)
fe11f681 70 {
9455e15e 71 for(Int_t iFile=0;iFile<nFiles;iFile++)
72 {
73 TSystemFile* presentFile = (TSystemFile*)listOfFilesInBaseDir->At(iFile);
74 TString presentFileName = baseDirPath->Data();
75 (presentFileName+="/")+=presentFile->GetName();
76 if(presentFileName.Contains("subset"))
77 {
78 cout<<"WARNING: You already have directory "<<presentFileName.Data()<<" !!!!"<<endl;
79 cout<<" Remove this directory and start macro again."<<endl;
80 exit(0);
81 }
82 } // end of for(Int_t iFile=0;iFile<nFiles;iFile++)
83 } // end of if(devideOutputFilesInEqualSubsets)
84
85 // create subdirectories for storing merged results for subsets:
86 gSystem->cd(baseDirPath->Data());
87 if(devideOutputFilesInEqualSubsets)
947cc449 88 {
9455e15e 89 for(Int_t i=0;i<nSubsets;i++)
90 {
91 TString currentDirForSpreadName(dirNameSubset->Data());
92 Bool_t bDirectoryMade = gSystem->mkdir((currentDirForSpreadName += (i+1)).Data());
93 if(bDirectoryMade)
94 {
95 cout<<"WARNING: The directory "<<currentDirForSpreadName.Data()<<" could not be created (illegal path name) !!!!"<<endl;
96 exit(0);
97 }
98 }
947cc449 99 }
947cc449 100
9455e15e 101 // loop over directories and add output *.root files to TFileMerger:
102 gSystem->cd(baseDirPath->Data());
fe11f681 103
9455e15e 104 // MCEP:
105 Int_t fileCounterMCEP = 0;
106 Int_t fileCounterLastSubsetMCEP = 0;
107 TFileMerger *fileMergerMCEP = new TFileMerger();
108 TFileMerger fileMergerForSubsetsMCEP[nSubsets];
fe11f681 109
9455e15e 110 // SP:
111 Int_t fileCounterSP = 0;
112 Int_t fileCounterLastSubsetSP = 0;
113 TFileMerger *fileMergerSP = new TFileMerger();
114 TFileMerger fileMergerForSubsetsSP[nSubsets];
115
116 // GFC:
117 Int_t fileCounterGFC = 0;
118 Int_t fileCounterLastSubsetGFC = 0;
119 TFileMerger *fileMergerGFC = new TFileMerger();
120 TFileMerger fileMergerForSubsetsGFC[nSubsets];
121
122 // QC:
123 Int_t fileCounterQC = 0;
124 Int_t fileCounterLastSubsetQC = 0;
125 TFileMerger *fileMergerQC = new TFileMerger();
126 TFileMerger fileMergerForSubsetsQC[nSubsets];
127
128 // FQD:
129 Int_t fileCounterFQD = 0;
130 Int_t fileCounterLastSubsetFQD = 0;
131 TFileMerger *fileMergerFQD = new TFileMerger();
132 TFileMerger fileMergerForSubsetsFQD[nSubsets];
133
134 // LYZ1SUM:
135 Int_t fileCounterLYZ1SUM = 0;
136 Int_t fileCounterLastSubsetLYZ1SUM = 0;
137 TFileMerger *fileMergerLYZ1SUM = new TFileMerger();
138 TFileMerger fileMergerForSubsetsLYZ1SUM[nSubsets];
139
140 // LYZ1PROD:
141 Int_t fileCounterLYZ1PROD = 0;
142 Int_t fileCounterLastSubsetLYZ1PROD = 0;
143 TFileMerger *fileMergerLYZ1PROD = new TFileMerger();
144 TFileMerger fileMergerForSubsetsLYZ1PROD[nSubsets];
145
146 // LYZEP:
147 Int_t fileCounterLYZEP = 0;
148 Int_t fileCounterLastSubsetLYZEP = 0;
149 TFileMerger *fileMergerLYZEP = new TFileMerger();
150 TFileMerger fileMergerForSubsetsLYZEP[nSubsets];
151
152 for(Int_t iFile=0;iFile<nFiles;iFile++)
fe11f681 153 {
9455e15e 154 TSystemFile* presentFile = (TSystemFile*)listOfFilesInBaseDir->At(iFile);
155
156 if(!presentFile || !presentFile->IsDirectory() || strcmp(presentFile->GetName(), ".") == 0 ||
157 strcmp(presentFile->GetName(), "..") == 0) continue;
158
159 TString presentDirName = baseDirPath->Data();
160 (presentDirName+="/")+=presentFile->GetName();
161 presentDirName+="/";
162
163 // accessing the output *.root file in this directory:
164 // MCEP:
165 TString fileNameMCEP = presentDirName;
fe11f681 166 ((fileNameMCEP+="outputMCEPanalysis")+=type.Data())+=".root";
167 if(!(gSystem->AccessPathName(fileNameMCEP.Data(),kFileExists)))
168 {
9455e15e 169 fileCounterMCEP++;
170 fileMergerMCEP->AddFile(fileNameMCEP.Data());
171
172 if(devideOutputFilesInEqualSubsets)
173 {
174 fileMergerForSubsetsMCEP[(fileCounterMCEP-1) % nSubsets].AddFile(fileNameMCEP.Data());
175 if(fileCounterMCEP % nSubsets == 0)
176 {
177 fileCounterLastSubsetMCEP++;
178 }
179 }
180
181 // global merging:
182 if(fileCounterMCEP % cycle == 0)
183 {
184 TString *mergedFileForPreviousCycleMCEP = new TString("mergedMCEPanalysis");
185 (*mergedFileForPreviousCycleMCEP)+=type.Data();
186 (*mergedFileForPreviousCycleMCEP)+=(fileCounterMCEP/cycle - 1);
187 (*mergedFileForPreviousCycleMCEP)+=".root";
188
189 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleMCEP->Data(),kFileExists)))
fe11f681 190 {
9455e15e 191 fileMergerMCEP->AddFile(mergedFileForPreviousCycleMCEP->Data());
192 // delete merged output from previous cycle:
193 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleMCEP->Data(),gSystem->pwd());
194 file->Delete();
195 delete file;
196 }
fe11f681 197
9455e15e 198 TString *mergedFileForCurrentCycleMCEP = new TString("mergedMCEPanalysis");
199 (*mergedFileForCurrentCycleMCEP)+=type.Data();
200 (*mergedFileForCurrentCycleMCEP)+=(fileCounterMCEP/cycle);
201 (*mergedFileForCurrentCycleMCEP)+=".root";
202
203 fileMergerMCEP->OutputFile(mergedFileForCurrentCycleMCEP->Data());
204 fileMergerMCEP->Merge();
205 fileMergerMCEP->Reset();
206
207 delete mergedFileForPreviousCycleMCEP;
208 delete mergedFileForCurrentCycleMCEP;
209 } // end of if(fileCounterMCEP % cycle == 0)
210
211 // merging for subsets:
212 if(devideOutputFilesInEqualSubsets)
213 {
214 if(fileCounterLastSubsetMCEP > 0 && fileCounterLastSubsetMCEP % cycle == 0 && fileCounterMCEP % cycle == 0)
215 {
216 TString mergedFileForPreviousCycleForSubsetMCEP[nSubsets];
217 TString mergedFileForCurrentCycleForSubsetMCEP[nSubsets];
218 for(Int_t i=0;i<nSubsets;i++)
219 {
220 mergedFileForPreviousCycleForSubsetMCEP[i]="mergedMCEPanalysisForSubsetNo";
221 mergedFileForPreviousCycleForSubsetMCEP[i]+=(i+1);
222 mergedFileForPreviousCycleForSubsetMCEP[i]+=type.Data();
223 mergedFileForPreviousCycleForSubsetMCEP[i]+="CycleNo";
224 mergedFileForPreviousCycleForSubsetMCEP[i]+=(fileCounterLastSubsetMCEP/cycle - 1);
225 mergedFileForPreviousCycleForSubsetMCEP[i]+=".root";
226
227 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),kFileExists)))
228 {
229 fileMergerForSubsetsMCEP[i].AddFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data());
230 // delete merged output from previous cycle:
231 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),gSystem->pwd());
232 file->Delete();
233 delete file;
234 }
235
236 mergedFileForCurrentCycleForSubsetMCEP[i]="mergedMCEPanalysisForSubsetNo";
237 mergedFileForCurrentCycleForSubsetMCEP[i]+=(i+1);
238 mergedFileForCurrentCycleForSubsetMCEP[i]+=type.Data();
239 mergedFileForCurrentCycleForSubsetMCEP[i]+="CycleNo";
240 mergedFileForCurrentCycleForSubsetMCEP[i]+=(fileCounterLastSubsetMCEP/cycle);
241 mergedFileForCurrentCycleForSubsetMCEP[i]+=".root";
242
243 fileMergerForSubsetsMCEP[i].OutputFile(mergedFileForCurrentCycleForSubsetMCEP[i].Data());
244 fileMergerForSubsetsMCEP[i].Merge();
245 fileMergerForSubsetsMCEP[i].Reset();
246
247 } // end of for(Int_t i=0;i<nSubsets;i++)
248 } // end of if(fileCounterLastSubsetMCEP % cycle == 0)
249 } // end of if(devideOutputFilesInEqualSubsets)
250 } // end of if(!(gSystem->AccessPathName(fileNameMCEP.Data(),kFileExists)))
251
252 // SP:
253 TString fileNameSP = presentDirName;
fe11f681 254 ((fileNameSP+="outputSPanalysis")+=type.Data())+=".root";
255 if(!(gSystem->AccessPathName(fileNameSP.Data(),kFileExists)))
256 {
9455e15e 257 fileCounterSP++;
258 fileMergerSP->AddFile(fileNameSP.Data());
259
260 if(devideOutputFilesInEqualSubsets)
261 {
262 fileMergerForSubsetsSP[(fileCounterSP-1) % nSubsets].AddFile(fileNameSP.Data());
263 if(fileCounterSP % nSubsets == 0)
fe11f681 264 {
9455e15e 265 fileCounterLastSubsetSP++;
266 }
267 }
268
269 // global merging:
270 if(fileCounterSP % cycle == 0)
271 {
272 TString *mergedFileForPreviousCycleSP = new TString("mergedSPanalysis");
273 (*mergedFileForPreviousCycleSP)+=type.Data();
274 (*mergedFileForPreviousCycleSP)+=(fileCounterSP/cycle - 1);
275 (*mergedFileForPreviousCycleSP)+=".root";
276
277 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleSP->Data(),kFileExists)))
278 {
279 fileMergerSP->AddFile(mergedFileForPreviousCycleSP->Data());
280 // delete merged output from previous cycle:
281 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleSP->Data(),gSystem->pwd());
282 file->Delete();
283 delete file;
284 }
285
286 TString *mergedFileForCurrentCycleSP = new TString("mergedSPanalysis");
287 (*mergedFileForCurrentCycleSP)+=type.Data();
288 (*mergedFileForCurrentCycleSP)+=(fileCounterSP/cycle);
289 (*mergedFileForCurrentCycleSP)+=".root";
290
291 fileMergerSP->OutputFile(mergedFileForCurrentCycleSP->Data());
292 fileMergerSP->Merge();
293 fileMergerSP->Reset();
294
295 delete mergedFileForPreviousCycleSP;
296 delete mergedFileForCurrentCycleSP;
297 } // end of if(fileCounterSP % cycle == 0)
fe11f681 298
9455e15e 299 // merging for subsets:
300 if(devideOutputFilesInEqualSubsets)
301 {
302 if(fileCounterLastSubsetSP > 0 && fileCounterLastSubsetSP % cycle == 0 && fileCounterSP % cycle == 0)
303 {
304 TString mergedFileForPreviousCycleForSubsetSP[nSubsets];
305 TString mergedFileForCurrentCycleForSubsetSP[nSubsets];
306 for(Int_t i=0;i<nSubsets;i++)
307 {
308 mergedFileForPreviousCycleForSubsetSP[i]="mergedSPanalysisForSubsetNo";
309 mergedFileForPreviousCycleForSubsetSP[i]+=(i+1);
310 mergedFileForPreviousCycleForSubsetSP[i]+=type.Data();
311 mergedFileForPreviousCycleForSubsetSP[i]+="CycleNo";
312 mergedFileForPreviousCycleForSubsetSP[i]+=(fileCounterLastSubsetSP/cycle - 1);
313 mergedFileForPreviousCycleForSubsetSP[i]+=".root";
314
315 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetSP[i].Data(),kFileExists)))
316 {
317 fileMergerForSubsetsSP[i].AddFile(mergedFileForPreviousCycleForSubsetSP[i].Data());
318 // delete merged output from previous cycle:
319 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetSP[i].Data(),gSystem->pwd());
320 file->Delete();
321 delete file;
322 }
323
324 mergedFileForCurrentCycleForSubsetSP[i]="mergedSPanalysisForSubsetNo";
325 mergedFileForCurrentCycleForSubsetSP[i]+=(i+1);
326 mergedFileForCurrentCycleForSubsetSP[i]+=type.Data();
327 mergedFileForCurrentCycleForSubsetSP[i]+="CycleNo";
328 mergedFileForCurrentCycleForSubsetSP[i]+=(fileCounterLastSubsetSP/cycle);
329 mergedFileForCurrentCycleForSubsetSP[i]+=".root";
330
331 fileMergerForSubsetsSP[i].OutputFile(mergedFileForCurrentCycleForSubsetSP[i].Data());
332 fileMergerForSubsetsSP[i].Merge();
333 fileMergerForSubsetsSP[i].Reset();
334
335 } // end of for(Int_t i=0;i<nSubsets;i++)
336 } // end of if(fileCounterLastSubsetSP % cycle == 0)
337 } // end of if(devideOutputFilesInEqualSubsets)
338 } // end of if(!(gSystem->AccessPathName(fileNameSP.Data(),kFileExists)))
339
340 // GFC:
341 TString fileNameGFC = presentDirName;
fe11f681 342 ((fileNameGFC+="outputGFCanalysis")+=type.Data())+=".root";
343 if(!(gSystem->AccessPathName(fileNameGFC.Data(),kFileExists)))
344 {
9455e15e 345 fileCounterGFC++;
346 fileMergerGFC->AddFile(fileNameGFC.Data());
347
348 if(devideOutputFilesInEqualSubsets)
349 {
350 fileMergerForSubsetsGFC[(fileCounterGFC-1) % nSubsets].AddFile(fileNameGFC.Data());
351 if(fileCounterGFC % nSubsets == 0)
fe11f681 352 {
9455e15e 353 fileCounterLastSubsetGFC++;
354 }
355 }
356
357 // global merging:
358 if(fileCounterGFC % cycle == 0)
359 {
360 TString *mergedFileForPreviousCycleGFC = new TString("mergedGFCanalysis");
361 (*mergedFileForPreviousCycleGFC)+=type.Data();
362 (*mergedFileForPreviousCycleGFC)+=(fileCounterGFC/cycle - 1);
363 (*mergedFileForPreviousCycleGFC)+=".root";
364
365 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleGFC->Data(),kFileExists)))
366 {
367 fileMergerGFC->AddFile(mergedFileForPreviousCycleGFC->Data());
368 // delete merged output from previous cycle:
369 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleGFC->Data(),gSystem->pwd());
370 file->Delete();
371 delete file;
372 }
373
374 TString *mergedFileForCurrentCycleGFC = new TString("mergedGFCanalysis");
375 (*mergedFileForCurrentCycleGFC)+=type.Data();
376 (*mergedFileForCurrentCycleGFC)+=(fileCounterGFC/cycle);
377 (*mergedFileForCurrentCycleGFC)+=".root";
378
379 fileMergerGFC->OutputFile(mergedFileForCurrentCycleGFC->Data());
380 fileMergerGFC->Merge();
381 fileMergerGFC->Reset();
382
383 delete mergedFileForPreviousCycleGFC;
384 delete mergedFileForCurrentCycleGFC;
385 } // end of if(fileCounterGFC % cycle == 0)
386
387 // merging for subsets:
388 if(devideOutputFilesInEqualSubsets)
389 {
390 if(fileCounterLastSubsetGFC > 0 && fileCounterLastSubsetGFC % cycle == 0 && fileCounterGFC % cycle == 0)
391 {
392 TString mergedFileForPreviousCycleForSubsetGFC[nSubsets];
393 TString mergedFileForCurrentCycleForSubsetGFC[nSubsets];
394 for(Int_t i=0;i<nSubsets;i++)
395 {
396 mergedFileForPreviousCycleForSubsetGFC[i]="mergedGFCanalysisForSubsetNo";
397 mergedFileForPreviousCycleForSubsetGFC[i]+=(i+1);
398 mergedFileForPreviousCycleForSubsetGFC[i]+=type.Data();
399 mergedFileForPreviousCycleForSubsetGFC[i]+="CycleNo";
400 mergedFileForPreviousCycleForSubsetGFC[i]+=(fileCounterLastSubsetGFC/cycle - 1);
401 mergedFileForPreviousCycleForSubsetGFC[i]+=".root";
402
403 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetGFC[i].Data(),kFileExists)))
404 {
405 fileMergerForSubsetsGFC[i].AddFile(mergedFileForPreviousCycleForSubsetGFC[i].Data());
406 // delete merged output from previous cycle:
407 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetGFC[i].Data(),gSystem->pwd());
408 file->Delete();
409 delete file;
410 }
411
412 mergedFileForCurrentCycleForSubsetGFC[i]="mergedGFCanalysisForSubsetNo";
413 mergedFileForCurrentCycleForSubsetGFC[i]+=(i+1);
414 mergedFileForCurrentCycleForSubsetGFC[i]+=type.Data();
415 mergedFileForCurrentCycleForSubsetGFC[i]+="CycleNo";
416 mergedFileForCurrentCycleForSubsetGFC[i]+=(fileCounterLastSubsetGFC/cycle);
417 mergedFileForCurrentCycleForSubsetGFC[i]+=".root";
418
419 fileMergerForSubsetsGFC[i].OutputFile(mergedFileForCurrentCycleForSubsetGFC[i].Data());
420 fileMergerForSubsetsGFC[i].Merge();
421 fileMergerForSubsetsGFC[i].Reset();
422
423 } // end of for(Int_t i=0;i<nSubsets;i++)
424 } // end of if(fileCounterLastSubsetGFC % cycle == 0)
425 } // end of if(devideOutputFilesInEqualSubsets)
426 } // end of if(!(gSystem->AccessPathName(fileNameGFC.Data(),kFileExists)))
427
428 // QC:
429 TString fileNameQC = presentDirName;
fe11f681 430 ((fileNameQC+="outputQCanalysis")+=type.Data())+=".root";
431 if(!(gSystem->AccessPathName(fileNameQC.Data(),kFileExists)))
432 {
9455e15e 433 fileCounterQC++;
434 fileMergerQC->AddFile(fileNameQC.Data());
435
436 if(devideOutputFilesInEqualSubsets)
437 {
438 fileMergerForSubsetsQC[(fileCounterQC-1) % nSubsets].AddFile(fileNameQC.Data());
439 if(fileCounterQC % nSubsets == 0)
fe11f681 440 {
9455e15e 441 fileCounterLastSubsetQC++;
442 }
443 }
444
445 // global merging:
446 if(fileCounterQC % cycle == 0)
447 {
448 TString *mergedFileForPreviousCycleQC = new TString("mergedQCanalysis");
449 (*mergedFileForPreviousCycleQC)+=type.Data();
450 (*mergedFileForPreviousCycleQC)+=(fileCounterQC/cycle - 1);
451 (*mergedFileForPreviousCycleQC)+=".root";
452
453 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleQC->Data(),kFileExists)))
454 {
455 fileMergerQC->AddFile(mergedFileForPreviousCycleQC->Data());
456 // delete merged output from previous cycle:
457 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleQC->Data(),gSystem->pwd());
458 file->Delete();
459 delete file;
460 }
461
462 TString *mergedFileForCurrentCycleQC = new TString("mergedQCanalysis");
463 (*mergedFileForCurrentCycleQC)+=type.Data();
464 (*mergedFileForCurrentCycleQC)+=(fileCounterQC/cycle);
465 (*mergedFileForCurrentCycleQC)+=".root";
fe11f681 466
9455e15e 467 fileMergerQC->OutputFile(mergedFileForCurrentCycleQC->Data());
468 fileMergerQC->Merge();
469 fileMergerQC->Reset();
470
471 delete mergedFileForPreviousCycleQC;
472 delete mergedFileForCurrentCycleQC;
473 } // end of if(fileCounterQC % cycle == 0)
474
475 // merging for subsets:
476 if(devideOutputFilesInEqualSubsets)
477 {
478 if(fileCounterLastSubsetQC > 0 && fileCounterLastSubsetQC % cycle == 0 && fileCounterQC % cycle == 0)
479 {
480 TString mergedFileForPreviousCycleForSubsetQC[nSubsets];
481 TString mergedFileForCurrentCycleForSubsetQC[nSubsets];
482 for(Int_t i=0;i<nSubsets;i++)
483 {
484 mergedFileForPreviousCycleForSubsetQC[i]="mergedQCanalysisForSubsetNo";
485 mergedFileForPreviousCycleForSubsetQC[i]+=(i+1);
486 mergedFileForPreviousCycleForSubsetQC[i]+=type.Data();
487 mergedFileForPreviousCycleForSubsetQC[i]+="CycleNo";
488 mergedFileForPreviousCycleForSubsetQC[i]+=(fileCounterLastSubsetQC/cycle - 1);
489 mergedFileForPreviousCycleForSubsetQC[i]+=".root";
490
491 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetQC[i].Data(),kFileExists)))
492 {
493 fileMergerForSubsetsQC[i].AddFile(mergedFileForPreviousCycleForSubsetQC[i].Data());
494 // delete merged output from previous cycle:
495 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetQC[i].Data(),gSystem->pwd());
496 file->Delete();
497 delete file;
498 }
499
500 mergedFileForCurrentCycleForSubsetQC[i]="mergedQCanalysisForSubsetNo";
501 mergedFileForCurrentCycleForSubsetQC[i]+=(i+1);
502 mergedFileForCurrentCycleForSubsetQC[i]+=type.Data();
503 mergedFileForCurrentCycleForSubsetQC[i]+="CycleNo";
504 mergedFileForCurrentCycleForSubsetQC[i]+=(fileCounterLastSubsetQC/cycle);
505 mergedFileForCurrentCycleForSubsetQC[i]+=".root";
506
507 fileMergerForSubsetsQC[i].OutputFile(mergedFileForCurrentCycleForSubsetQC[i].Data());
508 fileMergerForSubsetsQC[i].Merge();
509 fileMergerForSubsetsQC[i].Reset();
510
511 } // end of for(Int_t i=0;i<nSubsets;i++)
512 } // end of if(fileCounterLastSubsetQC % cycle == 0)
513 } // end of if(devideOutputFilesInEqualSubsets)
514 } // end of if(!(gSystem->AccessPathName(fileNameQC.Data(),kFileExists)))
515
516 // FQD:
517 TString fileNameFQD = presentDirName;
fe11f681 518 ((fileNameFQD+="outputFQDanalysis")+=type.Data())+=".root";
519 if(!(gSystem->AccessPathName(fileNameFQD.Data(),kFileExists)))
520 {
9455e15e 521 fileCounterFQD++;
522 fileMergerFQD->AddFile(fileNameFQD.Data());
523
524 if(devideOutputFilesInEqualSubsets)
525 {
526 fileMergerForSubsetsFQD[(fileCounterFQD-1) % nSubsets].AddFile(fileNameFQD.Data());
527 if(fileCounterFQD % nSubsets == 0)
fe11f681 528 {
9455e15e 529 fileCounterLastSubsetFQD++;
530 }
531 }
532
533 // global merging:
534 if(fileCounterFQD % cycle == 0)
535 {
536 TString *mergedFileForPreviousCycleFQD = new TString("mergedFQDanalysis");
537 (*mergedFileForPreviousCycleFQD)+=type.Data();
538 (*mergedFileForPreviousCycleFQD)+=(fileCounterFQD/cycle - 1);
539 (*mergedFileForPreviousCycleFQD)+=".root";
540
541 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleFQD->Data(),kFileExists)))
542 {
543 fileMergerFQD->AddFile(mergedFileForPreviousCycleFQD->Data());
544 // delete merged output from previous cycle:
545 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleFQD->Data(),gSystem->pwd());
546 file->Delete();
547 delete file;
548 }
549
550 TString *mergedFileForCurrentCycleFQD = new TString("mergedFQDanalysis");
551 (*mergedFileForCurrentCycleFQD)+=type.Data();
552 (*mergedFileForCurrentCycleFQD)+=(fileCounterFQD/cycle);
553 (*mergedFileForCurrentCycleFQD)+=".root";
554
555 fileMergerFQD->OutputFile(mergedFileForCurrentCycleFQD->Data());
556 fileMergerFQD->Merge();
557 fileMergerFQD->Reset();
558
559 delete mergedFileForPreviousCycleFQD;
560 delete mergedFileForCurrentCycleFQD;
561 } // end of if(fileCounterFQD % cycle == 0)
562
563 // merging for subsets:
564 if(devideOutputFilesInEqualSubsets)
565 {
566 if(fileCounterLastSubsetFQD > 0 && fileCounterLastSubsetFQD % cycle == 0 && fileCounterFQD % cycle == 0)
567 {
568 TString mergedFileForPreviousCycleForSubsetFQD[nSubsets];
569 TString mergedFileForCurrentCycleForSubsetFQD[nSubsets];
570 for(Int_t i=0;i<nSubsets;i++)
571 {
572 mergedFileForPreviousCycleForSubsetFQD[i]="mergedFQDanalysisForSubsetNo";
573 mergedFileForPreviousCycleForSubsetFQD[i]+=(i+1);
574 mergedFileForPreviousCycleForSubsetFQD[i]+=type.Data();
575 mergedFileForPreviousCycleForSubsetFQD[i]+="CycleNo";
576 mergedFileForPreviousCycleForSubsetFQD[i]+=(fileCounterLastSubsetFQD/cycle - 1);
577 mergedFileForPreviousCycleForSubsetFQD[i]+=".root";
578
579 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetFQD[i].Data(),kFileExists)))
580 {
581 fileMergerForSubsetsFQD[i].AddFile(mergedFileForPreviousCycleForSubsetFQD[i].Data());
582 // delete merged output from previous cycle:
583 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetFQD[i].Data(),gSystem->pwd());
584 file->Delete();
585 delete file;
586 }
587
588 mergedFileForCurrentCycleForSubsetFQD[i]="mergedFQDanalysisForSubsetNo";
589 mergedFileForCurrentCycleForSubsetFQD[i]+=(i+1);
590 mergedFileForCurrentCycleForSubsetFQD[i]+=type.Data();
591 mergedFileForCurrentCycleForSubsetFQD[i]+="CycleNo";
592 mergedFileForCurrentCycleForSubsetFQD[i]+=(fileCounterLastSubsetFQD/cycle);
593 mergedFileForCurrentCycleForSubsetFQD[i]+=".root";
594
595 fileMergerForSubsetsFQD[i].OutputFile(mergedFileForCurrentCycleForSubsetFQD[i].Data());
596 fileMergerForSubsetsFQD[i].Merge();
597 fileMergerForSubsetsFQD[i].Reset();
598
599 } // end of for(Int_t i=0;i<nSubsets;i++)
600 } // end of if(fileCounterLastSubsetFQD % cycle == 0)
601 } // end of if(devideOutputFilesInEqualSubsets)
602 } // end of if(!(gSystem->AccessPathName(fileNameFQD.Data(),kFileExists)))
fe11f681 603
9455e15e 604 // LYZ1SUM:
605 TString fileNameLYZ1SUM = presentDirName;
947cc449 606 ((fileNameLYZ1SUM+="outputLYZ1SUManalysis")+=type.Data())+=".root";
607 if(!(gSystem->AccessPathName(fileNameLYZ1SUM.Data(),kFileExists)))
fe11f681 608 {
9455e15e 609 fileCounterLYZ1SUM++;
610 fileMergerLYZ1SUM->AddFile(fileNameLYZ1SUM.Data());
611
612 if(devideOutputFilesInEqualSubsets)
613 {
614 fileMergerForSubsetsLYZ1SUM[(fileCounterLYZ1SUM-1) % nSubsets].AddFile(fileNameLYZ1SUM.Data());
615 if(fileCounterLYZ1SUM % nSubsets == 0)
fe11f681 616 {
9455e15e 617 fileCounterLastSubsetLYZ1SUM++;
618 }
619 }
620
621 // global merging:
622 if(fileCounterLYZ1SUM % cycle == 0)
623 {
624 TString *mergedFileForPreviousCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
625 (*mergedFileForPreviousCycleLYZ1SUM)+=type.Data();
626 (*mergedFileForPreviousCycleLYZ1SUM)+=(fileCounterLYZ1SUM/cycle - 1);
627 (*mergedFileForPreviousCycleLYZ1SUM)+=".root";
fe11f681 628
9455e15e 629 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1SUM->Data(),kFileExists)))
fe11f681 630 {
9455e15e 631 fileMergerLYZ1SUM->AddFile(mergedFileForPreviousCycleLYZ1SUM->Data());
632 // delete merged output from previous cycle:
633 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1SUM->Data(),gSystem->pwd());
634 file->Delete();
635 delete file;
636 }
637
638 TString *mergedFileForCurrentCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
639 (*mergedFileForCurrentCycleLYZ1SUM)+=type.Data();
640 (*mergedFileForCurrentCycleLYZ1SUM)+=(fileCounterLYZ1SUM/cycle);
641 (*mergedFileForCurrentCycleLYZ1SUM)+=".root";
642
643 fileMergerLYZ1SUM->OutputFile(mergedFileForCurrentCycleLYZ1SUM->Data());
644 fileMergerLYZ1SUM->Merge();
645 fileMergerLYZ1SUM->Reset();
646
647 delete mergedFileForPreviousCycleLYZ1SUM;
648 delete mergedFileForCurrentCycleLYZ1SUM;
649 } // end of if(fileCounterLYZ1SUM % cycle == 0)
fe11f681 650
9455e15e 651 // merging for subsets:
652 if(devideOutputFilesInEqualSubsets)
653 {
654 if(fileCounterLastSubsetLYZ1SUM > 0 && fileCounterLastSubsetLYZ1SUM % cycle == 0 && fileCounterLYZ1SUM % cycle == 0)
655 {
656 TString mergedFileForPreviousCycleForSubsetLYZ1SUM[nSubsets];
657 TString mergedFileForCurrentCycleForSubsetLYZ1SUM[nSubsets];
658 for(Int_t i=0;i<nSubsets;i++)
659 {
660 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]="mergedLYZ1SUManalysisForSubsetNo";
661 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=(i+1);
662 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=type.Data();
663 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+="CycleNo";
664 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=(fileCounterLastSubsetLYZ1SUM/cycle - 1);
665 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=".root";
666
667 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),kFileExists)))
668 {
669 fileMergerForSubsetsLYZ1SUM[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data());
670 // delete merged output from previous cycle:
671 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),gSystem->pwd());
672 file->Delete();
673 delete file;
674 }
675
676 mergedFileForCurrentCycleForSubsetLYZ1SUM[i]="mergedLYZ1SUManalysisForSubsetNo";
677 mergedFileForCurrentCycleForSubsetLYZ1SUM[i]+=(i+1);
678 mergedFileForCurrentCycleForSubsetLYZ1SUM[i]+=type.Data();
679 mergedFileForCurrentCycleForSubsetLYZ1SUM[i]+="CycleNo";
680 mergedFileForCurrentCycleForSubsetLYZ1SUM[i]+=(fileCounterLastSubsetLYZ1SUM/cycle);
681 mergedFileForCurrentCycleForSubsetLYZ1SUM[i]+=".root";
682
683 fileMergerForSubsetsLYZ1SUM[i].OutputFile(mergedFileForCurrentCycleForSubsetLYZ1SUM[i].Data());
684 fileMergerForSubsetsLYZ1SUM[i].Merge();
685 fileMergerForSubsetsLYZ1SUM[i].Reset();
686
687 } // end of for(Int_t i=0;i<nSubsets;i++)
688 } // end of if(fileCounterLastSubsetLYZ1SUM % cycle == 0)
689 } // end of if(devideOutputFilesInEqualSubsets)
690 } // end of if(!(gSystem->AccessPathName(fileNameLYZ1SUM.Data(),kFileExists)))
691
692 // LYZ1PROD:
693 TString fileNameLYZ1PROD = presentDirName;
947cc449 694 ((fileNameLYZ1PROD+="outputLYZ1PRODanalysis")+=type.Data())+=".root";
695 if(!(gSystem->AccessPathName(fileNameLYZ1PROD.Data(),kFileExists)))
696 {
9455e15e 697 fileCounterLYZ1PROD++;
698 fileMergerLYZ1PROD->AddFile(fileNameLYZ1PROD.Data());
699
700 if(devideOutputFilesInEqualSubsets)
701 {
702 fileMergerForSubsetsLYZ1PROD[(fileCounterLYZ1PROD-1) % nSubsets].AddFile(fileNameLYZ1PROD.Data());
703 if(fileCounterLYZ1PROD % nSubsets == 0)
947cc449 704 {
9455e15e 705 fileCounterLastSubsetLYZ1PROD++;
706 }
707 }
708
709 // global merging:
710 if(fileCounterLYZ1PROD % cycle == 0)
711 {
712 TString *mergedFileForPreviousCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
713 (*mergedFileForPreviousCycleLYZ1PROD)+=type.Data();
714 (*mergedFileForPreviousCycleLYZ1PROD)+=(fileCounterLYZ1PROD/cycle - 1);
715 (*mergedFileForPreviousCycleLYZ1PROD)+=".root";
947cc449 716
9455e15e 717 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1PROD->Data(),kFileExists)))
947cc449 718 {
9455e15e 719 fileMergerLYZ1PROD->AddFile(mergedFileForPreviousCycleLYZ1PROD->Data());
720 // delete merged output from previous cycle:
721 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1PROD->Data(),gSystem->pwd());
722 file->Delete();
723 delete file;
724 }
725
726 TString *mergedFileForCurrentCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
727 (*mergedFileForCurrentCycleLYZ1PROD)+=type.Data();
728 (*mergedFileForCurrentCycleLYZ1PROD)+=(fileCounterLYZ1PROD/cycle);
729 (*mergedFileForCurrentCycleLYZ1PROD)+=".root";
947cc449 730
9455e15e 731 fileMergerLYZ1PROD->OutputFile(mergedFileForCurrentCycleLYZ1PROD->Data());
732 fileMergerLYZ1PROD->Merge();
733 fileMergerLYZ1PROD->Reset();
734
735 delete mergedFileForPreviousCycleLYZ1PROD;
736 delete mergedFileForCurrentCycleLYZ1PROD;
737 } // end of if(fileCounterLYZ1PROD % cycle == 0)
738
739 // merging for subsets:
740 if(devideOutputFilesInEqualSubsets)
741 {
742 if(fileCounterLastSubsetLYZ1PROD > 0 && fileCounterLastSubsetLYZ1PROD % cycle == 0 && fileCounterLYZ1PROD % cycle == 0)
743 {
744 TString mergedFileForPreviousCycleForSubsetLYZ1PROD[nSubsets];
745 TString mergedFileForCurrentCycleForSubsetLYZ1PROD[nSubsets];
746 for(Int_t i=0;i<nSubsets;i++)
747 {
748 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]="mergedLYZ1PRODanalysisForSubsetNo";
749 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=(i+1);
750 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=type.Data();
751 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+="CycleNo";
752 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=(fileCounterLastSubsetLYZ1PROD/cycle - 1);
753 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=".root";
754
755 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),kFileExists)))
756 {
757 fileMergerForSubsetsLYZ1PROD[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data());
758 // delete merged output from previous cycle:
759 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),gSystem->pwd());
760 file->Delete();
761 delete file;
762 }
763
764 mergedFileForCurrentCycleForSubsetLYZ1PROD[i]="mergedLYZ1PRODanalysisForSubsetNo";
765 mergedFileForCurrentCycleForSubsetLYZ1PROD[i]+=(i+1);
766 mergedFileForCurrentCycleForSubsetLYZ1PROD[i]+=type.Data();
767 mergedFileForCurrentCycleForSubsetLYZ1PROD[i]+="CycleNo";
768 mergedFileForCurrentCycleForSubsetLYZ1PROD[i]+=(fileCounterLastSubsetLYZ1PROD/cycle);
769 mergedFileForCurrentCycleForSubsetLYZ1PROD[i]+=".root";
770
771 fileMergerForSubsetsLYZ1PROD[i].OutputFile(mergedFileForCurrentCycleForSubsetLYZ1PROD[i].Data());
772 fileMergerForSubsetsLYZ1PROD[i].Merge();
773 fileMergerForSubsetsLYZ1PROD[i].Reset();
774
775 } // end of for(Int_t i=0;i<nSubsets;i++)
776 } // end of if(fileCounterLastSubsetLYZ1PROD % cycle == 0)
777 } // end of if(devideOutputFilesInEqualSubsets)
778 } // end of if(!(gSystem->AccessPathName(fileNameLYZ1PROD.Data(),kFileExists)))
779
780 // LYZEP:
781 TString fileNameLYZEP = presentDirName;
fe11f681 782 ((fileNameLYZEP+="outputLYZEPanalysis")+=type.Data())+=".root";
783 if(!(gSystem->AccessPathName(fileNameLYZEP.Data(),kFileExists)))
784 {
9455e15e 785 fileCounterLYZEP++;
786 fileMergerLYZEP->AddFile(fileNameLYZEP.Data());
787
788 if(devideOutputFilesInEqualSubsets)
789 {
790 fileMergerForSubsetsLYZEP[(fileCounterLYZEP-1) % nSubsets].AddFile(fileNameLYZEP.Data());
791 if(fileCounterLYZEP % nSubsets == 0)
fe11f681 792 {
9455e15e 793 fileCounterLastSubsetLYZEP++;
794 }
795 }
fe11f681 796
9455e15e 797 // global merging:
798 if(fileCounterLYZEP % cycle == 0)
799 {
800 TString *mergedFileForPreviousCycleLYZEP = new TString("mergedLYZEPanalysis");
801 (*mergedFileForPreviousCycleLYZEP)+=type.Data();
802 (*mergedFileForPreviousCycleLYZEP)+=(fileCounterLYZEP/cycle - 1);
803 (*mergedFileForPreviousCycleLYZEP)+=".root";
804
805 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZEP->Data(),kFileExists)))
806 {
807 fileMergerLYZEP->AddFile(mergedFileForPreviousCycleLYZEP->Data());
808 // delete merged output from previous cycle:
809 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZEP->Data(),gSystem->pwd());
810 file->Delete();
811 delete file;
812 }
813
814 TString *mergedFileForCurrentCycleLYZEP = new TString("mergedLYZEPanalysis");
815 (*mergedFileForCurrentCycleLYZEP)+=type.Data();
816 (*mergedFileForCurrentCycleLYZEP)+=(fileCounterLYZEP/cycle);
817 (*mergedFileForCurrentCycleLYZEP)+=".root";
818
819 fileMergerLYZEP->OutputFile(mergedFileForCurrentCycleLYZEP->Data());
820 fileMergerLYZEP->Merge();
821 fileMergerLYZEP->Reset();
822
823 delete mergedFileForPreviousCycleLYZEP;
824 delete mergedFileForCurrentCycleLYZEP;
825 } // end of if(fileCounterLYZEP % cycle == 0)
826
827 // merging for subsets:
828 if(devideOutputFilesInEqualSubsets)
829 {
830 if(fileCounterLastSubsetLYZEP > 0 && fileCounterLastSubsetLYZEP % cycle == 0 && fileCounterLYZEP % cycle == 0)
831 {
832 TString mergedFileForPreviousCycleForSubsetLYZEP[nSubsets];
833 TString mergedFileForCurrentCycleForSubsetLYZEP[nSubsets];
834 for(Int_t i=0;i<nSubsets;i++)
835 {
836 mergedFileForPreviousCycleForSubsetLYZEP[i]="mergedLYZEPanalysisForSubsetNo";
837 mergedFileForPreviousCycleForSubsetLYZEP[i]+=(i+1);
838 mergedFileForPreviousCycleForSubsetLYZEP[i]+=type.Data();
839 mergedFileForPreviousCycleForSubsetLYZEP[i]+="CycleNo";
840 mergedFileForPreviousCycleForSubsetLYZEP[i]+=(fileCounterLastSubsetLYZEP/cycle - 1);
841 mergedFileForPreviousCycleForSubsetLYZEP[i]+=".root";
842
843 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),kFileExists)))
844 {
845 fileMergerForSubsetsLYZEP[i].AddFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data());
846 // delete merged output from previous cycle:
847 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),gSystem->pwd());
848 file->Delete();
849 delete file;
850 }
851
852 mergedFileForCurrentCycleForSubsetLYZEP[i]="mergedLYZEPanalysisForSubsetNo";
853 mergedFileForCurrentCycleForSubsetLYZEP[i]+=(i+1);
854 mergedFileForCurrentCycleForSubsetLYZEP[i]+=type.Data();
855 mergedFileForCurrentCycleForSubsetLYZEP[i]+="CycleNo";
856 mergedFileForCurrentCycleForSubsetLYZEP[i]+=(fileCounterLastSubsetLYZEP/cycle);
857 mergedFileForCurrentCycleForSubsetLYZEP[i]+=".root";
858
859 fileMergerForSubsetsLYZEP[i].OutputFile(mergedFileForCurrentCycleForSubsetLYZEP[i].Data());
860 fileMergerForSubsetsLYZEP[i].Merge();
861 fileMergerForSubsetsLYZEP[i].Reset();
862
863 } // end of for(Int_t i=0;i<nSubsets;i++)
864 } // end of if(fileCounterLastSubsetLYZEP % cycle == 0)
865 } // end of if(devideOutputFilesInEqualSubsets)
866 } // end of if(!(gSystem->AccessPathName(fileNameLYZEP.Data(),kFileExists)))
fe11f681 867
9455e15e 868 } // end of for(Int_t iFile=0;iFile<nFiles;iFile++)
fe11f681 869
9455e15e 870
871 //=================================================================================================
872
873
874 // global merging at the end of the day:
875 gSystem->cd(baseDirPath->Data());
876 // MCEP:
877 if(fileCounterMCEP < cycle)
fe11f681 878 {
9455e15e 879 TString *mergedFileFinalMCEP = new TString("mergedMCEPanalysis");
880 (*mergedFileFinalMCEP)+=type.Data();
881 (*mergedFileFinalMCEP)+=".root";
882 fileMergerMCEP->OutputFile(mergedFileFinalMCEP->Data());
883 fileMergerMCEP->Merge();
884 delete mergedFileFinalMCEP;
885 } else if (fileCounterMCEP % cycle == 0)
886 {
887 TString *mergedFileForPreviousCycleMCEP = new TString("mergedMCEPanalysis");
888 (*mergedFileForPreviousCycleMCEP)+=type.Data();
889 (*mergedFileForPreviousCycleMCEP)+=(fileCounterMCEP/cycle);
890 (*mergedFileForPreviousCycleMCEP)+=".root";
891 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleMCEP->Data(),kFileExists)))
892 {
893 TString *mergedFileFinalMCEP = new TString("mergedMCEPanalysis");
894 (*mergedFileFinalMCEP)+=type.Data();
895 (*mergedFileFinalMCEP)+=".root";
896 gSystem->Rename(mergedFileForPreviousCycleMCEP->Data(),mergedFileFinalMCEP->Data());
897 }
898 } else
899 {
900 TString *mergedFileForPreviousCycleMCEP = new TString("mergedMCEPanalysis");
901 (*mergedFileForPreviousCycleMCEP)+=type.Data();
902 (*mergedFileForPreviousCycleMCEP)+=((Int_t)fileCounterMCEP/cycle);
903 (*mergedFileForPreviousCycleMCEP)+=".root";
904
905 fileMergerMCEP->AddFile(mergedFileForPreviousCycleMCEP->Data());
906
907 // delete merged output from previous cycle:
908 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleMCEP->Data(),gSystem->pwd());
909 file->Delete();
910 delete file;
911
912 TString *mergedFileFinalMCEP = new TString("mergedMCEPanalysis");
913 (*mergedFileFinalMCEP)+=type.Data();
914 (*mergedFileFinalMCEP)+=".root";
915 fileMergerMCEP->OutputFile(mergedFileFinalMCEP->Data());
916 fileMergerMCEP->Merge();
917
918 delete mergedFileForPreviousCycleMCEP;
919 delete mergedFileFinalMCEP;
920 }
921
922 // merging for subsets at the end of the day:
923 gSystem->cd(baseDirPath->Data());
924 if(devideOutputFilesInEqualSubsets)
925 {
926 if(fileCounterLastSubsetMCEP < cycle)
927 {
928 TString mergedFileFinalForSubsetMCEP[nSubsets];
929 for(Int_t i=0;i<nSubsets;i++)
930 {
931 mergedFileFinalForSubsetMCEP[i]="subset";
932 mergedFileFinalForSubsetMCEP[i]+=(i+1);
933 mergedFileFinalForSubsetMCEP[i]+="/";
934 mergedFileFinalForSubsetMCEP[i]+="mergedMCEPanalysis";
935 mergedFileFinalForSubsetMCEP[i]+=type.Data();
936 mergedFileFinalForSubsetMCEP[i]+=".root";
937
938 fileMergerForSubsetsMCEP[i].OutputFile(mergedFileFinalForSubsetMCEP[i].Data());
939 fileMergerForSubsetsMCEP[i].Merge();
940 fileMergerForSubsetsMCEP[i].Reset();
941 } // end of for(Int_t i=0;i<nSubsets;i++)
942 } else if (fileCounterLastSubsetMCEP % cycle == 0 && fileCounterMCEP % cycle == 0)
943 {
944 TString mergedFileForPreviousCycleForSubsetMCEP[nSubsets];
945 TString mergedFileFinalForSubsetMCEP[nSubsets];
946 for(Int_t i=0;i<nSubsets;i++)
947 {
948 mergedFileForPreviousCycleForSubsetMCEP[i]="mergedMCEPanalysisForSubsetNo";
949 mergedFileForPreviousCycleForSubsetMCEP[i]+=(i+1);
950 mergedFileForPreviousCycleForSubsetMCEP[i]+=type.Data();
951 mergedFileForPreviousCycleForSubsetMCEP[i]+="CycleNo";
952 mergedFileForPreviousCycleForSubsetMCEP[i]+=(fileCounterLastSubsetMCEP/cycle);
953 mergedFileForPreviousCycleForSubsetMCEP[i]+=".root";
954 // move and rename this file to subdirectory subset*:
955 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),gSystem->pwd());
956 TString *subdir = new TString("subset");
957 (*subdir)+=(i+1);
958 (*subdir)+="/";
959 (*subdir)+="mergedMCEPanalysis";
960 (*subdir)+=type.Data();
961 (*subdir)+=".root";
962 file->Move(subdir->Data());
963 delete file;
964 delete subdir;
965 } // end of for(Int_t i=0;i<nSubsets;i++)
966 } else
967 {
968 TString mergedFileForPreviousCycleForSubsetMCEP[nSubsets];
969 TString mergedFileFinalForSubsetMCEP[nSubsets];
970 for(Int_t i=0;i<nSubsets;i++)
971 {
972 mergedFileForPreviousCycleForSubsetMCEP[i]="mergedMCEPanalysisForSubsetNo";
973 mergedFileForPreviousCycleForSubsetMCEP[i]+=(i+1);
974 mergedFileForPreviousCycleForSubsetMCEP[i]+=type.Data();
975 mergedFileForPreviousCycleForSubsetMCEP[i]+="CycleNo";
976 mergedFileForPreviousCycleForSubsetMCEP[i]+=((Int_t)fileCounterLastSubsetMCEP/cycle);
977 mergedFileForPreviousCycleForSubsetMCEP[i]+=".root";
978
979 fileMergerForSubsetsMCEP[i].AddFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data());
980
981 // delete merged output from previous cycle:
982 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),gSystem->pwd());
983 file->Delete();
984 delete file;
985
986 mergedFileFinalForSubsetMCEP[i]="subset";
987 mergedFileFinalForSubsetMCEP[i]+=(i+1);
988 mergedFileFinalForSubsetMCEP[i]+="/";
989 mergedFileFinalForSubsetMCEP[i]+="mergedMCEPanalysis";
990 mergedFileFinalForSubsetMCEP[i]+=type.Data();
991 mergedFileFinalForSubsetMCEP[i]+=".root";
992
993 fileMergerForSubsetsMCEP[i].OutputFile(mergedFileFinalForSubsetMCEP[i].Data());
994
995 fileMergerForSubsetsMCEP[i].Merge();
996 fileMergerForSubsetsMCEP[i].Reset();
997 } // end of for(Int_t i=0;i<nSubsets;i++)
998 } // end of last else
999 } // end of if(devideOutputFilesInEqualSubsets)
1000
1001 // SP:
1002 if(fileCounterSP < cycle)
fe11f681 1003 {
9455e15e 1004 TString *mergedFileFinalSP = new TString("mergedSPanalysis");
1005 (*mergedFileFinalSP)+=type.Data();
1006 (*mergedFileFinalSP)+=".root";
1007 fileMergerSP->OutputFile(mergedFileFinalSP->Data());
1008 fileMergerSP->Merge();
1009 delete mergedFileFinalSP;
1010 } else if (fileCounterSP % cycle == 0)
1011 {
1012 TString *mergedFileForPreviousCycleSP = new TString("mergedSPanalysis");
1013 (*mergedFileForPreviousCycleSP)+=type.Data();
1014 (*mergedFileForPreviousCycleSP)+=(fileCounterSP/cycle);
1015 (*mergedFileForPreviousCycleSP)+=".root";
1016 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleSP->Data(),kFileExists)))
1017 {
1018 TString *mergedFileFinalSP = new TString("mergedSPanalysis");
1019 (*mergedFileFinalSP)+=type.Data();
1020 (*mergedFileFinalSP)+=".root";
1021 gSystem->Rename(mergedFileForPreviousCycleSP->Data(),mergedFileFinalSP->Data());
1022 }
1023 } else
1024 {
1025 TString *mergedFileForPreviousCycleSP = new TString("mergedSPanalysis");
1026 (*mergedFileForPreviousCycleSP)+=type.Data();
1027 (*mergedFileForPreviousCycleSP)+=((Int_t)fileCounterSP/cycle);
1028 (*mergedFileForPreviousCycleSP)+=".root";
1029
1030 fileMergerSP->AddFile(mergedFileForPreviousCycleSP->Data());
1031
1032 // delete merged output from previous cycle:
1033 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleSP->Data(),gSystem->pwd());
1034 file->Delete();
1035 delete file;
1036
1037 TString *mergedFileFinalSP = new TString("mergedSPanalysis");
1038 (*mergedFileFinalSP)+=type.Data();
1039 (*mergedFileFinalSP)+=".root";
1040 fileMergerSP->OutputFile(mergedFileFinalSP->Data());
1041 fileMergerSP->Merge();
1042
1043 delete mergedFileForPreviousCycleSP;
1044 delete mergedFileFinalSP;
1045 }
1046
1047 // merging for subsets at the end of the day:
1048 gSystem->cd(baseDirPath->Data());
1049 if(devideOutputFilesInEqualSubsets)
1050 {
1051 if(fileCounterLastSubsetSP < cycle)
1052 {
1053 TString mergedFileFinalForSubsetSP[nSubsets];
1054 for(Int_t i=0;i<nSubsets;i++)
1055 {
1056 mergedFileFinalForSubsetSP[i]="subset";
1057 mergedFileFinalForSubsetSP[i]+=(i+1);
1058 mergedFileFinalForSubsetSP[i]+="/";
1059 mergedFileFinalForSubsetSP[i]+="mergedSPanalysis";
1060 mergedFileFinalForSubsetSP[i]+=type.Data();
1061 mergedFileFinalForSubsetSP[i]+=".root";
1062
1063 fileMergerForSubsetsSP[i].OutputFile(mergedFileFinalForSubsetSP[i].Data());
1064 fileMergerForSubsetsSP[i].Merge();
1065 fileMergerForSubsetsSP[i].Reset();
1066 } // end of for(Int_t i=0;i<nSubsets;i++)
1067 } else if (fileCounterLastSubsetSP % cycle == 0 && fileCounterSP % cycle == 0)
1068 {
1069 TString mergedFileForPreviousCycleForSubsetSP[nSubsets];
1070 TString mergedFileFinalForSubsetSP[nSubsets];
1071 for(Int_t i=0;i<nSubsets;i++)
1072 {
1073 mergedFileForPreviousCycleForSubsetSP[i]="mergedSPanalysisForSubsetNo";
1074 mergedFileForPreviousCycleForSubsetSP[i]+=(i+1);
1075 mergedFileForPreviousCycleForSubsetSP[i]+=type.Data();
1076 mergedFileForPreviousCycleForSubsetSP[i]+="CycleNo";
1077 mergedFileForPreviousCycleForSubsetSP[i]+=(fileCounterLastSubsetSP/cycle);
1078 mergedFileForPreviousCycleForSubsetSP[i]+=".root";
1079 // move and rename this file to subdirectory subset*:
1080 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetSP[i].Data(),gSystem->pwd());
1081 TString *subdir = new TString("subset");
1082 (*subdir)+=(i+1);
1083 (*subdir)+="/";
1084 (*subdir)+="mergedSPanalysis";
1085 (*subdir)+=type.Data();
1086 (*subdir)+=".root";
1087 file->Move(subdir->Data());
1088 delete file;
1089 delete subdir;
1090 } // end of for(Int_t i=0;i<nSubsets;i++)
1091 } else
1092 {
1093 TString mergedFileForPreviousCycleForSubsetSP[nSubsets];
1094 TString mergedFileFinalForSubsetSP[nSubsets];
1095 for(Int_t i=0;i<nSubsets;i++)
1096 {
1097 mergedFileForPreviousCycleForSubsetSP[i]="mergedSPanalysisForSubsetNo";
1098 mergedFileForPreviousCycleForSubsetSP[i]+=(i+1);
1099 mergedFileForPreviousCycleForSubsetSP[i]+=type.Data();
1100 mergedFileForPreviousCycleForSubsetSP[i]+="CycleNo";
1101 mergedFileForPreviousCycleForSubsetSP[i]+=((Int_t)fileCounterLastSubsetSP/cycle);
1102 mergedFileForPreviousCycleForSubsetSP[i]+=".root";
1103
1104 fileMergerForSubsetsSP[i].AddFile(mergedFileForPreviousCycleForSubsetSP[i].Data());
1105
1106 // delete merged output from previous cycle:
1107 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetSP[i].Data(),gSystem->pwd());
1108 file->Delete();
1109 delete file;
1110
1111 mergedFileFinalForSubsetSP[i]="subset";
1112 mergedFileFinalForSubsetSP[i]+=(i+1);
1113 mergedFileFinalForSubsetSP[i]+="/";
1114 mergedFileFinalForSubsetSP[i]+="mergedSPanalysis";
1115 mergedFileFinalForSubsetSP[i]+=type.Data();
1116 mergedFileFinalForSubsetSP[i]+=".root";
1117
1118 fileMergerForSubsetsSP[i].OutputFile(mergedFileFinalForSubsetSP[i].Data());
1119 fileMergerForSubsetsSP[i].Merge();
1120 fileMergerForSubsetsSP[i].Reset();
1121 } // end of for(Int_t i=0;i<nSubsets;i++)
1122 } // end of last else
1123 } // end of if(devideOutputFilesInEqualSubsets)
1124
1125 // GFC:
1126 if(fileCounterGFC < cycle)
fe11f681 1127 {
9455e15e 1128 TString *mergedFileFinalGFC = new TString("mergedGFCanalysis");
1129 (*mergedFileFinalGFC)+=type.Data();
1130 (*mergedFileFinalGFC)+=".root";
1131 fileMergerGFC->OutputFile(mergedFileFinalGFC->Data());
1132 fileMergerGFC->Merge();
1133 delete mergedFileFinalGFC;
1134 } else if (fileCounterGFC % cycle == 0)
1135 {
1136 TString *mergedFileForPreviousCycleGFC = new TString("mergedGFCanalysis");
1137 (*mergedFileForPreviousCycleGFC)+=type.Data();
1138 (*mergedFileForPreviousCycleGFC)+=(fileCounterGFC/cycle);
1139 (*mergedFileForPreviousCycleGFC)+=".root";
1140 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleGFC->Data(),kFileExists)))
1141 {
1142 TString *mergedFileFinalGFC = new TString("mergedGFCanalysis");
1143 (*mergedFileFinalGFC)+=type.Data();
1144 (*mergedFileFinalGFC)+=".root";
1145 gSystem->Rename(mergedFileForPreviousCycleGFC->Data(),mergedFileFinalGFC->Data());
1146 }
1147 } else
1148 {
1149 TString *mergedFileForPreviousCycleGFC = new TString("mergedGFCanalysis");
1150 (*mergedFileForPreviousCycleGFC)+=type.Data();
1151 (*mergedFileForPreviousCycleGFC)+=((Int_t)fileCounterGFC/cycle);
1152 (*mergedFileForPreviousCycleGFC)+=".root";
1153
1154 fileMergerGFC->AddFile(mergedFileForPreviousCycleGFC->Data());
1155
1156 // delete merged output from previous cycle:
1157 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleGFC->Data(),gSystem->pwd());
1158 file->Delete();
1159 delete file;
1160
1161 TString *mergedFileFinalGFC = new TString("mergedGFCanalysis");
1162 (*mergedFileFinalGFC)+=type.Data();
1163 (*mergedFileFinalGFC)+=".root";
1164 fileMergerGFC->OutputFile(mergedFileFinalGFC->Data());
1165 fileMergerGFC->Merge();
1166
1167 delete mergedFileForPreviousCycleGFC;
1168 delete mergedFileFinalGFC;
1169 }
1170
1171 // merging for subsets at the end of the day:
1172 gSystem->cd(baseDirPath->Data());
1173 if(devideOutputFilesInEqualSubsets)
1174 {
1175 if(fileCounterLastSubsetGFC < cycle)
1176 {
1177 TString mergedFileFinalForSubsetGFC[nSubsets];
1178 for(Int_t i=0;i<nSubsets;i++)
1179 {
1180 mergedFileFinalForSubsetGFC[i]="subset";
1181 mergedFileFinalForSubsetGFC[i]+=(i+1);
1182 mergedFileFinalForSubsetGFC[i]+="/";
1183 mergedFileFinalForSubsetGFC[i]+="mergedGFCanalysis";
1184 mergedFileFinalForSubsetGFC[i]+=type.Data();
1185 mergedFileFinalForSubsetGFC[i]+=".root";
1186
1187 fileMergerForSubsetsGFC[i].OutputFile(mergedFileFinalForSubsetGFC[i].Data());
1188 fileMergerForSubsetsGFC[i].Merge();
1189 fileMergerForSubsetsGFC[i].Reset();
1190 } // end of for(Int_t i=0;i<nSubsets;i++)
1191 } else if (fileCounterLastSubsetGFC % cycle == 0 && fileCounterGFC % cycle == 0)
1192 {
1193 TString mergedFileForPreviousCycleForSubsetGFC[nSubsets];
1194 TString mergedFileFinalForSubsetGFC[nSubsets];
1195 for(Int_t i=0;i<nSubsets;i++)
1196 {
1197 mergedFileForPreviousCycleForSubsetGFC[i]="mergedGFCanalysisForSubsetNo";
1198 mergedFileForPreviousCycleForSubsetGFC[i]+=(i+1);
1199 mergedFileForPreviousCycleForSubsetGFC[i]+=type.Data();
1200 mergedFileForPreviousCycleForSubsetGFC[i]+="CycleNo";
1201 mergedFileForPreviousCycleForSubsetGFC[i]+=(fileCounterLastSubsetGFC/cycle);
1202 mergedFileForPreviousCycleForSubsetGFC[i]+=".root";
1203 // move and rename this file to subdirectory subset*:
1204 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetGFC[i].Data(),gSystem->pwd());
1205 TString *subdir = new TString("subset");
1206 (*subdir)+=(i+1);
1207 (*subdir)+="/";
1208 (*subdir)+="mergedGFCanalysis";
1209 (*subdir)+=type.Data();
1210 (*subdir)+=".root";
1211 file->Move(subdir->Data());
1212 delete file;
1213 delete subdir;
1214 } // end of for(Int_t i=0;i<nSubsets;i++)
1215 } else
1216 {
1217 TString mergedFileForPreviousCycleForSubsetGFC[nSubsets];
1218 TString mergedFileFinalForSubsetGFC[nSubsets];
1219 for(Int_t i=0;i<nSubsets;i++)
1220 {
1221 mergedFileForPreviousCycleForSubsetGFC[i]="mergedGFCanalysisForSubsetNo";
1222 mergedFileForPreviousCycleForSubsetGFC[i]+=(i+1);
1223 mergedFileForPreviousCycleForSubsetGFC[i]+=type.Data();
1224 mergedFileForPreviousCycleForSubsetGFC[i]+="CycleNo";
1225 mergedFileForPreviousCycleForSubsetGFC[i]+=((Int_t)fileCounterLastSubsetGFC/cycle);
1226 mergedFileForPreviousCycleForSubsetGFC[i]+=".root";
1227
1228 fileMergerForSubsetsGFC[i].AddFile(mergedFileForPreviousCycleForSubsetGFC[i].Data());
1229
1230 // delete merged output from previous cycle:
1231 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetGFC[i].Data(),gSystem->pwd());
1232 file->Delete();
1233 delete file;
1234
1235 mergedFileFinalForSubsetGFC[i]="subset";
1236 mergedFileFinalForSubsetGFC[i]+=(i+1);
1237 mergedFileFinalForSubsetGFC[i]+="/";
1238 mergedFileFinalForSubsetGFC[i]+="mergedGFCanalysis";
1239 mergedFileFinalForSubsetGFC[i]+=type.Data();
1240 mergedFileFinalForSubsetGFC[i]+=".root";
1241
1242 fileMergerForSubsetsGFC[i].OutputFile(mergedFileFinalForSubsetGFC[i].Data());
1243 fileMergerForSubsetsGFC[i].Merge();
1244 fileMergerForSubsetsGFC[i].Reset();
1245 } // end of for(Int_t i=0;i<nSubsets;i++)
1246 } // end of last else
1247 } // end of if(devideOutputFilesInEqualSubsets)
1248
1249 // QC:
1250 if(fileCounterQC < cycle)
947cc449 1251 {
9455e15e 1252 TString *mergedFileFinalQC = new TString("mergedQCanalysis");
1253 (*mergedFileFinalQC)+=type.Data();
1254 (*mergedFileFinalQC)+=".root";
1255 fileMergerQC->OutputFile(mergedFileFinalQC->Data());
1256 fileMergerQC->Merge();
1257 delete mergedFileFinalQC;
1258 } else if (fileCounterQC % cycle == 0)
1259 {
1260 TString *mergedFileForPreviousCycleQC = new TString("mergedQCanalysis");
1261 (*mergedFileForPreviousCycleQC)+=type.Data();
1262 (*mergedFileForPreviousCycleQC)+=(fileCounterQC/cycle);
1263 (*mergedFileForPreviousCycleQC)+=".root";
1264 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleQC->Data(),kFileExists)))
1265 {
1266 TString *mergedFileFinalQC = new TString("mergedQCanalysis");
1267 (*mergedFileFinalQC)+=type.Data();
1268 (*mergedFileFinalQC)+=".root";
1269 gSystem->Rename(mergedFileForPreviousCycleQC->Data(),mergedFileFinalQC->Data());
1270 }
1271 } else
1272 {
1273 TString *mergedFileForPreviousCycleQC = new TString("mergedQCanalysis");
1274 (*mergedFileForPreviousCycleQC)+=type.Data();
1275 (*mergedFileForPreviousCycleQC)+=((Int_t)fileCounterQC/cycle);
1276 (*mergedFileForPreviousCycleQC)+=".root";
1277
1278 fileMergerQC->AddFile(mergedFileForPreviousCycleQC->Data());
1279
1280 // delete merged output from previous cycle:
1281 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleQC->Data(),gSystem->pwd());
1282 file->Delete();
1283 delete file;
1284
1285 TString *mergedFileFinalQC = new TString("mergedQCanalysis");
1286 (*mergedFileFinalQC)+=type.Data();
1287 (*mergedFileFinalQC)+=".root";
1288 fileMergerQC->OutputFile(mergedFileFinalQC->Data());
1289 fileMergerQC->Merge();
1290
1291 delete mergedFileForPreviousCycleQC;
1292 delete mergedFileFinalQC;
1293 }
1294
1295 // merging for subsets at the end of the day:
1296 gSystem->cd(baseDirPath->Data());
1297 if(devideOutputFilesInEqualSubsets)
1298 {
1299 if(fileCounterLastSubsetQC < cycle)
1300 {
1301 TString mergedFileFinalForSubsetQC[nSubsets];
1302 for(Int_t i=0;i<nSubsets;i++)
1303 {
1304 mergedFileFinalForSubsetQC[i]="subset";
1305 mergedFileFinalForSubsetQC[i]+=(i+1);
1306 mergedFileFinalForSubsetQC[i]+="/";
1307 mergedFileFinalForSubsetQC[i]+="mergedQCanalysis";
1308 mergedFileFinalForSubsetQC[i]+=type.Data();
1309 mergedFileFinalForSubsetQC[i]+=".root";
1310
1311 fileMergerForSubsetsQC[i].OutputFile(mergedFileFinalForSubsetQC[i].Data());
1312 fileMergerForSubsetsQC[i].Merge();
1313 fileMergerForSubsetsQC[i].Reset();
1314 } // end of for(Int_t i=0;i<nSubsets;i++)
1315 } else if (fileCounterLastSubsetQC % cycle == 0 && fileCounterQC % cycle == 0)
1316 {
1317 TString mergedFileForPreviousCycleForSubsetQC[nSubsets];
1318 TString mergedFileFinalForSubsetQC[nSubsets];
1319 for(Int_t i=0;i<nSubsets;i++)
1320 {
1321 mergedFileForPreviousCycleForSubsetQC[i]="mergedQCanalysisForSubsetNo";
1322 mergedFileForPreviousCycleForSubsetQC[i]+=(i+1);
1323 mergedFileForPreviousCycleForSubsetQC[i]+=type.Data();
1324 mergedFileForPreviousCycleForSubsetQC[i]+="CycleNo";
1325 mergedFileForPreviousCycleForSubsetQC[i]+=(fileCounterLastSubsetQC/cycle);
1326 mergedFileForPreviousCycleForSubsetQC[i]+=".root";
1327 // move and rename this file to subdirectory subset*:
1328 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetQC[i].Data(),gSystem->pwd());
1329 TString *subdir = new TString("subset");
1330 (*subdir)+=(i+1);
1331 (*subdir)+="/";
1332 (*subdir)+="mergedQCanalysis";
1333 (*subdir)+=type.Data();
1334 (*subdir)+=".root";
1335 file->Move(subdir->Data());
1336 delete file;
1337 delete subdir;
1338 } // end of for(Int_t i=0;i<nSubsets;i++)
1339 } else
1340 {
1341 TString mergedFileForPreviousCycleForSubsetQC[nSubsets];
1342 TString mergedFileFinalForSubsetQC[nSubsets];
1343 for(Int_t i=0;i<nSubsets;i++)
1344 {
1345 mergedFileForPreviousCycleForSubsetQC[i]="mergedQCanalysisForSubsetNo";
1346 mergedFileForPreviousCycleForSubsetQC[i]+=(i+1);
1347 mergedFileForPreviousCycleForSubsetQC[i]+=type.Data();
1348 mergedFileForPreviousCycleForSubsetQC[i]+="CycleNo";
1349 mergedFileForPreviousCycleForSubsetQC[i]+=((Int_t)fileCounterLastSubsetQC/cycle);
1350 mergedFileForPreviousCycleForSubsetQC[i]+=".root";
1351
1352 fileMergerForSubsetsQC[i].AddFile(mergedFileForPreviousCycleForSubsetQC[i].Data());
1353
1354 // delete merged output from previous cycle:
1355 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetQC[i].Data(),gSystem->pwd());
1356 file->Delete();
1357 delete file;
1358
1359 mergedFileFinalForSubsetQC[i]="subset";
1360 mergedFileFinalForSubsetQC[i]+=(i+1);
1361 mergedFileFinalForSubsetQC[i]+="/";
1362 mergedFileFinalForSubsetQC[i]+="mergedQCanalysis";
1363 mergedFileFinalForSubsetQC[i]+=type.Data();
1364 mergedFileFinalForSubsetQC[i]+=".root";
1365
1366 fileMergerForSubsetsQC[i].OutputFile(mergedFileFinalForSubsetQC[i].Data());
1367 fileMergerForSubsetsQC[i].Merge();
1368 fileMergerForSubsetsQC[i].Reset();
1369 } // end of for(Int_t i=0;i<nSubsets;i++)
1370 } // end of last else
1371 } // end of if(devideOutputFilesInEqualSubsets)
1372
1373 // FQD:
1374 if(fileCounterFQD < cycle)
947cc449 1375 {
9455e15e 1376 TString *mergedFileFinalFQD = new TString("mergedFQDanalysis");
1377 (*mergedFileFinalFQD)+=type.Data();
1378 (*mergedFileFinalFQD)+=".root";
1379 fileMergerFQD->OutputFile(mergedFileFinalFQD->Data());
1380 fileMergerFQD->Merge();
1381 delete mergedFileFinalFQD;
1382 } else if (fileCounterFQD % cycle == 0)
1383 {
1384 TString *mergedFileForPreviousCycleFQD = new TString("mergedFQDanalysis");
1385 (*mergedFileForPreviousCycleFQD)+=type.Data();
1386 (*mergedFileForPreviousCycleFQD)+=(fileCounterFQD/cycle);
1387 (*mergedFileForPreviousCycleFQD)+=".root";
1388 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleFQD->Data(),kFileExists)))
1389 {
1390 TString *mergedFileFinalFQD = new TString("mergedFQDanalysis");
1391 (*mergedFileFinalFQD)+=type.Data();
1392 (*mergedFileFinalFQD)+=".root";
1393 gSystem->Rename(mergedFileForPreviousCycleFQD->Data(),mergedFileFinalFQD->Data());
1394 }
1395 } else
1396 {
1397 TString *mergedFileForPreviousCycleFQD = new TString("mergedFQDanalysis");
1398 (*mergedFileForPreviousCycleFQD)+=type.Data();
1399 (*mergedFileForPreviousCycleFQD)+=((Int_t)fileCounterFQD/cycle);
1400 (*mergedFileForPreviousCycleFQD)+=".root";
1401
1402 fileMergerFQD->AddFile(mergedFileForPreviousCycleFQD->Data());
1403
1404 // delete merged output from previous cycle:
1405 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleFQD->Data(),gSystem->pwd());
1406 file->Delete();
1407 delete file;
1408
1409 TString *mergedFileFinalFQD = new TString("mergedFQDanalysis");
1410 (*mergedFileFinalFQD)+=type.Data();
1411 (*mergedFileFinalFQD)+=".root";
1412 fileMergerFQD->OutputFile(mergedFileFinalFQD->Data());
1413 fileMergerFQD->Merge();
1414
1415 delete mergedFileForPreviousCycleFQD;
1416 delete mergedFileFinalFQD;
1417 }
1418
1419 // merging for subsets at the end of the day:
1420 gSystem->cd(baseDirPath->Data());
1421 if(devideOutputFilesInEqualSubsets)
1422 {
1423 if(fileCounterLastSubsetFQD < cycle)
1424 {
1425 TString mergedFileFinalForSubsetFQD[nSubsets];
1426 for(Int_t i=0;i<nSubsets;i++)
1427 {
1428 mergedFileFinalForSubsetFQD[i]="subset";
1429 mergedFileFinalForSubsetFQD[i]+=(i+1);
1430 mergedFileFinalForSubsetFQD[i]+="/";
1431 mergedFileFinalForSubsetFQD[i]+="mergedFQDanalysis";
1432 mergedFileFinalForSubsetFQD[i]+=type.Data();
1433 mergedFileFinalForSubsetFQD[i]+=".root";
1434
1435 fileMergerForSubsetsFQD[i].OutputFile(mergedFileFinalForSubsetFQD[i].Data());
1436 fileMergerForSubsetsFQD[i].Merge();
1437 fileMergerForSubsetsFQD[i].Reset();
1438 } // end of for(Int_t i=0;i<nSubsets;i++)
1439 } else if (fileCounterLastSubsetFQD % cycle == 0 && fileCounterFQD % cycle == 0)
1440 {
1441 TString mergedFileForPreviousCycleForSubsetFQD[nSubsets];
1442 TString mergedFileFinalForSubsetFQD[nSubsets];
1443 for(Int_t i=0;i<nSubsets;i++)
1444 {
1445 mergedFileForPreviousCycleForSubsetFQD[i]="mergedFQDanalysisForSubsetNo";
1446 mergedFileForPreviousCycleForSubsetFQD[i]+=(i+1);
1447 mergedFileForPreviousCycleForSubsetFQD[i]+=type.Data();
1448 mergedFileForPreviousCycleForSubsetFQD[i]+="CycleNo";
1449 mergedFileForPreviousCycleForSubsetFQD[i]+=(fileCounterLastSubsetFQD/cycle);
1450 mergedFileForPreviousCycleForSubsetFQD[i]+=".root";
1451 // move and rename this file to subdirectory subset*:
1452 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetFQD[i].Data(),gSystem->pwd());
1453 TString *subdir = new TString("subset");
1454 (*subdir)+=(i+1);
1455 (*subdir)+="/";
1456 (*subdir)+="mergedFQDanalysis";
1457 (*subdir)+=type.Data();
1458 (*subdir)+=".root";
1459 file->Move(subdir->Data());
1460 delete file;
1461 delete subdir;
1462 } // end of for(Int_t i=0;i<nSubsets;i++)
1463 } else
1464 {
1465 TString mergedFileForPreviousCycleForSubsetFQD[nSubsets];
1466 TString mergedFileFinalForSubsetFQD[nSubsets];
1467 for(Int_t i=0;i<nSubsets;i++)
1468 {
1469 mergedFileForPreviousCycleForSubsetFQD[i]="mergedFQDanalysisForSubsetNo";
1470 mergedFileForPreviousCycleForSubsetFQD[i]+=(i+1);
1471 mergedFileForPreviousCycleForSubsetFQD[i]+=type.Data();
1472 mergedFileForPreviousCycleForSubsetFQD[i]+="CycleNo";
1473 mergedFileForPreviousCycleForSubsetFQD[i]+=((Int_t)fileCounterLastSubsetFQD/cycle);
1474 mergedFileForPreviousCycleForSubsetFQD[i]+=".root";
1475
1476 fileMergerForSubsetsFQD[i].AddFile(mergedFileForPreviousCycleForSubsetFQD[i].Data());
1477
1478 // delete merged output from previous cycle:
1479 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetFQD[i].Data(),gSystem->pwd());
1480 file->Delete();
1481 delete file;
1482
1483 mergedFileFinalForSubsetFQD[i]="subset";
1484 mergedFileFinalForSubsetFQD[i]+=(i+1);
1485 mergedFileFinalForSubsetFQD[i]+="/";
1486 mergedFileFinalForSubsetFQD[i]+="mergedFQDanalysis";
1487 mergedFileFinalForSubsetFQD[i]+=type.Data();
1488 mergedFileFinalForSubsetFQD[i]+=".root";
1489
1490 fileMergerForSubsetsFQD[i].OutputFile(mergedFileFinalForSubsetFQD[i].Data());
1491 fileMergerForSubsetsFQD[i].Merge();
1492 fileMergerForSubsetsFQD[i].Reset();
1493 } // end of for(Int_t i=0;i<nSubsets;i++)
1494 } // end of last else
1495 } // end of if(devideOutputFilesInEqualSubsets)
1496
1497 // LYZ1SUM:
1498 if(fileCounterLYZ1SUM < cycle)
fe11f681 1499 {
9455e15e 1500 TString *mergedFileFinalLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1501 (*mergedFileFinalLYZ1SUM)+=type.Data();
1502 (*mergedFileFinalLYZ1SUM)+=".root";
1503 fileMergerLYZ1SUM->OutputFile(mergedFileFinalLYZ1SUM->Data());
1504 fileMergerLYZ1SUM->Merge();
1505 delete mergedFileFinalLYZ1SUM;
1506 } else if (fileCounterLYZ1SUM % cycle == 0)
1507 {
1508 TString *mergedFileForPreviousCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1509 (*mergedFileForPreviousCycleLYZ1SUM)+=type.Data();
1510 (*mergedFileForPreviousCycleLYZ1SUM)+=(fileCounterLYZ1SUM/cycle);
1511 (*mergedFileForPreviousCycleLYZ1SUM)+=".root";
1512 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1SUM->Data(),kFileExists)))
1513 {
1514 TString *mergedFileFinalLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1515 (*mergedFileFinalLYZ1SUM)+=type.Data();
1516 (*mergedFileFinalLYZ1SUM)+=".root";
1517 gSystem->Rename(mergedFileForPreviousCycleLYZ1SUM->Data(),mergedFileFinalLYZ1SUM->Data());
1518 }
1519 } else
1520 {
1521 TString *mergedFileForPreviousCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1522 (*mergedFileForPreviousCycleLYZ1SUM)+=type.Data();
1523 (*mergedFileForPreviousCycleLYZ1SUM)+=((Int_t)fileCounterLYZ1SUM/cycle);
1524 (*mergedFileForPreviousCycleLYZ1SUM)+=".root";
1525
1526 fileMergerLYZ1SUM->AddFile(mergedFileForPreviousCycleLYZ1SUM->Data());
1527
1528 // delete merged output from previous cycle:
1529 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1SUM->Data(),gSystem->pwd());
1530 file->Delete();
1531 delete file;
1532
1533 TString *mergedFileFinalLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1534 (*mergedFileFinalLYZ1SUM)+=type.Data();
1535 (*mergedFileFinalLYZ1SUM)+=".root";
1536 fileMergerLYZ1SUM->OutputFile(mergedFileFinalLYZ1SUM->Data());
1537 fileMergerLYZ1SUM->Merge();
1538
1539 delete mergedFileForPreviousCycleLYZ1SUM;
1540 delete mergedFileFinalLYZ1SUM;
1541 }
1542
1543 // merging for subsets at the end of the day:
1544 gSystem->cd(baseDirPath->Data());
1545 if(devideOutputFilesInEqualSubsets)
1546 {
1547 if(fileCounterLastSubsetLYZ1SUM < cycle)
1548 {
1549 TString mergedFileFinalForSubsetLYZ1SUM[nSubsets];
1550 for(Int_t i=0;i<nSubsets;i++)
1551 {
1552 mergedFileFinalForSubsetLYZ1SUM[i]="subset";
1553 mergedFileFinalForSubsetLYZ1SUM[i]+=(i+1);
1554 mergedFileFinalForSubsetLYZ1SUM[i]+="/";
1555 mergedFileFinalForSubsetLYZ1SUM[i]+="mergedLYZ1SUManalysis";
1556 mergedFileFinalForSubsetLYZ1SUM[i]+=type.Data();
1557 mergedFileFinalForSubsetLYZ1SUM[i]+=".root";
1558
1559 fileMergerForSubsetsLYZ1SUM[i].OutputFile(mergedFileFinalForSubsetLYZ1SUM[i].Data());
1560 fileMergerForSubsetsLYZ1SUM[i].Merge();
1561 fileMergerForSubsetsLYZ1SUM[i].Reset();
1562 } // end of for(Int_t i=0;i<nSubsets;i++)
1563 } else if (fileCounterLastSubsetLYZ1SUM % cycle == 0 && fileCounterLYZ1SUM % cycle == 0)
1564 {
1565 TString mergedFileForPreviousCycleForSubsetLYZ1SUM[nSubsets];
1566 TString mergedFileFinalForSubsetLYZ1SUM[nSubsets];
1567 for(Int_t i=0;i<nSubsets;i++)
1568 {
1569 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]="mergedLYZ1SUManalysisForSubsetNo";
1570 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=(i+1);
1571 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=type.Data();
1572 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+="CycleNo";
1573 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=(fileCounterLastSubsetLYZ1SUM/cycle);
1574 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=".root";
1575 // move and rename this file to subdirectory subset*:
1576 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),gSystem->pwd());
1577 TString *subdir = new TString("subset");
1578 (*subdir)+=(i+1);
1579 (*subdir)+="/";
1580 (*subdir)+="mergedLYZ1SUManalysis";
1581 (*subdir)+=type.Data();
1582 (*subdir)+=".root";
1583 file->Move(subdir->Data());
1584 delete file;
1585 delete subdir;
1586 } // end of for(Int_t i=0;i<nSubsets;i++)
1587 } else
1588 {
1589 TString mergedFileForPreviousCycleForSubsetLYZ1SUM[nSubsets];
1590 TString mergedFileFinalForSubsetLYZ1SUM[nSubsets];
1591 for(Int_t i=0;i<nSubsets;i++)
1592 {
1593 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]="mergedLYZ1SUManalysisForSubsetNo";
1594 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=(i+1);
1595 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=type.Data();
1596 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+="CycleNo";
1597 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=((Int_t)fileCounterLastSubsetLYZ1SUM/cycle);
1598 mergedFileForPreviousCycleForSubsetLYZ1SUM[i]+=".root";
1599
1600 fileMergerForSubsetsLYZ1SUM[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data());
1601
1602 // delete merged output from previous cycle:
1603 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),gSystem->pwd());
1604 file->Delete();
1605 delete file;
1606
1607 mergedFileFinalForSubsetLYZ1SUM[i]="subset";
1608 mergedFileFinalForSubsetLYZ1SUM[i]+=(i+1);
1609 mergedFileFinalForSubsetLYZ1SUM[i]+="/";
1610 mergedFileFinalForSubsetLYZ1SUM[i]+="mergedLYZ1SUManalysis";
1611 mergedFileFinalForSubsetLYZ1SUM[i]+=type.Data();
1612 mergedFileFinalForSubsetLYZ1SUM[i]+=".root";
1613
1614 fileMergerForSubsetsLYZ1SUM[i].OutputFile(mergedFileFinalForSubsetLYZ1SUM[i].Data());
1615 fileMergerForSubsetsLYZ1SUM[i].Merge();
1616 fileMergerForSubsetsLYZ1SUM[i].Reset();
1617 } // end of for(Int_t i=0;i<nSubsets;i++)
1618 } // end of last else
1619 } // end of if(devideOutputFilesInEqualSubsets)
1620
1621 // LYZ1PROD:
1622 if(fileCounterLYZ1PROD < cycle)
fe11f681 1623 {
9455e15e 1624 TString *mergedFileFinalLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1625 (*mergedFileFinalLYZ1PROD)+=type.Data();
1626 (*mergedFileFinalLYZ1PROD)+=".root";
1627 fileMergerLYZ1PROD->OutputFile(mergedFileFinalLYZ1PROD->Data());
1628 fileMergerLYZ1PROD->Merge();
1629 delete mergedFileFinalLYZ1PROD;
1630 } else if (fileCounterLYZ1PROD % cycle == 0)
1631 {
1632 TString *mergedFileForPreviousCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1633 (*mergedFileForPreviousCycleLYZ1PROD)+=type.Data();
1634 (*mergedFileForPreviousCycleLYZ1PROD)+=(fileCounterLYZ1PROD/cycle);
1635 (*mergedFileForPreviousCycleLYZ1PROD)+=".root";
1636 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1PROD->Data(),kFileExists)))
1637 {
1638 TString *mergedFileFinalLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1639 (*mergedFileFinalLYZ1PROD)+=type.Data();
1640 (*mergedFileFinalLYZ1PROD)+=".root";
1641 gSystem->Rename(mergedFileForPreviousCycleLYZ1PROD->Data(),mergedFileFinalLYZ1PROD->Data());
1642 }
1643 } else
1644 {
1645 TString *mergedFileForPreviousCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1646 (*mergedFileForPreviousCycleLYZ1PROD)+=type.Data();
1647 (*mergedFileForPreviousCycleLYZ1PROD)+=((Int_t)fileCounterLYZ1PROD/cycle);
1648 (*mergedFileForPreviousCycleLYZ1PROD)+=".root";
1649
1650 fileMergerLYZ1PROD->AddFile(mergedFileForPreviousCycleLYZ1PROD->Data());
1651
1652 // delete merged output from previous cycle:
1653 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1PROD->Data(),gSystem->pwd());
1654 file->Delete();
1655 delete file;
1656
1657 TString *mergedFileFinalLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1658 (*mergedFileFinalLYZ1PROD)+=type.Data();
1659 (*mergedFileFinalLYZ1PROD)+=".root";
1660 fileMergerLYZ1PROD->OutputFile(mergedFileFinalLYZ1PROD->Data());
1661 fileMergerLYZ1PROD->Merge();
1662
1663 delete mergedFileForPreviousCycleLYZ1PROD;
1664 delete mergedFileFinalLYZ1PROD;
1665 }
1666
1667 // merging for subsets at the end of the day:
1668 gSystem->cd(baseDirPath->Data());
1669 if(devideOutputFilesInEqualSubsets)
1670 {
1671 if(fileCounterLastSubsetLYZ1PROD < cycle)
1672 {
1673 TString mergedFileFinalForSubsetLYZ1PROD[nSubsets];
1674 for(Int_t i=0;i<nSubsets;i++)
1675 {
1676 mergedFileFinalForSubsetLYZ1PROD[i]="subset";
1677 mergedFileFinalForSubsetLYZ1PROD[i]+=(i+1);
1678 mergedFileFinalForSubsetLYZ1PROD[i]+="/";
1679 mergedFileFinalForSubsetLYZ1PROD[i]+="mergedLYZ1PRODanalysis";
1680 mergedFileFinalForSubsetLYZ1PROD[i]+=type.Data();
1681 mergedFileFinalForSubsetLYZ1PROD[i]+=".root";
1682
1683 fileMergerForSubsetsLYZ1PROD[i].OutputFile(mergedFileFinalForSubsetLYZ1PROD[i].Data());
1684 fileMergerForSubsetsLYZ1PROD[i].Merge();
1685 fileMergerForSubsetsLYZ1PROD[i].Reset();
1686 } // end of for(Int_t i=0;i<nSubsets;i++)
1687 } else if (fileCounterLastSubsetLYZ1PROD % cycle == 0 && fileCounterLYZ1PROD % cycle == 0)
1688 {
1689 TString mergedFileForPreviousCycleForSubsetLYZ1PROD[nSubsets];
1690 TString mergedFileFinalForSubsetLYZ1PROD[nSubsets];
1691 for(Int_t i=0;i<nSubsets;i++)
1692 {
1693 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]="mergedLYZ1PRODanalysisForSubsetNo";
1694 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=(i+1);
1695 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=type.Data();
1696 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+="CycleNo";
1697 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=(fileCounterLastSubsetLYZ1PROD/cycle);
1698 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=".root";
1699 // move and rename this file to subdirectory subset*:
1700 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),gSystem->pwd());
1701 TString *subdir = new TString("subset");
1702 (*subdir)+=(i+1);
1703 (*subdir)+="/";
1704 (*subdir)+="mergedLYZ1PRODanalysis";
1705 (*subdir)+=type.Data();
1706 (*subdir)+=".root";
1707 file->Move(subdir->Data());
1708 delete file;
1709 delete subdir;
1710 } // end of for(Int_t i=0;i<nSubsets;i++)
1711 } else
1712 {
1713 TString mergedFileForPreviousCycleForSubsetLYZ1PROD[nSubsets];
1714 TString mergedFileFinalForSubsetLYZ1PROD[nSubsets];
1715 for(Int_t i=0;i<nSubsets;i++)
1716 {
1717 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]="mergedLYZ1PRODanalysisForSubsetNo";
1718 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=(i+1);
1719 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=type.Data();
1720 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+="CycleNo";
1721 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=((Int_t)fileCounterLastSubsetLYZ1PROD/cycle);
1722 mergedFileForPreviousCycleForSubsetLYZ1PROD[i]+=".root";
1723
1724 fileMergerForSubsetsLYZ1PROD[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data());
1725
1726 // delete merged output from previous cycle:
1727 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),gSystem->pwd());
1728 file->Delete();
1729 delete file;
1730
1731 mergedFileFinalForSubsetLYZ1PROD[i]="subset";
1732 mergedFileFinalForSubsetLYZ1PROD[i]+=(i+1);
1733 mergedFileFinalForSubsetLYZ1PROD[i]+="/";
1734 mergedFileFinalForSubsetLYZ1PROD[i]+="mergedLYZ1PRODanalysis";
1735 mergedFileFinalForSubsetLYZ1PROD[i]+=type.Data();
1736 mergedFileFinalForSubsetLYZ1PROD[i]+=".root";
1737
1738 fileMergerForSubsetsLYZ1PROD[i].OutputFile(mergedFileFinalForSubsetLYZ1PROD[i].Data());
1739 fileMergerForSubsetsLYZ1PROD[i].Merge();
1740 fileMergerForSubsetsLYZ1PROD[i].Reset();
1741 } // end of for(Int_t i=0;i<nSubsets;i++)
1742 } // end of last else
1743 } // end of if(devideOutputFilesInEqualSubsets)
1744
1745 // LYZEP:
1746 if(fileCounterLYZEP < cycle)
fe11f681 1747 {
9455e15e 1748 TString *mergedFileFinalLYZEP = new TString("mergedLYZEPanalysis");
1749 (*mergedFileFinalLYZEP)+=type.Data();
1750 (*mergedFileFinalLYZEP)+=".root";
1751 fileMergerLYZEP->OutputFile(mergedFileFinalLYZEP->Data());
1752 fileMergerLYZEP->Merge();
1753 delete mergedFileFinalLYZEP;
1754 } else if (fileCounterLYZEP % cycle == 0)
1755 {
1756 TString *mergedFileForPreviousCycleLYZEP = new TString("mergedLYZEPanalysis");
1757 (*mergedFileForPreviousCycleLYZEP)+=type.Data();
1758 (*mergedFileForPreviousCycleLYZEP)+=(fileCounterLYZEP/cycle);
1759 (*mergedFileForPreviousCycleLYZEP)+=".root";
1760 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZEP->Data(),kFileExists)))
1761 {
1762 TString *mergedFileFinalLYZEP = new TString("mergedLYZEPanalysis");
1763 (*mergedFileFinalLYZEP)+=type.Data();
1764 (*mergedFileFinalLYZEP)+=".root";
1765 gSystem->Rename(mergedFileForPreviousCycleLYZEP->Data(),mergedFileFinalLYZEP->Data());
1766 }
1767 } else
1768 {
1769 TString *mergedFileForPreviousCycleLYZEP = new TString("mergedLYZEPanalysis");
1770 (*mergedFileForPreviousCycleLYZEP)+=type.Data();
1771 (*mergedFileForPreviousCycleLYZEP)+=((Int_t)fileCounterLYZEP/cycle);
1772 (*mergedFileForPreviousCycleLYZEP)+=".root";
1773
1774 fileMergerLYZEP->AddFile(mergedFileForPreviousCycleLYZEP->Data());
1775
1776 // delete merged output from previous cycle:
1777 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZEP->Data(),gSystem->pwd());
1778 file->Delete();
1779 delete file;
1780
1781 TString *mergedFileFinalLYZEP = new TString("mergedLYZEPanalysis");
1782 (*mergedFileFinalLYZEP)+=type.Data();
1783 (*mergedFileFinalLYZEP)+=".root";
1784 fileMergerLYZEP->OutputFile(mergedFileFinalLYZEP->Data());
1785 fileMergerLYZEP->Merge();
1786
1787 delete mergedFileForPreviousCycleLYZEP;
1788 delete mergedFileFinalLYZEP;
1789 }
fe11f681 1790
9455e15e 1791 // merging for subsets at the end of the day:
1792 gSystem->cd(baseDirPath->Data());
1793 if(devideOutputFilesInEqualSubsets)
1794 {
1795 if(fileCounterLastSubsetLYZEP < cycle)
1796 {
1797 TString mergedFileFinalForSubsetLYZEP[nSubsets];
1798 for(Int_t i=0;i<nSubsets;i++)
1799 {
1800 mergedFileFinalForSubsetLYZEP[i]="subset";
1801 mergedFileFinalForSubsetLYZEP[i]+=(i+1);
1802 mergedFileFinalForSubsetLYZEP[i]+="/";
1803 mergedFileFinalForSubsetLYZEP[i]+="mergedLYZEPanalysis";
1804 mergedFileFinalForSubsetLYZEP[i]+=type.Data();
1805 mergedFileFinalForSubsetLYZEP[i]+=".root";
1806
1807 fileMergerForSubsetsLYZEP[i].OutputFile(mergedFileFinalForSubsetLYZEP[i].Data());
1808 fileMergerForSubsetsLYZEP[i].Merge();
1809 fileMergerForSubsetsLYZEP[i].Reset();
1810 } // end of for(Int_t i=0;i<nSubsets;i++)
1811 } else if (fileCounterLastSubsetLYZEP % cycle == 0 && fileCounterLYZEP % cycle == 0)
1812 {
1813 TString mergedFileForPreviousCycleForSubsetLYZEP[nSubsets];
1814 TString mergedFileFinalForSubsetLYZEP[nSubsets];
1815 for(Int_t i=0;i<nSubsets;i++)
1816 {
1817 mergedFileForPreviousCycleForSubsetLYZEP[i]="mergedLYZEPanalysisForSubsetNo";
1818 mergedFileForPreviousCycleForSubsetLYZEP[i]+=(i+1);
1819 mergedFileForPreviousCycleForSubsetLYZEP[i]+=type.Data();
1820 mergedFileForPreviousCycleForSubsetLYZEP[i]+="CycleNo";
1821 mergedFileForPreviousCycleForSubsetLYZEP[i]+=(fileCounterLastSubsetLYZEP/cycle);
1822 mergedFileForPreviousCycleForSubsetLYZEP[i]+=".root";
1823 // move and rename this file to subdirectory subset*:
1824 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),gSystem->pwd());
1825 TString *subdir = new TString("subset");
1826 (*subdir)+=(i+1);
1827 (*subdir)+="/";
1828 (*subdir)+="mergedLYZEPanalysis";
1829 (*subdir)+=type.Data();
1830 (*subdir)+=".root";
1831 file->Move(subdir->Data());
1832 delete file;
1833 delete subdir;
1834 } // end of for(Int_t i=0;i<nSubsets;i++)
1835 } else
1836 {
1837 TString mergedFileForPreviousCycleForSubsetLYZEP[nSubsets];
1838 TString mergedFileFinalForSubsetLYZEP[nSubsets];
1839 for(Int_t i=0;i<nSubsets;i++)
1840 {
1841 mergedFileForPreviousCycleForSubsetLYZEP[i]="mergedLYZEPanalysisForSubsetNo";
1842 mergedFileForPreviousCycleForSubsetLYZEP[i]+=(i+1);
1843 mergedFileForPreviousCycleForSubsetLYZEP[i]+=type.Data();
1844 mergedFileForPreviousCycleForSubsetLYZEP[i]+="CycleNo";
1845 mergedFileForPreviousCycleForSubsetLYZEP[i]+=((Int_t)fileCounterLastSubsetLYZEP/cycle);
1846 mergedFileForPreviousCycleForSubsetLYZEP[i]+=".root";
1847
1848 fileMergerForSubsetsLYZEP[i].AddFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data());
1849
1850 // delete merged output from previous cycle:
1851 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),gSystem->pwd());
1852 file->Delete();
1853 delete file;
1854
1855 mergedFileFinalForSubsetLYZEP[i]="subset";
1856 mergedFileFinalForSubsetLYZEP[i]+=(i+1);
1857 mergedFileFinalForSubsetLYZEP[i]+="/";
1858 mergedFileFinalForSubsetLYZEP[i]+="mergedLYZEPanalysis";
1859 mergedFileFinalForSubsetLYZEP[i]+=type.Data();
1860 mergedFileFinalForSubsetLYZEP[i]+=".root";
1861
1862 fileMergerForSubsetsLYZEP[i].OutputFile(mergedFileFinalForSubsetLYZEP[i].Data());
1863 fileMergerForSubsetsLYZEP[i].Merge();
1864 fileMergerForSubsetsLYZEP[i].Reset();
1865 } // end of for(Int_t i=0;i<nSubsets;i++)
1866 } // end of last else
1867 } // end of if(devideOutputFilesInEqualSubsets)
1868
1869 delete dirNameSubset;
1870 delete baseDirPath;
1871 delete baseDir;
1872
1873} // end of void mergeOutput(TString type="", Int_t mode=mLocal)
fe11f681 1874
9455e15e 1875void LoadLibrariesMO(const libModes mode) {
fe11f681 1876
1877 //--------------------------------------
1878 // Load the needed libraries most of them already loaded by aliroot
1879 //--------------------------------------
5d040cf3 1880 gSystem->Load("libTree");
1881 gSystem->Load("libGeom");
1882 gSystem->Load("libVMC");
1883 gSystem->Load("libXMLIO");
1884 gSystem->Load("libPhysics");
fe11f681 1885
1886 //----------------------------------------------------------
1887 // >>>>>>>>>>> Local mode <<<<<<<<<<<<<<
1888 //----------------------------------------------------------
1889 if (mode==mLocal) {
1890 //--------------------------------------------------------
1891 // If you want to use already compiled libraries
1892 // in the aliroot distribution
1893 //--------------------------------------------------------
1894
1895 //==================================================================================
1896 //load needed libraries:
1897 gSystem->AddIncludePath("-I$ROOTSYS/include");
5d040cf3 1898 gSystem->Load("libTree");
fe11f681 1899
1900 // for AliRoot
1901 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
5d040cf3 1902 gSystem->Load("libANALYSIS");
1903 gSystem->Load("libPWG2flowCommon");
1904 //cerr<<"libPWG2flowCommon loaded ..."<<endl;
fe11f681 1905
1906 }
1907
1908 else if (mode==mLocalSource) {
1909
1910 // In root inline compile
1911
1912 // Constants
1913 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
1914 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
1915 gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
1916
1917 // Flow event
1918 gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+");
1919 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
1920 gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
1921
1922 // Cuts
1923 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");
1924
1925 // Output histosgrams
1926 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+");
1927 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+");
1928 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+");
1929 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+");
1930
1931 cout << "finished loading macros!" << endl;
1932
1933 } // end of else if (mode==mLocalSource)
1934
9455e15e 1935} // end of void LoadLibrariesMO(const libModes mode)