]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/EBYE/macros/runBalanceFunctionPsi.C
Changed and of line style
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / runBalanceFunctionPsi.C
CommitLineData
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
8class AliAnalysisGrid;\r
9class AliAnalysisTaskBF;\r
10class AliBalance;\r
11\r
12//Centrality stuff\r
13Int_t binfirst = 0; //where do we start numbering bins\r
14Int_t binlast = 8; //where do we stop numbering bins\r
15const Int_t numberOfCentralityBins = 9;\r
1cb2a06e 16Double_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
19const Int_t numberOfSyst = 13;\r
20Float_t vZ[numberOfSyst] = {10.,12.,6.,8.,10.,10.,10.,10.,10.,10.,10.,10.,10.}; // global Vertex Z cut\r
21Float_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
22Float_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
23Float_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 24Float_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 25Float_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
26Float_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
28Bool_t kUsePID = kFALSE;\r
1cb2a06e 29Bool_t bUseHBTCut = kTRUE;\r
30Bool_t bUseConversionCut = kTRUE;\r
31Bool_t bResonancesCut = kTRUE;\r
32Bool_t bMomentumDifferenceCut = kTRUE;\r
4e33f021 33Int_t kNSigmaElectronRejection = 3;\r
0879e280 34\r
35//______________________________________________________________________________\r
36void 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
238AliAnalysisGrid* 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