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 PWG2spectra.par_____________________//
54 //____________________________________________________________//
55 setupPar("PWG2spectra");
56 gSystem->Load("libPWG2spectra.so");
58 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
60 //____________________________________________//
61 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
62 tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
64 AliRunTagCuts *runCuts = new AliRunTagCuts();
65 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
66 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
67 AliEventTagCuts *evCuts = new AliEventTagCuts();
70 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
71 chain->SetBranchStatus("*Calo*",0);
73 //____________________________________________//
74 // Make the analysis manager
75 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
76 AliVEventHandler* esdH = new AliESDInputHandler;
77 mgr->SetInputEventHandler(esdH);
78 //____________________________________________//
80 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
81 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
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");
87 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
92 mgr->AddTask(taskProtons);
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
101 //____________________________________________//
102 mgr->ConnectInput(taskProtons,0,cinput1);
103 mgr->ConnectOutput(taskProtons,0,coutput1);
104 if (!mgr->InitAnalysis()) return;
106 mgr->StartAnalysis("local",chain);
112 //_________________________________________________//
113 void runInteractive() {
116 gSystem->Load("libProofPlayer.so");
118 printf("*** Connect to AliEn ***\n");
119 TGrid::Connect("alien://");
121 //____________________________________________________//
122 //_____________Setting up STEERBase.par_______________//
123 //____________________________________________________//
124 setupPar("STEERBase");
125 gSystem->Load("libSTEERBase.so");
127 //____________________________________________________//
128 //_____________Setting up ESD.par_____________________//
129 //____________________________________________________//
131 gSystem->Load("libVMC.so");
132 gSystem->Load("libESD.so");
134 //____________________________________________________//
135 //_____________Setting up AOD.par_____________________//
136 //____________________________________________________//
138 gSystem->Load("libAOD.so");
140 //_________________________________________________________//
141 //_____________Setting up ANALYSIS.par_____________________//
142 //_________________________________________________________//
143 setupPar("ANALYSIS");
144 gSystem->Load("libANALYSIS.so");
146 //_________________________________________________________//
147 //___________Setting up ANALYSISalice.par__________________//
148 //_________________________________________________________//
149 setupPar("ANALYSISalice");
150 gSystem->Load("libANALYSISalice.so");
152 //____________________________________________________________//
153 //_____________Setting up PWG2spectra.par_____________________//
154 //____________________________________________________________//
155 setupPar("PWG2spectra");
156 gSystem->Load("libPWG2spectra.so");
158 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
160 //____________________________________________//
161 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
163 AliRunTagCuts *runCuts = new AliRunTagCuts();
164 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
165 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
166 AliEventTagCuts *evCuts = new AliEventTagCuts();
169 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
170 TGridResult* TagResult = coll->GetGridResult("",0,0);
171 tagAnalysis->ChainGridTags(TagResult);
173 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
174 chain->SetBranchStatus("*Calo*",0);
176 //____________________________________________//
177 // Make the analysis manager
178 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
179 AliVEventHandler* esdH = new AliESDInputHandler;
180 mgr->SetInputEventHandler(esdH);
181 //____________________________________________//
183 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
184 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
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");
190 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
195 mgr->AddTask(taskProtons);
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
204 //____________________________________________//
205 mgr->ConnectInput(taskProtons,0,cinput1);
206 mgr->ConnectOutput(taskProtons,0,coutput1);
207 if (!mgr->InitAnalysis()) return;
209 mgr->StartAnalysis("local",chain);
215 //_________________________________________________//
220 printf("*** Connect to AliEn ***\n");
221 TGrid::Connect("alien://");
222 gSystem->Load("libProofPlayer.so");
224 //____________________________________________________//
225 //_____________Setting up STEERBase.par_______________//
226 //____________________________________________________//
227 setupPar("STEERBase");
228 gSystem->Load("libSTEERBase.so");
230 //____________________________________________________//
231 //_____________Setting up ESD.par_____________________//
232 //____________________________________________________//
234 gSystem->Load("libVMC.so");
235 gSystem->Load("libESD.so");
237 //____________________________________________________//
238 //_____________Setting up AOD.par_____________________//
239 //____________________________________________________//
241 gSystem->Load("libAOD.so");
243 //_________________________________________________________//
244 //_____________Setting up ANALYSIS.par_____________________//
245 //_________________________________________________________//
246 setupPar("ANALYSIS");
247 gSystem->Load("libANALYSIS.so");
249 //_________________________________________________________//
250 //___________Setting up ANALYSISalice.par__________________//
251 //_________________________________________________________//
252 setupPar("ANALYSISalice");
253 gSystem->Load("libANALYSISalice.so");
255 //____________________________________________________________//
256 //_____________Setting up PWG2spectra.par_____________________//
257 //____________________________________________________________//
258 setupPar("PWG2spectra");
259 gSystem->Load("libPWG2spectra.so");
262 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
263 const char *collectionfile = "wn.xml";
265 //____________________________________________//
266 //Usage of event tags
267 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
269 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
270 chain->SetBranchStatus("*Calo*",0);
272 //____________________________________________//
273 // Make the analysis manager
274 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
275 AliVEventHandler* esdH = new AliESDInputHandler;
276 mgr->SetInputEventHandler(esdH);
277 //____________________________________________//
279 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
280 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
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");
286 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
291 mgr->AddTask(taskProtons);
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
300 //____________________________________________//
301 mgr->ConnectInput(taskProtons,0,cinput1);
302 mgr->ConnectOutput(taskProtons,0,coutput1);
303 if (!mgr->InitAnalysis()) return;
305 mgr->StartAnalysis("grid",chain);
311 //_________________________________________________//
312 void runProof(const char* mode = "ESD", Int_t stats = 0, const char* dataset = 0x0) {
316 TString smode = mode;
317 TString outputFilename = "Protons."; outputFilename += mode;
318 outputFilename += ".root";
320 printf("****** Connect to PROOF *******\n");
321 TProof::Open("proof://lxb6046.cern.ch");
322 gProof->SetParallel();
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");
333 gProof->UploadPackage("ANALYSISalice.par");
334 gProof->EnablePackage("ANALYSISalice");
335 gProof->UploadPackage("PWG2spectra.par");
336 gProof->EnablePackage("PWG2spectra");
338 gProof->Load("AliAnalysisTaskProtons.cxx++");
340 //____________________________________________//
341 // Make the analysis manager
342 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
343 AliVEventHandler* esdH = new AliESDInputHandler;
344 mgr->SetInputEventHandler(esdH);
346 AliMCEventHandler *mc = new AliMCEventHandler();
347 mgr->SetMCtruthEventHandler(mc);
349 //____________________________________________//
351 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
352 taskProtons->SetType(mode);
353 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
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");
359 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
364 mgr->AddTask(taskProtons);
366 // Create containers for input/output
367 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
368 TChain::Class(),AliAnalysisManager::kInputContainer);
369 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
370 TList::Class(),AliAnalysisManager::kOutputContainer,
371 outputFilename.Data());
373 //____________________________________________//
374 mgr->ConnectInput(taskProtons,0,cinput1);
375 mgr->ConnectOutput(taskProtons,0,coutput1);
376 if (!mgr->InitAnalysis()) return;
380 mgr->StartAnalysis("proof",dataset,stats);
382 // You should get this macro and the txt file from:
383 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
384 gROOT->LoadMacro("CreateESDChain.C");
386 chain = CreateESDChain("ESD82XX_30K.txt",stats);
387 chain->SetBranchStatus("*Calo*",0);
389 mgr->StartAnalysis("proof",chain);
396 //_________________________________________________//
397 Int_t setupPar(const char* pararchivename) {
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);
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");
414 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
415 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
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");
427 gSystem->ChangeDirectory("../");