]>
Commit | Line | Data |
---|---|---|
e977741d | 1 | void runBatch() { |
2 | TStopwatch timer; | |
3 | timer.Start(); | |
4 | ||
5 | printf("*** Connect to AliEn ***\n"); | |
6 | TGrid::Connect("alien://"); | |
7 | gSystem->Load("libProofPlayer.so"); | |
8 | gSystem->Load("libVMC.so"); | |
9 | gSystem->Load("libTree.so"); | |
10 | gSystem->Load("libVMC.so"); | |
11 | gSystem->Load("libXMLIO.so"); | |
12 | gSystem->Load("libPhysics.so"); | |
13 | ||
14 | int runFemto = 1; | |
15 | int runSpectraProtons = 1; | |
16 | int runSpectraV0 = 1; | |
17 | int runFlow = 1; | |
18 | int runResonances = 1; | |
19 | int runEvChar = 1; | |
20 | int runKink = 1; | |
21 | int runUnicor = 1; | |
df099f70 | 22 | int runFMDanalysis = 0; |
23 | int runLRC = 1; | |
e977741d | 24 | |
df099f70 | 25 | int useGeneralParFiles = 0; |
26 | int usePWG2ParFiles = 0; | |
27 | ||
e977741d | 28 | //____________________________________________________// |
29 | //_____________Setting up STEERBase.par_______________// | |
30 | //____________________________________________________// | |
df099f70 | 31 | if (useGeneralParFiles) { |
32 | setupPar("STEERBase"); | |
33 | } | |
e977741d | 34 | gSystem->Load("libSTEERBase.so"); |
35 | ||
36 | //____________________________________________________// | |
37 | //_____________Setting up ESD.par_____________________// | |
38 | //____________________________________________________// | |
df099f70 | 39 | if (useGeneralParFiles) { |
40 | setupPar("ESD"); | |
41 | } | |
e977741d | 42 | gSystem->Load("libVMC.so"); |
43 | gSystem->Load("libESD.so"); | |
44 | ||
45 | //____________________________________________________// | |
46 | //_____________Setting up AOD.par_____________________// | |
47 | //____________________________________________________// | |
df099f70 | 48 | if (useGeneralParFiles) { |
49 | setupPar("AOD"); | |
50 | } | |
e977741d | 51 | gSystem->Load("libAOD.so"); |
52 | ||
53 | //_________________________________________________________// | |
54 | //_____________Setting up ANALYSIS.par_____________________// | |
55 | //_________________________________________________________// | |
df099f70 | 56 | if (useGeneralParFiles) { |
57 | setupPar("ANALYSIS"); | |
58 | } | |
e977741d | 59 | gSystem->Load("libANALYSIS.so"); |
60 | ||
61 | //_________________________________________________________// | |
62 | //_____________Setting up ANALYSISalice.par________________// | |
63 | //_________________________________________________________// | |
df099f70 | 64 | if (useGeneralParFiles) { |
65 | setupPar("ANALYSISalice"); | |
66 | } | |
e977741d | 67 | gSystem->Load("libANALYSISalice.so"); |
68 | ||
69 | //____________________________________________________// | |
70 | //_____________Setting up CORRFW library______________// | |
71 | //____________________________________________________// | |
df099f70 | 72 | if (useGeneralParFiles) { |
73 | setupPar("CORRFW"); | |
74 | } | |
e977741d | 75 | gSystem->Load("libCORRFW.so"); |
76 | ||
77 | //____________________________________________________// | |
78 | //_____________Setting up PWG2AOD.par_________________// | |
79 | //____________________________________________________// | |
df099f70 | 80 | if (usePWG2ParFiles) { |
81 | setupPar("PWG2AOD"); | |
82 | } | |
e977741d | 83 | gSystem->Load("libPWG2AOD.so"); |
84 | ||
85 | if (runFemto) { | |
86 | //____________________________________________________// | |
87 | //_____________Setting up PWG2femtoscopy.par__________// | |
88 | //____________________________________________________// | |
df099f70 | 89 | if (usePWG2ParFiles) { |
90 | setupPar("PWG2femtoscopy"); | |
91 | } | |
e977741d | 92 | gSystem->Load("libPWG2femtoscopy.so"); |
93 | ||
94 | //____________________________________________________// | |
95 | //_____________Setting up PWG2femtoscopyUser.par______// | |
96 | //____________________________________________________// | |
df099f70 | 97 | if (usePWG2ParFiles) { |
98 | setupPar("PWG2femtoscopyUser"); | |
99 | } | |
e977741d | 100 | gSystem->Load("libPWG2femtoscopyUser.so"); |
101 | } | |
102 | ||
103 | if (runSpectraProtons) { | |
104 | //____________________________________________________// | |
105 | //_____________Setting up PWG2spectra library ________// | |
106 | //____________________________________________________// | |
df099f70 | 107 | if (usePWG2ParFiles) { |
108 | setupPar("PWG2spectra"); | |
109 | } | |
e977741d | 110 | gSystem->Load("libPWG2spectra.so"); |
111 | } | |
112 | ||
113 | if (runSpectraV0) { | |
114 | //____________________________________________________// | |
115 | //_____________Setting up PWG2spectra library ________// | |
116 | //____________________________________________________// | |
df099f70 | 117 | if (usePWG2ParFiles) { |
118 | setupPar("PWG2spectra"); | |
119 | } | |
e977741d | 120 | gSystem->Load("libPWG2spectra.so"); |
121 | } | |
122 | ||
123 | if (runFlow) { | |
124 | //____________________________________________________// | |
125 | //_____________Setting up PWG2flowCommon.par__________// | |
126 | //____________________________________________________// | |
df099f70 | 127 | if (usePWG2ParFiles) { |
128 | setupPar("PWG2flowCommon"); | |
129 | } | |
e977741d | 130 | gSystem->Load("libPWG2flowCommon.so"); |
131 | ||
132 | //____________________________________________________// | |
133 | //_____________Setting up PWG2flowTasks.par___________// | |
134 | //____________________________________________________// | |
df099f70 | 135 | if (usePWG2ParFiles) { |
136 | setupPar("PWG2flowTasks"); | |
137 | } | |
e977741d | 138 | gSystem->Load("libPWG2flowTasks.so"); |
139 | } | |
140 | ||
141 | if (runResonances) { | |
142 | //____________________________________________________// | |
143 | //_____________Setting up PWG2resonances.par__________// | |
144 | //____________________________________________________// | |
df099f70 | 145 | if (usePWG2ParFiles) { |
146 | setupPar("PWG2resonances"); | |
147 | } | |
e977741d | 148 | gSystem->Load("libPWG2resonances.so"); |
149 | } | |
150 | ||
151 | if (runEvChar) { | |
152 | //____________________________________________________// | |
153 | //_____________Setting up PWG2evchar library__________// | |
154 | //____________________________________________________// | |
df099f70 | 155 | if (usePWG2ParFiles) { |
156 | setupPar("PWG2evchar"); | |
157 | } | |
e977741d | 158 | gSystem->Load("libPWG2evchar.so"); |
159 | } | |
160 | ||
161 | if (runKink) { | |
162 | //____________________________________________________// | |
df099f70 | 163 | //_____________Setting up PWG2kink library____________// |
e977741d | 164 | //____________________________________________________// |
df099f70 | 165 | if (usePWG2ParFiles) { |
166 | setupPar("PWG2kink"); | |
167 | } | |
e977741d | 168 | gSystem->Load("libPWG2kink.so"); |
169 | } | |
170 | ||
171 | if (runUnicor) { | |
172 | //____________________________________________________// | |
df099f70 | 173 | //_____________Setting up PWG2unicor library__________// |
e977741d | 174 | //____________________________________________________// |
df099f70 | 175 | if (usePWG2ParFiles) { |
176 | setupPar("PWG2unicor"); | |
177 | } | |
575b31bb | 178 | gSystem->Load("libPWG2unicor.so"); |
e977741d | 179 | } |
180 | ||
181 | if (runFMDanalysis) { | |
182 | //____________________________________________________// | |
df099f70 | 183 | //_____________Setting up FMD analysis library________// |
e977741d | 184 | //____________________________________________________// |
df099f70 | 185 | // setupPar("FMDanalysis"); |
e977741d | 186 | gSystem->Load("libFMDanalysis.so"); |
187 | } | |
188 | ||
df099f70 | 189 | if (runLRC) { |
190 | //____________________________________________________// | |
191 | //_____________Setting up PWG2ebye library____________// | |
192 | //____________________________________________________// | |
193 | if (usePWG2ParFiles) { | |
194 | setupPar("PWG2ebye"); | |
195 | } | |
196 | gSystem->Load("libPWG2ebye.so"); | |
197 | } | |
198 | ||
e977741d | 199 | //ANALYSIS PART |
200 | const char *collectionfile="wn.xml"; | |
201 | //____________________________________________// | |
202 | //Usage of event tags | |
203 | AliTagAnalysis *analysis = new AliTagAnalysis(); | |
204 | TChain *chain = 0x0; | |
205 | chain = analysis->GetChainFromCollection(collectionfile,"esdTree"); | |
206 | ||
207 | // const char *collectionfile="../../LHC09a4/esd.LHC09a4.81305.mini.list"; | |
208 | // gROOT->LoadMacro("CreateESDChain.C"); | |
209 | // chain = CreateESDChain(collectionfile); | |
210 | ||
211 | //____________________________________________// | |
212 | // Make the analysis manager | |
213 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
214 | AliESDInputHandler* esdH = new AliESDInputHandler; | |
215 | // esdH->SetInactiveBranches("FMD CaloCluster"); | |
216 | mgr->SetInputEventHandler(esdH); | |
217 | ||
218 | AliMCEventHandler *mcH = new AliMCEventHandler; | |
219 | mgr->SetMCtruthEventHandler(mcH); | |
220 | if (runFemto) { | |
221 | //____________________________________________// | |
222 | // 1st task - FEMTOSCOPY | |
223 | ||
224 | gROOT->LoadMacro("AddTaskFemto.C"); | |
225 | AliAnalysisTaskFemto *taskfemto = AddTaskFemto(); | |
226 | } | |
227 | ||
228 | if (runSpectraProtons) { | |
229 | //____________________________________________// | |
230 | // 2nd task - SPECTRA protons | |
231 | ||
232 | gROOT->LoadMacro("AddTaskProtons.C"); | |
233 | AliAnalysisTaskProtons *taskprotons = AddTaskProtons(); | |
234 | } | |
235 | ||
236 | if (runFlow) { | |
237 | //____________________________________________// | |
238 | // 3rd task - FLOW | |
239 | ||
240 | // Flow analysis method can be:(set to kTRUE or kFALSE) | |
df099f70 | 241 | Bool_t SP = kTRUE; |
242 | Bool_t LYZ1SUM = kTRUE; | |
243 | Bool_t LYZ1PROD = kTRUE; | |
244 | Bool_t LYZ2SUM = kFALSE; | |
245 | Bool_t LYZ2PROD = kFALSE; | |
246 | Bool_t LYZEP = kFALSE; | |
247 | Bool_t GFC = kTRUE; | |
248 | Bool_t QC = kTRUE; | |
249 | Bool_t FQD = kTRUE; | |
250 | Bool_t MCEP = kTRUE; //not for pp | |
e977741d | 251 | |
df099f70 | 252 | Bool_t METHODS[] = {SP,LYZ1SUM,LYZ1PROD,LYZ2SUM,LYZ2PROD,LYZEP,GFC,QC,FQD,MCEP}; |
e977741d | 253 | |
254 | // Analysis type can be ESD, AOD, MC, ESDMC0, ESDMC1 | |
255 | const TString type = "ESD"; | |
256 | ||
257 | // Boolean to fill/not fill the QA histograms | |
258 | Bool_t QA = kTRUE; | |
259 | ||
260 | // Boolean to use/not use weights for the Q vector | |
261 | Bool_t WEIGHTS[] = {kFALSE,kFALSE,kFALSE}; //Phi, v'(pt), v'(eta) | |
df099f70 | 262 | |
e977741d | 263 | gROOT->LoadMacro("AddTaskFlow.C"); |
264 | AliAnalysisTaskFlowEvent* taskFE = AddTaskFlow(type,METHODS,QA,WEIGHTS); | |
265 | } | |
266 | ||
267 | if (runResonances) { | |
268 | //____________________________________________// | |
269 | // 4th task - RESONANCES | |
270 | ||
271 | int useMC = 1; | |
272 | ||
273 | gROOT->LoadMacro("AddAnalysisTaskRsn.C"); | |
274 | // AliAnalysisTaskFemto *taskfemto = AddTaskFemto(); | |
df099f70 | 275 | // AddAnalysisTaskRsn(AliLog::kInfo, kFALSE, "rsn.root", useMC); |
276 | AddAnalysisTaskRsn(); | |
e977741d | 277 | } |
278 | ||
279 | if (runEvChar) { | |
280 | //____________________________________________// | |
281 | // 5th task - EVENT CHARACTERIZARION | |
282 | ||
283 | gROOT->LoadMacro("AddTaskSPDdNdEta.C"); | |
284 | AliAnalysisTaskSPDdNdEta *taskspddndeta = AddTaskSPDdNdEta(); | |
285 | } | |
286 | ||
287 | if (runSpectraV0) { | |
288 | //____________________________________________// | |
289 | // 6th, 7th, 8th tasks - SPECTRA V0 | |
290 | ||
291 | // cascades | |
292 | gROOT->LoadMacro("AddTaskCheckCascade.C"); | |
293 | AliAnalysisTaskCheckCascade *taskcheckcascade = AddTaskCheckCascade(0); | |
294 | ||
295 | // v0's | |
296 | gROOT->LoadMacro("AddTaskCheckV0.C"); | |
297 | AliAnalysisTaskCheckV0 *taskcheckV0 = AddTaskCheckV0(); | |
298 | ||
299 | // strangeness | |
300 | gROOT->LoadMacro("AddTaskStrange.C"); | |
301 | AliAnalysisTaskStrange *taskstrange = AddTaskStrange(); | |
302 | } | |
303 | ||
304 | if (runKink) { | |
305 | //____________________________________________// | |
306 | // 9th, 10th, 11th tasks - KINK | |
307 | gROOT->LoadMacro("AddTaskKink.C"); | |
308 | AliAnalysisKinkESDMC *taskkink = AddTaskKink(); | |
309 | ||
310 | gROOT->LoadMacro("AddTaskKinkResonance.C"); | |
311 | AliAnalysisTaskKinkResonance *taskkinkres = AddTaskKinkResonance(); | |
312 | ||
313 | gROOT->LoadMacro("AddTaskKinkResonanceLikeSign.C"); | |
314 | AliResonanceKinkLikeSign *taskkinklikesign = AddTaskKinkResonanceLikeSign(); | |
315 | } | |
316 | ||
317 | if (runUnicor) { | |
318 | //____________________________________________// | |
319 | // 12th task - UNICOR | |
320 | gROOT->LoadMacro("AddTaskUnicor.C"); | |
321 | AliAnalysisTaskUnicor *taskunicor = AddTaskUnicor(); | |
322 | } | |
323 | ||
324 | if (runFMDanalysis) { | |
325 | //____________________________________________// | |
326 | // 13th task - FMD | |
327 | gROOT->LoadMacro("AddTaskFMD.C"); | |
328 | AliFMDAnalysisTaskSE *taskfmd = AddTaskFMD(); | |
329 | } | |
330 | ||
df099f70 | 331 | if (runLRC) { |
332 | //____________________________________________// | |
333 | // 13th task - FMD | |
334 | gROOT->LoadMacro("AddTaskLRC.C"); | |
335 | // AliFMDAnalysisTaskSE *taskfmd = AddTaskFMD(); | |
336 | TList *lrcasks = AddLRCTaskSet(); | |
337 | } | |
338 | ||
e977741d | 339 | //____________________________________________// |
340 | // Running the train | |
341 | ||
342 | if (!mgr->InitAnalysis()) return; | |
343 | mgr->PrintStatus(); | |
344 | mgr->StartAnalysis("local",chain); | |
345 | ||
346 | timer.Stop(); | |
347 | timer.Print(); | |
348 | } | |
349 | ||
350 | Int_t setupPar(const char* pararchivename) { | |
351 | /////////////////// | |
352 | // Setup PAR File// | |
353 | /////////////////// | |
354 | if (pararchivename) { | |
355 | char processline[1024]; | |
356 | sprintf(processline,".! tar xvzf %s.par",pararchivename); | |
357 | gROOT->ProcessLine(processline); | |
358 | const char* ocwd = gSystem->WorkingDirectory(); | |
359 | gSystem->ChangeDirectory(pararchivename); | |
360 | ||
361 | // check for BUILD.sh and execute | |
362 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { | |
363 | printf("*******************************\n"); | |
364 | printf("*** Building PAR archive ***\n"); | |
365 | printf("*******************************\n"); | |
366 | ||
367 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { | |
368 | Error("runProcess","Cannot Build the PAR Archive! - Abort!"); | |
369 | return -1; | |
370 | } | |
371 | } | |
372 | // check for SETUP.C and execute | |
373 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { | |
374 | printf("*******************************\n"); | |
375 | printf("*** Setup PAR archive ***\n"); | |
376 | printf("*******************************\n"); | |
377 | gROOT->Macro("PROOF-INF/SETUP.C"); | |
378 | } | |
379 | ||
380 | gSystem->ChangeDirectory("../"); | |
381 | } | |
382 | ||
383 | return 1; | |
384 | } |