]>
Commit | Line | Data |
---|---|---|
0879e280 | 1 | // run.C\r |
2 | //\r | |
3 | // Template run macro for AliBasicTask.cxx/.h with example layout of\r | |
4 | // physics selections and options, in macro and task.\r | |
5 | //\r | |
6 | // Author: Arvinder Palaha\r | |
7 | //\r | |
8 | class AliAnalysisGrid;\r | |
9 | class AliAnalysisTaskBF;\r | |
10 | class AliBalance;\r | |
11 | \r | |
12 | //Centrality stuff\r | |
13 | Int_t binfirst = 0; //where do we start numbering bins\r | |
14 | Int_t binlast = 8; //where do we stop numbering bins\r | |
15 | const Int_t numberOfCentralityBins = 9;\r | |
1cb2a06e | 16 | Double_t centralityArray[numberOfCentralityBins+1] = {0.,5.,10.,20.,30.,40.,50.,60.,70.,80.}; // in centrality percentile\r |
0879e280 | 17 | \r |
18 | //Systematic studies\r | |
19 | const Int_t numberOfSyst = 13;\r | |
20 | Float_t vZ[numberOfSyst] = {10.,12.,6.,8.,10.,10.,10.,10.,10.,10.,10.,10.,10.}; // global Vertex Z cut\r | |
21 | Float_t DCAxy[numberOfSyst] = {-1.,2.4,2.4,2.4,2.2,2.0,1.8,2.4,2.4,2.4,2.4,2.4,2.4}; // DCA xy cut (afterburner, -1 = w/o additional cut)\r | |
22 | Float_t DCAz[numberOfSyst] = {-1.,3.2,3.2,3.2,3.0,2.8,2.6,3.2,3.2,3.2,3.2,3.2,3.2}; // DCA z cut (afterburner, -1 = w/o additional cut)\r | |
23 | Float_t ptMin[numberOfSyst] = {0.3,0.3,0.3,0.3,0.3,0.3,0.3,1.5,5.0,0.3,0.3,0.3,0.3}; // pt cuts\r | |
fb128ded | 24 | Float_t ptMax[numberOfSyst] = {5.,1.5,1.5,1.5,1.5,1.5,1.5,5.0,10.0,10.0,1.5,1.5,1.5}; // pt cuts\r |
0879e280 | 25 | Float_t etaMin[numberOfSyst] = {-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-1.0,-0.6,-0.4}; // eta cuts\r |
26 | Float_t etaMax[numberOfSyst] = {0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,1.0,0.6,0.4}; // eta cuts\r | |
27 | \r | |
28 | Bool_t kUsePID = kFALSE;\r | |
1cb2a06e | 29 | Bool_t bUseHBTCut = kTRUE;\r |
30 | Bool_t bUseConversionCut = kTRUE;\r | |
31 | Bool_t bResonancesCut = kTRUE;\r | |
32 | Bool_t bMomentumDifferenceCut = kTRUE;\r | |
4e33f021 | 33 | Int_t kNSigmaElectronRejection = 3;\r |
0879e280 | 34 | \r |
35 | //______________________________________________________________________________\r | |
36 | void runBalanceFunctionPsi(\r | |
37 | const char* runtype = "local", // local, proof or grid\r | |
38 | const char *gridmode = "test", // Set the run mode (can be "full", "test", "offline", "submit" or "terminate"). Full & Test work for proof\r | |
39 | const Int_t bunchN = 0,\r | |
40 | const bool bAOD = 1, // 1 = AOD ANALYSIS, 0 = ESD ANALYSIS\r | |
41 | const bool bMCtruth = 0, // 1 = MCEvent handler is on (MC truth), 0 = MCEvent handler is off (MC reconstructed/real data)\r | |
1cb2a06e | 42 | const bool bMCphyssel = 1, // 1 = looking at MC truth or reconstructed, 0 = looking at real data\r |
0879e280 | 43 | const Long64_t nentries = 50000, // for local and proof mode, ignored in grid mode. Set to 1234567890 for all events.\r |
44 | const Long64_t firstentry = 0, // for local and proof mode, ignored in grid mode\r | |
45 | TString proofdataset = "bunchPROOF", // path to dataset on proof cluster, for proof analysis\r | |
46 | const char *proofcluster = "miweber@alice-caf.cern.ch", // which proof cluster to use in proof mode\r | |
47 | const char *taskname = "BF_Syst_Test" // sets name of grid generated macros\r | |
48 | )\r | |
49 | {\r | |
50 | // check run type\r | |
fb128ded | 51 | if(runtype != "local" && runtype != "proof" && runtype != "grid") {\r |
0879e280 | 52 | Printf("\n\tIncorrect run option, check first argument of run macro");\r |
53 | Printf("\tint runtype = local, proof or grid\n");\r | |
54 | return;\r | |
55 | }\r | |
56 | Printf("%s analysis chosen",runtype);\r | |
57 | \r | |
58 | // load libraries\r | |
59 | gSystem->Load("libCore.so"); \r | |
60 | gSystem->Load("libGeom.so");\r | |
61 | gSystem->Load("libVMC.so");\r | |
62 | gSystem->Load("libPhysics.so");\r | |
63 | gSystem->Load("libTree.so");\r | |
64 | gSystem->Load("libSTEERBase.so");\r | |
65 | gSystem->Load("libESD.so");\r | |
66 | gSystem->Load("libAOD.so");\r | |
67 | gSystem->Load("libANALYSIS.so");\r | |
68 | gSystem->Load("libANALYSISalice.so");\r | |
1f7eb4d0 | 69 | gSystem->Load("libEventMixing.so");\r |
9afe3098 | 70 | gSystem->Load("libCORRFW.so");\r |
71 | gSystem->Load("libPWGTools.so");\r | |
0879e280 | 72 | gSystem->Load("libPWGCFebye.so");\r |
73 | \r | |
74 | // additional\r | |
75 | \r | |
76 | // compile standalone stuff\r | |
77 | //gROOT->LoadMacro("AliBalance.cxx++g");\r | |
78 | //gROOT->LoadMacro("AliAnalysisTaskBF.cxx++g");\r | |
79 | \r | |
80 | // add aliroot indlude path\r | |
81 | //gROOT->ProcessLine(".include $PWD/.");\r | |
82 | //gROOT->ProcessLine(Form(".include %s/include",gSystem->ExpandPathName("$ALICE_ROOT")));\r | |
83 | \r | |
84 | gROOT->SetStyle("Plain");\r | |
85 | \r | |
86 | // analysis manager\r | |
87 | AliAnalysisManager* mgr = new AliAnalysisManager(Form("%s%i",taskname,bunchN));\r | |
88 | \r | |
89 | // create the alien handler and attach it to the manager\r | |
fb128ded | 90 | if(runtype == "grid") {\r |
91 | AliAnalysisGrid *plugin = CreateAlienHandler(bAOD,bunchN,Form("%s%i",taskname,bunchN), gridmode, proofcluster, Form("%s_%d.txt",proofdataset.Data(),bunchN)); \r | |
92 | mgr->SetGridHandler(plugin);\r | |
93 | }\r | |
94 | else if(runtype == "local") {\r | |
95 | TString filename;\r | |
96 | TChain* chain = 0x0;\r | |
97 | if((!bAOD)&&(!bMCtruth)) {\r | |
98 | chain = new TChain("esdTree");\r | |
9afe3098 | 99 | for(Int_t i = 0; i < 4; i++) {\r |
fb128ded | 100 | filename = "/data/alice2/pchrist/HeavyIons/Data/2011/Set";\r |
101 | filename += i; filename += "/AliESDs.root";\r | |
102 | chain->Add(filename.Data());\r | |
103 | }\r | |
104 | }\r | |
105 | else if((bAOD)&&(!bMCtruth)) {\r | |
106 | chain = new TChain("aodTree");\r | |
a3ed6fc1 | 107 | for(Int_t i = 1; i < 20; i++) {\r |
4e33f021 | 108 | filename = "/glusterfs/alice1/alice2/pchrist/pp/LHC10c/7TeV/Data/Set";\r |
fb128ded | 109 | filename += i; filename += "/AliAOD.root";\r |
110 | chain->Add(filename.Data());\r | |
111 | }\r | |
112 | }\r | |
1cb2a06e | 113 | else if((!bAOD)&&(bMCtruth)) {\r |
fb128ded | 114 | chain = new TChain("TE");\r |
1cb2a06e | 115 | for(Int_t i = 10; i < 99; i++) {\r |
116 | filename = "/project/alice/users/alisrm/Efficiency_Contamination/LHC13b3_HIJING_pA_AOD/";\r | |
117 | filename += i;\r | |
118 | filename += "/galice.root";\r | |
119 | chain->Add(filename.Data());\r | |
120 | }\r | |
121 | }\r | |
122 | else if((bAOD)&&(bMCtruth)) { //used for MCAOD\r | |
123 | chain = new TChain("aodTree"); \r | |
124 | for(Int_t i = 10; i < 99; i++) { \r | |
125 | filename = "/project/alice/users/alisrm/Efficiency_Contamination/LHC13b3_HIJING_pA_AOD/";\r | |
126 | filename += i; \r | |
127 | filename += "/AliAOD.root";\r | |
128 | chain->Add(filename.Data());\r | |
129 | } \r | |
fb128ded | 130 | }\r |
1cb2a06e | 131 | \r |
132 | \r | |
fb128ded | 133 | }//local mode\r |
0879e280 | 134 | \r |
135 | // input handler (ESD or AOD)\r | |
a3ed6fc1 | 136 | AliVEventHandler* inputH = NULL;\r |
0879e280 | 137 | if(!bAOD){\r |
138 | inputH = new AliESDInputHandler();\r | |
139 | }\r | |
140 | else{\r | |
141 | inputH = new AliAODInputHandler();\r | |
142 | }\r | |
143 | mgr->SetInputEventHandler(inputH);\r | |
144 | \r | |
145 | // mc event handler\r | |
146 | if(bMCtruth) {\r | |
fb128ded | 147 | AliMCEventHandler* mchandler = new AliMCEventHandler();\r |
148 | // Not reading track references\r | |
149 | mchandler->SetReadTR(kFALSE);\r | |
150 | mgr->SetMCtruthEventHandler(mchandler);\r | |
0879e280 | 151 | } \r |
fb128ded | 152 | \r |
0879e280 | 153 | // AOD output handler\r |
154 | //AliAODHandler* aodoutHandler = new AliAODHandler();\r | |
155 | //aodoutHandler->SetOutputFileName("aod.root");\r | |
156 | //mgr->SetOutputEventHandler(aodoutHandler); \r | |
157 | \r | |
158 | // === Physics Selection Task ===\r | |
159 | //\r | |
160 | // In SelectCollisionCandidate(), default is kMB, so the task UserExec() \r | |
161 | // function is only called for these events.\r | |
162 | // Options are:\r | |
163 | // kMB Minimum Bias trigger\r | |
164 | // kMBNoTRD Minimum bias trigger where the TRD is not read out\r | |
165 | // kMUON Muon trigger\r | |
166 | // kHighMult High-Multiplicity Trigger\r | |
167 | // kUserDefined For manually defined trigger selection\r | |
168 | //\r | |
169 | // Multiple options possible with the standard AND/OR operators && and ||\r | |
170 | // These all have the usual offline SPD or V0 selections performed.\r | |
171 | //\r | |
172 | // With a pointer to the physics selection object using physSelTask->GetPhysicsSelection(),\r | |
173 | // one can manually set the selected and background classes using:\r | |
174 | // AddCollisionTriggerClass("+CINT1B-ABCE-NOPF-ALL")\r | |
175 | // AddBGTriggerClass("+CINT1A-ABCE-NOPF-ALL");\r | |
176 | //\r | |
177 | // One can also specify multiple classes at once, or require a class to NOT\r | |
178 | // trigger, for e.g.\r | |
179 | // AddBGTriggerClass("+CSMBA-ABCE-NOPF-ALL -CSMBB-ABCE-NOPF-ALL");\r | |
180 | //\r | |
181 | // NOTE that manually setting the physics selection overrides the standard\r | |
182 | // selection, so it must be done in completeness.\r | |
183 | //\r | |
184 | // ALTERNATIVELY, one can make the physics selection inside the task\r | |
185 | // UserExec().\r | |
186 | // For this case, comment out the task->SelectCol.... line, \r | |
187 | // and see AliBasicTask.cxx UserExec() function for details on this.\r | |
188 | \r | |
189 | //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");\r | |
190 | //AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(bMCphyssel);\r | |
191 | //if(!physSelTask) { Printf("no physSelTask"); return; }\r | |
192 | //AliPhysicsSelection *physSel = physSelTask->GetPhysicsSelection();\r | |
193 | //physSel->AddCollisionTriggerClass("+CINT1B-ABCE-NOPF-ALL");// #3119 #769");\r | |
194 | \r | |
195 | // create task\r | |
196 | //Add the centrality determination task and the physics selection \r | |
197 | // (only on ESD level, in AODs centrality is already in header and events are selected)\r | |
1cb2a06e | 198 | if((!bAOD)&&(!bMCtruth)){\r |
0879e280 | 199 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");\r |
200 | AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();\r | |
201 | \r | |
202 | // Add physics selection task (NOT needed for AODs)\r | |
203 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");\r | |
204 | AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(bMCphyssel);\r | |
4e33f021 | 205 | }\r |
0879e280 | 206 | \r |
4e33f021 | 207 | //Add the PID response\r |
208 | if((kUsePID)||(kNSigmaElectronRejection)) {\r | |
209 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");\r | |
210 | AddTaskPIDResponse(bMCphyssel); \r | |
0879e280 | 211 | }\r |
212 | \r | |
213 | //Add the VZERO event plane task\r | |
214 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskVZEROEPSelection.C"); \r | |
215 | AliVZEROEPSelectionTask* epSelTask = AddTaskVZEROEPSelection();\r | |
216 | \r | |
217 | //Add the BF task (all centralities)\r | |
4e33f021 | 218 | gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/macros/AddTaskBalancePsiCentralityTrain.C"); \r |
a3ed6fc1 | 219 | \r |
220 | AliAnalysisTaskBFPsi *taskBF = AddTaskBalancePsiCentralityTrain(0, 500, kFALSE, kTRUE, kFALSE, "V0M", 10, -1, -1, 0.2, 20.0, -0.8, 0.8, -1, -1, kUsePID, kFALSE, kTRUE, 0.02, kFALSE, 0.04, kTRUE, 0.1, 128, 1, "AnalysisResults","TE","Multiplicity","AOD",kTRUE, kNSigmaElectronRejection);\r | |
221 | //taskBF->SetDebugLevel();\r | |
1cb2a06e | 222 | \r |
0879e280 | 223 | // enable debug printouts\r |
224 | //mgr->SetDebugLevel(2);\r | |
225 | //mgr->SetUseProgressBar(1,100);\r | |
226 | if (!mgr->InitAnalysis()) return;\r | |
227 | mgr->PrintStatus();\r | |
228 | \r | |
229 | // start analysis\r | |
230 | Printf("Starting Analysis....");\r | |
fb128ded | 231 | if(runtype == "local") \r |
232 | mgr->StartAnalysis("local",chain);\r | |
233 | else\r | |
234 | mgr->StartAnalysis(runtype,nentries,firstentry);\r | |
0879e280 | 235 | }\r |
236 | \r | |
237 | //______________________________________________________________________________\r | |
238 | AliAnalysisGrid* CreateAlienHandler(Bool_t bAOD, Int_t bunchN, const char *taskname, const char *gridmode, const char *proofcluster, const char *proofdataset)\r | |
239 | {\r | |
240 | AliAnalysisAlien *plugin = new AliAnalysisAlien();\r | |
241 | // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")\r | |
242 | plugin->SetRunMode(gridmode);\r | |
243 | \r | |
244 | // Set versions of used packages\r | |
245 | plugin->SetAPIVersion("V1.1x");\r | |
246 | plugin->SetROOTVersion("v5-28-00d");\r | |
247 | plugin->SetAliROOTVersion("v5-02-05-AN");\r | |
248 | \r | |
249 | // Declare input data to be processed.\r | |
250 | \r | |
251 | // Method 1: Create automatically XML collections using alien 'find' command.\r | |
252 | // Define production directory LFN\r | |
253 | plugin->SetGridDataDir("/alice/data/2010/LHC10h/");\r | |
254 | // On real reconstructed data:\r | |
255 | // plugin->SetGridDataDir("/alice/data/2009/LHC09d");\r | |
256 | \r | |
257 | // Set data search pattern\r | |
258 | //plugin->SetDataPattern("*ESDs.root"); // THIS CHOOSES ALL PASSES\r | |
259 | // Data pattern for reconstructed data\r | |
260 | if(!bAOD){\r | |
261 | plugin->SetDataPattern("*ESDs/pass2/*ESDs.root"); // CHECK LATEST PASS OF DATA SET IN ALIENSH\r | |
262 | } \r | |
263 | else{\r | |
264 | plugin->SetDataPattern("*ESDs/pass2/AOD049/*/AliAOD.root");\r | |
265 | }\r | |
266 | \r | |
267 | plugin->SetRunPrefix("000"); // real data\r | |
268 | // ...then add run numbers to be considered\r | |
269 | //plugin->SetRunRange(114917,115322);\r | |
270 | \r | |
271 | if(bunchN==0){\r | |
272 | plugin->AddRunNumber(137366);\r | |
273 | }\r | |
274 | \r | |
275 | //bunch1\r | |
276 | else if(bunchN == 1){\r | |
277 | plugin->AddRunNumber(139510);\r | |
278 | plugin->AddRunNumber(139507);\r | |
279 | plugin->AddRunNumber(139505);\r | |
280 | plugin->AddRunNumber(139503); \r | |
281 | plugin->AddRunNumber(139465); \r | |
282 | plugin->AddRunNumber(139438);\r | |
283 | plugin->AddRunNumber(139437);\r | |
284 | plugin->AddRunNumber(139360); \r | |
285 | plugin->AddRunNumber(139329);\r | |
286 | plugin->AddRunNumber(139328); \r | |
287 | }\r | |
288 | \r | |
289 | //bunch2\r | |
290 | else if(bunchN == 2){\r | |
291 | plugin->AddRunNumber(139314); \r | |
292 | plugin->AddRunNumber(139310);\r | |
293 | plugin->AddRunNumber(139309); \r | |
294 | plugin->AddRunNumber(139173); \r | |
295 | plugin->AddRunNumber(139107); \r | |
296 | plugin->AddRunNumber(139105); \r | |
297 | plugin->AddRunNumber(139038); \r | |
298 | plugin->AddRunNumber(139037); \r | |
299 | plugin->AddRunNumber(139036); \r | |
300 | plugin->AddRunNumber(139029); \r | |
301 | plugin->AddRunNumber(139028); \r | |
302 | plugin->AddRunNumber(138872); \r | |
303 | plugin->AddRunNumber(138871); \r | |
304 | plugin->AddRunNumber(138870); \r | |
305 | plugin->AddRunNumber(138837); \r | |
306 | plugin->AddRunNumber(138732); \r | |
307 | plugin->AddRunNumber(138730);\r | |
308 | plugin->AddRunNumber(138666);\r | |
309 | plugin->AddRunNumber(138662); \r | |
310 | plugin->AddRunNumber(138653); \r | |
311 | }\r | |
312 | \r | |
313 | else if(bunchN == 3){\r | |
314 | plugin->AddRunNumber(138652);\r | |
315 | plugin->AddRunNumber(138638);\r | |
316 | plugin->AddRunNumber(138624); \r | |
317 | plugin->AddRunNumber(138621); \r | |
318 | plugin->AddRunNumber(138583); \r | |
319 | plugin->AddRunNumber(138582); \r | |
320 | plugin->AddRunNumber(138579); \r | |
321 | plugin->AddRunNumber(138578);\r | |
322 | plugin->AddRunNumber(138534);\r | |
323 | plugin->AddRunNumber(138469); \r | |
324 | }\r | |
325 | \r | |
326 | else if(bunchN == 4){\r | |
327 | \r | |
328 | plugin->AddRunNumber(138442);\r | |
329 | plugin->AddRunNumber(138439);\r | |
330 | plugin->AddRunNumber(138438);\r | |
331 | plugin->AddRunNumber(138396); \r | |
332 | plugin->AddRunNumber(138364); \r | |
333 | plugin->AddRunNumber(138275); \r | |
334 | plugin->AddRunNumber(138225); \r | |
335 | plugin->AddRunNumber(138201);\r | |
336 | plugin->AddRunNumber(138197); \r | |
337 | plugin->AddRunNumber(138192); \r | |
338 | }\r | |
339 | \r | |
340 | else if(bunchN == 5){\r | |
341 | \r | |
342 | plugin->AddRunNumber(138190);\r | |
343 | plugin->AddRunNumber(137848); \r | |
344 | plugin->AddRunNumber(137844); \r | |
345 | plugin->AddRunNumber(137752); \r | |
346 | plugin->AddRunNumber(137751); \r | |
347 | plugin->AddRunNumber(137724); \r | |
348 | plugin->AddRunNumber(137722); \r | |
349 | plugin->AddRunNumber(137718); \r | |
350 | plugin->AddRunNumber(137704); \r | |
351 | plugin->AddRunNumber(137693);\r | |
352 | }\r | |
353 | \r | |
354 | else if(bunchN == 6){\r | |
355 | \r | |
356 | plugin->AddRunNumber(137692); \r | |
357 | plugin->AddRunNumber(137691); \r | |
358 | plugin->AddRunNumber(137686); \r | |
359 | plugin->AddRunNumber(137685); \r | |
360 | plugin->AddRunNumber(137639); \r | |
361 | plugin->AddRunNumber(137638);\r | |
362 | plugin->AddRunNumber(137608); \r | |
363 | plugin->AddRunNumber(137595);\r | |
364 | plugin->AddRunNumber(137549);\r | |
365 | plugin->AddRunNumber(137546); \r | |
366 | \r | |
367 | }\r | |
368 | \r | |
369 | else if(bunchN == 7){\r | |
370 | \r | |
371 | plugin->AddRunNumber(137544); \r | |
372 | plugin->AddRunNumber(137541); \r | |
373 | plugin->AddRunNumber(137539); \r | |
374 | plugin->AddRunNumber(137531); \r | |
375 | plugin->AddRunNumber(137530); \r | |
376 | plugin->AddRunNumber(137443); \r | |
377 | plugin->AddRunNumber(137441); \r | |
378 | plugin->AddRunNumber(137440); \r | |
379 | plugin->AddRunNumber(137439); \r | |
380 | plugin->AddRunNumber(137434); \r | |
381 | \r | |
382 | }\r | |
383 | \r | |
384 | else if(bunchN == 8){\r | |
385 | \r | |
386 | plugin->AddRunNumber(137432); \r | |
387 | plugin->AddRunNumber(137431); \r | |
388 | plugin->AddRunNumber(137430); \r | |
389 | plugin->AddRunNumber(137366); \r | |
390 | plugin->AddRunNumber(137243); \r | |
391 | plugin->AddRunNumber(137236);\r | |
392 | plugin->AddRunNumber(137235);\r | |
393 | plugin->AddRunNumber(137232); \r | |
394 | plugin->AddRunNumber(137231); \r | |
395 | plugin->AddRunNumber(137162); \r | |
396 | plugin->AddRunNumber(137161);\r | |
397 | }\r | |
398 | \r | |
399 | else{\r | |
400 | \r | |
401 | stderr<<"BUNCH NOT THERE"<<endl;\r | |
402 | return NULL;\r | |
403 | \r | |
404 | }\r | |
405 | \r | |
406 | \r | |
407 | //plugin->AddRunList("139510, 139507, 139505, 139503, 139465, 139438, 139437, 139360, 139329, 139328, 139314, 139310, 139309, 139173, 139107, 139105, 139038, 139037, 139036, 139029, 139028, 138872, 138871, 138870, 138837, 138732, 138730, 138666, 138662, 138653, 138652, 138638, 138624, 138621, 138583, 138582, 138579, 138578, 138534, 138469, 138442, 138439, 138438, 138396, 138364, 138275, 138225, 138201, 138197, 138192, 138190, 137848, 137844, 137752, 137751, 137724, 137722, 137718, 137704, 137693, 137692, 137691, 137686, 137685, 137639, 137638, 137608, 137595, 137549, 137546, 137544, 137541, 137539, 137531, 137530, 137443, 137441, 137440, 137439, 137434, 137432, 137431, 137430, 137366, 137243, 137236, 137235, 137232, 137231, 137162, 137161");\r | |
408 | \r | |
409 | \r | |
410 | \r | |
411 | \r | |
412 | \r | |
413 | plugin->SetNrunsPerMaster(1);\r | |
414 | plugin->SetOutputToRunNo();\r | |
415 | // comment out the next line when using the "terminate" option, unless\r | |
416 | // you want separate merged files for each run\r | |
417 | plugin->SetMergeViaJDL();\r | |
418 | \r | |
419 | // Method 2: Declare existing data files (raw collections, xml collections, root file)\r | |
420 | // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir())\r | |
421 | // XML collections added via this method can be combined with the first method if\r | |
422 | // the content is compatible (using or not tags)\r | |
423 | // plugin->AddDataFile("tag.xml");\r | |
424 | // plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");\r | |
425 | \r | |
426 | // Define alien work directory where all files will be copied. Relative to alien $HOME.\r | |
427 | plugin->SetGridWorkingDir(taskname);\r | |
428 | \r | |
429 | // Declare alien output directory. Relative to working directory.\r | |
430 | plugin->SetGridOutputDir("out"); // In this case will be $HOME/taskname/out\r | |
431 | \r | |
432 | // Declare the analysis source files names separated by blancs. To be compiled runtime\r | |
433 | // using ACLiC on the worker nodes.\r | |
434 | plugin->SetAnalysisSource("AliBalance.cxx AliAnalysisTaskBF.cxx");\r | |
435 | \r | |
436 | // Declare all libraries (other than the default ones for the framework. These will be\r | |
437 | // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.\r | |
438 | //plugin->AddIncludePath("-I.");\r | |
439 | //plugin->SetAdditionalLibs("libPWGCFebye.so");\r | |
440 | plugin->SetAdditionalLibs("AliBalance.cxx AliBalance.h AliAnalysisTaskBF.cxx AliAnalysisTaskBF.h");\r | |
441 | \r | |
442 | // Declare the output file names separated by blancs.\r | |
443 | // (can be like: file.root or file.root@ALICE::Niham::File)\r | |
444 | // To only save certain files, use SetDefaultOutputs(kFALSE), and then\r | |
445 | // SetOutputFiles("list.root other.filename") to choose which files to save\r | |
446 | plugin->SetDefaultOutputs();\r | |
447 | //plugin->SetOutputFiles("list.root");\r | |
448 | \r | |
449 | // Optionally set a name for the generated analysis macro (default MyAnalysis.C)\r | |
450 | plugin->SetAnalysisMacro(Form("%s.C",taskname));\r | |
451 | \r | |
452 | // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)\r | |
453 | plugin->SetSplitMaxInputFileNumber(100);\r | |
454 | \r | |
455 | // Optionally modify the executable name (default analysis.sh)\r | |
456 | plugin->SetExecutable(Form("%s.sh",taskname));\r | |
457 | \r | |
458 | // set number of test files to use in "test" mode\r | |
459 | plugin->SetNtestFiles(1);\r | |
460 | \r | |
461 | // Optionally resubmit threshold.\r | |
462 | plugin->SetMasterResubmitThreshold(90);\r | |
463 | \r | |
464 | // Optionally set time to live (default 30000 sec)\r | |
465 | plugin->SetTTL(90000);\r | |
466 | \r | |
467 | // Optionally set input format (default xml-single)\r | |
468 | plugin->SetInputFormat("xml-single");\r | |
469 | \r | |
470 | // Optionally modify the name of the generated JDL (default analysis.jdl)\r | |
471 | plugin->SetJDLName(Form("%s.jdl",taskname));\r | |
472 | \r | |
473 | // Optionally modify job price (default 1)\r | |
474 | plugin->SetPrice(1); \r | |
475 | \r | |
476 | // Optionally modify split mode (default 'se') \r | |
477 | plugin->SetSplitMode("se");\r | |
478 | \r | |
479 | //plugin->SetUseSubmitPolicy();\r | |
480 | //plugin->SetKeepLogs();\r | |
481 | \r | |
482 | //----------------------------------------------------------\r | |
483 | //--- PROOF MODE SPECIFIC SETTINGS ------------\r | |
484 | //---------------------------------------------------------- \r | |
485 | // Proof cluster\r | |
486 | plugin->SetProofCluster(proofcluster);\r | |
487 | // Dataset to be used \r | |
488 | plugin->SetProofDataSet(proofdataset);\r | |
489 | // May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard\r | |
490 | plugin->SetProofReset(0);\r | |
491 | // May limit number of workers\r | |
492 | plugin->SetNproofWorkers(0);\r | |
493 | // May limit the number of workers per slave\r | |
494 | plugin->SetNproofWorkersPerSlave(1); \r | |
495 | // May use a specific version of root installed in proof\r | |
496 | plugin->SetRootVersionForProof("current");\r | |
497 | // May set the aliroot mode. Check http://aaf.cern.ch/node/83 \r | |
498 | plugin->SetAliRootMode("default"); // Loads AF libs by default\r | |
499 | // May request ClearPackages (individual ClearPackage not supported)\r | |
500 | plugin->SetClearPackages(kFALSE);\r | |
501 | // Plugin test mode works only providing a file containing test file locations, used in "local" mode also\r | |
502 | plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc\r | |
503 | // Request connection to alien upon connection to grid\r | |
504 | plugin->SetProofConnectGrid(kFALSE);\r | |
505 | \r | |
506 | plugin->Print();\r | |
507 | \r | |
508 | return plugin;\r | |
509 | }\r | |
510 | \r |