]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/macros/runProtonAnalysisQA.C
Fixing the proof mode
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / macros / runProtonAnalysisQA.C
CommitLineData
57e749bb 1void runProtonAnalysisQA(const char* esdAnalysisType = "Hybrid",
e7df5638 2 const char* pidMode = "Bayesian") {
9e2392b0 3 //Macro to run the proton QA analysis tested for local, proof & GRID.
e7df5638 4 //Local: Takes four arguments, the analysis mode, the type of the ESD
5 // analysis, the PID mode and the path where the tag and ESD or
6 // AOD files reside.
7 //Interactive: Takes four arguments, the analysis mode, the type of the ESD
8 // analysis, the PID mode and the name of the collection of tag
9 // files.
10 //Batch: Takes four arguments, the analysis mode, the type of the ESD
11 // analysis, the PID mode and the name of the collection file with
12 // the event list for each file.
13 //Proof: Takes five arguments, the analysis level, the analysis mode in
14 // case of ESD, the PID mode, the number of events and the dataset
15 // name and .
16 //Analysis mode can be: "MC", "ESD", "AOD"
17 //ESD analysis type can be one of the three: "TPC", "Hybrid", "Global"
87a55728 18 //PID mode can be one of the four: "Bayesian" (standard Bayesian approach)
e7df5638 19 // "Ratio" (ratio of measured over expected/theoretical dE/dx a la STAR)
87a55728 20 // "Sigma1" (N-sigma area around the fitted dE/dx vs P band)
21 // "Sigma2" (same as previous but taking into account the No of TPC points)
7b59a00b 22 TStopwatch timer;
23 timer.Start();
24
23248c56 25 //runLocal("ESD",esdAnalysisType,pidMode,"/home/pchrist/ALICE/Baryons/QA/Local");
26 runProof("ESD",esdAnalysisType,pidMode,100000,"/COMMON/COMMON/LHC09a4_run8100X#esdTree");
9a316962 27 //runInteractive("ESD",esdAnalysisType,pidMode,"wn.xml");
28 //runBatch("ESD",esdAnalysisType,pidMode,"wn.xml");
75decd62 29
7b59a00b 30 timer.Stop();
31 timer.Print();
32}
33
75decd62 34//_________________________________________________//
e7df5638 35void runLocal(const char* mode = "ESD",
36 const char* analysisType = 0x0,
37 const char* pidMode = 0x0,
57e749bb 38 const char* path = 0x0) {
75decd62 39 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
40 outputFilename1 += ".root"; //main QA file
41 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
42 outputFilename2 += ".root"; //MC process QA
43 TString outputFilename3 = "Protons.QA.Histograms.";
44 outputFilename3 += analysisType;
45 outputFilename3 += ".root"; //Accepted cut distributions
46 TString outputFilename4 = "Protons.Efficiency.";
47 outputFilename4 += analysisType;
48 outputFilename4 += ".root"; //Reco and PID efficiency
49 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
50
51 gSystem->Load("libProofPlayer.so");
52
53 //Setup the par files
54 setupPar("STEERBase");
55 gSystem->Load("libSTEERBase.so");
56 setupPar("ESD");
57 gSystem->Load("libESD.so");
58 setupPar("AOD");
59 gSystem->Load("libAOD.so");
60 setupPar("ANALYSIS");
61 gSystem->Load("libANALYSIS.so");
62 setupPar("ANALYSISalice");
63 gSystem->Load("libANALYSISalice.so");
64 setupPar("CORRFW");
65 gSystem->Load("libCORRFW.so");
66 setupPar("PWG2spectra");
67 gSystem->Load("libPWG2spectra.so");
68
e7df5638 69 //____________________________________________//
70 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
71 tagAnalysis->ChainLocalTags(path);
72
73 AliRunTagCuts *runCuts = new AliRunTagCuts();
74 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
75 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
76 AliEventTagCuts *evCuts = new AliEventTagCuts();
75decd62 77
e7df5638 78 TChain* chain = 0x0;
79 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
80 chain->SetBranchStatus("*Calo*",0);
81
82 //____________________________________________//
83 gROOT->LoadMacro("configProtonAnalysis.C");
84 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
85 analysisType,
86 pidMode);
75decd62 87 //____________________________________________//
88 // Make the analysis manager
e7df5638 89 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
75decd62 90 AliVEventHandler* esdH = new AliESDInputHandler;
91 mgr->SetInputEventHandler(esdH);
92 AliMCEventHandler *mc = new AliMCEventHandler();
93 mgr->SetMCtruthEventHandler(mc);
94
95 //____________________________________________//
96 // 1st Proton task
97 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
e7df5638 98 taskProtonsQA->SetAnalysisObject(analysis);
75decd62 99 mgr->AddTask(taskProtonsQA);
100
101 // Create containers for input/output
102 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
103 TChain::Class(),
104 AliAnalysisManager::kInputContainer);
105 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
106 TList::Class(),
107 AliAnalysisManager::kOutputContainer,
108 outputFilename1.Data());
109 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
110 TList::Class(),
111 AliAnalysisManager::kOutputContainer,
112 outputFilename2.Data());
113 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
114 TList::Class(),
115 AliAnalysisManager::kOutputContainer,
116 outputFilename2.Data());
117 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
118 TList::Class(),
119 AliAnalysisManager::kOutputContainer,
120 outputFilename3.Data());
5661e210 121 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
75decd62 122 TList::Class(),
123 AliAnalysisManager::kOutputContainer,
124 outputFilename3.Data());
5661e210 125 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
126 TList::Class(),
127 AliAnalysisManager::kOutputContainer,
128 outputFilename3.Data());
129 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
75decd62 130 TList::Class(),
131 AliAnalysisManager::kOutputContainer,
132 outputFilename4.Data());
5661e210 133 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
75decd62 134 TList::Class(),
135 AliAnalysisManager::kOutputContainer,
136 outputFilename5.Data());
e7df5638 137
75decd62 138 //____________________________________________//
139 mgr->ConnectInput(taskProtonsQA,0,cinput1);
140 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
141 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
142 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
143 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
144 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
145 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
146 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
5661e210 147 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
75decd62 148 if (!mgr->InitAnalysis()) return;
149 mgr->PrintStatus();
150 mgr->StartAnalysis("local",chain);
151}
152
1b309669 153//_________________________________________________//
e7df5638 154void runInteractive(const char* mode = "ESD",
155 const char* analysisType = 0x0,
156 const char* pidMode = 0x0,
157 const char* collectionName = "tag.xml") {
1b309669 158 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
159 outputFilename1 += ".root"; //main QA file
160 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
161 outputFilename2 += ".root"; //MC process QA
162 TString outputFilename3 = "Protons.QA.Histograms.";
163 outputFilename3 += analysisType;
164 outputFilename3 += ".root"; //Accepted cut distributions
165 TString outputFilename4 = "Protons.Efficiency.";
166 outputFilename4 += analysisType;
167 outputFilename4 += ".root"; //Reco and PID efficiency
75decd62 168 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
1b309669 169
170 TGrid::Connect("alien://");
1b309669 171
172 //Setup the par files
173 setupPar("STEERBase");
174 gSystem->Load("libSTEERBase.so");
175 setupPar("ESD");
176 gSystem->Load("libESD.so");
177 setupPar("AOD");
178 gSystem->Load("libAOD.so");
179 setupPar("ANALYSIS");
180 gSystem->Load("libANALYSIS.so");
181 setupPar("ANALYSISalice");
182 gSystem->Load("libANALYSISalice.so");
183 setupPar("CORRFW");
184 gSystem->Load("libCORRFW.so");
185 setupPar("PWG2spectra");
186 gSystem->Load("libPWG2spectra.so");
187
1b309669 188 //____________________________________________//
e7df5638 189 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
190
191 AliRunTagCuts *runCuts = new AliRunTagCuts();
192 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
193 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
194 AliEventTagCuts *evCuts = new AliEventTagCuts();
195
196 //grid tags
197 TAlienCollection* coll = TAlienCollection::Open(collectionName);
198 TGridResult* TagResult = coll->GetGridResult("",0,0);
199 tagAnalysis->ChainGridTags(TagResult);
200 TChain* chain = 0x0;
201 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
202 chain->SetBranchStatus("*Calo*",0);
203
204 //____________________________________________//
205 gROOT->LoadMacro("configProtonAnalysis.C");
206 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
207 analysisType,
208 pidMode);
1b309669 209 //____________________________________________//
210 // Make the analysis manager
e7df5638 211 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
1b309669 212 AliVEventHandler* esdH = new AliESDInputHandler;
213 mgr->SetInputEventHandler(esdH);
214 AliMCEventHandler *mc = new AliMCEventHandler();
215 mgr->SetMCtruthEventHandler(mc);
216
217 //____________________________________________//
218 // 1st Proton task
219 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
e7df5638 220 taskProtonsQA->SetAnalysisObject(analysis);
1b309669 221 mgr->AddTask(taskProtonsQA);
222
223 // Create containers for input/output
23248c56 224 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
225 TChain::Class(),
226 AliAnalysisManager::kInputContainer);
1b309669 227 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
228 TList::Class(),
229 AliAnalysisManager::kOutputContainer,
230 outputFilename1.Data());
231 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
232 TList::Class(),
233 AliAnalysisManager::kOutputContainer,
234 outputFilename2.Data());
235 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
236 TList::Class(),
237 AliAnalysisManager::kOutputContainer,
238 outputFilename2.Data());
239 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
240 TList::Class(),
241 AliAnalysisManager::kOutputContainer,
242 outputFilename3.Data());
5661e210 243 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
244 TList::Class(),
245 AliAnalysisManager::kOutputContainer,
246 outputFilename3.Data());
247 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
1b309669 248 TList::Class(),
249 AliAnalysisManager::kOutputContainer,
250 outputFilename3.Data());
5661e210 251 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
1b309669 252 TList::Class(),
253 AliAnalysisManager::kOutputContainer,
254 outputFilename4.Data());
5661e210 255 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
75decd62 256 TList::Class(),
257 AliAnalysisManager::kOutputContainer,
258 outputFilename5.Data());
1b309669 259
260 //____________________________________________//
261 mgr->ConnectInput(taskProtonsQA,0,cinput1);
262 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
263 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
264 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
265 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
266 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
267 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
75decd62 268 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
5661e210 269 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
1b309669 270 if (!mgr->InitAnalysis()) return;
271 mgr->PrintStatus();
272 mgr->StartAnalysis("local",chain);
273}
274
7b59a00b 275//_________________________________________________//
e7df5638 276void runBatch(const char* mode = "ESD",
277 const char* analysisType = 0x0,
278 const char* pidMode = 0x0,
279 const char *collectionfile = "wn.xml") {
9e2392b0 280 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
281 outputFilename1 += ".root"; //main QA file
282 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
283 outputFilename2 += ".root"; //MC process QA
284 TString outputFilename3 = "Protons.QA.Histograms.";
285 outputFilename3 += analysisType;
286 outputFilename3 += ".root"; //Accepted cut distributions
287 TString outputFilename4 = "Protons.Efficiency.";
288 outputFilename4 += analysisType;
289 outputFilename4 += ".root"; //Reco and PID efficiency
75decd62 290 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
e2f97a75 291
292 TGrid::Connect("alien://");
e7df5638 293 gSystem->Load("libProofPlayer.so");
e2f97a75 294
295 //Setup the par files
296 setupPar("STEERBase");
297 gSystem->Load("libSTEERBase.so");
298 setupPar("ESD");
299 gSystem->Load("libESD.so");
300 setupPar("AOD");
301 gSystem->Load("libAOD.so");
302 setupPar("ANALYSIS");
303 gSystem->Load("libANALYSIS.so");
304 setupPar("ANALYSISalice");
305 gSystem->Load("libANALYSISalice.so");
306 setupPar("CORRFW");
307 gSystem->Load("libCORRFW.so");
308 setupPar("PWG2spectra");
309 gSystem->Load("libPWG2spectra.so");
310
e2f97a75 311 //____________________________________________//
312 //Usage of event tags
e7df5638 313 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
e2f97a75 314 TChain *chain = 0x0;
e7df5638 315 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
316 chain->SetBranchStatus("*Calo*",0);
317
318 //____________________________________________//
319 gROOT->LoadMacro("configProtonAnalysis.C");
320 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
321 analysisType,
322 pidMode);
e2f97a75 323 //____________________________________________//
324 // Make the analysis manager
e7df5638 325 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
e2f97a75 326 AliVEventHandler* esdH = new AliESDInputHandler;
327 mgr->SetInputEventHandler(esdH);
328 AliMCEventHandler *mc = new AliMCEventHandler();
329 mgr->SetMCtruthEventHandler(mc);
7b59a00b 330
e2f97a75 331 //____________________________________________//
332 // 1st Proton task
333 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
e7df5638 334 taskProtonsQA->SetAnalysisObject(analysis);
e2f97a75 335 mgr->AddTask(taskProtonsQA);
336
337 // Create containers for input/output
e7df5638 338 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
339 TChain::Class(),
340 AliAnalysisManager::kInputContainer);
e2f97a75 341 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
342 TList::Class(),
343 AliAnalysisManager::kOutputContainer,
344 outputFilename1.Data());
345 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
346 TList::Class(),
347 AliAnalysisManager::kOutputContainer,
348 outputFilename2.Data());
349 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
350 TList::Class(),
351 AliAnalysisManager::kOutputContainer,
352 outputFilename2.Data());
353 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
354 TList::Class(),
355 AliAnalysisManager::kOutputContainer,
356 outputFilename3.Data());
5661e210 357 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
e2f97a75 358 TList::Class(),
359 AliAnalysisManager::kOutputContainer,
360 outputFilename3.Data());
5661e210 361 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
362 TList::Class(),
363 AliAnalysisManager::kOutputContainer,
364 outputFilename3.Data());
365 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
e2f97a75 366 TList::Class(),
367 AliAnalysisManager::kOutputContainer,
368 outputFilename4.Data());
5661e210 369 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
75decd62 370 TList::Class(),
371 AliAnalysisManager::kOutputContainer,
372 outputFilename5.Data());
e2f97a75 373
374 //____________________________________________//
375 mgr->ConnectInput(taskProtonsQA,0,cinput1);
376 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
377 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
378 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
379 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
380 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
381 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
75decd62 382 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
5661e210 383 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
e2f97a75 384 if (!mgr->InitAnalysis()) return;
385 mgr->PrintStatus();
386 mgr->StartAnalysis("local",chain);
387}
388
389//_________________________________________________//
e7df5638 390void runProof(const char* mode = "ESD",
391 const char* analysisType = 0x0,
392 const char* pidMode = 0x0,
393 Int_t stats = 0,
394 const char* dataset = 0x0) {
9e2392b0 395 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
396 outputFilename1 += ".root"; //main QA file
397 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
398 outputFilename2 += ".root"; //MC process QA
399 TString outputFilename3 = "Protons.QA.Histograms.";
400 outputFilename3 += analysisType;
401 outputFilename3 += ".root"; //Accepted cut distributions
402 TString outputFilename4 = "Protons.Efficiency.";
403 outputFilename4 += analysisType;
404 outputFilename4 += ".root"; //Reco and PID efficiency
75decd62 405 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
7b59a00b 406
407 printf("****** Connect to PROOF *******\n");
96f84c25 408 TProof::Open("alicecaf.cern.ch");
7b59a00b 409 gProof->SetParallel();
410
411 // Enable the Analysis Package
412 gProof->UploadPackage("STEERBase.par");
413 gProof->EnablePackage("STEERBase");
414 gProof->UploadPackage("ESD.par");
415 gProof->EnablePackage("ESD");
416 gProof->UploadPackage("AOD.par");
417 gProof->EnablePackage("AOD");
418 gProof->UploadPackage("ANALYSIS.par");
419 gProof->EnablePackage("ANALYSIS");
420 gProof->UploadPackage("ANALYSISalice.par");
421 gProof->EnablePackage("ANALYSISalice");
f99662ca 422 gProof->UploadPackage("CORRFW.par");
423 gProof->EnablePackage("CORRFW");
7b59a00b 424 gProof->UploadPackage("PWG2spectra.par");
425 gProof->EnablePackage("PWG2spectra");
426
e7df5638 427 //____________________________________________//
23248c56 428 //gProof->Load("configProtonAnalysis.C");
e7df5638 429 gROOT->LoadMacro("configProtonAnalysis.C");
430 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
431 analysisType,
432 pidMode);
7b59a00b 433 //____________________________________________//
434 // Make the analysis manager
e7df5638 435 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
7b59a00b 436 AliVEventHandler* esdH = new AliESDInputHandler;
437 mgr->SetInputEventHandler(esdH);
438 AliMCEventHandler *mc = new AliMCEventHandler();
439 mgr->SetMCtruthEventHandler(mc);
440
441 //____________________________________________//
442 // 1st Proton task
443 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
e7df5638 444 taskProtonsQA->SetAnalysisObject(analysis);
7b59a00b 445 mgr->AddTask(taskProtonsQA);
446
447 // Create containers for input/output
23248c56 448 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
449 TChain::Class(),
450 AliAnalysisManager::kInputContainer);
5b8133c7 451 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
f99662ca 452 TList::Class(),
453 AliAnalysisManager::kOutputContainer,
d4733690 454 outputFilename1.Data());
5b8133c7 455 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
d4733690 456 TList::Class(),
457 AliAnalysisManager::kOutputContainer,
458 outputFilename2.Data());
5b8133c7 459 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
d4733690 460 TList::Class(),
461 AliAnalysisManager::kOutputContainer,
0008a5a6 462 outputFilename2.Data());
5b8133c7 463 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
464 TList::Class(),
465 AliAnalysisManager::kOutputContainer,
466 outputFilename3.Data());
5661e210 467 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
468 TList::Class(),
469 AliAnalysisManager::kOutputContainer,
470 outputFilename3.Data());
471 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
5b8133c7 472 TList::Class(),
473 AliAnalysisManager::kOutputContainer,
474 outputFilename3.Data());
5661e210 475 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
e2f97a75 476 TList::Class(),
477 AliAnalysisManager::kOutputContainer,
478 outputFilename4.Data());
5661e210 479 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
75decd62 480 TList::Class(),
481 AliAnalysisManager::kOutputContainer,
482 outputFilename5.Data());
7b59a00b 483
484 //____________________________________________//
485 mgr->ConnectInput(taskProtonsQA,0,cinput1);
486 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
d4733690 487 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
488 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
5b8133c7 489 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
490 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
e2f97a75 491 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
75decd62 492 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
5661e210 493 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
7b59a00b 494 if (!mgr->InitAnalysis()) return;
495 mgr->PrintStatus();
496
497 if(dataset)
498 mgr->StartAnalysis("proof",dataset,stats);
499 else {
500 // You should get this macro and the txt file from:
501 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
502 gROOT->LoadMacro("CreateESDChain.C");
503 TChain* chain = 0x0;
504 chain = CreateESDChain("ESD82XX_30K.txt",stats);
505 chain->SetBranchStatus("*Calo*",0);
506
507 mgr->StartAnalysis("proof",chain);
f99662ca 508 //mgr->StartAnalysis("local",chain);
7b59a00b 509 }
7b59a00b 510}
511
512//_________________________________________________//
513Int_t setupPar(const char* pararchivename) {
514 ///////////////////
515 // Setup PAR File//
516 ///////////////////
517 if (pararchivename) {
518 char processline[1024];
519 sprintf(processline,".! tar xvzf %s.par",pararchivename);
1b309669 520 gROOT->ProcessLine(processline);
7b59a00b 521 const char* ocwd = gSystem->WorkingDirectory();
522 gSystem->ChangeDirectory(pararchivename);
523
524 // check for BUILD.sh and execute
525 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
526 printf("*******************************\n");
527 printf("*** Building PAR archive ***\n");
528 printf("*******************************\n");
529
530 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
531 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
532 return -1;
533 }
534 }
535 // check for SETUP.C and execute
536 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
537 printf("*******************************\n");
538 printf("*** Setup PAR archive ***\n");
539 printf("*******************************\n");
540 gROOT->Macro("PROOF-INF/SETUP.C");
541 }
542
543 gSystem->ChangeDirectory("../");
544 }
545 return 1;
546}