]>
Commit | Line | Data |
---|---|---|
734d2c12 | 1 | void runProtonAnalysis() { |
2 | TStopwatch timer; | |
3 | timer.Start(); | |
4 | ||
5 | //runLocal(); | |
6 | //runInteractive(); | |
7 | //runBatch(); | |
df01f00b | 8 | |
96f84c25 | 9 | runProof("ESD",200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T"); //use data sets |
df01f00b | 10 | //runProof("ESD",200); //use ascii files |
11 | ||
734d2c12 | 12 | timer.Stop(); |
13 | timer.Print(); | |
14 | } | |
15 | ||
16 | //_________________________________________________// | |
17 | void 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 | //__________________________________________________// | |
96f84c25 | 55 | setupPar->UploadPackage("CORRFW.par"); |
56 | gSystem->EnablePackage("CORRFW"); | |
251e4034 | 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 | //_________________________________________________// | |
121 | void 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 | //__________________________________________________// | |
96f84c25 | 163 | setupPar->UploadPackage("CORRFW.par"); |
164 | gSystem->EnablePackage("CORRFW"); | |
251e4034 | 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 | //_________________________________________________// | |
232 | void 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 | ||
96f84c25 | 271 | //__________________________________________________// |
272 | //___________Setting up CORRFW.par__________________// | |
273 | //__________________________________________________// | |
274 | setupPar->UploadPackage("CORRFW.par"); | |
275 | gSystem->EnablePackage("CORRFW"); | |
276 | ||
734d2c12 | 277 | //____________________________________________________________// |
278 | //_____________Setting up PWG2spectra.par_____________________// | |
279 | //____________________________________________________________// | |
280 | setupPar("PWG2spectra"); | |
281 | gSystem->Load("libPWG2spectra.so"); | |
282 | ||
283 | //ANALYSIS PART | |
284 | gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); | |
285 | const char *collectionfile = "wn.xml"; | |
286 | ||
287 | //____________________________________________// | |
288 | //Usage of event tags | |
e4358d7f | 289 | AliTagAnalysis *tagAnalysis = new AliTagAnalysis(); |
734d2c12 | 290 | TChain *chain = 0x0; |
e4358d7f | 291 | chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree"); |
734d2c12 | 292 | chain->SetBranchStatus("*Calo*",0); |
293 | ||
294 | //____________________________________________// | |
295 | // Make the analysis manager | |
296 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
297 | AliVEventHandler* esdH = new AliESDInputHandler; | |
298 | mgr->SetInputEventHandler(esdH); | |
299 | //____________________________________________// | |
300 | // 1st Proton task | |
e4358d7f | 301 | AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons"); |
302 | /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root "); | |
aafecd8b | 303 | TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons"); |
304 | TF1 *fitMuons = (TF1 *)f->Get("fitMuons"); | |
305 | TF1 *fitPions = (TF1 *)f->Get("fitPions"); | |
306 | TF1 *fitKaons = (TF1 *)f->Get("fitKaons"); | |
307 | TF1 *fitProtons = (TF1 *)f->Get("fitProtons"); | |
e4358d7f | 308 | taskProtons->SetPriorProbabilityFunctions(fitElectrons, |
309 | fitMuons, | |
310 | fitPions, | |
311 | fitKaons, | |
312 | fitProtons);*/ | |
313 | mgr->AddTask(taskProtons); | |
314 | ||
315 | // Create containers for input/output | |
316 | AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain", | |
317 | TChain::Class(),AliAnalysisManager::kInputContainer); | |
318 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", | |
319 | TList::Class(),AliAnalysisManager::kOutputCont | |
320 | "Protons.ESD.root"); | |
734d2c12 | 321 | |
734d2c12 | 322 | //____________________________________________// |
e4358d7f | 323 | mgr->ConnectInput(taskProtons,0,cinput1); |
324 | mgr->ConnectOutput(taskProtons,0,coutput1); | |
734d2c12 | 325 | if (!mgr->InitAnalysis()) return; |
326 | mgr->PrintStatus(); | |
327 | mgr->StartAnalysis("grid",chain); | |
328 | ||
329 | timer.Stop(); | |
330 | timer.Print(); | |
331 | } | |
332 | ||
333 | //_________________________________________________// | |
251e4034 | 334 | void runProof(const char* mode = "ESD", |
335 | Int_t stats = 0, | |
336 | const char* dataset = 0x0) { | |
734d2c12 | 337 | TStopwatch timer; |
338 | timer.Start(); | |
df01f00b | 339 | |
340 | TString smode = mode; | |
341 | TString outputFilename = "Protons."; outputFilename += mode; | |
342 | outputFilename += ".root"; | |
343 | ||
734d2c12 | 344 | printf("****** Connect to PROOF *******\n"); |
96f84c25 | 345 | TProof::Open("alicecaf.cern.ch"); |
aafecd8b | 346 | gProof->SetParallel(); |
734d2c12 | 347 | |
348 | // Enable the Analysis Package | |
349 | gProof->UploadPackage("STEERBase.par"); | |
350 | gProof->EnablePackage("STEERBase"); | |
351 | gProof->UploadPackage("ESD.par"); | |
352 | gProof->EnablePackage("ESD"); | |
353 | gProof->UploadPackage("AOD.par"); | |
354 | gProof->EnablePackage("AOD"); | |
355 | gProof->UploadPackage("ANALYSIS.par"); | |
356 | gProof->EnablePackage("ANALYSIS"); | |
e4358d7f | 357 | gProof->UploadPackage("ANALYSISalice.par"); |
358 | gProof->EnablePackage("ANALYSISalice"); | |
251e4034 | 359 | gProof->UploadPackage("CORRFW.par"); |
360 | gProof->EnablePackage("CORRFW"); | |
734d2c12 | 361 | gProof->UploadPackage("PWG2spectra.par"); |
362 | gProof->EnablePackage("PWG2spectra"); | |
363 | ||
734d2c12 | 364 | gProof->Load("AliAnalysisTaskProtons.cxx++"); |
365 | ||
e4358d7f | 366 | //____________________________________________// |
734d2c12 | 367 | // Make the analysis manager |
368 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
369 | AliVEventHandler* esdH = new AliESDInputHandler; | |
df01f00b | 370 | mgr->SetInputEventHandler(esdH); |
371 | if(smode == "MC") { | |
372 | AliMCEventHandler *mc = new AliMCEventHandler(); | |
373 | mgr->SetMCtruthEventHandler(mc); | |
374 | } | |
734d2c12 | 375 | //____________________________________________// |
376 | // 1st Proton task | |
e4358d7f | 377 | AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons"); |
df01f00b | 378 | taskProtons->SetType(mode); |
e4358d7f | 379 | /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root "); |
aafecd8b | 380 | TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons"); |
381 | TF1 *fitMuons = (TF1 *)f->Get("fitMuons"); | |
382 | TF1 *fitPions = (TF1 *)f->Get("fitPions"); | |
383 | TF1 *fitKaons = (TF1 *)f->Get("fitKaons"); | |
384 | TF1 *fitProtons = (TF1 *)f->Get("fitProtons"); | |
e4358d7f | 385 | taskProtons->SetPriorProbabilityFunctions(fitElectrons, |
386 | fitMuons, | |
387 | fitPions, | |
388 | fitKaons, | |
389 | fitProtons);*/ | |
390 | mgr->AddTask(taskProtons); | |
734d2c12 | 391 | |
392 | // Create containers for input/output | |
e4358d7f | 393 | AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain", |
251e4034 | 394 | TChain::Class(), |
395 | AliAnalysisManager::kInputContainer); | |
e4358d7f | 396 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", |
251e4034 | 397 | TList::Class(), |
398 | AliAnalysisManager::kOutputContainer, | |
df01f00b | 399 | outputFilename.Data()); |
400 | ||
734d2c12 | 401 | //____________________________________________// |
e4358d7f | 402 | mgr->ConnectInput(taskProtons,0,cinput1); |
403 | mgr->ConnectOutput(taskProtons,0,coutput1); | |
734d2c12 | 404 | if (!mgr->InitAnalysis()) return; |
405 | mgr->PrintStatus(); | |
e4358d7f | 406 | |
407 | if(dataset) | |
408 | mgr->StartAnalysis("proof",dataset,stats); | |
409 | else { | |
410 | // You should get this macro and the txt file from: | |
411 | // http://aliceinfo.cern.ch/Offline/Analysis/CAF/ | |
412 | gROOT->LoadMacro("CreateESDChain.C"); | |
413 | TChain* chain = 0x0; | |
414 | chain = CreateESDChain("ESD82XX_30K.txt",stats); | |
415 | chain->SetBranchStatus("*Calo*",0); | |
416 | ||
417 | mgr->StartAnalysis("proof",chain); | |
418 | } | |
734d2c12 | 419 | |
420 | timer.Stop(); | |
421 | timer.Print(); | |
422 | } | |
423 | ||
424 | //_________________________________________________// | |
425 | Int_t setupPar(const char* pararchivename) { | |
426 | /////////////////// | |
427 | // Setup PAR File// | |
428 | /////////////////// | |
429 | if (pararchivename) { | |
430 | char processline[1024]; | |
431 | sprintf(processline,".! tar xvzf %s.par",pararchivename); | |
432 | gROOT->ProcessLine(processline); | |
433 | const char* ocwd = gSystem->WorkingDirectory(); | |
434 | gSystem->ChangeDirectory(pararchivename); | |
435 | ||
436 | // check for BUILD.sh and execute | |
437 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { | |
438 | printf("*******************************\n"); | |
439 | printf("*** Building PAR archive ***\n"); | |
440 | printf("*******************************\n"); | |
441 | ||
442 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { | |
443 | Error("runAnalysis","Cannot Build the PAR Archive! - Abort!"); | |
444 | return -1; | |
445 | } | |
446 | } | |
447 | // check for SETUP.C and execute | |
448 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { | |
449 | printf("*******************************\n"); | |
450 | printf("*** Setup PAR archive ***\n"); | |
451 | printf("*******************************\n"); | |
452 | gROOT->Macro("PROOF-INF/SETUP.C"); | |
453 | } | |
454 | ||
455 | gSystem->ChangeDirectory("../"); | |
456 | } | |
457 | return 1; | |
458 | } |