]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/macros/Train2/runBatch.C
Last modifictaions for PWG2 -> PWGLF
[u/mrichter/AliRoot.git] / PWG2 / macros / Train2 / runBatch.C
CommitLineData
e977741d 1void 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
350Int_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}