]>
Commit | Line | Data |
---|---|---|
734d2c12 | 1 | void runProtonAnalysis() { |
2 | TStopwatch timer; | |
3 | timer.Start(); | |
4 | ||
5 | //runLocal(); | |
6 | //runInteractive(); | |
7 | //runBatch(); | |
8 | runProof(); | |
9 | ||
10 | timer.Stop(); | |
11 | timer.Print(); | |
12 | } | |
13 | ||
14 | //_________________________________________________// | |
15 | void runLocal() { | |
16 | TStopwatch timer; | |
17 | timer.Start(); | |
18 | gSystem->Load("libTree.so"); | |
19 | //____________________________________________________// | |
20 | //_____________Setting up STEERBase.par_______________// | |
21 | //____________________________________________________// | |
22 | setupPar("STEERBase"); | |
23 | gSystem->Load("libSTEERBase.so"); | |
24 | ||
25 | //____________________________________________________// | |
26 | //_____________Setting up ESD.par_____________________// | |
27 | //____________________________________________________// | |
28 | setupPar("ESD"); | |
29 | gSystem->Load("libVMC.so"); | |
30 | gSystem->Load("libESD.so"); | |
31 | ||
32 | //____________________________________________________// | |
33 | //_____________Setting up AOD.par_____________________// | |
34 | //____________________________________________________// | |
35 | setupPar("AOD"); | |
36 | gSystem->Load("libAOD.so"); | |
37 | ||
38 | //_________________________________________________________// | |
39 | //_____________Setting up ANALYSIS.par_____________________// | |
40 | //_________________________________________________________// | |
41 | setupPar("ANALYSIS"); | |
42 | gSystem->Load("libANALYSIS.so"); | |
43 | ||
44 | //____________________________________________________________// | |
45 | //_____________Setting up PWG2spectra.par_____________________// | |
46 | //____________________________________________________________// | |
47 | setupPar("PWG2spectra"); | |
48 | gSystem->Load("libPWG2spectra.so"); | |
49 | ||
50 | gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); | |
51 | ||
52 | //____________________________________________// | |
53 | AliTagAnalysis *TagAna = new AliTagAnalysis("ESD"); | |
54 | TagAna->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags"); | |
55 | ||
56 | AliRunTagCuts *runCuts = new AliRunTagCuts(); | |
57 | AliLHCTagCuts *lhcCuts = new AliLHCTagCuts(); | |
58 | AliDetectorTagCuts *detCuts = new AliDetectorTagCuts(); | |
59 | AliEventTagCuts *evCuts = new AliEventTagCuts(); | |
60 | ||
61 | TChain* chain = 0x0; | |
62 | chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts); | |
63 | chain->SetBranchStatus("*Calo*",0); | |
64 | ||
65 | //____________________________________________// | |
66 | // Make the analysis manager | |
67 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
68 | AliVEventHandler* esdH = new AliESDInputHandler; | |
69 | mgr->SetInputEventHandler(esdH); | |
70 | //____________________________________________// | |
71 | // 1st Proton task | |
72 | AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons"); | |
73 | mgr->AddTask(task1); | |
74 | ||
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"); | |
78 | ||
79 | //____________________________________________// | |
80 | mgr->ConnectInput(task1,0,cinput1); | |
81 | mgr->ConnectOutput(task1,0,coutput1); | |
82 | if (!mgr->InitAnalysis()) return; | |
83 | mgr->PrintStatus(); | |
84 | mgr->StartAnalysis("local",chain); | |
85 | ||
86 | timer.Stop(); | |
87 | timer.Print(); | |
88 | } | |
89 | ||
90 | //_________________________________________________// | |
91 | void runInteractive() { | |
92 | TStopwatch timer; | |
93 | timer.Start(); | |
94 | gSystem->Load("libProofPlayer.so"); | |
95 | ||
96 | printf("*** Connect to AliEn ***\n"); | |
97 | TGrid::Connect("alien://"); | |
98 | ||
99 | //____________________________________________________// | |
100 | //_____________Setting up STEERBase.par_______________// | |
101 | //____________________________________________________// | |
102 | setupPar("STEERBase"); | |
103 | gSystem->Load("libSTEERBase.so"); | |
104 | ||
105 | //____________________________________________________// | |
106 | //_____________Setting up ESD.par_____________________// | |
107 | //____________________________________________________// | |
108 | setupPar("ESD"); | |
109 | gSystem->Load("libVMC.so"); | |
110 | gSystem->Load("libESD.so"); | |
111 | ||
112 | //____________________________________________________// | |
113 | //_____________Setting up AOD.par_____________________// | |
114 | //____________________________________________________// | |
115 | setupPar("AOD"); | |
116 | gSystem->Load("libAOD.so"); | |
117 | ||
118 | //_________________________________________________________// | |
119 | //_____________Setting up ANALYSIS.par_____________________// | |
120 | //_________________________________________________________// | |
121 | setupPar("ANALYSIS"); | |
122 | gSystem->Load("libANALYSIS.so"); | |
123 | ||
124 | //____________________________________________________________// | |
125 | //_____________Setting up PWG2spectra.par_____________________// | |
126 | //____________________________________________________________// | |
127 | setupPar("PWG2spectra"); | |
128 | gSystem->Load("libPWG2spectra.so"); | |
129 | ||
130 | gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); | |
131 | ||
132 | //____________________________________________// | |
133 | AliTagAnalysis *TagAna = new AliTagAnalysis("ESD"); | |
134 | ||
135 | AliRunTagCuts *runCuts = new AliRunTagCuts(); | |
136 | AliLHCTagCuts *lhcCuts = new AliLHCTagCuts(); | |
137 | AliDetectorTagCuts *detCuts = new AliDetectorTagCuts(); | |
138 | AliEventTagCuts *evCuts = new AliEventTagCuts(); | |
139 | ||
140 | //grid tags | |
141 | TAlienCollection* coll = TAlienCollection::Open("tag.xml"); | |
142 | TGridResult* TagResult = coll->GetGridResult("",0,0); | |
143 | TagAna->ChainGridTags(TagResult); | |
144 | TChain* chain = 0x0; | |
145 | chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts); | |
146 | chain->SetBranchStatus("*Calo*",0); | |
147 | ||
148 | //____________________________________________// | |
149 | // Make the analysis manager | |
150 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
151 | AliVEventHandler* esdH = new AliESDInputHandler; | |
152 | mgr->SetInputEventHandler(esdH); | |
153 | //____________________________________________// | |
154 | // 1st Proton task | |
155 | AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons"); | |
156 | mgr->AddTask(task1); | |
157 | ||
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"); | |
161 | ||
162 | //____________________________________________// | |
163 | mgr->ConnectInput(task1,0,cinput1); | |
164 | mgr->ConnectOutput(task1,0,coutput1); | |
165 | if (!mgr->InitAnalysis()) return; | |
166 | mgr->PrintStatus(); | |
167 | mgr->StartAnalysis("local",chain); | |
168 | ||
169 | timer.Stop(); | |
170 | timer.Print(); | |
171 | } | |
172 | ||
173 | //_________________________________________________// | |
174 | void runBatch() { | |
175 | TStopwatch timer; | |
176 | timer.Start(); | |
177 | ||
178 | printf("*** Connect to AliEn ***\n"); | |
179 | TGrid::Connect("alien://"); | |
180 | gSystem->Load("libProofPlayer.so"); | |
181 | ||
182 | //____________________________________________________// | |
183 | //_____________Setting up STEERBase.par_______________// | |
184 | //____________________________________________________// | |
185 | setupPar("STEERBase"); | |
186 | gSystem->Load("libSTEERBase.so"); | |
187 | ||
188 | //____________________________________________________// | |
189 | //_____________Setting up ESD.par_____________________// | |
190 | //____________________________________________________// | |
191 | setupPar("ESD"); | |
192 | gSystem->Load("libVMC.so"); | |
193 | gSystem->Load("libESD.so"); | |
194 | ||
195 | //____________________________________________________// | |
196 | //_____________Setting up AOD.par_____________________// | |
197 | //____________________________________________________// | |
198 | setupPar("AOD"); | |
199 | gSystem->Load("libAOD.so"); | |
200 | ||
201 | //_________________________________________________________// | |
202 | //_____________Setting up ANALYSIS.par_____________________// | |
203 | //_________________________________________________________// | |
204 | setupPar("ANALYSIS"); | |
205 | gSystem->Load("libANALYSIS.so"); | |
206 | ||
207 | //____________________________________________________________// | |
208 | //_____________Setting up PWG2spectra.par_____________________// | |
209 | //____________________________________________________________// | |
210 | setupPar("PWG2spectra"); | |
211 | gSystem->Load("libPWG2spectra.so"); | |
212 | ||
213 | //ANALYSIS PART | |
214 | gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); | |
215 | const char *collectionfile = "wn.xml"; | |
216 | ||
217 | //____________________________________________// | |
218 | //Usage of event tags | |
219 | AliTagAnalysis *analysis = new AliTagAnalysis(); | |
220 | TChain *chain = 0x0; | |
221 | chain = analysis->GetChainFromCollection(collectionfile,"esdTree"); | |
222 | chain->SetBranchStatus("*Calo*",0); | |
223 | ||
224 | //____________________________________________// | |
225 | // Make the analysis manager | |
226 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
227 | AliVEventHandler* esdH = new AliESDInputHandler; | |
228 | mgr->SetInputEventHandler(esdH); | |
229 | //____________________________________________// | |
230 | // 1st Proton task | |
231 | AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons"); | |
232 | mgr->AddTask(task1); | |
233 | ||
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"); | |
237 | ||
238 | //____________________________________________// | |
239 | mgr->ConnectInput(task1,0,cinput1); | |
240 | mgr->ConnectOutput(task1,0,coutput1); | |
241 | if (!mgr->InitAnalysis()) return; | |
242 | mgr->PrintStatus(); | |
243 | mgr->StartAnalysis("grid",chain); | |
244 | ||
245 | timer.Stop(); | |
246 | timer.Print(); | |
247 | } | |
248 | ||
249 | //_________________________________________________// | |
250 | void runProof() { | |
251 | TStopwatch timer; | |
252 | timer.Start(); | |
253 | printf("****** Connect to PROOF *******\n"); | |
254 | TProof::Open("proof://lxb6046.cern.ch"); | |
255 | gProof->SetParallel(1); | |
256 | ||
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"); | |
268 | ||
269 | // You should get this macro and the txt file from: | |
270 | // http://aliceinfo.cern.ch/Offline/Analysis/CAF/ | |
271 | gROOT->LoadMacro("CreateESDChain.C"); | |
272 | TChain* chain = 0x0; | |
273 | chain = CreateESDChain("ESD82XX_30K.txt",10); | |
274 | chain->SetBranchStatus("*Calo*",0); | |
275 | ||
276 | gProof->Load("AliAnalysisTaskProtons.cxx++"); | |
277 | ||
278 | //____________________________________________// | |
279 | // Make the analysis manager | |
280 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
281 | AliVEventHandler* esdH = new AliESDInputHandler; | |
282 | mgr->SetInputEventHandler(esdH); | |
283 | //____________________________________________// | |
284 | // 1st Proton task | |
285 | AliAnalysisTaskProtons *task1 = new AliAnalysisTaskProtons("TaskProtons"); | |
286 | mgr->AddTask(task1); | |
287 | ||
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"); | |
291 | ||
292 | //____________________________________________// | |
293 | mgr->ConnectInput(task1,0,cinput1); | |
294 | mgr->ConnectOutput(task1,0,coutput1); | |
295 | if (!mgr->InitAnalysis()) return; | |
296 | mgr->PrintStatus(); | |
297 | mgr->StartAnalysis("proof",chain); | |
298 | ||
299 | timer.Stop(); | |
300 | timer.Print(); | |
301 | } | |
302 | ||
303 | //_________________________________________________// | |
304 | Int_t setupPar(const char* pararchivename) { | |
305 | /////////////////// | |
306 | // Setup PAR File// | |
307 | /////////////////// | |
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); | |
314 | ||
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"); | |
320 | ||
321 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { | |
322 | Error("runAnalysis","Cannot Build the PAR Archive! - Abort!"); | |
323 | return -1; | |
324 | } | |
325 | } | |
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"); | |
332 | } | |
333 | ||
334 | gSystem->ChangeDirectory("../"); | |
335 | } | |
336 | return 1; | |
337 | } |