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