]>
Commit | Line | Data |
---|---|---|
fe11f681 | 1 | enum libModes {mLocal,mLocalSource}; |
2 | ||
9455e15e | 3 | void 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 | 1875 | void 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) |