1 void runProtonAnalysis() {
9 runProof("ESD",200000,"/PWG0/COMMON/run30000X_10TeV_0.5T"); //use data sets
10 //runProof("ESD",200); //use ascii files
16 //_________________________________________________//
20 gSystem->Load("libTree.so");
21 //____________________________________________________//
22 //_____________Setting up STEERBase.par_______________//
23 //____________________________________________________//
24 setupPar("STEERBase");
25 gSystem->Load("libSTEERBase.so");
27 //____________________________________________________//
28 //_____________Setting up ESD.par_____________________//
29 //____________________________________________________//
31 gSystem->Load("libVMC.so");
32 gSystem->Load("libESD.so");
34 //____________________________________________________//
35 //_____________Setting up AOD.par_____________________//
36 //____________________________________________________//
38 gSystem->Load("libAOD.so");
40 //_________________________________________________________//
41 //_____________Setting up ANALYSIS.par_____________________//
42 //_________________________________________________________//
44 gSystem->Load("libANALYSIS.so");
46 //_________________________________________________________//
47 //___________Setting up ANALYSISalice.par__________________//
48 //_________________________________________________________//
49 setupPar("ANALYSISalice");
50 gSystem->Load("libANALYSISalice.so");
52 //__________________________________________________//
53 //___________Setting up CORRFW.par__________________//
54 //__________________________________________________//
55 gProof->UploadPackage("CORRFW.par");
56 gProof->EnablePackage("CORRFW");
58 //____________________________________________________________//
59 //_____________Setting up PWG2spectra.par_____________________//
60 //____________________________________________________________//
61 setupPar("PWG2spectra");
62 gSystem->Load("libPWG2spectra.so");
64 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
66 //____________________________________________//
67 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
68 tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
70 AliRunTagCuts *runCuts = new AliRunTagCuts();
71 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
72 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
73 AliEventTagCuts *evCuts = new AliEventTagCuts();
76 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
77 chain->SetBranchStatus("*Calo*",0);
79 //____________________________________________//
80 // Make the analysis manager
81 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
82 AliVEventHandler* esdH = new AliESDInputHandler;
83 mgr->SetInputEventHandler(esdH);
84 //____________________________________________//
86 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
87 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
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");
93 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
98 mgr->AddTask(taskProtons);
100 // Create containers for input/output
101 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
103 AliAnalysisManager::kInputContainer);
104 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
106 AliAnalysisManager::kOutputCont
109 //____________________________________________//
110 mgr->ConnectInput(taskProtons,0,cinput1);
111 mgr->ConnectOutput(taskProtons,0,coutput1);
112 if (!mgr->InitAnalysis()) return;
114 mgr->StartAnalysis("local",chain);
120 //_________________________________________________//
121 void runInteractive() {
124 gSystem->Load("libProofPlayer.so");
126 printf("*** Connect to AliEn ***\n");
127 TGrid::Connect("alien://");
129 //____________________________________________________//
130 //_____________Setting up STEERBase.par_______________//
131 //____________________________________________________//
132 setupPar("STEERBase");
133 gSystem->Load("libSTEERBase.so");
135 //____________________________________________________//
136 //_____________Setting up ESD.par_____________________//
137 //____________________________________________________//
139 gSystem->Load("libVMC.so");
140 gSystem->Load("libESD.so");
142 //____________________________________________________//
143 //_____________Setting up AOD.par_____________________//
144 //____________________________________________________//
146 gSystem->Load("libAOD.so");
148 //_________________________________________________________//
149 //_____________Setting up ANALYSIS.par_____________________//
150 //_________________________________________________________//
151 setupPar("ANALYSIS");
152 gSystem->Load("libANALYSIS.so");
154 //_________________________________________________________//
155 //___________Setting up ANALYSISalice.par__________________//
156 //_________________________________________________________//
157 setupPar("ANALYSISalice");
158 gSystem->Load("libANALYSISalice.so");
160 //__________________________________________________//
161 //___________Setting up CORRFW.par__________________//
162 //__________________________________________________//
163 gProof->UploadPackage("CORRFW.par");
164 gProof->EnablePackage("CORRFW");
166 //____________________________________________________________//
167 //_____________Setting up PWG2spectra.par_____________________//
168 //____________________________________________________________//
169 setupPar("PWG2spectra");
170 gSystem->Load("libPWG2spectra.so");
172 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
174 //____________________________________________//
175 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
177 AliRunTagCuts *runCuts = new AliRunTagCuts();
178 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
179 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
180 AliEventTagCuts *evCuts = new AliEventTagCuts();
183 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
184 TGridResult* TagResult = coll->GetGridResult("",0,0);
185 tagAnalysis->ChainGridTags(TagResult);
187 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
188 chain->SetBranchStatus("*Calo*",0);
190 //____________________________________________//
191 // Make the analysis manager
192 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
193 AliVEventHandler* esdH = new AliESDInputHandler;
194 mgr->SetInputEventHandler(esdH);
195 //____________________________________________//
197 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
198 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
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");
204 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
209 mgr->AddTask(taskProtons);
211 // Create containers for input/output
212 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
214 AliAnalysisManager::kInputContainer);
215 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
217 AliAnalysisManager::kOutputCont
220 //____________________________________________//
221 mgr->ConnectInput(taskProtons,0,cinput1);
222 mgr->ConnectOutput(taskProtons,0,coutput1);
223 if (!mgr->InitAnalysis()) return;
225 mgr->StartAnalysis("local",chain);
231 //_________________________________________________//
236 printf("*** Connect to AliEn ***\n");
237 TGrid::Connect("alien://");
238 gSystem->Load("libProofPlayer.so");
240 //____________________________________________________//
241 //_____________Setting up STEERBase.par_______________//
242 //____________________________________________________//
243 setupPar("STEERBase");
244 gSystem->Load("libSTEERBase.so");
246 //____________________________________________________//
247 //_____________Setting up ESD.par_____________________//
248 //____________________________________________________//
250 gSystem->Load("libVMC.so");
251 gSystem->Load("libESD.so");
253 //____________________________________________________//
254 //_____________Setting up AOD.par_____________________//
255 //____________________________________________________//
257 gSystem->Load("libAOD.so");
259 //_________________________________________________________//
260 //_____________Setting up ANALYSIS.par_____________________//
261 //_________________________________________________________//
262 setupPar("ANALYSIS");
263 gSystem->Load("libANALYSIS.so");
265 //_________________________________________________________//
266 //___________Setting up ANALYSISalice.par__________________//
267 //_________________________________________________________//
268 setupPar("ANALYSISalice");
269 gSystem->Load("libANALYSISalice.so");
271 //____________________________________________________________//
272 //_____________Setting up PWG2spectra.par_____________________//
273 //____________________________________________________________//
274 setupPar("PWG2spectra");
275 gSystem->Load("libPWG2spectra.so");
278 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
279 const char *collectionfile = "wn.xml";
281 //____________________________________________//
282 //Usage of event tags
283 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
285 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
286 chain->SetBranchStatus("*Calo*",0);
288 //____________________________________________//
289 // Make the analysis manager
290 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
291 AliVEventHandler* esdH = new AliESDInputHandler;
292 mgr->SetInputEventHandler(esdH);
293 //____________________________________________//
295 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
296 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
297 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
298 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
299 TF1 *fitPions = (TF1 *)f->Get("fitPions");
300 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
301 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
302 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
307 mgr->AddTask(taskProtons);
309 // Create containers for input/output
310 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
311 TChain::Class(),AliAnalysisManager::kInputContainer);
312 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
313 TList::Class(),AliAnalysisManager::kOutputCont
316 //____________________________________________//
317 mgr->ConnectInput(taskProtons,0,cinput1);
318 mgr->ConnectOutput(taskProtons,0,coutput1);
319 if (!mgr->InitAnalysis()) return;
321 mgr->StartAnalysis("grid",chain);
327 //_________________________________________________//
328 void runProof(const char* mode = "ESD",
330 const char* dataset = 0x0) {
334 TString smode = mode;
335 TString outputFilename = "Protons."; outputFilename += mode;
336 outputFilename += ".root";
338 printf("****** Connect to PROOF *******\n");
339 TProof::Open("proof://lxb6046.cern.ch");
340 gProof->SetParallel();
342 // Enable the Analysis Package
343 gProof->UploadPackage("STEERBase.par");
344 gProof->EnablePackage("STEERBase");
345 gProof->UploadPackage("ESD.par");
346 gProof->EnablePackage("ESD");
347 gProof->UploadPackage("AOD.par");
348 gProof->EnablePackage("AOD");
349 gProof->UploadPackage("ANALYSIS.par");
350 gProof->EnablePackage("ANALYSIS");
351 gProof->UploadPackage("ANALYSISalice.par");
352 gProof->EnablePackage("ANALYSISalice");
353 gProof->UploadPackage("CORRFW.par");
354 gProof->EnablePackage("CORRFW");
355 gProof->UploadPackage("PWG2spectra.par");
356 gProof->EnablePackage("PWG2spectra");
358 gProof->Load("AliAnalysisTaskProtons.cxx++");
360 //____________________________________________//
361 // Make the analysis manager
362 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
363 AliVEventHandler* esdH = new AliESDInputHandler;
364 mgr->SetInputEventHandler(esdH);
366 AliMCEventHandler *mc = new AliMCEventHandler();
367 mgr->SetMCtruthEventHandler(mc);
369 //____________________________________________//
371 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
372 taskProtons->SetType(mode);
373 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
374 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
375 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
376 TF1 *fitPions = (TF1 *)f->Get("fitPions");
377 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
378 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
379 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
384 mgr->AddTask(taskProtons);
386 // Create containers for input/output
387 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
389 AliAnalysisManager::kInputContainer);
390 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
392 AliAnalysisManager::kOutputContainer,
393 outputFilename.Data());
395 //____________________________________________//
396 mgr->ConnectInput(taskProtons,0,cinput1);
397 mgr->ConnectOutput(taskProtons,0,coutput1);
398 if (!mgr->InitAnalysis()) return;
402 mgr->StartAnalysis("proof",dataset,stats);
404 // You should get this macro and the txt file from:
405 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
406 gROOT->LoadMacro("CreateESDChain.C");
408 chain = CreateESDChain("ESD82XX_30K.txt",stats);
409 chain->SetBranchStatus("*Calo*",0);
411 mgr->StartAnalysis("proof",chain);
418 //_________________________________________________//
419 Int_t setupPar(const char* pararchivename) {
423 if (pararchivename) {
424 char processline[1024];
425 sprintf(processline,".! tar xvzf %s.par",pararchivename);
426 gROOT->ProcessLine(processline);
427 const char* ocwd = gSystem->WorkingDirectory();
428 gSystem->ChangeDirectory(pararchivename);
430 // check for BUILD.sh and execute
431 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
432 printf("*******************************\n");
433 printf("*** Building PAR archive ***\n");
434 printf("*******************************\n");
436 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
437 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
441 // check for SETUP.C and execute
442 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
443 printf("*******************************\n");
444 printf("*** Setup PAR archive ***\n");
445 printf("*******************************\n");
446 gROOT->Macro("PROOF-INF/SETUP.C");
449 gSystem->ChangeDirectory("../");