]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/runProtonAnalysis.C
Removed macros not compatible with current package
[u/mrichter/AliRoot.git] / PWG2 / runProtonAnalysis.C
1 void runProtonAnalysis() {
2   TStopwatch timer;
3   timer.Start();
4   
5   //runLocal();
6   //runInteractive();
7   //runBatch();
8   
9   runProof("ESD",200000,"/PWG0/COMMON/run30000X_10TeV_0.5T"); //use data sets
10   //runProof("ESD",200); //use ascii files
11   
12   timer.Stop();
13   timer.Print();
14 }
15
16 //_________________________________________________//
17 void runLocal() {
18   TStopwatch timer;
19   timer.Start();
20   gSystem->Load("libTree.so");
21   //____________________________________________________//
22   //_____________Setting up STEERBase.par_______________//
23   //____________________________________________________//
24   setupPar("STEERBase");
25   gSystem->Load("libSTEERBase.so");
26
27   //____________________________________________________//
28   //_____________Setting up ESD.par_____________________//
29   //____________________________________________________//
30   setupPar("ESD");
31   gSystem->Load("libVMC.so");
32   gSystem->Load("libESD.so");
33   
34   //____________________________________________________//
35   //_____________Setting up AOD.par_____________________//
36   //____________________________________________________//
37   setupPar("AOD");
38   gSystem->Load("libAOD.so");
39   
40   //_________________________________________________________//
41   //_____________Setting up ANALYSIS.par_____________________//
42   //_________________________________________________________//
43   setupPar("ANALYSIS");
44   gSystem->Load("libANALYSIS.so");
45
46   //_________________________________________________________//
47   //___________Setting up ANALYSISalice.par__________________//
48   //_________________________________________________________//
49   setupPar("ANALYSISalice");
50   gSystem->Load("libANALYSISalice.so");
51
52   //____________________________________________________________//
53   //_____________Setting up PWG2spectra.par_____________________//
54   //____________________________________________________________//
55   setupPar("PWG2spectra");
56   gSystem->Load("libPWG2spectra.so");
57   
58   gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
59
60   //____________________________________________//
61   AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD"); 
62   tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags");
63
64   AliRunTagCuts *runCuts = new AliRunTagCuts();
65   AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
66   AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
67   AliEventTagCuts *evCuts = new AliEventTagCuts();
68   
69   TChain* chain = 0x0;
70   chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
71   chain->SetBranchStatus("*Calo*",0);
72
73   //____________________________________________//
74   // Make the analysis manager
75   AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
76   AliVEventHandler* esdH = new AliESDInputHandler;
77   mgr->SetInputEventHandler(esdH);  
78   //____________________________________________//
79   // 1st Proton task
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,
88                                             fitMuons,
89                                             fitPions,
90                                             fitKaons,
91                                             fitProtons);*/
92   mgr->AddTask(taskProtons);
93
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
99                                                             "Protons.ESD.root");
100
101   //____________________________________________//
102   mgr->ConnectInput(taskProtons,0,cinput1);
103   mgr->ConnectOutput(taskProtons,0,coutput1);
104   if (!mgr->InitAnalysis()) return;
105   mgr->PrintStatus();
106   mgr->StartAnalysis("local",chain);
107
108   timer.Stop();
109   timer.Print();
110 }
111
112 //_________________________________________________//
113 void runInteractive() {
114   TStopwatch timer;
115   timer.Start();
116   gSystem->Load("libProofPlayer.so");
117
118   printf("*** Connect to AliEn ***\n");
119   TGrid::Connect("alien://");
120  
121   //____________________________________________________//
122   //_____________Setting up STEERBase.par_______________//
123   //____________________________________________________//
124   setupPar("STEERBase");
125   gSystem->Load("libSTEERBase.so");
126
127   //____________________________________________________//
128   //_____________Setting up ESD.par_____________________//
129   //____________________________________________________//
130   setupPar("ESD");
131   gSystem->Load("libVMC.so");
132   gSystem->Load("libESD.so");
133
134   //____________________________________________________//
135   //_____________Setting up AOD.par_____________________//
136   //____________________________________________________//
137   setupPar("AOD");
138   gSystem->Load("libAOD.so");
139
140   //_________________________________________________________//
141   //_____________Setting up ANALYSIS.par_____________________//
142   //_________________________________________________________//
143   setupPar("ANALYSIS");
144   gSystem->Load("libANALYSIS.so");
145
146   //_________________________________________________________//
147   //___________Setting up ANALYSISalice.par__________________//
148   //_________________________________________________________//
149   setupPar("ANALYSISalice");
150   gSystem->Load("libANALYSISalice.so");
151
152   //____________________________________________________________//
153   //_____________Setting up PWG2spectra.par_____________________//
154   //____________________________________________________________//
155   setupPar("PWG2spectra");
156   gSystem->Load("libPWG2spectra.so");
157   
158   gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
159   
160   //____________________________________________//
161   AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
162  
163   AliRunTagCuts *runCuts = new AliRunTagCuts();
164   AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
165   AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
166   AliEventTagCuts *evCuts = new AliEventTagCuts();
167  
168   //grid tags
169   TAlienCollection* coll = TAlienCollection::Open("tag.xml");
170   TGridResult* TagResult = coll->GetGridResult("",0,0);
171   tagAnalysis->ChainGridTags(TagResult);
172   TChain* chain = 0x0;
173   chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
174   chain->SetBranchStatus("*Calo*",0);
175
176   //____________________________________________//
177   // Make the analysis manager
178   AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
179   AliVEventHandler* esdH = new AliESDInputHandler;
180   mgr->SetInputEventHandler(esdH);  
181   //____________________________________________//
182   // 1st Proton task
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,
191                                             fitMuons,
192                                             fitPions,
193                                             fitKaons,
194                                             fitProtons);*/
195   mgr->AddTask(taskProtons);
196
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
202                                                             "Protons.ESD.root");
203   
204   //____________________________________________//
205   mgr->ConnectInput(taskProtons,0,cinput1);
206   mgr->ConnectOutput(taskProtons,0,coutput1);
207   if (!mgr->InitAnalysis()) return;
208   mgr->PrintStatus();
209   mgr->StartAnalysis("local",chain);
210
211   timer.Stop();
212   timer.Print();
213 }
214
215 //_________________________________________________//
216 void runBatch() {
217   TStopwatch timer;
218   timer.Start();
219
220   printf("*** Connect to AliEn ***\n");
221   TGrid::Connect("alien://");
222   gSystem->Load("libProofPlayer.so");
223
224   //____________________________________________________//
225   //_____________Setting up STEERBase.par_______________//
226   //____________________________________________________//
227   setupPar("STEERBase");
228   gSystem->Load("libSTEERBase.so");
229
230   //____________________________________________________//
231   //_____________Setting up ESD.par_____________________//
232   //____________________________________________________//
233   setupPar("ESD");
234   gSystem->Load("libVMC.so");
235   gSystem->Load("libESD.so");
236
237   //____________________________________________________//
238   //_____________Setting up AOD.par_____________________//
239   //____________________________________________________//
240   setupPar("AOD");
241   gSystem->Load("libAOD.so");
242
243   //_________________________________________________________//
244   //_____________Setting up ANALYSIS.par_____________________//
245   //_________________________________________________________//
246   setupPar("ANALYSIS");
247   gSystem->Load("libANALYSIS.so");
248
249   //_________________________________________________________//
250   //___________Setting up ANALYSISalice.par__________________//
251   //_________________________________________________________//
252   setupPar("ANALYSISalice");
253   gSystem->Load("libANALYSISalice.so");
254
255   //____________________________________________________________//
256   //_____________Setting up PWG2spectra.par_____________________//
257   //____________________________________________________________//
258   setupPar("PWG2spectra");
259   gSystem->Load("libPWG2spectra.so");
260
261   //ANALYSIS PART
262   gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
263   const char *collectionfile = "wn.xml";
264
265   //____________________________________________//
266   //Usage of event tags
267   AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
268   TChain *chain = 0x0;
269   chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
270   chain->SetBranchStatus("*Calo*",0);
271
272   //____________________________________________//
273   // Make the analysis manager
274   AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
275   AliVEventHandler* esdH = new AliESDInputHandler;
276   mgr->SetInputEventHandler(esdH);  
277   //____________________________________________//
278   // 1st Proton task
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,
287                                             fitMuons,
288                                             fitPions,
289                                             fitKaons,
290                                             fitProtons);*/
291   mgr->AddTask(taskProtons);
292
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
298                                                             "Protons.ESD.root");
299
300   //____________________________________________//
301   mgr->ConnectInput(taskProtons,0,cinput1);
302   mgr->ConnectOutput(taskProtons,0,coutput1);
303   if (!mgr->InitAnalysis()) return;
304   mgr->PrintStatus();
305   mgr->StartAnalysis("grid",chain);
306
307   timer.Stop();
308   timer.Print();
309 }
310
311 //_________________________________________________//
312 void runProof(const char* mode = "ESD", Int_t stats = 0, const char* dataset = 0x0) {
313   TStopwatch timer;
314   timer.Start();
315   
316   TString smode = mode;
317   TString outputFilename = "Protons."; outputFilename += mode;
318   outputFilename += ".root";
319
320   printf("****** Connect to PROOF *******\n");
321   TProof::Open("proof://lxb6046.cern.ch"); 
322   gProof->SetParallel();
323
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");
337   
338   gProof->Load("AliAnalysisTaskProtons.cxx++");
339
340   //____________________________________________//
341   // Make the analysis manager
342   AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
343   AliVEventHandler* esdH = new AliESDInputHandler;
344   mgr->SetInputEventHandler(esdH);
345   if(smode == "MC") {
346     AliMCEventHandler *mc = new AliMCEventHandler();
347     mgr->SetMCtruthEventHandler(mc);
348   }
349   //____________________________________________//
350   // 1st Proton task
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,
360                                             fitMuons,
361                                             fitPions,
362                                             fitKaons,
363                                             fitProtons);*/
364   mgr->AddTask(taskProtons);
365
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());
372
373   //____________________________________________//
374   mgr->ConnectInput(taskProtons,0,cinput1);
375   mgr->ConnectOutput(taskProtons,0,coutput1);
376   if (!mgr->InitAnalysis()) return;
377   mgr->PrintStatus();
378
379   if(dataset)
380     mgr->StartAnalysis("proof",dataset,stats);
381   else {
382     // You should get this macro and the txt file from:
383     // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
384     gROOT->LoadMacro("CreateESDChain.C");
385     TChain* chain = 0x0;
386     chain = CreateESDChain("ESD82XX_30K.txt",stats);
387     chain->SetBranchStatus("*Calo*",0);
388
389     mgr->StartAnalysis("proof",chain);
390   }
391
392   timer.Stop();
393   timer.Print();
394 }
395
396 //_________________________________________________//
397 Int_t setupPar(const char* pararchivename) {
398   ///////////////////
399   // Setup PAR File//
400   ///////////////////
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);
407     
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");
413       
414       if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
415         Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
416         return -1;
417       }
418     }
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");
425     }
426     
427     gSystem->ChangeDirectory("../");
428   } 
429   return 1;
430 }