1 void runProtonAnalysis() {
9 runProof("ESD",200000,"/COMMON/COMMON/LHC08c11_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 setupPar->UploadPackage("CORRFW.par");
56 gSystem->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 setupPar->UploadPackage("CORRFW.par");
164 gSystem->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 CORRFW.par__________________//
273 //__________________________________________________//
274 setupPar->UploadPackage("CORRFW.par");
275 gSystem->EnablePackage("CORRFW");
277 //____________________________________________________________//
278 //_____________Setting up PWG2spectra.par_____________________//
279 //____________________________________________________________//
280 setupPar("PWG2spectra");
281 gSystem->Load("libPWG2spectra.so");
284 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
285 const char *collectionfile = "wn.xml";
287 //____________________________________________//
288 //Usage of event tags
289 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
291 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
292 chain->SetBranchStatus("*Calo*",0);
294 //____________________________________________//
295 // Make the analysis manager
296 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
297 AliVEventHandler* esdH = new AliESDInputHandler;
298 mgr->SetInputEventHandler(esdH);
299 //____________________________________________//
301 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
302 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
303 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
304 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
305 TF1 *fitPions = (TF1 *)f->Get("fitPions");
306 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
307 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
308 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
313 mgr->AddTask(taskProtons);
315 // Create containers for input/output
316 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
317 TChain::Class(),AliAnalysisManager::kInputContainer);
318 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
319 TList::Class(),AliAnalysisManager::kOutputCont
322 //____________________________________________//
323 mgr->ConnectInput(taskProtons,0,cinput1);
324 mgr->ConnectOutput(taskProtons,0,coutput1);
325 if (!mgr->InitAnalysis()) return;
327 mgr->StartAnalysis("grid",chain);
333 //_________________________________________________//
334 void runProof(const char* mode = "ESD",
336 const char* dataset = 0x0) {
340 TString smode = mode;
341 TString outputFilename = "Protons."; outputFilename += mode;
342 outputFilename += ".root";
344 printf("****** Connect to PROOF *******\n");
345 TProof::Open("alicecaf.cern.ch");
346 gProof->SetParallel();
348 // Enable the Analysis Package
349 gProof->UploadPackage("STEERBase.par");
350 gProof->EnablePackage("STEERBase");
351 gProof->UploadPackage("ESD.par");
352 gProof->EnablePackage("ESD");
353 gProof->UploadPackage("AOD.par");
354 gProof->EnablePackage("AOD");
355 gProof->UploadPackage("ANALYSIS.par");
356 gProof->EnablePackage("ANALYSIS");
357 gProof->UploadPackage("ANALYSISalice.par");
358 gProof->EnablePackage("ANALYSISalice");
359 gProof->UploadPackage("CORRFW.par");
360 gProof->EnablePackage("CORRFW");
361 gProof->UploadPackage("PWG2spectra.par");
362 gProof->EnablePackage("PWG2spectra");
364 gProof->Load("AliAnalysisTaskProtons.cxx++");
366 //____________________________________________//
367 // Make the analysis manager
368 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
369 AliVEventHandler* esdH = new AliESDInputHandler;
370 mgr->SetInputEventHandler(esdH);
372 AliMCEventHandler *mc = new AliMCEventHandler();
373 mgr->SetMCtruthEventHandler(mc);
375 //____________________________________________//
377 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
378 taskProtons->SetType(mode);
379 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
380 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
381 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
382 TF1 *fitPions = (TF1 *)f->Get("fitPions");
383 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
384 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
385 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
390 mgr->AddTask(taskProtons);
392 // Create containers for input/output
393 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
395 AliAnalysisManager::kInputContainer);
396 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
398 AliAnalysisManager::kOutputContainer,
399 outputFilename.Data());
401 //____________________________________________//
402 mgr->ConnectInput(taskProtons,0,cinput1);
403 mgr->ConnectOutput(taskProtons,0,coutput1);
404 if (!mgr->InitAnalysis()) return;
408 mgr->StartAnalysis("proof",dataset,stats);
410 // You should get this macro and the txt file from:
411 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
412 gROOT->LoadMacro("CreateESDChain.C");
414 chain = CreateESDChain("ESD82XX_30K.txt",stats);
415 chain->SetBranchStatus("*Calo*",0);
417 mgr->StartAnalysis("proof",chain);
424 //_________________________________________________//
425 Int_t setupPar(const char* pararchivename) {
429 if (pararchivename) {
430 char processline[1024];
431 sprintf(processline,".! tar xvzf %s.par",pararchivename);
432 gROOT->ProcessLine(processline);
433 const char* ocwd = gSystem->WorkingDirectory();
434 gSystem->ChangeDirectory(pararchivename);
436 // check for BUILD.sh and execute
437 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
438 printf("*******************************\n");
439 printf("*** Building PAR archive ***\n");
440 printf("*******************************\n");
442 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
443 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
447 // check for SETUP.C and execute
448 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
449 printf("*******************************\n");
450 printf("*** Setup PAR archive ***\n");
451 printf("*******************************\n");
452 gROOT->Macro("PROOF-INF/SETUP.C");
455 gSystem->ChangeDirectory("../");