1 void runProtonAnalysis() {
8 runProof("/PWG0/COMMON/run30000X_10TeV_0.5T",200000);
14 //_________________________________________________//
18 gSystem->Load("libTree.so");
19 //____________________________________________________//
20 //_____________Setting up STEERBase.par_______________//
21 //____________________________________________________//
22 setupPar("STEERBase");
23 gSystem->Load("libSTEERBase.so");
25 //____________________________________________________//
26 //_____________Setting up ESD.par_____________________//
27 //____________________________________________________//
29 gSystem->Load("libVMC.so");
30 gSystem->Load("libESD.so");
32 //____________________________________________________//
33 //_____________Setting up AOD.par_____________________//
34 //____________________________________________________//
36 gSystem->Load("libAOD.so");
38 //_________________________________________________________//
39 //_____________Setting up ANALYSIS.par_____________________//
40 //_________________________________________________________//
42 gSystem->Load("libANALYSIS.so");
44 //_________________________________________________________//
45 //___________Setting up ANALYSISalice.par__________________//
46 //_________________________________________________________//
47 setupPar("ANALYSISalice");
48 gSystem->Load("libANALYSISalice.so");
50 //____________________________________________________________//
51 //_____________Setting up PWG2spectra.par_____________________//
52 //____________________________________________________________//
53 setupPar("PWG2spectra");
54 gSystem->Load("libPWG2spectra.so");
56 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
58 //____________________________________________//
59 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
60 tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
62 AliRunTagCuts *runCuts = new AliRunTagCuts();
63 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
64 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
65 AliEventTagCuts *evCuts = new AliEventTagCuts();
68 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
69 chain->SetBranchStatus("*Calo*",0);
71 //____________________________________________//
72 // Make the analysis manager
73 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
74 AliVEventHandler* esdH = new AliESDInputHandler;
75 mgr->SetInputEventHandler(esdH);
76 //____________________________________________//
78 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
79 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
80 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
81 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
82 TF1 *fitPions = (TF1 *)f->Get("fitPions");
83 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
84 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
85 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
90 mgr->AddTask(taskProtons);
92 // Create containers for input/output
93 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
94 TChain::Class(),AliAnalysisManager::kInputContainer);
95 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
96 TList::Class(),AliAnalysisManager::kOutputCont
99 //____________________________________________//
100 mgr->ConnectInput(taskProtons,0,cinput1);
101 mgr->ConnectOutput(taskProtons,0,coutput1);
102 if (!mgr->InitAnalysis()) return;
104 mgr->StartAnalysis("local",chain);
110 //_________________________________________________//
111 void runInteractive() {
114 gSystem->Load("libProofPlayer.so");
116 printf("*** Connect to AliEn ***\n");
117 TGrid::Connect("alien://");
119 //____________________________________________________//
120 //_____________Setting up STEERBase.par_______________//
121 //____________________________________________________//
122 setupPar("STEERBase");
123 gSystem->Load("libSTEERBase.so");
125 //____________________________________________________//
126 //_____________Setting up ESD.par_____________________//
127 //____________________________________________________//
129 gSystem->Load("libVMC.so");
130 gSystem->Load("libESD.so");
132 //____________________________________________________//
133 //_____________Setting up AOD.par_____________________//
134 //____________________________________________________//
136 gSystem->Load("libAOD.so");
138 //_________________________________________________________//
139 //_____________Setting up ANALYSIS.par_____________________//
140 //_________________________________________________________//
141 setupPar("ANALYSIS");
142 gSystem->Load("libANALYSIS.so");
144 //_________________________________________________________//
145 //___________Setting up ANALYSISalice.par__________________//
146 //_________________________________________________________//
147 setupPar("ANALYSISalice");
148 gSystem->Load("libANALYSISalice.so");
150 //____________________________________________________________//
151 //_____________Setting up PWG2spectra.par_____________________//
152 //____________________________________________________________//
153 setupPar("PWG2spectra");
154 gSystem->Load("libPWG2spectra.so");
156 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
158 //____________________________________________//
159 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
161 AliRunTagCuts *runCuts = new AliRunTagCuts();
162 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
163 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
164 AliEventTagCuts *evCuts = new AliEventTagCuts();
167 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
168 TGridResult* TagResult = coll->GetGridResult("",0,0);
169 tagAnalysis->ChainGridTags(TagResult);
171 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
172 chain->SetBranchStatus("*Calo*",0);
174 //____________________________________________//
175 // Make the analysis manager
176 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
177 AliVEventHandler* esdH = new AliESDInputHandler;
178 mgr->SetInputEventHandler(esdH);
179 //____________________________________________//
181 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
182 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
183 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
184 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
185 TF1 *fitPions = (TF1 *)f->Get("fitPions");
186 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
187 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
188 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
193 mgr->AddTask(taskProtons);
195 // Create containers for input/output
196 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
197 TChain::Class(),AliAnalysisManager::kInputContainer);
198 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
199 TList::Class(),AliAnalysisManager::kOutputCont
202 //____________________________________________//
203 mgr->ConnectInput(taskProtons,0,cinput1);
204 mgr->ConnectOutput(taskProtons,0,coutput1);
205 if (!mgr->InitAnalysis()) return;
207 mgr->StartAnalysis("local",chain);
213 //_________________________________________________//
218 printf("*** Connect to AliEn ***\n");
219 TGrid::Connect("alien://");
220 gSystem->Load("libProofPlayer.so");
222 //____________________________________________________//
223 //_____________Setting up STEERBase.par_______________//
224 //____________________________________________________//
225 setupPar("STEERBase");
226 gSystem->Load("libSTEERBase.so");
228 //____________________________________________________//
229 //_____________Setting up ESD.par_____________________//
230 //____________________________________________________//
232 gSystem->Load("libVMC.so");
233 gSystem->Load("libESD.so");
235 //____________________________________________________//
236 //_____________Setting up AOD.par_____________________//
237 //____________________________________________________//
239 gSystem->Load("libAOD.so");
241 //_________________________________________________________//
242 //_____________Setting up ANALYSIS.par_____________________//
243 //_________________________________________________________//
244 setupPar("ANALYSIS");
245 gSystem->Load("libANALYSIS.so");
247 //_________________________________________________________//
248 //___________Setting up ANALYSISalice.par__________________//
249 //_________________________________________________________//
250 setupPar("ANALYSISalice");
251 gSystem->Load("libANALYSISalice.so");
253 //____________________________________________________________//
254 //_____________Setting up PWG2spectra.par_____________________//
255 //____________________________________________________________//
256 setupPar("PWG2spectra");
257 gSystem->Load("libPWG2spectra.so");
260 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
261 const char *collectionfile = "wn.xml";
263 //____________________________________________//
264 //Usage of event tags
265 AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
267 chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
268 chain->SetBranchStatus("*Calo*",0);
270 //____________________________________________//
271 // Make the analysis manager
272 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
273 AliVEventHandler* esdH = new AliESDInputHandler;
274 mgr->SetInputEventHandler(esdH);
275 //____________________________________________//
277 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
278 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
279 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
280 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
281 TF1 *fitPions = (TF1 *)f->Get("fitPions");
282 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
283 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
284 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
289 mgr->AddTask(taskProtons);
291 // Create containers for input/output
292 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
293 TChain::Class(),AliAnalysisManager::kInputContainer);
294 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
295 TList::Class(),AliAnalysisManager::kOutputCont
298 //____________________________________________//
299 mgr->ConnectInput(taskProtons,0,cinput1);
300 mgr->ConnectOutput(taskProtons,0,coutput1);
301 if (!mgr->InitAnalysis()) return;
303 mgr->StartAnalysis("grid",chain);
309 //_________________________________________________//
310 void runProof(const char* dataset = 0x0, Int_t stats = 0) {
313 printf("****** Connect to PROOF *******\n");
314 TProof::Open("proof://lxb6046.cern.ch");
315 gProof->SetParallel();
317 // Enable the Analysis Package
318 gProof->UploadPackage("STEERBase.par");
319 gProof->EnablePackage("STEERBase");
320 gProof->UploadPackage("ESD.par");
321 gProof->EnablePackage("ESD");
322 gProof->UploadPackage("AOD.par");
323 gProof->EnablePackage("AOD");
324 gProof->UploadPackage("ANALYSIS.par");
325 gProof->EnablePackage("ANALYSIS");
326 gProof->UploadPackage("ANALYSISalice.par");
327 gProof->EnablePackage("ANALYSISalice");
328 gProof->UploadPackage("PWG2spectra.par");
329 gProof->EnablePackage("PWG2spectra");
331 gProof->Load("AliAnalysisTaskProtons.cxx++");
333 //____________________________________________//
334 // Make the analysis manager
335 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
336 AliVEventHandler* esdH = new AliESDInputHandler;
337 mgr->SetInputEventHandler(esdH);
338 //____________________________________________//
340 AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
341 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
342 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
343 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
344 TF1 *fitPions = (TF1 *)f->Get("fitPions");
345 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
346 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
347 taskProtons->SetPriorProbabilityFunctions(fitElectrons,
352 mgr->AddTask(taskProtons);
354 // Create containers for input/output
355 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
356 TChain::Class(),AliAnalysisManager::kInputContainer);
357 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1",
358 TList::Class(),AliAnalysisManager::kOutputCont
361 //____________________________________________//
362 mgr->ConnectInput(taskProtons,0,cinput1);
363 mgr->ConnectOutput(taskProtons,0,coutput1);
364 if (!mgr->InitAnalysis()) return;
368 mgr->StartAnalysis("proof",dataset,stats);
370 // You should get this macro and the txt file from:
371 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
372 gROOT->LoadMacro("CreateESDChain.C");
374 chain = CreateESDChain("ESD82XX_30K.txt",stats);
375 chain->SetBranchStatus("*Calo*",0);
377 mgr->StartAnalysis("proof",chain);
384 //_________________________________________________//
385 Int_t setupPar(const char* pararchivename) {
389 if (pararchivename) {
390 char processline[1024];
391 sprintf(processline,".! tar xvzf %s.par",pararchivename);
392 gROOT->ProcessLine(processline);
393 const char* ocwd = gSystem->WorkingDirectory();
394 gSystem->ChangeDirectory(pararchivename);
396 // check for BUILD.sh and execute
397 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
398 printf("*******************************\n");
399 printf("*** Building PAR archive ***\n");
400 printf("*******************************\n");
402 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
403 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
407 // check for SETUP.C and execute
408 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
409 printf("*******************************\n");
410 printf("*** Setup PAR archive ***\n");
411 printf("*******************************\n");
412 gROOT->Macro("PROOF-INF/SETUP.C");
415 gSystem->ChangeDirectory("../");