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