1 void runProtonAnalysisQA(const char* esdAnalysisType = "Hybrid",
2 const char* pidMode = "Sigma1") {
3 //Macro to run the proton QA analysis tested for local, proof & GRID.
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
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
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
16 //Analysis mode can be: "MC", "ESD", "AOD"
17 //ESD analysis type can be one of the three: "TPC", "Hybrid", "Global"
18 //PID mode can be one of the four: "Bayesian" (standard Bayesian approach)
19 // "Ratio" (ratio of measured over expected/theoretical dE/dx a la STAR)
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)
25 //runLocal("ESD",esdAnalysisType,pidMode,"/home/pchrist/ALICE/Baryons/QA/Local");
26 runProof("ESD",esdAnalysisType,pidMode,100000,"/COMMON/COMMON/LHC09d10_run104792-3#esdTree");
27 //runInteractive("ESD",esdAnalysisType,pidMode,"wn.xml");
28 //runBatch("ESD",esdAnalysisType,pidMode,"wn.xml");
34 //_________________________________________________//
35 void runLocal(const char* mode = "ESD",
36 const char* analysisType = 0x0,
37 const char* pidMode = 0x0,
38 const char* path = 0x0) {
39 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
40 outputFilename1 += "."; outputFilename1 += pidMode;
41 outputFilename1 += ".root"; //main QA file
42 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
43 outputFilename2 += "."; outputFilename2 += pidMode;
44 outputFilename2 += ".root"; //MC process QA
45 TString outputFilename3 = "Protons.QA.Histograms.";
46 outputFilename3 += analysisType;
47 outputFilename3 += "."; outputFilename3 += pidMode;
48 outputFilename3 += ".root"; //Accepted cut distributions
49 TString outputFilename4 = "Protons.Efficiency.";
50 outputFilename4 += analysisType;
51 outputFilename4 += "."; outputFilename4 += pidMode;
52 outputFilename4 += ".root"; //Reco and PID efficiency
53 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
55 gSystem->Load("libProofPlayer.so");
58 setupPar("STEERBase");
59 gSystem->Load("libSTEERBase.so");
61 gSystem->Load("libESD.so");
63 gSystem->Load("libAOD.so");
65 gSystem->Load("libANALYSIS.so");
66 setupPar("ANALYSISalice");
67 gSystem->Load("libANALYSISalice.so");
69 gSystem->Load("libCORRFW.so");
70 setupPar("PWG2spectra");
71 gSystem->Load("libPWG2spectra.so");
73 //____________________________________________//
74 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
75 tagAnalysis->ChainLocalTags(path);
77 AliRunTagCuts *runCuts = new AliRunTagCuts();
78 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
79 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
80 AliEventTagCuts *evCuts = new AliEventTagCuts();
83 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
84 chain->SetBranchStatus("*Calo*",0);
86 //____________________________________________//
87 gROOT->LoadMacro("configProtonAnalysis.C");
88 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
91 //____________________________________________//
92 // Make the analysis manager
93 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
94 AliVEventHandler* esdH = new AliESDInputHandler;
95 mgr->SetInputEventHandler(esdH);
96 AliMCEventHandler *mc = new AliMCEventHandler();
97 mgr->SetMCtruthEventHandler(mc);
99 //____________________________________________//
101 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
102 taskProtonsQA->SetAnalysisObject(analysis);
103 mgr->AddTask(taskProtonsQA);
105 // Create containers for input/output
106 /*AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
108 AliAnalysisManager::kInputContainer);*/
109 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
110 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
112 AliAnalysisManager::kOutputContainer,
113 outputFilename1.Data());
114 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
116 AliAnalysisManager::kOutputContainer,
117 outputFilename2.Data());
118 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
120 AliAnalysisManager::kOutputContainer,
121 outputFilename2.Data());
122 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
124 AliAnalysisManager::kOutputContainer,
125 outputFilename3.Data());
126 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
128 AliAnalysisManager::kOutputContainer,
129 outputFilename3.Data());
130 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
132 AliAnalysisManager::kOutputContainer,
133 outputFilename3.Data());
134 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
136 AliAnalysisManager::kOutputContainer,
137 outputFilename4.Data());
138 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
140 AliAnalysisManager::kOutputContainer,
141 outputFilename5.Data());
142 AliAnalysisDataContainer *coutput9 = mgr->CreateContainer("cutEfficiencyList",
144 AliAnalysisManager::kOutputContainer,
145 outputFilename4.Data());
147 //____________________________________________//
148 mgr->ConnectInput(taskProtonsQA,0,cinput1);
149 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
150 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
151 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
152 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
153 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
154 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
155 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
156 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
157 mgr->ConnectOutput(taskProtonsQA,8,coutput9);
159 if (!mgr->InitAnalysis()) return;
161 mgr->StartAnalysis("local",chain);
164 //_________________________________________________//
165 void runInteractive(const char* mode = "ESD",
166 const char* analysisType = 0x0,
167 const char* pidMode = 0x0,
168 const char* collectionName = "tag.xml") {
169 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
170 outputFilename1 += "."; outputFilename1 += pidMode;
171 outputFilename1 += ".root"; //main QA file
172 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
173 outputFilename2 += "."; outputFilename2 += pidMode;
174 outputFilename2 += ".root"; //MC process QA
175 TString outputFilename3 = "Protons.QA.Histograms.";
176 outputFilename3 += analysisType;
177 outputFilename3 += "."; outputFilename3 += pidMode;
178 outputFilename3 += ".root"; //Accepted cut distributions
179 TString outputFilename4 = "Protons.Efficiency.";
180 outputFilename4 += analysisType;
181 outputFilename4 += "."; outputFilename4 += pidMode;
182 outputFilename4 += ".root"; //Reco and PID efficiency
183 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
185 TGrid::Connect("alien://");
187 //Setup the par files
188 setupPar("STEERBase");
189 gSystem->Load("libSTEERBase.so");
191 gSystem->Load("libESD.so");
193 gSystem->Load("libAOD.so");
194 setupPar("ANALYSIS");
195 gSystem->Load("libANALYSIS.so");
196 setupPar("ANALYSISalice");
197 gSystem->Load("libANALYSISalice.so");
199 gSystem->Load("libCORRFW.so");
200 setupPar("PWG2spectra");
201 gSystem->Load("libPWG2spectra.so");
203 //____________________________________________//
204 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
206 AliRunTagCuts *runCuts = new AliRunTagCuts();
207 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
208 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
209 AliEventTagCuts *evCuts = new AliEventTagCuts();
212 TAlienCollection* coll = TAlienCollection::Open(collectionName);
213 TGridResult* TagResult = coll->GetGridResult("",0,0);
214 tagAnalysis->ChainGridTags(TagResult);
216 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
217 chain->SetBranchStatus("*Calo*",0);
219 //____________________________________________//
220 gROOT->LoadMacro("configProtonAnalysis.C");
221 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
224 //____________________________________________//
225 // Make the analysis manager
226 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
227 AliVEventHandler* esdH = new AliESDInputHandler;
228 mgr->SetInputEventHandler(esdH);
229 AliMCEventHandler *mc = new AliMCEventHandler();
230 mgr->SetMCtruthEventHandler(mc);
232 //____________________________________________//
234 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
235 taskProtonsQA->SetAnalysisObject(analysis);
236 mgr->AddTask(taskProtonsQA);
238 // Create containers for input/output
239 /*AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
241 AliAnalysisManager::kInputContainer);*/
242 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
243 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
245 AliAnalysisManager::kOutputContainer,
246 outputFilename1.Data());
247 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
249 AliAnalysisManager::kOutputContainer,
250 outputFilename2.Data());
251 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
253 AliAnalysisManager::kOutputContainer,
254 outputFilename2.Data());
255 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
257 AliAnalysisManager::kOutputContainer,
258 outputFilename3.Data());
259 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
261 AliAnalysisManager::kOutputContainer,
262 outputFilename3.Data());
263 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
265 AliAnalysisManager::kOutputContainer,
266 outputFilename3.Data());
267 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
269 AliAnalysisManager::kOutputContainer,
270 outputFilename4.Data());
271 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
273 AliAnalysisManager::kOutputContainer,
274 outputFilename5.Data());
275 AliAnalysisDataContainer *coutput9 = mgr->CreateContainer("cutEfficiencyList",
277 AliAnalysisManager::kOutputContainer,
278 outputFilename4.Data());
280 //____________________________________________//
281 mgr->ConnectInput(taskProtonsQA,0,cinput1);
282 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
283 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
284 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
285 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
286 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
287 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
288 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
289 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
290 mgr->ConnectOutput(taskProtonsQA,8,coutput9);
292 if (!mgr->InitAnalysis()) return;
294 mgr->StartAnalysis("local",chain);
297 //_________________________________________________//
298 void runBatch(const char* mode = "ESD",
299 const char* analysisType = 0x0,
300 const char* pidMode = 0x0,
301 const char *collectionfile = "wn.xml") {
302 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
303 outputFilename1 += "."; outputFilename1 += pidMode;
304 outputFilename1 += ".root"; //main QA file
305 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
306 outputFilename2 += "."; outputFilename2 += pidMode;
307 outputFilename2 += ".root"; //MC process QA
308 TString outputFilename3 = "Protons.QA.Histograms.";
309 outputFilename3 += analysisType;
310 outputFilename3 += "."; outputFilename3 += pidMode;
311 outputFilename3 += ".root"; //Accepted cut distributions
312 TString outputFilename4 = "Protons.Efficiency.";
313 outputFilename4 += analysisType;
314 outputFilename4 += "."; outputFilename4 += pidMode;
315 outputFilename4 += ".root"; //Reco and PID efficiency
316 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
318 TGrid::Connect("alien://");
319 gSystem->Load("libProofPlayer.so");
321 //Setup the par files
322 setupPar("STEERBase");
323 gSystem->Load("libSTEERBase.so");
325 gSystem->Load("libESD.so");
327 gSystem->Load("libAOD.so");
328 setupPar("ANALYSIS");
329 gSystem->Load("libANALYSIS.so");
330 setupPar("ANALYSISalice");
331 gSystem->Load("libANALYSISalice.so");
333 gSystem->Load("libCORRFW.so");
334 setupPar("PWG2spectra");
335 gSystem->Load("libPWG2spectra.so");
337 //____________________________________________//
338 //Usage of event tags
339 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
341 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
342 chain->SetBranchStatus("*Calo*",0);
344 //____________________________________________//
345 gROOT->LoadMacro("configProtonAnalysis.C");
346 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
349 //____________________________________________//
350 // Make the analysis manager
351 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
352 AliVEventHandler* esdH = new AliESDInputHandler;
353 mgr->SetInputEventHandler(esdH);
354 AliMCEventHandler *mc = new AliMCEventHandler();
355 mgr->SetMCtruthEventHandler(mc);
357 //____________________________________________//
359 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
360 taskProtonsQA->SetAnalysisObject(analysis);
361 mgr->AddTask(taskProtonsQA);
363 // Create containers for input/output
364 /*AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
366 AliAnalysisManager::kInputContainer);*/
367 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
368 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
370 AliAnalysisManager::kOutputContainer,
371 outputFilename1.Data());
372 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
374 AliAnalysisManager::kOutputContainer,
375 outputFilename2.Data());
376 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
378 AliAnalysisManager::kOutputContainer,
379 outputFilename2.Data());
380 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
382 AliAnalysisManager::kOutputContainer,
383 outputFilename3.Data());
384 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
386 AliAnalysisManager::kOutputContainer,
387 outputFilename3.Data());
388 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
390 AliAnalysisManager::kOutputContainer,
391 outputFilename3.Data());
392 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
394 AliAnalysisManager::kOutputContainer,
395 outputFilename4.Data());
396 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
398 AliAnalysisManager::kOutputContainer,
399 outputFilename5.Data());
400 AliAnalysisDataContainer *coutput9 = mgr->CreateContainer("cutEfficiencyList",
402 AliAnalysisManager::kOutputContainer,
403 outputFilename4.Data());
405 //____________________________________________//
406 mgr->ConnectInput(taskProtonsQA,0,cinput1);
407 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
408 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
409 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
410 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
411 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
412 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
413 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
414 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
415 mgr->ConnectOutput(taskProtonsQA,8,coutput9);
417 if (!mgr->InitAnalysis()) return;
419 mgr->StartAnalysis("local",chain);
422 //_________________________________________________//
423 void runProof(const char* mode = "ESD",
424 const char* analysisType = 0x0,
425 const char* pidMode = 0x0,
427 const char* dataset = 0x0) {
428 TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
429 outputFilename1 += "."; outputFilename1 += pidMode;
430 outputFilename1 += ".root"; //main QA file
431 TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
432 outputFilename2 += "."; outputFilename2 += pidMode;
433 outputFilename2 += ".root"; //MC process QA
434 TString outputFilename3 = "Protons.QA.Histograms.";
435 outputFilename3 += analysisType;
436 outputFilename3 += "."; outputFilename3 += pidMode;
437 outputFilename3 += ".root"; //Accepted cut distributions
438 TString outputFilename4 = "Protons.Efficiency.";
439 outputFilename4 += analysisType;
440 outputFilename4 += "."; outputFilename4 += pidMode;
441 outputFilename4 += ".root"; //Reco and PID efficiency
442 TString outputFilename5 = "Vertex.QA.root"; //vertex QA
444 gEnv->SetValue("XSec.GSI.DelegProxy","2");
445 printf("****** Connect to PROOF *******\n");
446 TProof::Open("alicecaf.cern.ch");
447 gProof->SetParallel();
449 // Enable the Analysis Package
450 gProof->UploadPackage("STEERBase.par");
451 gProof->EnablePackage("STEERBase");
452 gProof->UploadPackage("ESD.par");
453 gProof->EnablePackage("ESD");
454 gProof->UploadPackage("AOD.par");
455 gProof->EnablePackage("AOD");
456 gProof->UploadPackage("ANALYSIS.par");
457 gProof->EnablePackage("ANALYSIS");
458 gProof->UploadPackage("ANALYSISalice.par");
459 gProof->EnablePackage("ANALYSISalice");
460 gProof->UploadPackage("CORRFW.par");
461 gProof->EnablePackage("CORRFW");
462 gProof->UploadPackage("PWG2spectra.par");
463 gProof->EnablePackage("PWG2spectra");
465 //____________________________________________//
466 //gProof->Load("configProtonAnalysis.C");
467 gROOT->LoadMacro("configProtonAnalysis.C");
468 AliProtonQAAnalysis *analysis = GetProtonQAAnalysisObject(mode,
471 //____________________________________________//
472 // Make the analysis manager
473 AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisQAManager");
474 AliVEventHandler* esdH = new AliESDInputHandler;
475 mgr->SetInputEventHandler(esdH);
476 AliMCEventHandler *mc = new AliMCEventHandler();
477 mgr->SetMCtruthEventHandler(mc);
479 //____________________________________________//
481 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
482 taskProtonsQA->SetAnalysisObject(analysis);
483 mgr->AddTask(taskProtonsQA);
485 // Create containers for input/output
486 /*AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
488 AliAnalysisManager::kInputContainer);*/
489 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
490 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
492 AliAnalysisManager::kOutputContainer,
493 outputFilename1.Data());
494 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
496 AliAnalysisManager::kOutputContainer,
497 outputFilename2.Data());
498 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
500 AliAnalysisManager::kOutputContainer,
501 outputFilename2.Data());
502 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
504 AliAnalysisManager::kOutputContainer,
505 outputFilename3.Data());
506 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList",
508 AliAnalysisManager::kOutputContainer,
509 outputFilename3.Data());
510 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList",
512 AliAnalysisManager::kOutputContainer,
513 outputFilename3.Data());
514 AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList",
516 AliAnalysisManager::kOutputContainer,
517 outputFilename4.Data());
518 AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList",
520 AliAnalysisManager::kOutputContainer,
521 outputFilename5.Data());
522 AliAnalysisDataContainer *coutput9 = mgr->CreateContainer("cutEfficiencyList",
524 AliAnalysisManager::kOutputContainer,
525 outputFilename4.Data());
527 //____________________________________________//
528 mgr->ConnectInput(taskProtonsQA,0,cinput1);
529 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
530 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
531 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
532 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
533 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
534 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
535 mgr->ConnectOutput(taskProtonsQA,6,coutput7);
536 mgr->ConnectOutput(taskProtonsQA,7,coutput8);
537 mgr->ConnectOutput(taskProtonsQA,8,coutput9);
539 if (!mgr->InitAnalysis()) return;
543 mgr->StartAnalysis("proof",dataset,stats);
545 // You should get this macro and the txt file from:
546 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
547 gROOT->LoadMacro("CreateESDChain.C");
549 chain = CreateESDChain("ESD82XX_30K.txt",stats);
550 chain->SetBranchStatus("*Calo*",0);
552 mgr->StartAnalysis("proof",chain);
553 //mgr->StartAnalysis("local",chain);
557 //_________________________________________________//
558 Int_t setupPar(const char* pararchivename) {
562 if (pararchivename) {
563 char processline[1024];
564 sprintf(processline,".! tar xvzf %s.par",pararchivename);
565 gROOT->ProcessLine(processline);
566 const char* ocwd = gSystem->WorkingDirectory();
567 gSystem->ChangeDirectory(pararchivename);
569 // check for BUILD.sh and execute
570 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
571 printf("*******************************\n");
572 printf("*** Building PAR archive ***\n");
573 printf("*******************************\n");
575 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
576 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
580 // check for SETUP.C and execute
581 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
582 printf("*******************************\n");
583 printf("*** Setup PAR archive ***\n");
584 printf("*******************************\n");
585 gROOT->Macro("PROOF-INF/SETUP.C");
588 gSystem->ChangeDirectory("../");