1 enum libModes {mLocal,mLocalSource};
3 void mergeOutput(TString type="", Int_t mode=mLocal)
5 // type: type of analysis can be ESD, AOD, MC, ESDMC0, ESDMC1
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
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.
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
22 // default names of subdirectories in which merged output files for subsets are stored:
23 TString *dirNameSubset = NULL;
24 if(devideOutputFilesInEqualSubsets)
26 dirNameSubset = new TString("subset");
29 if(cycle>100 && !devideOutputFilesInEqualSubsets)
31 cout<<"WARNING: Cycle is too big !!!!"<<endl;
32 cout<<" Set const Int_t cycle to smaller value in the macro."<<endl;
36 if(cycle>10 && devideOutputFilesInEqualSubsets)
38 cout<<"WARNING: Cycle is too big !!!!"<<endl;
39 cout<<" Set const Int_t cycle to smaller value in the macro."<<endl;
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;
50 if(devideOutputFilesInEqualSubsets && nSubsets<=0)
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;
57 // load needed libraries:
58 LoadLibrariesMO(mode);
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();
67 // checking if subdirectories with default names for subsets already exist:
68 gSystem->cd(baseDirPath->Data());
69 if(devideOutputFilesInEqualSubsets)
71 for(Int_t iFile=0;iFile<nFiles;iFile++)
73 TSystemFile* presentFile = (TSystemFile*)listOfFilesInBaseDir->At(iFile);
74 TString presentFileName = baseDirPath->Data();
75 (presentFileName+="/")+=presentFile->GetName();
76 if(presentFileName.Contains("subset"))
78 cout<<"WARNING: You already have directory "<<presentFileName.Data()<<" !!!!"<<endl;
79 cout<<" Remove this directory and start macro again."<<endl;
82 } // end of for(Int_t iFile=0;iFile<nFiles;iFile++)
83 } // end of if(devideOutputFilesInEqualSubsets)
85 // create subdirectories for storing merged results for subsets:
86 gSystem->cd(baseDirPath->Data());
87 if(devideOutputFilesInEqualSubsets)
89 for(Int_t i=0;i<nSubsets;i++)
91 TString currentDirForSpreadName(dirNameSubset->Data());
92 Bool_t bDirectoryMade = gSystem->mkdir((currentDirForSpreadName += (i+1)).Data());
95 cout<<"WARNING: The directory "<<currentDirForSpreadName.Data()<<" could not be created (illegal path name) !!!!"<<endl;
101 // loop over directories and add output *.root files to TFileMerger:
102 gSystem->cd(baseDirPath->Data());
105 Int_t fileCounterMCEP = 0;
106 Int_t fileCounterLastSubsetMCEP = 0;
107 TFileMerger *fileMergerMCEP = new TFileMerger();
108 TFileMerger fileMergerForSubsetsMCEP[nSubsets];
111 Int_t fileCounterSP = 0;
112 Int_t fileCounterLastSubsetSP = 0;
113 TFileMerger *fileMergerSP = new TFileMerger();
114 TFileMerger fileMergerForSubsetsSP[nSubsets];
117 Int_t fileCounterGFC = 0;
118 Int_t fileCounterLastSubsetGFC = 0;
119 TFileMerger *fileMergerGFC = new TFileMerger();
120 TFileMerger fileMergerForSubsetsGFC[nSubsets];
123 Int_t fileCounterQC = 0;
124 Int_t fileCounterLastSubsetQC = 0;
125 TFileMerger *fileMergerQC = new TFileMerger();
126 TFileMerger fileMergerForSubsetsQC[nSubsets];
129 Int_t fileCounterFQD = 0;
130 Int_t fileCounterLastSubsetFQD = 0;
131 TFileMerger *fileMergerFQD = new TFileMerger();
132 TFileMerger fileMergerForSubsetsFQD[nSubsets];
135 Int_t fileCounterLYZ1SUM = 0;
136 Int_t fileCounterLastSubsetLYZ1SUM = 0;
137 TFileMerger *fileMergerLYZ1SUM = new TFileMerger();
138 TFileMerger fileMergerForSubsetsLYZ1SUM[nSubsets];
141 Int_t fileCounterLYZ1PROD = 0;
142 Int_t fileCounterLastSubsetLYZ1PROD = 0;
143 TFileMerger *fileMergerLYZ1PROD = new TFileMerger();
144 TFileMerger fileMergerForSubsetsLYZ1PROD[nSubsets];
147 Int_t fileCounterLYZEP = 0;
148 Int_t fileCounterLastSubsetLYZEP = 0;
149 TFileMerger *fileMergerLYZEP = new TFileMerger();
150 TFileMerger fileMergerForSubsetsLYZEP[nSubsets];
152 for(Int_t iFile=0;iFile<nFiles;iFile++)
154 TSystemFile* presentFile = (TSystemFile*)listOfFilesInBaseDir->At(iFile);
156 if(!presentFile || !presentFile->IsDirectory() || strcmp(presentFile->GetName(), ".") == 0 ||
157 strcmp(presentFile->GetName(), "..") == 0) continue;
159 TString presentDirName = baseDirPath->Data();
160 (presentDirName+="/")+=presentFile->GetName();
163 // accessing the output *.root file in this directory:
165 TString fileNameMCEP = presentDirName;
166 ((fileNameMCEP+="outputMCEPanalysis")+=type.Data())+=".root";
167 if(!(gSystem->AccessPathName(fileNameMCEP.Data(),kFileExists)))
170 fileMergerMCEP->AddFile(fileNameMCEP.Data());
172 if(devideOutputFilesInEqualSubsets)
174 fileMergerForSubsetsMCEP[(fileCounterMCEP-1) % nSubsets].AddFile(fileNameMCEP.Data());
175 if(fileCounterMCEP % nSubsets == 0)
177 fileCounterLastSubsetMCEP++;
182 if(fileCounterMCEP % cycle == 0)
184 TString *mergedFileForPreviousCycleMCEP = new TString("mergedMCEPanalysis");
185 (*mergedFileForPreviousCycleMCEP)+=type.Data();
186 (*mergedFileForPreviousCycleMCEP)+=(fileCounterMCEP/cycle - 1);
187 (*mergedFileForPreviousCycleMCEP)+=".root";
189 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleMCEP->Data(),kFileExists)))
191 fileMergerMCEP->AddFile(mergedFileForPreviousCycleMCEP->Data());
192 // delete merged output from previous cycle:
193 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleMCEP->Data(),gSystem->pwd());
198 TString *mergedFileForCurrentCycleMCEP = new TString("mergedMCEPanalysis");
199 (*mergedFileForCurrentCycleMCEP)+=type.Data();
200 (*mergedFileForCurrentCycleMCEP)+=(fileCounterMCEP/cycle);
201 (*mergedFileForCurrentCycleMCEP)+=".root";
203 fileMergerMCEP->OutputFile(mergedFileForCurrentCycleMCEP->Data());
204 fileMergerMCEP->Merge();
205 fileMergerMCEP->Reset();
207 delete mergedFileForPreviousCycleMCEP;
208 delete mergedFileForCurrentCycleMCEP;
209 } // end of if(fileCounterMCEP % cycle == 0)
211 // merging for subsets:
212 if(devideOutputFilesInEqualSubsets)
214 if(fileCounterLastSubsetMCEP > 0 && fileCounterLastSubsetMCEP % cycle == 0 && fileCounterMCEP % cycle == 0)
216 TString mergedFileForPreviousCycleForSubsetMCEP[nSubsets];
217 TString mergedFileForCurrentCycleForSubsetMCEP[nSubsets];
218 for(Int_t i=0;i<nSubsets;i++)
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";
227 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),kFileExists)))
229 fileMergerForSubsetsMCEP[i].AddFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data());
230 // delete merged output from previous cycle:
231 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),gSystem->pwd());
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";
243 fileMergerForSubsetsMCEP[i].OutputFile(mergedFileForCurrentCycleForSubsetMCEP[i].Data());
244 fileMergerForSubsetsMCEP[i].Merge();
245 fileMergerForSubsetsMCEP[i].Reset();
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)))
253 TString fileNameSP = presentDirName;
254 ((fileNameSP+="outputSPanalysis")+=type.Data())+=".root";
255 if(!(gSystem->AccessPathName(fileNameSP.Data(),kFileExists)))
258 fileMergerSP->AddFile(fileNameSP.Data());
260 if(devideOutputFilesInEqualSubsets)
262 fileMergerForSubsetsSP[(fileCounterSP-1) % nSubsets].AddFile(fileNameSP.Data());
263 if(fileCounterSP % nSubsets == 0)
265 fileCounterLastSubsetSP++;
270 if(fileCounterSP % cycle == 0)
272 TString *mergedFileForPreviousCycleSP = new TString("mergedSPanalysis");
273 (*mergedFileForPreviousCycleSP)+=type.Data();
274 (*mergedFileForPreviousCycleSP)+=(fileCounterSP/cycle - 1);
275 (*mergedFileForPreviousCycleSP)+=".root";
277 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleSP->Data(),kFileExists)))
279 fileMergerSP->AddFile(mergedFileForPreviousCycleSP->Data());
280 // delete merged output from previous cycle:
281 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleSP->Data(),gSystem->pwd());
286 TString *mergedFileForCurrentCycleSP = new TString("mergedSPanalysis");
287 (*mergedFileForCurrentCycleSP)+=type.Data();
288 (*mergedFileForCurrentCycleSP)+=(fileCounterSP/cycle);
289 (*mergedFileForCurrentCycleSP)+=".root";
291 fileMergerSP->OutputFile(mergedFileForCurrentCycleSP->Data());
292 fileMergerSP->Merge();
293 fileMergerSP->Reset();
295 delete mergedFileForPreviousCycleSP;
296 delete mergedFileForCurrentCycleSP;
297 } // end of if(fileCounterSP % cycle == 0)
299 // merging for subsets:
300 if(devideOutputFilesInEqualSubsets)
302 if(fileCounterLastSubsetSP > 0 && fileCounterLastSubsetSP % cycle == 0 && fileCounterSP % cycle == 0)
304 TString mergedFileForPreviousCycleForSubsetSP[nSubsets];
305 TString mergedFileForCurrentCycleForSubsetSP[nSubsets];
306 for(Int_t i=0;i<nSubsets;i++)
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";
315 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetSP[i].Data(),kFileExists)))
317 fileMergerForSubsetsSP[i].AddFile(mergedFileForPreviousCycleForSubsetSP[i].Data());
318 // delete merged output from previous cycle:
319 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetSP[i].Data(),gSystem->pwd());
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";
331 fileMergerForSubsetsSP[i].OutputFile(mergedFileForCurrentCycleForSubsetSP[i].Data());
332 fileMergerForSubsetsSP[i].Merge();
333 fileMergerForSubsetsSP[i].Reset();
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)))
341 TString fileNameGFC = presentDirName;
342 ((fileNameGFC+="outputGFCanalysis")+=type.Data())+=".root";
343 if(!(gSystem->AccessPathName(fileNameGFC.Data(),kFileExists)))
346 fileMergerGFC->AddFile(fileNameGFC.Data());
348 if(devideOutputFilesInEqualSubsets)
350 fileMergerForSubsetsGFC[(fileCounterGFC-1) % nSubsets].AddFile(fileNameGFC.Data());
351 if(fileCounterGFC % nSubsets == 0)
353 fileCounterLastSubsetGFC++;
358 if(fileCounterGFC % cycle == 0)
360 TString *mergedFileForPreviousCycleGFC = new TString("mergedGFCanalysis");
361 (*mergedFileForPreviousCycleGFC)+=type.Data();
362 (*mergedFileForPreviousCycleGFC)+=(fileCounterGFC/cycle - 1);
363 (*mergedFileForPreviousCycleGFC)+=".root";
365 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleGFC->Data(),kFileExists)))
367 fileMergerGFC->AddFile(mergedFileForPreviousCycleGFC->Data());
368 // delete merged output from previous cycle:
369 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleGFC->Data(),gSystem->pwd());
374 TString *mergedFileForCurrentCycleGFC = new TString("mergedGFCanalysis");
375 (*mergedFileForCurrentCycleGFC)+=type.Data();
376 (*mergedFileForCurrentCycleGFC)+=(fileCounterGFC/cycle);
377 (*mergedFileForCurrentCycleGFC)+=".root";
379 fileMergerGFC->OutputFile(mergedFileForCurrentCycleGFC->Data());
380 fileMergerGFC->Merge();
381 fileMergerGFC->Reset();
383 delete mergedFileForPreviousCycleGFC;
384 delete mergedFileForCurrentCycleGFC;
385 } // end of if(fileCounterGFC % cycle == 0)
387 // merging for subsets:
388 if(devideOutputFilesInEqualSubsets)
390 if(fileCounterLastSubsetGFC > 0 && fileCounterLastSubsetGFC % cycle == 0 && fileCounterGFC % cycle == 0)
392 TString mergedFileForPreviousCycleForSubsetGFC[nSubsets];
393 TString mergedFileForCurrentCycleForSubsetGFC[nSubsets];
394 for(Int_t i=0;i<nSubsets;i++)
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";
403 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetGFC[i].Data(),kFileExists)))
405 fileMergerForSubsetsGFC[i].AddFile(mergedFileForPreviousCycleForSubsetGFC[i].Data());
406 // delete merged output from previous cycle:
407 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetGFC[i].Data(),gSystem->pwd());
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";
419 fileMergerForSubsetsGFC[i].OutputFile(mergedFileForCurrentCycleForSubsetGFC[i].Data());
420 fileMergerForSubsetsGFC[i].Merge();
421 fileMergerForSubsetsGFC[i].Reset();
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)))
429 TString fileNameQC = presentDirName;
430 ((fileNameQC+="outputQCanalysis")+=type.Data())+=".root";
431 if(!(gSystem->AccessPathName(fileNameQC.Data(),kFileExists)))
434 fileMergerQC->AddFile(fileNameQC.Data());
436 if(devideOutputFilesInEqualSubsets)
438 fileMergerForSubsetsQC[(fileCounterQC-1) % nSubsets].AddFile(fileNameQC.Data());
439 if(fileCounterQC % nSubsets == 0)
441 fileCounterLastSubsetQC++;
446 if(fileCounterQC % cycle == 0)
448 TString *mergedFileForPreviousCycleQC = new TString("mergedQCanalysis");
449 (*mergedFileForPreviousCycleQC)+=type.Data();
450 (*mergedFileForPreviousCycleQC)+=(fileCounterQC/cycle - 1);
451 (*mergedFileForPreviousCycleQC)+=".root";
453 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleQC->Data(),kFileExists)))
455 fileMergerQC->AddFile(mergedFileForPreviousCycleQC->Data());
456 // delete merged output from previous cycle:
457 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleQC->Data(),gSystem->pwd());
462 TString *mergedFileForCurrentCycleQC = new TString("mergedQCanalysis");
463 (*mergedFileForCurrentCycleQC)+=type.Data();
464 (*mergedFileForCurrentCycleQC)+=(fileCounterQC/cycle);
465 (*mergedFileForCurrentCycleQC)+=".root";
467 fileMergerQC->OutputFile(mergedFileForCurrentCycleQC->Data());
468 fileMergerQC->Merge();
469 fileMergerQC->Reset();
471 delete mergedFileForPreviousCycleQC;
472 delete mergedFileForCurrentCycleQC;
473 } // end of if(fileCounterQC % cycle == 0)
475 // merging for subsets:
476 if(devideOutputFilesInEqualSubsets)
478 if(fileCounterLastSubsetQC > 0 && fileCounterLastSubsetQC % cycle == 0 && fileCounterQC % cycle == 0)
480 TString mergedFileForPreviousCycleForSubsetQC[nSubsets];
481 TString mergedFileForCurrentCycleForSubsetQC[nSubsets];
482 for(Int_t i=0;i<nSubsets;i++)
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";
491 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetQC[i].Data(),kFileExists)))
493 fileMergerForSubsetsQC[i].AddFile(mergedFileForPreviousCycleForSubsetQC[i].Data());
494 // delete merged output from previous cycle:
495 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetQC[i].Data(),gSystem->pwd());
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";
507 fileMergerForSubsetsQC[i].OutputFile(mergedFileForCurrentCycleForSubsetQC[i].Data());
508 fileMergerForSubsetsQC[i].Merge();
509 fileMergerForSubsetsQC[i].Reset();
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)))
517 TString fileNameFQD = presentDirName;
518 ((fileNameFQD+="outputFQDanalysis")+=type.Data())+=".root";
519 if(!(gSystem->AccessPathName(fileNameFQD.Data(),kFileExists)))
522 fileMergerFQD->AddFile(fileNameFQD.Data());
524 if(devideOutputFilesInEqualSubsets)
526 fileMergerForSubsetsFQD[(fileCounterFQD-1) % nSubsets].AddFile(fileNameFQD.Data());
527 if(fileCounterFQD % nSubsets == 0)
529 fileCounterLastSubsetFQD++;
534 if(fileCounterFQD % cycle == 0)
536 TString *mergedFileForPreviousCycleFQD = new TString("mergedFQDanalysis");
537 (*mergedFileForPreviousCycleFQD)+=type.Data();
538 (*mergedFileForPreviousCycleFQD)+=(fileCounterFQD/cycle - 1);
539 (*mergedFileForPreviousCycleFQD)+=".root";
541 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleFQD->Data(),kFileExists)))
543 fileMergerFQD->AddFile(mergedFileForPreviousCycleFQD->Data());
544 // delete merged output from previous cycle:
545 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleFQD->Data(),gSystem->pwd());
550 TString *mergedFileForCurrentCycleFQD = new TString("mergedFQDanalysis");
551 (*mergedFileForCurrentCycleFQD)+=type.Data();
552 (*mergedFileForCurrentCycleFQD)+=(fileCounterFQD/cycle);
553 (*mergedFileForCurrentCycleFQD)+=".root";
555 fileMergerFQD->OutputFile(mergedFileForCurrentCycleFQD->Data());
556 fileMergerFQD->Merge();
557 fileMergerFQD->Reset();
559 delete mergedFileForPreviousCycleFQD;
560 delete mergedFileForCurrentCycleFQD;
561 } // end of if(fileCounterFQD % cycle == 0)
563 // merging for subsets:
564 if(devideOutputFilesInEqualSubsets)
566 if(fileCounterLastSubsetFQD > 0 && fileCounterLastSubsetFQD % cycle == 0 && fileCounterFQD % cycle == 0)
568 TString mergedFileForPreviousCycleForSubsetFQD[nSubsets];
569 TString mergedFileForCurrentCycleForSubsetFQD[nSubsets];
570 for(Int_t i=0;i<nSubsets;i++)
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";
579 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetFQD[i].Data(),kFileExists)))
581 fileMergerForSubsetsFQD[i].AddFile(mergedFileForPreviousCycleForSubsetFQD[i].Data());
582 // delete merged output from previous cycle:
583 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetFQD[i].Data(),gSystem->pwd());
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";
595 fileMergerForSubsetsFQD[i].OutputFile(mergedFileForCurrentCycleForSubsetFQD[i].Data());
596 fileMergerForSubsetsFQD[i].Merge();
597 fileMergerForSubsetsFQD[i].Reset();
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)))
605 TString fileNameLYZ1SUM = presentDirName;
606 ((fileNameLYZ1SUM+="outputLYZ1SUManalysis")+=type.Data())+=".root";
607 if(!(gSystem->AccessPathName(fileNameLYZ1SUM.Data(),kFileExists)))
609 fileCounterLYZ1SUM++;
610 fileMergerLYZ1SUM->AddFile(fileNameLYZ1SUM.Data());
612 if(devideOutputFilesInEqualSubsets)
614 fileMergerForSubsetsLYZ1SUM[(fileCounterLYZ1SUM-1) % nSubsets].AddFile(fileNameLYZ1SUM.Data());
615 if(fileCounterLYZ1SUM % nSubsets == 0)
617 fileCounterLastSubsetLYZ1SUM++;
622 if(fileCounterLYZ1SUM % cycle == 0)
624 TString *mergedFileForPreviousCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
625 (*mergedFileForPreviousCycleLYZ1SUM)+=type.Data();
626 (*mergedFileForPreviousCycleLYZ1SUM)+=(fileCounterLYZ1SUM/cycle - 1);
627 (*mergedFileForPreviousCycleLYZ1SUM)+=".root";
629 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1SUM->Data(),kFileExists)))
631 fileMergerLYZ1SUM->AddFile(mergedFileForPreviousCycleLYZ1SUM->Data());
632 // delete merged output from previous cycle:
633 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1SUM->Data(),gSystem->pwd());
638 TString *mergedFileForCurrentCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
639 (*mergedFileForCurrentCycleLYZ1SUM)+=type.Data();
640 (*mergedFileForCurrentCycleLYZ1SUM)+=(fileCounterLYZ1SUM/cycle);
641 (*mergedFileForCurrentCycleLYZ1SUM)+=".root";
643 fileMergerLYZ1SUM->OutputFile(mergedFileForCurrentCycleLYZ1SUM->Data());
644 fileMergerLYZ1SUM->Merge();
645 fileMergerLYZ1SUM->Reset();
647 delete mergedFileForPreviousCycleLYZ1SUM;
648 delete mergedFileForCurrentCycleLYZ1SUM;
649 } // end of if(fileCounterLYZ1SUM % cycle == 0)
651 // merging for subsets:
652 if(devideOutputFilesInEqualSubsets)
654 if(fileCounterLastSubsetLYZ1SUM > 0 && fileCounterLastSubsetLYZ1SUM % cycle == 0 && fileCounterLYZ1SUM % cycle == 0)
656 TString mergedFileForPreviousCycleForSubsetLYZ1SUM[nSubsets];
657 TString mergedFileForCurrentCycleForSubsetLYZ1SUM[nSubsets];
658 for(Int_t i=0;i<nSubsets;i++)
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";
667 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),kFileExists)))
669 fileMergerForSubsetsLYZ1SUM[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data());
670 // delete merged output from previous cycle:
671 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),gSystem->pwd());
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";
683 fileMergerForSubsetsLYZ1SUM[i].OutputFile(mergedFileForCurrentCycleForSubsetLYZ1SUM[i].Data());
684 fileMergerForSubsetsLYZ1SUM[i].Merge();
685 fileMergerForSubsetsLYZ1SUM[i].Reset();
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)))
693 TString fileNameLYZ1PROD = presentDirName;
694 ((fileNameLYZ1PROD+="outputLYZ1PRODanalysis")+=type.Data())+=".root";
695 if(!(gSystem->AccessPathName(fileNameLYZ1PROD.Data(),kFileExists)))
697 fileCounterLYZ1PROD++;
698 fileMergerLYZ1PROD->AddFile(fileNameLYZ1PROD.Data());
700 if(devideOutputFilesInEqualSubsets)
702 fileMergerForSubsetsLYZ1PROD[(fileCounterLYZ1PROD-1) % nSubsets].AddFile(fileNameLYZ1PROD.Data());
703 if(fileCounterLYZ1PROD % nSubsets == 0)
705 fileCounterLastSubsetLYZ1PROD++;
710 if(fileCounterLYZ1PROD % cycle == 0)
712 TString *mergedFileForPreviousCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
713 (*mergedFileForPreviousCycleLYZ1PROD)+=type.Data();
714 (*mergedFileForPreviousCycleLYZ1PROD)+=(fileCounterLYZ1PROD/cycle - 1);
715 (*mergedFileForPreviousCycleLYZ1PROD)+=".root";
717 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1PROD->Data(),kFileExists)))
719 fileMergerLYZ1PROD->AddFile(mergedFileForPreviousCycleLYZ1PROD->Data());
720 // delete merged output from previous cycle:
721 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1PROD->Data(),gSystem->pwd());
726 TString *mergedFileForCurrentCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
727 (*mergedFileForCurrentCycleLYZ1PROD)+=type.Data();
728 (*mergedFileForCurrentCycleLYZ1PROD)+=(fileCounterLYZ1PROD/cycle);
729 (*mergedFileForCurrentCycleLYZ1PROD)+=".root";
731 fileMergerLYZ1PROD->OutputFile(mergedFileForCurrentCycleLYZ1PROD->Data());
732 fileMergerLYZ1PROD->Merge();
733 fileMergerLYZ1PROD->Reset();
735 delete mergedFileForPreviousCycleLYZ1PROD;
736 delete mergedFileForCurrentCycleLYZ1PROD;
737 } // end of if(fileCounterLYZ1PROD % cycle == 0)
739 // merging for subsets:
740 if(devideOutputFilesInEqualSubsets)
742 if(fileCounterLastSubsetLYZ1PROD > 0 && fileCounterLastSubsetLYZ1PROD % cycle == 0 && fileCounterLYZ1PROD % cycle == 0)
744 TString mergedFileForPreviousCycleForSubsetLYZ1PROD[nSubsets];
745 TString mergedFileForCurrentCycleForSubsetLYZ1PROD[nSubsets];
746 for(Int_t i=0;i<nSubsets;i++)
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";
755 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),kFileExists)))
757 fileMergerForSubsetsLYZ1PROD[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data());
758 // delete merged output from previous cycle:
759 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),gSystem->pwd());
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";
771 fileMergerForSubsetsLYZ1PROD[i].OutputFile(mergedFileForCurrentCycleForSubsetLYZ1PROD[i].Data());
772 fileMergerForSubsetsLYZ1PROD[i].Merge();
773 fileMergerForSubsetsLYZ1PROD[i].Reset();
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)))
781 TString fileNameLYZEP = presentDirName;
782 ((fileNameLYZEP+="outputLYZEPanalysis")+=type.Data())+=".root";
783 if(!(gSystem->AccessPathName(fileNameLYZEP.Data(),kFileExists)))
786 fileMergerLYZEP->AddFile(fileNameLYZEP.Data());
788 if(devideOutputFilesInEqualSubsets)
790 fileMergerForSubsetsLYZEP[(fileCounterLYZEP-1) % nSubsets].AddFile(fileNameLYZEP.Data());
791 if(fileCounterLYZEP % nSubsets == 0)
793 fileCounterLastSubsetLYZEP++;
798 if(fileCounterLYZEP % cycle == 0)
800 TString *mergedFileForPreviousCycleLYZEP = new TString("mergedLYZEPanalysis");
801 (*mergedFileForPreviousCycleLYZEP)+=type.Data();
802 (*mergedFileForPreviousCycleLYZEP)+=(fileCounterLYZEP/cycle - 1);
803 (*mergedFileForPreviousCycleLYZEP)+=".root";
805 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZEP->Data(),kFileExists)))
807 fileMergerLYZEP->AddFile(mergedFileForPreviousCycleLYZEP->Data());
808 // delete merged output from previous cycle:
809 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZEP->Data(),gSystem->pwd());
814 TString *mergedFileForCurrentCycleLYZEP = new TString("mergedLYZEPanalysis");
815 (*mergedFileForCurrentCycleLYZEP)+=type.Data();
816 (*mergedFileForCurrentCycleLYZEP)+=(fileCounterLYZEP/cycle);
817 (*mergedFileForCurrentCycleLYZEP)+=".root";
819 fileMergerLYZEP->OutputFile(mergedFileForCurrentCycleLYZEP->Data());
820 fileMergerLYZEP->Merge();
821 fileMergerLYZEP->Reset();
823 delete mergedFileForPreviousCycleLYZEP;
824 delete mergedFileForCurrentCycleLYZEP;
825 } // end of if(fileCounterLYZEP % cycle == 0)
827 // merging for subsets:
828 if(devideOutputFilesInEqualSubsets)
830 if(fileCounterLastSubsetLYZEP > 0 && fileCounterLastSubsetLYZEP % cycle == 0 && fileCounterLYZEP % cycle == 0)
832 TString mergedFileForPreviousCycleForSubsetLYZEP[nSubsets];
833 TString mergedFileForCurrentCycleForSubsetLYZEP[nSubsets];
834 for(Int_t i=0;i<nSubsets;i++)
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";
843 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),kFileExists)))
845 fileMergerForSubsetsLYZEP[i].AddFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data());
846 // delete merged output from previous cycle:
847 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),gSystem->pwd());
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";
859 fileMergerForSubsetsLYZEP[i].OutputFile(mergedFileForCurrentCycleForSubsetLYZEP[i].Data());
860 fileMergerForSubsetsLYZEP[i].Merge();
861 fileMergerForSubsetsLYZEP[i].Reset();
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)))
868 } // end of for(Int_t iFile=0;iFile<nFiles;iFile++)
871 //=================================================================================================
874 // global merging at the end of the day:
875 gSystem->cd(baseDirPath->Data());
877 if(fileCounterMCEP < cycle)
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)
887 TString *mergedFileForPreviousCycleMCEP = new TString("mergedMCEPanalysis");
888 (*mergedFileForPreviousCycleMCEP)+=type.Data();
889 (*mergedFileForPreviousCycleMCEP)+=(fileCounterMCEP/cycle);
890 (*mergedFileForPreviousCycleMCEP)+=".root";
891 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleMCEP->Data(),kFileExists)))
893 TString *mergedFileFinalMCEP = new TString("mergedMCEPanalysis");
894 (*mergedFileFinalMCEP)+=type.Data();
895 (*mergedFileFinalMCEP)+=".root";
896 gSystem->Rename(mergedFileForPreviousCycleMCEP->Data(),mergedFileFinalMCEP->Data());
900 TString *mergedFileForPreviousCycleMCEP = new TString("mergedMCEPanalysis");
901 (*mergedFileForPreviousCycleMCEP)+=type.Data();
902 (*mergedFileForPreviousCycleMCEP)+=((Int_t)fileCounterMCEP/cycle);
903 (*mergedFileForPreviousCycleMCEP)+=".root";
905 fileMergerMCEP->AddFile(mergedFileForPreviousCycleMCEP->Data());
907 // delete merged output from previous cycle:
908 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleMCEP->Data(),gSystem->pwd());
912 TString *mergedFileFinalMCEP = new TString("mergedMCEPanalysis");
913 (*mergedFileFinalMCEP)+=type.Data();
914 (*mergedFileFinalMCEP)+=".root";
915 fileMergerMCEP->OutputFile(mergedFileFinalMCEP->Data());
916 fileMergerMCEP->Merge();
918 delete mergedFileForPreviousCycleMCEP;
919 delete mergedFileFinalMCEP;
922 // merging for subsets at the end of the day:
923 gSystem->cd(baseDirPath->Data());
924 if(devideOutputFilesInEqualSubsets)
926 if(fileCounterLastSubsetMCEP < cycle)
928 TString mergedFileFinalForSubsetMCEP[nSubsets];
929 for(Int_t i=0;i<nSubsets;i++)
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";
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)
944 TString mergedFileForPreviousCycleForSubsetMCEP[nSubsets];
945 TString mergedFileFinalForSubsetMCEP[nSubsets];
946 for(Int_t i=0;i<nSubsets;i++)
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");
959 (*subdir)+="mergedMCEPanalysis";
960 (*subdir)+=type.Data();
962 file->Move(subdir->Data());
965 } // end of for(Int_t i=0;i<nSubsets;i++)
968 TString mergedFileForPreviousCycleForSubsetMCEP[nSubsets];
969 TString mergedFileFinalForSubsetMCEP[nSubsets];
970 for(Int_t i=0;i<nSubsets;i++)
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";
979 fileMergerForSubsetsMCEP[i].AddFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data());
981 // delete merged output from previous cycle:
982 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetMCEP[i].Data(),gSystem->pwd());
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";
993 fileMergerForSubsetsMCEP[i].OutputFile(mergedFileFinalForSubsetMCEP[i].Data());
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)
1002 if(fileCounterSP < cycle)
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)
1012 TString *mergedFileForPreviousCycleSP = new TString("mergedSPanalysis");
1013 (*mergedFileForPreviousCycleSP)+=type.Data();
1014 (*mergedFileForPreviousCycleSP)+=(fileCounterSP/cycle);
1015 (*mergedFileForPreviousCycleSP)+=".root";
1016 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleSP->Data(),kFileExists)))
1018 TString *mergedFileFinalSP = new TString("mergedSPanalysis");
1019 (*mergedFileFinalSP)+=type.Data();
1020 (*mergedFileFinalSP)+=".root";
1021 gSystem->Rename(mergedFileForPreviousCycleSP->Data(),mergedFileFinalSP->Data());
1025 TString *mergedFileForPreviousCycleSP = new TString("mergedSPanalysis");
1026 (*mergedFileForPreviousCycleSP)+=type.Data();
1027 (*mergedFileForPreviousCycleSP)+=((Int_t)fileCounterSP/cycle);
1028 (*mergedFileForPreviousCycleSP)+=".root";
1030 fileMergerSP->AddFile(mergedFileForPreviousCycleSP->Data());
1032 // delete merged output from previous cycle:
1033 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleSP->Data(),gSystem->pwd());
1037 TString *mergedFileFinalSP = new TString("mergedSPanalysis");
1038 (*mergedFileFinalSP)+=type.Data();
1039 (*mergedFileFinalSP)+=".root";
1040 fileMergerSP->OutputFile(mergedFileFinalSP->Data());
1041 fileMergerSP->Merge();
1043 delete mergedFileForPreviousCycleSP;
1044 delete mergedFileFinalSP;
1047 // merging for subsets at the end of the day:
1048 gSystem->cd(baseDirPath->Data());
1049 if(devideOutputFilesInEqualSubsets)
1051 if(fileCounterLastSubsetSP < cycle)
1053 TString mergedFileFinalForSubsetSP[nSubsets];
1054 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1069 TString mergedFileForPreviousCycleForSubsetSP[nSubsets];
1070 TString mergedFileFinalForSubsetSP[nSubsets];
1071 for(Int_t i=0;i<nSubsets;i++)
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");
1084 (*subdir)+="mergedSPanalysis";
1085 (*subdir)+=type.Data();
1087 file->Move(subdir->Data());
1090 } // end of for(Int_t i=0;i<nSubsets;i++)
1093 TString mergedFileForPreviousCycleForSubsetSP[nSubsets];
1094 TString mergedFileFinalForSubsetSP[nSubsets];
1095 for(Int_t i=0;i<nSubsets;i++)
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";
1104 fileMergerForSubsetsSP[i].AddFile(mergedFileForPreviousCycleForSubsetSP[i].Data());
1106 // delete merged output from previous cycle:
1107 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetSP[i].Data(),gSystem->pwd());
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";
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)
1126 if(fileCounterGFC < cycle)
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)
1136 TString *mergedFileForPreviousCycleGFC = new TString("mergedGFCanalysis");
1137 (*mergedFileForPreviousCycleGFC)+=type.Data();
1138 (*mergedFileForPreviousCycleGFC)+=(fileCounterGFC/cycle);
1139 (*mergedFileForPreviousCycleGFC)+=".root";
1140 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleGFC->Data(),kFileExists)))
1142 TString *mergedFileFinalGFC = new TString("mergedGFCanalysis");
1143 (*mergedFileFinalGFC)+=type.Data();
1144 (*mergedFileFinalGFC)+=".root";
1145 gSystem->Rename(mergedFileForPreviousCycleGFC->Data(),mergedFileFinalGFC->Data());
1149 TString *mergedFileForPreviousCycleGFC = new TString("mergedGFCanalysis");
1150 (*mergedFileForPreviousCycleGFC)+=type.Data();
1151 (*mergedFileForPreviousCycleGFC)+=((Int_t)fileCounterGFC/cycle);
1152 (*mergedFileForPreviousCycleGFC)+=".root";
1154 fileMergerGFC->AddFile(mergedFileForPreviousCycleGFC->Data());
1156 // delete merged output from previous cycle:
1157 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleGFC->Data(),gSystem->pwd());
1161 TString *mergedFileFinalGFC = new TString("mergedGFCanalysis");
1162 (*mergedFileFinalGFC)+=type.Data();
1163 (*mergedFileFinalGFC)+=".root";
1164 fileMergerGFC->OutputFile(mergedFileFinalGFC->Data());
1165 fileMergerGFC->Merge();
1167 delete mergedFileForPreviousCycleGFC;
1168 delete mergedFileFinalGFC;
1171 // merging for subsets at the end of the day:
1172 gSystem->cd(baseDirPath->Data());
1173 if(devideOutputFilesInEqualSubsets)
1175 if(fileCounterLastSubsetGFC < cycle)
1177 TString mergedFileFinalForSubsetGFC[nSubsets];
1178 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1193 TString mergedFileForPreviousCycleForSubsetGFC[nSubsets];
1194 TString mergedFileFinalForSubsetGFC[nSubsets];
1195 for(Int_t i=0;i<nSubsets;i++)
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");
1208 (*subdir)+="mergedGFCanalysis";
1209 (*subdir)+=type.Data();
1211 file->Move(subdir->Data());
1214 } // end of for(Int_t i=0;i<nSubsets;i++)
1217 TString mergedFileForPreviousCycleForSubsetGFC[nSubsets];
1218 TString mergedFileFinalForSubsetGFC[nSubsets];
1219 for(Int_t i=0;i<nSubsets;i++)
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";
1228 fileMergerForSubsetsGFC[i].AddFile(mergedFileForPreviousCycleForSubsetGFC[i].Data());
1230 // delete merged output from previous cycle:
1231 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetGFC[i].Data(),gSystem->pwd());
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";
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)
1250 if(fileCounterQC < cycle)
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)
1260 TString *mergedFileForPreviousCycleQC = new TString("mergedQCanalysis");
1261 (*mergedFileForPreviousCycleQC)+=type.Data();
1262 (*mergedFileForPreviousCycleQC)+=(fileCounterQC/cycle);
1263 (*mergedFileForPreviousCycleQC)+=".root";
1264 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleQC->Data(),kFileExists)))
1266 TString *mergedFileFinalQC = new TString("mergedQCanalysis");
1267 (*mergedFileFinalQC)+=type.Data();
1268 (*mergedFileFinalQC)+=".root";
1269 gSystem->Rename(mergedFileForPreviousCycleQC->Data(),mergedFileFinalQC->Data());
1273 TString *mergedFileForPreviousCycleQC = new TString("mergedQCanalysis");
1274 (*mergedFileForPreviousCycleQC)+=type.Data();
1275 (*mergedFileForPreviousCycleQC)+=((Int_t)fileCounterQC/cycle);
1276 (*mergedFileForPreviousCycleQC)+=".root";
1278 fileMergerQC->AddFile(mergedFileForPreviousCycleQC->Data());
1280 // delete merged output from previous cycle:
1281 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleQC->Data(),gSystem->pwd());
1285 TString *mergedFileFinalQC = new TString("mergedQCanalysis");
1286 (*mergedFileFinalQC)+=type.Data();
1287 (*mergedFileFinalQC)+=".root";
1288 fileMergerQC->OutputFile(mergedFileFinalQC->Data());
1289 fileMergerQC->Merge();
1291 delete mergedFileForPreviousCycleQC;
1292 delete mergedFileFinalQC;
1295 // merging for subsets at the end of the day:
1296 gSystem->cd(baseDirPath->Data());
1297 if(devideOutputFilesInEqualSubsets)
1299 if(fileCounterLastSubsetQC < cycle)
1301 TString mergedFileFinalForSubsetQC[nSubsets];
1302 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1317 TString mergedFileForPreviousCycleForSubsetQC[nSubsets];
1318 TString mergedFileFinalForSubsetQC[nSubsets];
1319 for(Int_t i=0;i<nSubsets;i++)
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");
1332 (*subdir)+="mergedQCanalysis";
1333 (*subdir)+=type.Data();
1335 file->Move(subdir->Data());
1338 } // end of for(Int_t i=0;i<nSubsets;i++)
1341 TString mergedFileForPreviousCycleForSubsetQC[nSubsets];
1342 TString mergedFileFinalForSubsetQC[nSubsets];
1343 for(Int_t i=0;i<nSubsets;i++)
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";
1352 fileMergerForSubsetsQC[i].AddFile(mergedFileForPreviousCycleForSubsetQC[i].Data());
1354 // delete merged output from previous cycle:
1355 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetQC[i].Data(),gSystem->pwd());
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";
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)
1374 if(fileCounterFQD < cycle)
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)
1384 TString *mergedFileForPreviousCycleFQD = new TString("mergedFQDanalysis");
1385 (*mergedFileForPreviousCycleFQD)+=type.Data();
1386 (*mergedFileForPreviousCycleFQD)+=(fileCounterFQD/cycle);
1387 (*mergedFileForPreviousCycleFQD)+=".root";
1388 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleFQD->Data(),kFileExists)))
1390 TString *mergedFileFinalFQD = new TString("mergedFQDanalysis");
1391 (*mergedFileFinalFQD)+=type.Data();
1392 (*mergedFileFinalFQD)+=".root";
1393 gSystem->Rename(mergedFileForPreviousCycleFQD->Data(),mergedFileFinalFQD->Data());
1397 TString *mergedFileForPreviousCycleFQD = new TString("mergedFQDanalysis");
1398 (*mergedFileForPreviousCycleFQD)+=type.Data();
1399 (*mergedFileForPreviousCycleFQD)+=((Int_t)fileCounterFQD/cycle);
1400 (*mergedFileForPreviousCycleFQD)+=".root";
1402 fileMergerFQD->AddFile(mergedFileForPreviousCycleFQD->Data());
1404 // delete merged output from previous cycle:
1405 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleFQD->Data(),gSystem->pwd());
1409 TString *mergedFileFinalFQD = new TString("mergedFQDanalysis");
1410 (*mergedFileFinalFQD)+=type.Data();
1411 (*mergedFileFinalFQD)+=".root";
1412 fileMergerFQD->OutputFile(mergedFileFinalFQD->Data());
1413 fileMergerFQD->Merge();
1415 delete mergedFileForPreviousCycleFQD;
1416 delete mergedFileFinalFQD;
1419 // merging for subsets at the end of the day:
1420 gSystem->cd(baseDirPath->Data());
1421 if(devideOutputFilesInEqualSubsets)
1423 if(fileCounterLastSubsetFQD < cycle)
1425 TString mergedFileFinalForSubsetFQD[nSubsets];
1426 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1441 TString mergedFileForPreviousCycleForSubsetFQD[nSubsets];
1442 TString mergedFileFinalForSubsetFQD[nSubsets];
1443 for(Int_t i=0;i<nSubsets;i++)
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");
1456 (*subdir)+="mergedFQDanalysis";
1457 (*subdir)+=type.Data();
1459 file->Move(subdir->Data());
1462 } // end of for(Int_t i=0;i<nSubsets;i++)
1465 TString mergedFileForPreviousCycleForSubsetFQD[nSubsets];
1466 TString mergedFileFinalForSubsetFQD[nSubsets];
1467 for(Int_t i=0;i<nSubsets;i++)
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";
1476 fileMergerForSubsetsFQD[i].AddFile(mergedFileForPreviousCycleForSubsetFQD[i].Data());
1478 // delete merged output from previous cycle:
1479 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetFQD[i].Data(),gSystem->pwd());
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";
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)
1498 if(fileCounterLYZ1SUM < cycle)
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)
1508 TString *mergedFileForPreviousCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1509 (*mergedFileForPreviousCycleLYZ1SUM)+=type.Data();
1510 (*mergedFileForPreviousCycleLYZ1SUM)+=(fileCounterLYZ1SUM/cycle);
1511 (*mergedFileForPreviousCycleLYZ1SUM)+=".root";
1512 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1SUM->Data(),kFileExists)))
1514 TString *mergedFileFinalLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1515 (*mergedFileFinalLYZ1SUM)+=type.Data();
1516 (*mergedFileFinalLYZ1SUM)+=".root";
1517 gSystem->Rename(mergedFileForPreviousCycleLYZ1SUM->Data(),mergedFileFinalLYZ1SUM->Data());
1521 TString *mergedFileForPreviousCycleLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1522 (*mergedFileForPreviousCycleLYZ1SUM)+=type.Data();
1523 (*mergedFileForPreviousCycleLYZ1SUM)+=((Int_t)fileCounterLYZ1SUM/cycle);
1524 (*mergedFileForPreviousCycleLYZ1SUM)+=".root";
1526 fileMergerLYZ1SUM->AddFile(mergedFileForPreviousCycleLYZ1SUM->Data());
1528 // delete merged output from previous cycle:
1529 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1SUM->Data(),gSystem->pwd());
1533 TString *mergedFileFinalLYZ1SUM = new TString("mergedLYZ1SUManalysis");
1534 (*mergedFileFinalLYZ1SUM)+=type.Data();
1535 (*mergedFileFinalLYZ1SUM)+=".root";
1536 fileMergerLYZ1SUM->OutputFile(mergedFileFinalLYZ1SUM->Data());
1537 fileMergerLYZ1SUM->Merge();
1539 delete mergedFileForPreviousCycleLYZ1SUM;
1540 delete mergedFileFinalLYZ1SUM;
1543 // merging for subsets at the end of the day:
1544 gSystem->cd(baseDirPath->Data());
1545 if(devideOutputFilesInEqualSubsets)
1547 if(fileCounterLastSubsetLYZ1SUM < cycle)
1549 TString mergedFileFinalForSubsetLYZ1SUM[nSubsets];
1550 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1565 TString mergedFileForPreviousCycleForSubsetLYZ1SUM[nSubsets];
1566 TString mergedFileFinalForSubsetLYZ1SUM[nSubsets];
1567 for(Int_t i=0;i<nSubsets;i++)
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");
1580 (*subdir)+="mergedLYZ1SUManalysis";
1581 (*subdir)+=type.Data();
1583 file->Move(subdir->Data());
1586 } // end of for(Int_t i=0;i<nSubsets;i++)
1589 TString mergedFileForPreviousCycleForSubsetLYZ1SUM[nSubsets];
1590 TString mergedFileFinalForSubsetLYZ1SUM[nSubsets];
1591 for(Int_t i=0;i<nSubsets;i++)
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";
1600 fileMergerForSubsetsLYZ1SUM[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data());
1602 // delete merged output from previous cycle:
1603 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1SUM[i].Data(),gSystem->pwd());
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";
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)
1622 if(fileCounterLYZ1PROD < cycle)
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)
1632 TString *mergedFileForPreviousCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1633 (*mergedFileForPreviousCycleLYZ1PROD)+=type.Data();
1634 (*mergedFileForPreviousCycleLYZ1PROD)+=(fileCounterLYZ1PROD/cycle);
1635 (*mergedFileForPreviousCycleLYZ1PROD)+=".root";
1636 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZ1PROD->Data(),kFileExists)))
1638 TString *mergedFileFinalLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1639 (*mergedFileFinalLYZ1PROD)+=type.Data();
1640 (*mergedFileFinalLYZ1PROD)+=".root";
1641 gSystem->Rename(mergedFileForPreviousCycleLYZ1PROD->Data(),mergedFileFinalLYZ1PROD->Data());
1645 TString *mergedFileForPreviousCycleLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1646 (*mergedFileForPreviousCycleLYZ1PROD)+=type.Data();
1647 (*mergedFileForPreviousCycleLYZ1PROD)+=((Int_t)fileCounterLYZ1PROD/cycle);
1648 (*mergedFileForPreviousCycleLYZ1PROD)+=".root";
1650 fileMergerLYZ1PROD->AddFile(mergedFileForPreviousCycleLYZ1PROD->Data());
1652 // delete merged output from previous cycle:
1653 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZ1PROD->Data(),gSystem->pwd());
1657 TString *mergedFileFinalLYZ1PROD = new TString("mergedLYZ1PRODanalysis");
1658 (*mergedFileFinalLYZ1PROD)+=type.Data();
1659 (*mergedFileFinalLYZ1PROD)+=".root";
1660 fileMergerLYZ1PROD->OutputFile(mergedFileFinalLYZ1PROD->Data());
1661 fileMergerLYZ1PROD->Merge();
1663 delete mergedFileForPreviousCycleLYZ1PROD;
1664 delete mergedFileFinalLYZ1PROD;
1667 // merging for subsets at the end of the day:
1668 gSystem->cd(baseDirPath->Data());
1669 if(devideOutputFilesInEqualSubsets)
1671 if(fileCounterLastSubsetLYZ1PROD < cycle)
1673 TString mergedFileFinalForSubsetLYZ1PROD[nSubsets];
1674 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1689 TString mergedFileForPreviousCycleForSubsetLYZ1PROD[nSubsets];
1690 TString mergedFileFinalForSubsetLYZ1PROD[nSubsets];
1691 for(Int_t i=0;i<nSubsets;i++)
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");
1704 (*subdir)+="mergedLYZ1PRODanalysis";
1705 (*subdir)+=type.Data();
1707 file->Move(subdir->Data());
1710 } // end of for(Int_t i=0;i<nSubsets;i++)
1713 TString mergedFileForPreviousCycleForSubsetLYZ1PROD[nSubsets];
1714 TString mergedFileFinalForSubsetLYZ1PROD[nSubsets];
1715 for(Int_t i=0;i<nSubsets;i++)
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";
1724 fileMergerForSubsetsLYZ1PROD[i].AddFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data());
1726 // delete merged output from previous cycle:
1727 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZ1PROD[i].Data(),gSystem->pwd());
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";
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)
1746 if(fileCounterLYZEP < cycle)
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)
1756 TString *mergedFileForPreviousCycleLYZEP = new TString("mergedLYZEPanalysis");
1757 (*mergedFileForPreviousCycleLYZEP)+=type.Data();
1758 (*mergedFileForPreviousCycleLYZEP)+=(fileCounterLYZEP/cycle);
1759 (*mergedFileForPreviousCycleLYZEP)+=".root";
1760 if(!(gSystem->AccessPathName(mergedFileForPreviousCycleLYZEP->Data(),kFileExists)))
1762 TString *mergedFileFinalLYZEP = new TString("mergedLYZEPanalysis");
1763 (*mergedFileFinalLYZEP)+=type.Data();
1764 (*mergedFileFinalLYZEP)+=".root";
1765 gSystem->Rename(mergedFileForPreviousCycleLYZEP->Data(),mergedFileFinalLYZEP->Data());
1769 TString *mergedFileForPreviousCycleLYZEP = new TString("mergedLYZEPanalysis");
1770 (*mergedFileForPreviousCycleLYZEP)+=type.Data();
1771 (*mergedFileForPreviousCycleLYZEP)+=((Int_t)fileCounterLYZEP/cycle);
1772 (*mergedFileForPreviousCycleLYZEP)+=".root";
1774 fileMergerLYZEP->AddFile(mergedFileForPreviousCycleLYZEP->Data());
1776 // delete merged output from previous cycle:
1777 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleLYZEP->Data(),gSystem->pwd());
1781 TString *mergedFileFinalLYZEP = new TString("mergedLYZEPanalysis");
1782 (*mergedFileFinalLYZEP)+=type.Data();
1783 (*mergedFileFinalLYZEP)+=".root";
1784 fileMergerLYZEP->OutputFile(mergedFileFinalLYZEP->Data());
1785 fileMergerLYZEP->Merge();
1787 delete mergedFileForPreviousCycleLYZEP;
1788 delete mergedFileFinalLYZEP;
1791 // merging for subsets at the end of the day:
1792 gSystem->cd(baseDirPath->Data());
1793 if(devideOutputFilesInEqualSubsets)
1795 if(fileCounterLastSubsetLYZEP < cycle)
1797 TString mergedFileFinalForSubsetLYZEP[nSubsets];
1798 for(Int_t i=0;i<nSubsets;i++)
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";
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)
1813 TString mergedFileForPreviousCycleForSubsetLYZEP[nSubsets];
1814 TString mergedFileFinalForSubsetLYZEP[nSubsets];
1815 for(Int_t i=0;i<nSubsets;i++)
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");
1828 (*subdir)+="mergedLYZEPanalysis";
1829 (*subdir)+=type.Data();
1831 file->Move(subdir->Data());
1834 } // end of for(Int_t i=0;i<nSubsets;i++)
1837 TString mergedFileForPreviousCycleForSubsetLYZEP[nSubsets];
1838 TString mergedFileFinalForSubsetLYZEP[nSubsets];
1839 for(Int_t i=0;i<nSubsets;i++)
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";
1848 fileMergerForSubsetsLYZEP[i].AddFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data());
1850 // delete merged output from previous cycle:
1851 TSystemFile *file = new TSystemFile(mergedFileForPreviousCycleForSubsetLYZEP[i].Data(),gSystem->pwd());
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";
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)
1869 delete dirNameSubset;
1873 } // end of void mergeOutput(TString type="", Int_t mode=mLocal)
1875 void LoadLibrariesMO(const libModes mode) {
1877 //--------------------------------------
1878 // Load the needed libraries most of them already loaded by aliroot
1879 //--------------------------------------
1880 gSystem->Load("libTree");
1881 gSystem->Load("libGeom");
1882 gSystem->Load("libVMC");
1883 gSystem->Load("libXMLIO");
1884 gSystem->Load("libPhysics");
1886 //----------------------------------------------------------
1887 // >>>>>>>>>>> Local mode <<<<<<<<<<<<<<
1888 //----------------------------------------------------------
1890 //--------------------------------------------------------
1891 // If you want to use already compiled libraries
1892 // in the aliroot distribution
1893 //--------------------------------------------------------
1895 //==================================================================================
1896 //load needed libraries:
1897 gSystem->AddIncludePath("-I$ROOTSYS/include");
1898 gSystem->Load("libTree");
1901 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
1902 gSystem->Load("libANALYSIS");
1903 gSystem->Load("libPWG2flowCommon");
1904 //cerr<<"libPWG2flowCommon loaded ..."<<endl;
1908 else if (mode==mLocalSource) {
1910 // In root inline compile
1913 gROOT->LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+");
1914 gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+");
1915 gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+");
1918 gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+");
1919 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+");
1920 gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+");
1923 gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+");
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+");
1931 cout << "finished loading macros!" << endl;
1933 } // end of else if (mode==mLocalSource)
1935 } // end of void LoadLibrariesMO(const libModes mode)