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