1 void runProtonAnalysis() {
6 //runInteractive("ESD");
9 runProof("ESD",200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T"); //use data sets
10 //runProof("ESD",200); //use ascii files
16 //_________________________________________________//
17 void runLocal(const char* mode = "ESD") {
20 gSystem->Load("libTree.so");
21 //____________________________________________________//
22 //_____________Setting up STEERBase.par_______________//
23 //____________________________________________________//
24 setupPar("STEERBase");
25 gSystem->Load("libSTEERBase.so");
27 //____________________________________________________//
28 //_____________Setting up ESD.par_____________________//
29 //____________________________________________________//
31 gSystem->Load("libVMC.so");
32 gSystem->Load("libESD.so");
34 //____________________________________________________//
35 //_____________Setting up AOD.par_____________________//
36 //____________________________________________________//
38 gSystem->Load("libAOD.so");
40 //_________________________________________________________//
41 //_____________Setting up ANALYSIS.par_____________________//
42 //_________________________________________________________//
44 gSystem->Load("libANALYSIS.so");
46 //_________________________________________________________//
47 //___________Setting up ANALYSISalice.par__________________//
48 //_________________________________________________________//
49 setupPar("ANALYSISalice");
50 gSystem->Load("libANALYSISalice.so");
52 //__________________________________________________//
53 //___________Setting up CORRFW.par__________________//
54 //__________________________________________________//
55 setupPar->UploadPackage("CORRFW.par");
56 gSystem->EnablePackage("CORRFW");
58 //____________________________________________________________//
59 //_____________Setting up PWG2spectra.par_____________________//
60 //____________________________________________________________//
61 setupPar("PWG2spectra");
62 gSystem->Load("libPWG2spectra.so");
64 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
66 //____________________________________________//
67 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
68 tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
70 AliRunTagCuts *runCuts = new AliRunTagCuts();
71 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
72 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
73 AliEventTagCuts *evCuts = new AliEventTagCuts();
76 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
77 chain->SetBranchStatus("*Calo*",0);
79 //____________________________________________//
80 // Make the analysis manager
81 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
82 AliVEventHandler* esdH = new AliESDInputHandler;
83 mgr->SetInputEventHandler(esdH);
85 AliMCEventHandler *mc = new AliMCEventHandler();
86 mgr->SetMCtruthEventHandler(mc);
89 //____________________________________________//
91 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
92 taskProtons->SetType(mode);
93 taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
94 taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
95 taskProtons->SetAcceptedVertexDiamond(5.,5.,15.);
96 //Momentum dependent priors
97 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
98 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
99 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
100 TF1 *fitPions = (TF1 *)f->Get("fitPions");
101 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
102 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
103 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
108 mgr->AddTask(taskProtons);
110 // Create containers for input/output
111 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
113 AliAnalysisManager::kInputContainer);
114 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
116 AliAnalysisManager::kOutputCont
119 //____________________________________________//
120 mgr->ConnectInput(taskProtons,0,cinput1);
121 mgr->ConnectOutput(taskProtons,0,coutput1);
122 if (!mgr->InitAnalysis()) return;
124 mgr->StartAnalysis("local",chain);
130 //_________________________________________________//
131 void runInteractive(const char* mode = "ESD") {
134 gSystem->Load("libProofPlayer.so");
136 printf("*** Connect to AliEn ***\n");
137 TGrid::Connect("alien://");
139 //____________________________________________________//
140 //_____________Setting up STEERBase.par_______________//
141 //____________________________________________________//
142 setupPar("STEERBase");
143 gSystem->Load("libSTEERBase.so");
145 //____________________________________________________//
146 //_____________Setting up ESD.par_____________________//
147 //____________________________________________________//
149 gSystem->Load("libVMC.so");
150 gSystem->Load("libESD.so");
152 //____________________________________________________//
153 //_____________Setting up AOD.par_____________________//
154 //____________________________________________________//
156 gSystem->Load("libAOD.so");
158 //_________________________________________________________//
159 //_____________Setting up ANALYSIS.par_____________________//
160 //_________________________________________________________//
161 setupPar("ANALYSIS");
162 gSystem->Load("libANALYSIS.so");
164 //_________________________________________________________//
165 //___________Setting up ANALYSISalice.par__________________//
166 //_________________________________________________________//
167 setupPar("ANALYSISalice");
168 gSystem->Load("libANALYSISalice.so");
170 //__________________________________________________//
171 //___________Setting up CORRFW.par__________________//
172 //__________________________________________________//
173 setupPar->UploadPackage("CORRFW.par");
174 gSystem->EnablePackage("CORRFW");
176 //____________________________________________________________//
177 //_____________Setting up PWG2spectra.par_____________________//
178 //____________________________________________________________//
179 setupPar("PWG2spectra");
180 gSystem->Load("libPWG2spectra.so");
182 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
184 //____________________________________________//
185 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
187 AliRunTagCuts *runCuts = new AliRunTagCuts();
188 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
189 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
190 AliEventTagCuts *evCuts = new AliEventTagCuts();
193 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
194 TGridResult* TagResult = coll->GetGridResult("",0,0);
195 tagAnalysis->ChainGridTags(TagResult);
197 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
198 chain->SetBranchStatus("*Calo*",0);
200 //____________________________________________//
201 // Make the analysis manager
202 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
203 AliVEventHandler* esdH = new AliESDInputHandler;
204 mgr->SetInputEventHandler(esdH);
206 AliMCEventHandler *mc = new AliMCEventHandler();
207 mgr->SetMCtruthEventHandler(mc);
210 //____________________________________________//
212 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
213 taskProtons->SetType(mode);
214 taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
215 taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
216 taskProtons->SetAcceptedVertexDiamond(5.,5.,15.);
217 //Momentum dependent priors
218 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
219 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
220 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
221 TF1 *fitPions = (TF1 *)f->Get("fitPions");
222 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
223 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
224 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
229 mgr->AddTask(taskProtons);
231 // Create containers for input/output
232 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
234 AliAnalysisManager::kInputContainer);
235 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
237 AliAnalysisManager::kOutputCont
240 //____________________________________________//
241 mgr->ConnectInput(taskProtons,0,cinput1);
242 mgr->ConnectOutput(taskProtons,0,coutput1);
243 if (!mgr->InitAnalysis()) return;
245 mgr->StartAnalysis("local",chain);
251 //_________________________________________________//
252 void runBatch(const char* mode = "ESD") {
256 printf("*** Connect to AliEn ***\n");
257 TGrid::Connect("alien://");
258 gSystem->Load("libProofPlayer.so");
260 //____________________________________________________//
261 //_____________Setting up STEERBase.par_______________//
262 //____________________________________________________//
263 setupPar("STEERBase");
264 gSystem->Load("libSTEERBase.so");
266 //____________________________________________________//
267 //_____________Setting up ESD.par_____________________//
268 //____________________________________________________//
270 gSystem->Load("libVMC.so");
271 gSystem->Load("libESD.so");
273 //____________________________________________________//
274 //_____________Setting up AOD.par_____________________//
275 //____________________________________________________//
277 gSystem->Load("libAOD.so");
279 //_________________________________________________________//
280 //_____________Setting up ANALYSIS.par_____________________//
281 //_________________________________________________________//
282 setupPar("ANALYSIS");
283 gSystem->Load("libANALYSIS.so");
285 //_________________________________________________________//
286 //___________Setting up ANALYSISalice.par__________________//
287 //_________________________________________________________//
288 setupPar("ANALYSISalice");
289 gSystem->Load("libANALYSISalice.so");
291 //__________________________________________________//
292 //___________Setting up CORRFW.par__________________//
293 //__________________________________________________//
294 setupPar->UploadPackage("CORRFW.par");
295 gSystem->EnablePackage("CORRFW");
297 //____________________________________________________________//
298 //_____________Setting up PWG2spectra.par_____________________//
299 //____________________________________________________________//
300 setupPar("PWG2spectra");
301 gSystem->Load("libPWG2spectra.so");
304 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
305 const char *collectionfile = "wn.xml";
307 //____________________________________________//
308 //Usage of event tags
309 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
311 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
312 chain->SetBranchStatus("*Calo*",0);
314 //____________________________________________//
315 // Make the analysis manager
316 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
317 AliVEventHandler* esdH = new AliESDInputHandler;
318 mgr->SetInputEventHandler(esdH);
320 AliMCEventHandler *mc = new AliMCEventHandler();
321 mgr->SetMCtruthEventHandler(mc);
324 //____________________________________________//
326 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
327 taskProtons->SetType(mode);
328 taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
329 taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
330 taskProtons->SetAcceptedVertexDiamond(5.,5.,15.);
331 //Momentum dependent priors
332 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
333 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
334 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
335 TF1 *fitPions = (TF1 *)f->Get("fitPions");
336 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
337 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
338 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
343 mgr->AddTask(taskProtons);
345 // Create containers for input/output
346 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
347 TChain::Class(),AliAnalysisManager::kInputContainer);
348 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
349 TList::Class(),AliAnalysisManager::kOutputCont
352 //____________________________________________//
353 mgr->ConnectInput(taskProtons,0,cinput1);
354 mgr->ConnectOutput(taskProtons,0,coutput1);
355 if (!mgr->InitAnalysis()) return;
357 mgr->StartAnalysis("grid",chain);
363 //_________________________________________________//
364 void runProof(const char* mode = "ESD",
366 const char* dataset = 0x0) {
370 TString smode = mode;
371 TString outputFilename = "Protons."; outputFilename += mode;
372 outputFilename += ".root";
374 printf("****** Connect to PROOF *******\n");
375 TProof::Open("alicecaf.cern.ch");
376 gProof->SetParallel();
378 // Enable the Analysis Package
379 gProof->UploadPackage("STEERBase.par");
380 gProof->EnablePackage("STEERBase");
381 gProof->UploadPackage("ESD.par");
382 gProof->EnablePackage("ESD");
383 gProof->UploadPackage("AOD.par");
384 gProof->EnablePackage("AOD");
385 gProof->UploadPackage("ANALYSIS.par");
386 gProof->EnablePackage("ANALYSIS");
387 gProof->UploadPackage("ANALYSISalice.par");
388 gProof->EnablePackage("ANALYSISalice");
389 gProof->UploadPackage("CORRFW.par");
390 gProof->EnablePackage("CORRFW");
391 gProof->UploadPackage("PWG2spectra.par");
392 gProof->EnablePackage("PWG2spectra");
394 gProof->Load("AliAnalysisTaskProtons.cxx++");
396 //____________________________________________//
397 // Make the analysis manager
398 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
399 AliVEventHandler* esdH = new AliESDInputHandler;
400 mgr->SetInputEventHandler(esdH);
402 AliMCEventHandler *mc = new AliMCEventHandler();
403 mgr->SetMCtruthEventHandler(mc);
405 //____________________________________________//
407 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
408 taskProtons->SetType(mode);
409 taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
410 taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
411 taskProtons->SetAcceptedVertexDiamond(5.,5.,15.);
412 //Momentum dependent priors
413 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
414 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
415 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
416 TF1 *fitPions = (TF1 *)f->Get("fitPions");
417 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
418 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
419 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
424 mgr->AddTask(taskProtons);
426 // Create containers for input/output
427 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
429 AliAnalysisManager::kInputContainer);
430 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
432 AliAnalysisManager::kOutputContainer,
433 outputFilename.Data());
435 //____________________________________________//
436 mgr->ConnectInput(taskProtons,0,cinput1);
437 mgr->ConnectOutput(taskProtons,0,coutput1);
438 if (!mgr->InitAnalysis()) return;
442 mgr->StartAnalysis("proof",dataset,stats);
444 // You should get this macro and the txt file from:
445 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
446 gROOT->LoadMacro("CreateESDChain.C");
448 chain = CreateESDChain("ESD82XX_30K.txt",stats);
449 chain->SetBranchStatus("*Calo*",0);
451 mgr->StartAnalysis("proof",chain);
458 //_________________________________________________//
459 Int_t setupPar(const char* pararchivename) {
463 if (pararchivename) {
464 char processline[1024];
465 sprintf(processline,".! tar xvzf %s.par",pararchivename);
466 gROOT->ProcessLine(processline);
467 const char* ocwd = gSystem->WorkingDirectory();
468 gSystem->ChangeDirectory(pararchivename);
470 // check for BUILD.sh and execute
471 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
472 printf("*******************************\n");
473 printf("*** Building PAR archive ***\n");
474 printf("*******************************\n");
476 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
477 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
481 // check for SETUP.C and execute
482 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
483 printf("*******************************\n");
484 printf("*** Setup PAR archive ***\n");
485 printf("*******************************\n");
486 gROOT->Macro("PROOF-INF/SETUP.C");
489 gSystem->ChangeDirectory("../");