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