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");
75 // Create containers for input/output
76 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
77 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
79 //____________________________________________//
80 mgr->ConnectInput(task1,0,cinput1);
81 mgr->ConnectOutput(task1,0,coutput1);
82 if (!mgr->InitAnalysis()) return;
84 mgr->StartAnalysis("local",chain);
90 //_________________________________________________//
91 void runInteractive() {
94 gSystem->Load("libProofPlayer.so");
96 printf("*** Connect to AliEn ***\n");
97 TGrid::Connect("alien://");
99 //____________________________________________________//
100 //_____________Setting up STEERBase.par_______________//
101 //____________________________________________________//
102 setupPar("STEERBase");
103 gSystem->Load("libSTEERBase.so");
105 //____________________________________________________//
106 //_____________Setting up ESD.par_____________________//
107 //____________________________________________________//
109 gSystem->Load("libVMC.so");
110 gSystem->Load("libESD.so");
112 //____________________________________________________//
113 //_____________Setting up AOD.par_____________________//
114 //____________________________________________________//
116 gSystem->Load("libAOD.so");
118 //_________________________________________________________//
119 //_____________Setting up ANALYSIS.par_____________________//
120 //_________________________________________________________//
121 setupPar("ANALYSIS");
122 gSystem->Load("libANALYSIS.so");
124 //____________________________________________________________//
125 //_____________Setting up PWG2spectra.par_____________________//
126 //____________________________________________________________//
127 setupPar("PWG2spectra");
128 gSystem->Load("libPWG2spectra.so");
130 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
132 //____________________________________________//
133 AliTagAnalysis *TagAna = new AliTagAnalysis("ESD");
135 AliRunTagCuts *runCuts = new AliRunTagCuts();
136 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
137 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
138 AliEventTagCuts *evCuts = new AliEventTagCuts();
141 TAlienCollection* coll = TAlienCollection::Open("tag.xml");
142 TGridResult* TagResult = coll->GetGridResult("",0,0);
143 TagAna->ChainGridTags(TagResult);
145 chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
146 chain->SetBranchStatus("*Calo*",0);
148 //____________________________________________//
149 // Make the analysis manager
150 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
151 AliVEventHandler* esdH = new AliESDInputHandler;
152 mgr->SetInputEventHandler(esdH);
153 //____________________________________________//
155 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
158 // Create containers for input/output
159 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
160 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
162 //____________________________________________//
163 mgr->ConnectInput(task1,0,cinput1);
164 mgr->ConnectOutput(task1,0,coutput1);
165 if (!mgr->InitAnalysis()) return;
167 mgr->StartAnalysis("local",chain);
173 //_________________________________________________//
178 printf("*** Connect to AliEn ***\n");
179 TGrid::Connect("alien://");
180 gSystem->Load("libProofPlayer.so");
182 //____________________________________________________//
183 //_____________Setting up STEERBase.par_______________//
184 //____________________________________________________//
185 setupPar("STEERBase");
186 gSystem->Load("libSTEERBase.so");
188 //____________________________________________________//
189 //_____________Setting up ESD.par_____________________//
190 //____________________________________________________//
192 gSystem->Load("libVMC.so");
193 gSystem->Load("libESD.so");
195 //____________________________________________________//
196 //_____________Setting up AOD.par_____________________//
197 //____________________________________________________//
199 gSystem->Load("libAOD.so");
201 //_________________________________________________________//
202 //_____________Setting up ANALYSIS.par_____________________//
203 //_________________________________________________________//
204 setupPar("ANALYSIS");
205 gSystem->Load("libANALYSIS.so");
207 //____________________________________________________________//
208 //_____________Setting up PWG2spectra.par_____________________//
209 //____________________________________________________________//
210 setupPar("PWG2spectra");
211 gSystem->Load("libPWG2spectra.so");
214 gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++");
215 const char *collectionfile = "wn.xml";
217 //____________________________________________//
218 //Usage of event tags
219 AliTagAnalysis *analysis = new AliTagAnalysis();
221 chain = analysis->GetChainFromCollection(collectionfile,"esdTree");
222 chain->SetBranchStatus("*Calo*",0);
224 //____________________________________________//
225 // Make the analysis manager
226 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
227 AliVEventHandler* esdH = new AliESDInputHandler;
228 mgr->SetInputEventHandler(esdH);
229 //____________________________________________//
231 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
234 // Create containers for input/output
235 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
236 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
238 //____________________________________________//
239 mgr->ConnectInput(task1,0,cinput1);
240 mgr->ConnectOutput(task1,0,coutput1);
241 if (!mgr->InitAnalysis()) return;
243 mgr->StartAnalysis("grid",chain);
249 //_________________________________________________//
253 printf("****** Connect to PROOF *******\n");
254 TProof::Open("proof://lxb6046.cern.ch");
255 gProof->SetParallel(1);
257 // Enable the Analysis Package
258 gProof->UploadPackage("STEERBase.par");
259 gProof->EnablePackage("STEERBase");
260 gProof->UploadPackage("ESD.par");
261 gProof->EnablePackage("ESD");
262 gProof->UploadPackage("AOD.par");
263 gProof->EnablePackage("AOD");
264 gProof->UploadPackage("ANALYSIS.par");
265 gProof->EnablePackage("ANALYSIS");
266 gProof->UploadPackage("PWG2spectra.par");
267 gProof->EnablePackage("PWG2spectra");
269 // You should get this macro and the txt file from:
270 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
271 gROOT->LoadMacro("CreateESDChain.C");
273 chain = CreateESDChain("ESD82XX_30K.txt",10);
274 chain->SetBranchStatus("*Calo*",0);
276 gProof->Load("AliAnalysisTaskProtons.cxx++");
278 //____________________________________________//
279 // Make the analysis manager
280 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
281 AliVEventHandler* esdH = new AliESDInputHandler;
282 mgr->SetInputEventHandler(esdH);
283 //____________________________________________//
285 AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons");
288 // Create containers for input/output
289 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1",TChain::Class(),AliAnalysisManager::kInputContainer);
290 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Protons.ESD.root");
292 //____________________________________________//
293 mgr->ConnectInput(task1,0,cinput1);
294 mgr->ConnectOutput(task1,0,coutput1);
295 if (!mgr->InitAnalysis()) return;
297 mgr->StartAnalysis("proof",chain);
303 //_________________________________________________//
304 Int_t setupPar(const char* pararchivename) {
308 if (pararchivename) {
309 char processline[1024];
310 sprintf(processline,".! tar xvzf %s.par",pararchivename);
311 gROOT->ProcessLine(processline);
312 const char* ocwd = gSystem->WorkingDirectory();
313 gSystem->ChangeDirectory(pararchivename);
315 // check for BUILD.sh and execute
316 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
317 printf("*******************************\n");
318 printf("*** Building PAR archive ***\n");
319 printf("*******************************\n");
321 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
322 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
326 // check for SETUP.C and execute
327 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
328 printf("*******************************\n");
329 printf("*** Setup PAR archive ***\n");
330 printf("*******************************\n");
331 gROOT->Macro("PROOF-INF/SETUP.C");
334 gSystem->ChangeDirectory("../");