]>
Commit | Line | Data |
---|---|---|
51cfc50d | 1 | void runAnalysisTaskITSTPCalignment() |
2 | { | |
3 | TStopwatch timer; | |
4 | timer.Start(); | |
5 | ||
6 | //runProof("/ITS/dainesea/run104070#esdTree"); | |
7 | //runProof("/ITS/dainesea/run104070_newTPCalign#esdTree"); | |
8 | //runProof("/ALIREC/aliprod/run104671#esdTree"); | |
9 | //runProof("/ITS/dainesea/run104070_newTPCcalib#esdTree"); | |
10 | //runProof("/COMMON/COMMON/LHC09d9a_0.9TeV_0.5T#esdTree"); | |
11 | //runLocal("find /data/alice3/mikolaj/runs_pp/pass1/ -name AliESDs.root","tree"); | |
12 | //runLocal("find /data/alice3/mikolaj/ITSmisal -path */0.001/* -name AliESDs.root","tree"); | |
13 | //runLocal("find /data/alice3/mikolaj/TPCfullmisalignmentB0 -name AliESDs.root","tree"); | |
14 | //runLocal("find /data/alice3/mikolaj/TPCfullmisalignmentB5/ -name AliESDs.root -path \"*187824*\" ","tree"); | |
15 | //runLocal("find /data/alice3/mikolaj/TPCfullmisalignmentB5/ -name AliESDs.root","tree"); | |
20ef1093 | 16 | runLocal("fileList"); |
17 | //runAlienPlugin("terminate"); | |
51cfc50d | 18 | |
19 | timer.Stop(); | |
20 | timer.Print(); | |
21 | } | |
22 | ||
23 | //______________________________________________________________________________ | |
20ef1093 | 24 | void runLocal(TString inputFile = "fileList", TString options="") |
51cfc50d | 25 | { |
26 | ||
27 | TString outputFilename = "outputITSTPCalignment.root"; | |
28 | ||
20ef1093 | 29 | gSystem->Load("libCore"); |
30 | gSystem->Load("libTree"); | |
31 | gSystem->Load("libGeom"); | |
32 | gSystem->Load("libVMC"); | |
33 | gSystem->Load("libXMLIO"); | |
34 | gSystem->Load("libPhysics"); | |
35 | gSystem->Load("libXMLParser"); | |
36 | gSystem->Load("libProof"); | |
37 | gSystem->Load("libMinuit"); | |
51cfc50d | 38 | gSystem->Load("libSTEERBase"); |
20ef1093 | 39 | gSystem->Load("libCDB"); |
40 | gSystem->Load("libRAWDatabase"); | |
41 | gSystem->Load("libRAWDatarec"); | |
51cfc50d | 42 | gSystem->Load("libESD"); |
43 | gSystem->Load("libAOD"); | |
20ef1093 | 44 | gSystem->Load("libSTEER"); |
51cfc50d | 45 | gSystem->Load("libANALYSIS"); |
20ef1093 | 46 | gSystem->Load("libANALYSISalice"); |
47 | gSystem->Load("libSTAT"); | |
48 | gSystem->Load("libTPCbase"); | |
49 | gSystem->Load("libTPCrec"); | |
50 | gSystem->Load("libITSbase"); | |
51 | gSystem->Load("libITSrec"); | |
52 | gSystem->Load("libTRDbase"); | |
53 | gSystem->Load("libTRDrec"); | |
54 | gSystem->Load("libVZERObase"); | |
55 | gSystem->Load("libVZEROrec"); | |
56 | gSystem->Load("libHMPIDbase"); | |
57 | gSystem->Load("libTENDER"); | |
58 | gSystem->Load("libTENDERSupplies"); | |
2bfe5463 | 59 | gSystem->Load("libPWGPP"); |
51cfc50d | 60 | |
61 | gSystem->AddIncludePath("-I$ALICE_ROOT/include"); | |
20ef1093 | 62 | //gROOT->LoadMacro("AliRelAlignerKalman.cxx++"); |
63 | //gROOT->LoadMacro("AliRelAlignerKalmanArray.cxx++g"); | |
64 | //gROOT->LoadMacro("AliAnalysisTaskITSTPCalignment.cxx++g"); | |
51cfc50d | 65 | gROOT->LoadMacro("AddTaskITSTPCalignment.C"); |
51cfc50d | 66 | |
20ef1093 | 67 | gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C"); |
68 | TChain* chain = CreateESDChain(inputFile,100000); | |
51cfc50d | 69 | |
70 | // analysis manager | |
71 | AliAnalysisManager *mgr = new AliAnalysisManager("ITSTPCalignmentAnalysisManager"); | |
72 | ||
73 | // input handlers | |
20ef1093 | 74 | AliESDInputHandler* esdH = new AliESDInputHandler(); |
75 | esdH->SetReadFriends(kTRUE); | |
76 | esdH->SetInactiveBranches("Calo FMD"); | |
51cfc50d | 77 | mgr->SetInputEventHandler(esdH); |
78 | ||
79 | //AliMCEventHandler* MCH = new AliMCEventHandler(); | |
80 | //mgr->SetMCtruthEventHandler(MCH); | |
81 | ||
82 | //add the task | |
83 | AliAnalysisTaskITSTPCalignment *task = AddTaskITSTPCalignment(); | |
84 | ||
85 | //start analysis | |
86 | if (!mgr->InitAnalysis()) return; | |
87 | mgr->PrintStatus(); | |
88 | ||
89 | mgr->StartAnalysis("local",chain); | |
90 | } | |
91 | ||
92 | //______________________________________________________________________________ | |
93 | void runProof(const char* dataset, TString options="" ) | |
94 | { | |
95 | ||
96 | TString outputFilename = "outputITSTPCalignment.root"; | |
97 | ||
98 | printf("****** Connect to PROOF *******\n"); | |
99 | gEnv->SetValue("XSec.GSI.DelegProxy","2"); | |
100 | TProof::Open("mkrzewic@alicecaf.cern.ch"); | |
101 | //gProof->SetParallel(); | |
102 | gProof->ClearPackages(); | |
103 | ||
104 | // Enable the Analysis Package | |
105 | gProof->UploadPackage("STEERBase.par"); | |
106 | gProof->EnablePackage("STEERBase"); | |
107 | gProof->UploadPackage("ESD.par"); | |
108 | gProof->EnablePackage("ESD"); | |
109 | gProof->UploadPackage("AOD.par"); | |
110 | gProof->EnablePackage("AOD"); | |
111 | gProof->UploadPackage("ANALYSIS.par"); | |
112 | gProof->EnablePackage("ANALYSIS"); | |
113 | gProof->UploadPackage("ANALYSISalice.par"); | |
114 | gProof->EnablePackage("ANALYSISalice"); | |
115 | gProof->UploadPackage("CORRFW.par"); | |
116 | gProof->EnablePackage("CORRFW"); | |
117 | ||
118 | //gProof->UploadPackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-18-12-AN/AF-v4-18-12-AN"); | |
119 | //gProof->EnablePackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-18-12-AN/AF-v4-18-12-AN"); | |
120 | ||
121 | gProof->Load("AliRelAlignerKalman.cxx++g"); | |
122 | gProof->Load("AliRelAlignerKalmanArray.cxx++g"); | |
123 | gProof->Load("AliAnalysisTaskITSTPCalignment.cxx++g"); | |
124 | gProof->Load("AddTaskITSTPCalignment.C"); | |
125 | ||
126 | // analysis manager | |
127 | AliAnalysisManager *mgr = new AliAnalysisManager("ITSTPCalignmentAnalysisManager"); | |
128 | ||
129 | // input handlers | |
130 | AliVEventHandler* esdH = new AliESDInputHandler(); | |
20ef1093 | 131 | ((AliESDInputHandler*)esdH)->SetReadFriends(kTRUE); |
51cfc50d | 132 | mgr->SetInputEventHandler(esdH); |
133 | ||
134 | //add the task | |
135 | AliAnalysisTaskITSTPCalignment *task = AddTaskITSTPCalignment(); | |
136 | ||
137 | //start analysis | |
138 | if (!mgr->InitAnalysis()) return; | |
139 | mgr->PrintStatus(); | |
140 | ||
141 | mgr->StartAnalysis("proof",dataset,10000,0); | |
142 | } | |
143 | ||
144 | //______________________________________________________________________________ | |
145 | void runAlienPlugin(const char* pluginmode="full") | |
146 | { | |
147 | //must be configured in CreateAlienHandler.C file | |
148 | ||
149 | TString outputFilename = "outputITSTPCalignment.root"; | |
150 | ||
151 | // Load common libraries | |
20ef1093 | 152 | gSystem->Load("libCore"); |
153 | gSystem->Load("libTree"); | |
154 | gSystem->Load("libGeom"); | |
155 | gSystem->Load("libVMC"); | |
156 | gSystem->Load("libXMLIO"); | |
157 | gSystem->Load("libPhysics"); | |
158 | gSystem->Load("libXMLParser"); | |
159 | gSystem->Load("libProof"); | |
160 | gSystem->Load("libMinuit"); | |
51cfc50d | 161 | gSystem->Load("libSTEERBase"); |
20ef1093 | 162 | gSystem->Load("libCDB"); |
163 | gSystem->Load("libRAWDatabase"); | |
164 | gSystem->Load("libRAWDatarec"); | |
51cfc50d | 165 | gSystem->Load("libESD"); |
166 | gSystem->Load("libAOD"); | |
20ef1093 | 167 | gSystem->Load("libSTEER"); |
51cfc50d | 168 | gSystem->Load("libANALYSIS"); |
20ef1093 | 169 | gSystem->Load("libANALYSISalice"); |
170 | gSystem->Load("libSTAT"); | |
171 | gSystem->Load("libTPCbase"); | |
172 | gSystem->Load("libTPCrec"); | |
173 | gSystem->Load("libITSbase"); | |
174 | gSystem->Load("libITSrec"); | |
175 | gSystem->Load("libTRDbase"); | |
176 | gSystem->Load("libTRDrec"); | |
177 | gSystem->Load("libVZERObase"); | |
178 | gSystem->Load("libVZEROrec"); | |
179 | gSystem->Load("libHMPIDbase"); | |
180 | gSystem->Load("libTENDER"); | |
181 | gSystem->Load("libTENDERSupplies"); | |
2bfe5463 | 182 | gSystem->Load("libPWGPP"); |
51cfc50d | 183 | |
184 | // Use AliRoot includes to compile our task | |
185 | gSystem->AddIncludePath("-I$ALICE_ROOT/include"); | |
186 | ||
187 | ///////////////////////////////////////////////////////////////////////////////////////////// | |
188 | ///////////////////////////////////////////////////////////////////////////////////////////// | |
189 | ///////////////////////////////////////////////////////////////////////////////////////////// | |
190 | // Create and configure the alien handler plugin | |
191 | // Check if user has a valid token, otherwise make one. This has limitations. | |
192 | // One can always follow the standard procedure of calling alien-token-init then | |
193 | // source /tmp/gclient_env_$UID in the current shell. | |
194 | if (!AliAnalysisGrid::CreateToken()) return NULL; | |
195 | AliAnalysisAlien *plugin = new AliAnalysisAlien(); | |
196 | // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") | |
197 | plugin->SetRunMode(pluginmode); | |
198 | // Set versions of used packages | |
199 | plugin->SetAPIVersion("V1.1x"); | |
200 | plugin->SetROOTVersion("v5-26-00b-4"); | |
201 | plugin->SetAliROOTVersion("v4-19-11-AN"); | |
202 | // Declare input data to be processed. | |
203 | // Method 1: Create automatically XML collections using alien 'find' command. | |
204 | // Define production directory LFN | |
205 | plugin->SetGridDataDir("/alice/data/2010/LHC10b"); | |
206 | // Set data search pattern | |
207 | plugin->SetDataPattern("*/pass1/*AliESDs.root"); | |
208 | // ...then add run numbers to be considered | |
209 | plugin->SetRunPrefix("000"); | |
210 | plugin->AddRunNumber(117222); | |
211 | plugin->AddRunNumber(117220); | |
212 | plugin->AddRunNumber(117112); | |
213 | plugin->AddRunNumber(117099); | |
214 | plugin->AddRunNumber(117048); | |
215 | plugin->AddRunNumber(117048); | |
216 | plugin->AddRunNumber(116288); | |
217 | plugin->AddRunNumber(115322); | |
218 | plugin->AddRunNumber(114931); | |
219 | //plugin->AddRunNumber(117051); | |
220 | //plugin->SetRunRange(117029,117121); | |
221 | // Method 2: Declare existing data files (raw collections, xml collections, root file) | |
222 | // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir()) | |
223 | // XML collections added via this method can be combined with the first method if | |
224 | // the content is compatible (using or not tags) | |
225 | // plugin->AddDataFile("/alice/cern.ch/user/m/mkrzewic/pp2009pass2.xml"); | |
226 | // plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root"); | |
227 | // Define alien work directory where all files will be copied. Relative to alien $HOME. | |
228 | plugin->SetGridWorkingDir("analysisGridLHC10bPass1_3runs"); | |
229 | // Declare alien output directory. Relative to working directory. | |
230 | plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output | |
231 | // Declare the analysis source files names separated by blancs. To be compiled runtime | |
232 | // using ACLiC on the worker nodes. | |
233 | plugin->SetAnalysisSource("AliRelAlignerKalman.cxx AliRelAlignerKalmanArray.cxx AliAnalysisTaskITSTPCalignment.cxx"); | |
234 | // Declare all libraries (other than the default ones for the framework. These will be | |
235 | // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here. | |
236 | plugin->SetAdditionalLibs("AliRelAlignerKalman.h AliRelAlignerKalman.cxx AliRelAlignerKalmanArray.h AliRelAlignerKalmanArray.cxx AliAnalysisTaskITSTPCalignment.h AliAnalysisTaskITSTPCalignment.cxx");// AddTaskITSTPCalignment.C"); | |
237 | // Declare the output file names separated by blancs. | |
238 | // (can be like: file.root or file.root@ALICE::Niham::File) | |
239 | plugin->SetOutputFiles("outputITSTPCalignment.root"); | |
240 | // Optionally define the files to be archived. | |
241 | // plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File"); | |
242 | plugin->SetOutputArchive("log_archive.zip:stdout,stderr"); | |
243 | // Optionally set a name for the generated analysis macro (default MyAnalysis.C) | |
244 | plugin->SetAnalysisMacro("AnalysisITSTPCalignmentGenerated.C"); | |
245 | // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) | |
246 | plugin->SetSplitMaxInputFileNumber(20); | |
247 | // Optionally set number of failed jobs that will trigger killing waiting sub-jobs. | |
248 | plugin->SetMaxInitFailed(5); | |
249 | // Optionally resubmit threshold. | |
250 | plugin->SetMasterResubmitThreshold(90); | |
251 | // Optionally set time to live (default 30000 sec) | |
252 | plugin->SetTTL(100000); | |
253 | // Optionally set input format (default xml-single) | |
254 | plugin->SetInputFormat("xml-single"); | |
255 | // Optionally modify the name of the generated JDL (default analysis.jdl) | |
256 | plugin->SetJDLName("taskITSTPCalignment.jdl"); | |
257 | // Optionally modify job price (default 1) | |
258 | plugin->SetPrice(1); | |
259 | // Optionally modify split mode (default 'se') | |
260 | plugin->SetSplitMode("se"); | |
261 | ///////////////////////////////////////////////////////////////////////////////////////////// | |
262 | ///////////////////////////////////////////////////////////////////////////////////////////// | |
263 | ///////////////////////////////////////////////////////////////////////////////////////////// | |
264 | ||
265 | // analysis manager | |
266 | AliAnalysisManager *mgr = new AliAnalysisManager("ITSTPCalignmentAnalysisManager"); | |
267 | ||
268 | // input handlers | |
269 | mgr->SetGridHandler(plugin); | |
270 | ||
271 | //input handler | |
272 | AliESDInputHandler* esdH = new AliESDInputHandler(); | |
273 | esdH->SetInactiveBranches("Calo FMD"); | |
20ef1093 | 274 | esdH->SetReadFriends(kTRUE); |
51cfc50d | 275 | mgr->SetInputEventHandler(esdH); |
276 | ||
51cfc50d | 277 | gROOT->LoadMacro("AddTaskITSTPCalignment.C"); |
278 | ||
279 | //add the task | |
280 | AliAnalysisTaskITSTPCalignment *task = AddTaskITSTPCalignment(); | |
281 | ||
282 | //mgr->SetDebugLevel(2); | |
283 | ||
284 | if (!mgr->InitAnalysis()) return; | |
285 | mgr->PrintStatus(); | |
286 | mgr->StartAnalysis("grid"); | |
287 | } | |
288 | ||
289 | //______________________________________________________________________________ | |
290 | Int_t setupPar(const char* pararchivename) | |
291 | { | |
292 | /////////////////// | |
293 | // Setup PAR File// | |
294 | /////////////////// | |
295 | if (pararchivename) | |
296 | { | |
297 | char processline[1024]; | |
298 | sprintf(processline,".! tar xvzf %s.par",pararchivename); | |
299 | gROOT->ProcessLine(processline); | |
300 | const char* ocwd = gSystem->WorkingDirectory(); | |
301 | gSystem->ChangeDirectory(pararchivename); | |
302 | ||
303 | // check for BUILD.sh and execute | |
304 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) | |
305 | { | |
306 | printf("*******************************\n"); | |
307 | printf("*** Building PAR archive ***\n"); | |
308 | printf("*******************************\n"); | |
309 | ||
310 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) | |
311 | { | |
312 | Error("runAnalysis","Cannot Build the PAR Archive! - Abort!"); | |
313 | return -1; | |
314 | } | |
315 | } | |
316 | // check for SETUP.C and execute | |
317 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) | |
318 | { | |
319 | printf("*******************************\n"); | |
320 | printf("*** Setup PAR archive ***\n"); | |
321 | printf("*******************************\n"); | |
322 | gROOT->Macro("PROOF-INF/SETUP.C"); | |
323 | } | |
324 | ||
325 | gSystem->ChangeDirectory("../"); | |
326 | } | |
327 | return 1; | |
328 | } | |
329 | ||
330 |