1 void runProtonAnalysis() {
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 PWG2spectra.par_____________________//
46 //____________________________________________________________//
47 setupPar("PWG2spectra");
48 gSystem->Load("libPWG2spectra.so");
50 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
52 //____________________________________________//
53 AliTagAnalysis *TagAna = new AliTagAnalysis("ESD");
54 TagAna->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
56 AliRunTagCuts *runCuts = new AliRunTagCuts();
57 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
58 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
59 AliEventTagCuts *evCuts = new AliEventTagCuts();
62 chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
63 chain->SetBranchStatus("*Calo*",0);
65 //____________________________________________//
66 // Make the analysis manager
67 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
68 AliVEventHandler* esdH = new AliESDInputHandler;
69 mgr->SetInputEventHandler(esdH);
70 //____________________________________________//
72 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
73 TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
74 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
75 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
76 TF1 *fitPions = (TF1 *)f->Get("fitPions");
77 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
78 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
79 task1->SetPriorProbabilityFunctions(fitElectrons,
86 // Create containers for input/output
87 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
88 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
90 //____________________________________________//
91 mgr->ConnectInput(task1,0,cinput1);
92 mgr->ConnectOutput(task1,0,coutput1);
93 if (!mgr->InitAnalysis()) return;
95 mgr->StartAnalysis("local",chain);
101 //_________________________________________________//
102 void runInteractive() {
105 gSystem->Load("libProofPlayer.so");
107 printf("*** Connect to AliEn ***\n");
108 TGrid::Connect("alien://");
110 //____________________________________________________//
111 //_____________Setting up STEERBase.par_______________//
112 //____________________________________________________//
113 setupPar("STEERBase");
114 gSystem->Load("libSTEERBase.so");
116 //____________________________________________________//
117 //_____________Setting up ESD.par_____________________//
118 //____________________________________________________//
120 gSystem->Load("libVMC.so");
121 gSystem->Load("libESD.so");
123 //____________________________________________________//
124 //_____________Setting up AOD.par_____________________//
125 //____________________________________________________//
127 gSystem->Load("libAOD.so");
129 //_________________________________________________________//
130 //_____________Setting up ANALYSIS.par_____________________//
131 //_________________________________________________________//
132 setupPar("ANALYSIS");
133 gSystem->Load("libANALYSIS.so");
135 //____________________________________________________________//
136 //_____________Setting up PWG2spectra.par_____________________//
137 //____________________________________________________________//
138 setupPar("PWG2spectra");
139 gSystem->Load("libPWG2spectra.so");
141 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
143 //____________________________________________//
144 AliTagAnalysis *TagAna = new AliTagAnalysis("ESD");
146 AliRunTagCuts *runCuts = new AliRunTagCuts();
147 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
148 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
149 AliEventTagCuts *evCuts = new AliEventTagCuts();
152 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
153 TGridResult* TagResult = coll->GetGridResult("",0,0);
154 TagAna->ChainGridTags(TagResult);
156 chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
157 chain->SetBranchStatus("*Calo*",0);
159 //____________________________________________//
160 // Make the analysis manager
161 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
162 AliVEventHandler* esdH = new AliESDInputHandler;
163 mgr->SetInputEventHandler(esdH);
164 //____________________________________________//
166 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
167 TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
168 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
169 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
170 TF1 *fitPions = (TF1 *)f->Get("fitPions");
171 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
172 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
173 task1->SetPriorProbabilityFunctions(fitElectrons,
180 // Create containers for input/output
181 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
182 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
184 //____________________________________________//
185 mgr->ConnectInput(task1,0,cinput1);
186 mgr->ConnectOutput(task1,0,coutput1);
187 if (!mgr->InitAnalysis()) return;
189 mgr->StartAnalysis("local",chain);
195 //_________________________________________________//
200 printf("*** Connect to AliEn ***\n");
201 TGrid::Connect("alien://");
202 gSystem->Load("libProofPlayer.so");
204 //____________________________________________________//
205 //_____________Setting up STEERBase.par_______________//
206 //____________________________________________________//
207 setupPar("STEERBase");
208 gSystem->Load("libSTEERBase.so");
210 //____________________________________________________//
211 //_____________Setting up ESD.par_____________________//
212 //____________________________________________________//
214 gSystem->Load("libVMC.so");
215 gSystem->Load("libESD.so");
217 //____________________________________________________//
218 //_____________Setting up AOD.par_____________________//
219 //____________________________________________________//
221 gSystem->Load("libAOD.so");
223 //_________________________________________________________//
224 //_____________Setting up ANALYSIS.par_____________________//
225 //_________________________________________________________//
226 setupPar("ANALYSIS");
227 gSystem->Load("libANALYSIS.so");
229 //____________________________________________________________//
230 //_____________Setting up PWG2spectra.par_____________________//
231 //____________________________________________________________//
232 setupPar("PWG2spectra");
233 gSystem->Load("libPWG2spectra.so");
236 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
237 const char *collectionfile = "wn.xml";
239 //____________________________________________//
240 //Usage of event tags
241 AliTagAnalysis *analysis = new AliTagAnalysis();
243 chain = analysis->GetChainFromCollection(collectionfile,"esdTree");
244 chain->SetBranchStatus("*Calo*",0);
246 //____________________________________________//
247 // Make the analysis manager
248 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
249 AliVEventHandler* esdH = new AliESDInputHandler;
250 mgr->SetInputEventHandler(esdH);
251 //____________________________________________//
253 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
254 TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
255 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
256 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
257 TF1 *fitPions = (TF1 *)f->Get("fitPions");
258 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
259 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
260 task1->SetPriorProbabilityFunctions(fitElectrons,
267 // Create containers for input/output
268 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
269 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
271 //____________________________________________//
272 mgr->ConnectInput(task1,0,cinput1);
273 mgr->ConnectOutput(task1,0,coutput1);
274 if (!mgr->InitAnalysis()) return;
276 mgr->StartAnalysis("grid",chain);
282 //_________________________________________________//
286 printf("****** Connect to PROOF *******\n");
287 TProof::Open("proof://lxb6046.cern.ch");
288 gProof->SetParallel();
290 // Enable the Analysis Package
291 gProof->UploadPackage("STEERBase.par");
292 gProof->EnablePackage("STEERBase");
293 gProof->UploadPackage("ESD.par");
294 gProof->EnablePackage("ESD");
295 gProof->UploadPackage("AOD.par");
296 gProof->EnablePackage("AOD");
297 gProof->UploadPackage("ANALYSIS.par");
298 gProof->EnablePackage("ANALYSIS");
299 gProof->UploadPackage("PWG2spectra.par");
300 gProof->EnablePackage("PWG2spectra");
302 // You should get this macro and the txt file from:
303 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
304 gROOT->LoadMacro("CreateESDChain.C");
306 chain = CreateESDChain("ESD82XX_30K.txt",10);
307 chain->SetBranchStatus("*Calo*",0);
309 gProof->Load("AliAnalysisTaskProtons.cxx++");
311 //____________________________________________//
312 // Make the analysis manager
313 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
314 AliVEventHandler* esdH = new AliESDInputHandler;
315 mgr->SetInputEventHandler(esdH);
316 //____________________________________________//
318 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
319 TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
320 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
321 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
322 TF1 *fitPions = (TF1 *)f->Get("fitPions");
323 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
324 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
325 task1->SetPriorProbabilityFunctions(fitElectrons,
332 // Create containers for input/output
333 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
334 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
336 //____________________________________________//
337 mgr->ConnectInput(task1,0,cinput1);
338 mgr->ConnectOutput(task1,0,coutput1);
339 if (!mgr->InitAnalysis()) return;
341 mgr->StartAnalysis("proof",chain);
347 //_________________________________________________//
348 Int_t setupPar(const char* pararchivename) {
352 if (pararchivename) {
353 char processline[1024];
354 sprintf(processline,".! tar xvzf %s.par",pararchivename);
355 gROOT->ProcessLine(processline);
356 const char* ocwd = gSystem->WorkingDirectory();
357 gSystem->ChangeDirectory(pararchivename);
359 // check for BUILD.sh and execute
360 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
361 printf("*******************************\n");
362 printf("*** Building PAR archive ***\n");
363 printf("*******************************\n");
365 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
366 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
370 // check for SETUP.C and execute
371 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
372 printf("*******************************\n");
373 printf("*** Setup PAR archive ***\n");
374 printf("*******************************\n");
375 gROOT->Macro("PROOF-INF/SETUP.C");
378 gSystem->ChangeDirectory("../");