]>
Commit | Line | Data |
---|---|---|
734d2c12 | 1 | void 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 | //_________________________________________________// | |
15 | void 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 | //_________________________________________________// | |
111 | void 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 | //_________________________________________________// | |
214 | void 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 | 310 | void 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 | //_________________________________________________// | |
385 | Int_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 | } |