]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/runProtonAnalysis.C
make cumulants work on caf (not using tprof3d for the time being)
[u/mrichter/AliRoot.git] / PWG2 / runProtonAnalysis.C
CommitLineData
734d2c12 1void 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//_________________________________________________//
17void 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//_________________________________________________//
113void 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//_________________________________________________//
216void 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 312void 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//_________________________________________________//
397Int_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}