]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/runProtonAnalysis.C
Few modifications in the QA part
[u/mrichter/AliRoot.git] / PWG2 / runProtonAnalysis.C
CommitLineData
734d2c12 1void runProtonAnalysis() {
2 TStopwatch timer;
3 timer.Start();
4
5 //runLocal();
6 //runInteractive();
7 //runBatch();
df01f00b 8
9 runProof("ESD",200000,"/PWG0/COMMON/run30000X_10TeV_0.5T"); //use data sets
10 //runProof("ESD",200); //use ascii files
11
734d2c12 12 timer.Stop();
13 timer.Print();
14}
15
16//_________________________________________________//
17void runLocal() {
18 TStopwatch timer;
19 timer.Start();
20 gSystem->Load("libTree.so");
21 //____________________________________________________//
22 //_____________Setting up STEERBase.par_______________//
23 //____________________________________________________//
24 setupPar("STEERBase");
25 gSystem->Load("libSTEERBase.so");
26
27 //____________________________________________________//
28 //_____________Setting up ESD.par_____________________//
29 //____________________________________________________//
30 setupPar("ESD");
31 gSystem->Load("libVMC.so");
32 gSystem->Load("libESD.so");
33
34 //____________________________________________________//
35 //_____________Setting up AOD.par_____________________//
36 //____________________________________________________//
37 setupPar("AOD");
38 gSystem->Load("libAOD.so");
e4358d7f 39
734d2c12 40 //_________________________________________________________//
41 //_____________Setting up ANALYSIS.par_____________________//
42 //_________________________________________________________//
43 setupPar("ANALYSIS");
44 gSystem->Load("libANALYSIS.so");
45
e4358d7f 46 //_________________________________________________________//
47 //___________Setting up ANALYSISalice.par__________________//
48 //_________________________________________________________//
49 setupPar("ANALYSISalice");
50 gSystem->Load("libANALYSISalice.so");
51
251e4034 52 //__________________________________________________//
53 //___________Setting up CORRFW.par__________________//
54 //__________________________________________________//
55 gProof->UploadPackage("CORRFW.par");
56 gProof->EnablePackage("CORRFW");
57
734d2c12 58 //____________________________________________________________//
59 //_____________Setting up PWG2spectra.par_____________________//
60 //____________________________________________________________//
61 setupPar("PWG2spectra");
62 gSystem->Load("libPWG2spectra.so");
63
64 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
65
66 //____________________________________________//
e4358d7f 67 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
68 tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
734d2c12 69
70 AliRunTagCuts *runCuts = new AliRunTagCuts();
71 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
72 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
73 AliEventTagCuts *evCuts = new AliEventTagCuts();
74
75 TChain* chain = 0x0;
e4358d7f 76 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
734d2c12 77 chain->SetBranchStatus("*Calo*",0);
78
79 //____________________________________________//
80 // Make the analysis manager
81 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
82 AliVEventHandler* esdH = new AliESDInputHandler;
83 mgr->SetInputEventHandler(esdH);
84 //____________________________________________//
85 // 1st Proton task
e4358d7f 86 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
87 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
aafecd8b 88 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
89 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
90 TF1 *fitPions = (TF1 *)f->Get("fitPions");
91 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
92 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
e4358d7f 93 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
94 fitMuons,
95 fitPions,
96 fitKaons,
97 fitProtons);*/
98 mgr->AddTask(taskProtons);
99
100 // Create containers for input/output
101 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
251e4034 102 TChain::Class(),
103 AliAnalysisManager::kInputContainer);
e4358d7f 104 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
251e4034 105 TList::Class(),
106 AliAnalysisManager::kOutputCont
e4358d7f 107 "Protons.ESD.root");
734d2c12 108
734d2c12 109 //____________________________________________//
e4358d7f 110 mgr->ConnectInput(taskProtons,0,cinput1);
111 mgr->ConnectOutput(taskProtons,0,coutput1);
734d2c12 112 if (!mgr->InitAnalysis()) return;
113 mgr->PrintStatus();
114 mgr->StartAnalysis("local",chain);
115
116 timer.Stop();
117 timer.Print();
118}
119
120//_________________________________________________//
121void runInteractive() {
122 TStopwatch timer;
123 timer.Start();
124 gSystem->Load("libProofPlayer.so");
125
126 printf("*** Connect to AliEn ***\n");
127 TGrid::Connect("alien://");
128
129 //____________________________________________________//
130 //_____________Setting up STEERBase.par_______________//
131 //____________________________________________________//
132 setupPar("STEERBase");
133 gSystem->Load("libSTEERBase.so");
134
135 //____________________________________________________//
136 //_____________Setting up ESD.par_____________________//
137 //____________________________________________________//
138 setupPar("ESD");
139 gSystem->Load("libVMC.so");
140 gSystem->Load("libESD.so");
141
142 //____________________________________________________//
143 //_____________Setting up AOD.par_____________________//
144 //____________________________________________________//
145 setupPar("AOD");
146 gSystem->Load("libAOD.so");
147
148 //_________________________________________________________//
149 //_____________Setting up ANALYSIS.par_____________________//
150 //_________________________________________________________//
151 setupPar("ANALYSIS");
152 gSystem->Load("libANALYSIS.so");
153
e4358d7f 154 //_________________________________________________________//
155 //___________Setting up ANALYSISalice.par__________________//
156 //_________________________________________________________//
157 setupPar("ANALYSISalice");
158 gSystem->Load("libANALYSISalice.so");
159
251e4034 160 //__________________________________________________//
161 //___________Setting up CORRFW.par__________________//
162 //__________________________________________________//
163 gProof->UploadPackage("CORRFW.par");
164 gProof->EnablePackage("CORRFW");
165
734d2c12 166 //____________________________________________________________//
167 //_____________Setting up PWG2spectra.par_____________________//
168 //____________________________________________________________//
169 setupPar("PWG2spectra");
170 gSystem->Load("libPWG2spectra.so");
171
172 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
173
174 //____________________________________________//
e4358d7f 175 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
734d2c12 176
177 AliRunTagCuts *runCuts = new AliRunTagCuts();
178 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
179 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
180 AliEventTagCuts *evCuts = new AliEventTagCuts();
181
182 //grid tags
183 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
184 TGridResult* TagResult = coll->GetGridResult("",0,0);
e4358d7f 185 tagAnalysis->ChainGridTags(TagResult);
734d2c12 186 TChain* chain = 0x0;
e4358d7f 187 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
734d2c12 188 chain->SetBranchStatus("*Calo*",0);
189
190 //____________________________________________//
191 // Make the analysis manager
192 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
193 AliVEventHandler* esdH = new AliESDInputHandler;
194 mgr->SetInputEventHandler(esdH);
195 //____________________________________________//
196 // 1st Proton task
e4358d7f 197 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
198 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
aafecd8b 199 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
200 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
201 TF1 *fitPions = (TF1 *)f->Get("fitPions");
202 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
203 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
e4358d7f 204 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
205 fitMuons,
206 fitPions,
207 fitKaons,
208 fitProtons);*/
209 mgr->AddTask(taskProtons);
210
211 // Create containers for input/output
212 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
251e4034 213 TChain::Class(),
214 AliAnalysisManager::kInputContainer);
e4358d7f 215 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
251e4034 216 TList::Class(),
217 AliAnalysisManager::kOutputCont
e4358d7f 218 "Protons.ESD.root");
734d2c12 219
220 //____________________________________________//
e4358d7f 221 mgr->ConnectInput(taskProtons,0,cinput1);
222 mgr->ConnectOutput(taskProtons,0,coutput1);
734d2c12 223 if (!mgr->InitAnalysis()) return;
224 mgr->PrintStatus();
225 mgr->StartAnalysis("local",chain);
226
227 timer.Stop();
228 timer.Print();
229}
230
231//_________________________________________________//
232void runBatch() {
233 TStopwatch timer;
234 timer.Start();
235
236 printf("*** Connect to AliEn ***\n");
237 TGrid::Connect("alien://");
238 gSystem->Load("libProofPlayer.so");
239
240 //____________________________________________________//
241 //_____________Setting up STEERBase.par_______________//
242 //____________________________________________________//
243 setupPar("STEERBase");
244 gSystem->Load("libSTEERBase.so");
245
246 //____________________________________________________//
247 //_____________Setting up ESD.par_____________________//
248 //____________________________________________________//
249 setupPar("ESD");
250 gSystem->Load("libVMC.so");
251 gSystem->Load("libESD.so");
252
253 //____________________________________________________//
254 //_____________Setting up AOD.par_____________________//
255 //____________________________________________________//
256 setupPar("AOD");
257 gSystem->Load("libAOD.so");
258
259 //_________________________________________________________//
260 //_____________Setting up ANALYSIS.par_____________________//
261 //_________________________________________________________//
262 setupPar("ANALYSIS");
263 gSystem->Load("libANALYSIS.so");
264
e4358d7f 265 //_________________________________________________________//
266 //___________Setting up ANALYSISalice.par__________________//
267 //_________________________________________________________//
268 setupPar("ANALYSISalice");
269 gSystem->Load("libANALYSISalice.so");
270
734d2c12 271 //____________________________________________________________//
272 //_____________Setting up PWG2spectra.par_____________________//
273 //____________________________________________________________//
274 setupPar("PWG2spectra");
275 gSystem->Load("libPWG2spectra.so");
276
277 //ANALYSIS PART
278 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
279 const char *collectionfile = "wn.xml";
280
281 //____________________________________________//
282 //Usage of event tags
e4358d7f 283 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
734d2c12 284 TChain *chain = 0x0;
e4358d7f 285 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
734d2c12 286 chain->SetBranchStatus("*Calo*",0);
287
288 //____________________________________________//
289 // Make the analysis manager
290 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
291 AliVEventHandler* esdH = new AliESDInputHandler;
292 mgr->SetInputEventHandler(esdH);
293 //____________________________________________//
294 // 1st Proton task
e4358d7f 295 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
296 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
aafecd8b 297 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
298 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
299 TF1 *fitPions = (TF1 *)f->Get("fitPions");
300 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
301 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
e4358d7f 302 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
303 fitMuons,
304 fitPions,
305 fitKaons,
306 fitProtons);*/
307 mgr->AddTask(taskProtons);
308
309 // Create containers for input/output
310 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
311 TChain::Class(),AliAnalysisManager::kInputContainer);
312 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
313 TList::Class(),AliAnalysisManager::kOutputCont
314 "Protons.ESD.root");
734d2c12 315
734d2c12 316 //____________________________________________//
e4358d7f 317 mgr->ConnectInput(taskProtons,0,cinput1);
318 mgr->ConnectOutput(taskProtons,0,coutput1);
734d2c12 319 if (!mgr->InitAnalysis()) return;
320 mgr->PrintStatus();
321 mgr->StartAnalysis("grid",chain);
322
323 timer.Stop();
324 timer.Print();
325}
326
327//_________________________________________________//
251e4034 328void runProof(const char* mode = "ESD",
329 Int_t stats = 0,
330 const char* dataset = 0x0) {
734d2c12 331 TStopwatch timer;
332 timer.Start();
df01f00b 333
334 TString smode = mode;
335 TString outputFilename = "Protons."; outputFilename += mode;
336 outputFilename += ".root";
337
734d2c12 338 printf("****** Connect to PROOF *******\n");
339 TProof::Open("proof://lxb6046.cern.ch");
aafecd8b 340 gProof->SetParallel();
734d2c12 341
342 // Enable the Analysis Package
343 gProof->UploadPackage("STEERBase.par");
344 gProof->EnablePackage("STEERBase");
345 gProof->UploadPackage("ESD.par");
346 gProof->EnablePackage("ESD");
347 gProof->UploadPackage("AOD.par");
348 gProof->EnablePackage("AOD");
349 gProof->UploadPackage("ANALYSIS.par");
350 gProof->EnablePackage("ANALYSIS");
e4358d7f 351 gProof->UploadPackage("ANALYSISalice.par");
352 gProof->EnablePackage("ANALYSISalice");
251e4034 353 gProof->UploadPackage("CORRFW.par");
354 gProof->EnablePackage("CORRFW");
734d2c12 355 gProof->UploadPackage("PWG2spectra.par");
356 gProof->EnablePackage("PWG2spectra");
357
734d2c12 358 gProof->Load("AliAnalysisTaskProtons.cxx++");
359
e4358d7f 360 //____________________________________________//
734d2c12 361 // Make the analysis manager
362 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
363 AliVEventHandler* esdH = new AliESDInputHandler;
df01f00b 364 mgr->SetInputEventHandler(esdH);
365 if(smode == "MC") {
366 AliMCEventHandler *mc = new AliMCEventHandler();
367 mgr->SetMCtruthEventHandler(mc);
368 }
734d2c12 369 //____________________________________________//
370 // 1st Proton task
e4358d7f 371 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
df01f00b 372 taskProtons->SetType(mode);
e4358d7f 373 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
aafecd8b 374 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
375 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
376 TF1 *fitPions = (TF1 *)f->Get("fitPions");
377 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
378 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
e4358d7f 379 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
380 fitMuons,
381 fitPions,
382 fitKaons,
383 fitProtons);*/
384 mgr->AddTask(taskProtons);
734d2c12 385
386 // Create containers for input/output
e4358d7f 387 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
251e4034 388 TChain::Class(),
389 AliAnalysisManager::kInputContainer);
e4358d7f 390 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
251e4034 391 TList::Class(),
392 AliAnalysisManager::kOutputContainer,
df01f00b 393 outputFilename.Data());
394
734d2c12 395 //____________________________________________//
e4358d7f 396 mgr->ConnectInput(taskProtons,0,cinput1);
397 mgr->ConnectOutput(taskProtons,0,coutput1);
734d2c12 398 if (!mgr->InitAnalysis()) return;
399 mgr->PrintStatus();
e4358d7f 400
401 if(dataset)
402 mgr->StartAnalysis("proof",dataset,stats);
403 else {
404 // You should get this macro and the txt file from:
405 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
406 gROOT->LoadMacro("CreateESDChain.C");
407 TChain* chain = 0x0;
408 chain = CreateESDChain("ESD82XX_30K.txt",stats);
409 chain->SetBranchStatus("*Calo*",0);
410
411 mgr->StartAnalysis("proof",chain);
412 }
734d2c12 413
414 timer.Stop();
415 timer.Print();
416}
417
418//_________________________________________________//
419Int_t setupPar(const char* pararchivename) {
420 ///////////////////
421 // Setup PAR File//
422 ///////////////////
423 if (pararchivename) {
424 char processline[1024];
425 sprintf(processline,".! tar xvzf %s.par",pararchivename);
426 gROOT->ProcessLine(processline);
427 const char* ocwd = gSystem->WorkingDirectory();
428 gSystem->ChangeDirectory(pararchivename);
429
430 // check for BUILD.sh and execute
431 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
432 printf("*******************************\n");
433 printf("*** Building PAR archive ***\n");
434 printf("*******************************\n");
435
436 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
437 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
438 return -1;
439 }
440 }
441 // check for SETUP.C and execute
442 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
443 printf("*******************************\n");
444 printf("*** Setup PAR archive ***\n");
445 printf("*******************************\n");
446 gROOT->Macro("PROOF-INF/SETUP.C");
447 }
448
449 gSystem->ChangeDirectory("../");
450 }
451 return 1;
452}