]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/PilotTrain/PilotAnalysis.C
Coverity fixes.
[u/mrichter/AliRoot.git] / PWG1 / PilotTrain / PilotAnalysis.C
CommitLineData
fe0275ad 1#include "Riostream.h"
f59ecfbc 2void LoadLibraries();
3void AddAnalysisTasks();
4class AliAnalysisAlien;
5AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode);
6
44a84424 7Int_t runNumbers[5] = {137844};
574b2e7b 8
cc0ef64f 9Bool_t doCDBconnect = 1;
0e23e583 10Bool_t doEventStat = 1;
46ff50c9 11Bool_t doCentrality = 0;
cc0ef64f 12Bool_t doQAsym = 1;
13Bool_t doVZERO = 1; // there is a 2nd file
14Bool_t doVertex = 1;
15Bool_t doSPD = 1; // needs RP
46ff50c9 16Bool_t doTPC = 0;
cc0ef64f 17Bool_t doSDD = 1; // needs RP
18Bool_t doSSDdEdx = 1;
8e52a034 19// new
cc0ef64f 20Bool_t doTRD = 1;
21Bool_t doITS = 1;
22Bool_t doCALO = 1;
23Bool_t doMUONTrig = 1;
24Bool_t doImpParRes = 1;
25Bool_t doMUON = 1;
26Bool_t doTOF = 1;
27Bool_t doHMPID = 1;
a05adbe9 28
9bdd18e3 29Bool_t doMUONEff = 0; // NEEDS geometry
30Bool_t doV0 = 0; // NEEDS MCtruth
f59ecfbc 31
9bdd18e3 32TString train_name = "QA"; // QA local folder name
46ff50c9 33TString train_tag = "pp"; // Train special tag appended to
9bdd18e3 34 // visible name. ("sim", "pp", ...)
35 // Name in train page (DON'T CHANGE)
36TString visible_name = Form("QA$2_$3%s", train_tag.Data()); //# FIXED #
46ff50c9 37TString job_comment = "PWG1 QA train (no TPC)"; // Can add observations here
9bdd18e3 38 // Job tag (DON'T CHANGE)
ab93cb3c 39TString job_tag = Form("%s: %s", visible_name.Data(), job_comment.Data());
9bdd18e3 40 // Package versions - Modify as needed
44a84424 41TString root_version = "v5-27-06b";
46ff50c9 42TString aliroot_version = "v4-21-12-AN";
9bdd18e3 43 // Production directory - change as needed for test mode
46ff50c9 44TString grid_datadir = "/alice/data/2010/LHC10e";
9bdd18e3 45 // Work directory in GRID (DON'T CHANGE)
46TString grid_workdir = "/alice/cern.ch/user/a/alidaq/QA/QA$2";
47 // Job splitting
46ff50c9 48Int_t grid_split = 20; // Splitting
9bdd18e3 49 // Debug level
2251e21b 50Int_t debug_level = 1; // Debugging
35b82dbf 51 // File merging
52Int_t maxMergeFiles = 10; // Max files to merge in a chunk
9bdd18e3 53 // Data pattern - change as needed for test mode
46ff50c9 54TString data_pattern = "*ESDs/pass2/*ESDs.root";
9bdd18e3 55 // Output directory (DON'T CHANGE)
56TString alien_outdir = "$1/QA$2";
57 // Input collection (production mode)
58TString data_collection = "$1/qa1.xml";
59TString mergeExcludes = ""; // Files to be excluded for merging
35b82dbf 60TString mergeDirName = "QA$2";
a9b5fbe0 61TString terminateFiles = "trending.root"; // Files produced during Terminate
fe0275ad 62
574b2e7b 63Bool_t useProductionMode = kTRUE;
64Bool_t useMergeViaJDL = kTRUE;
46ff50c9 65Bool_t useFastReadOption = kFALSE;
44a84424 66Bool_t useOverwriteMode = kTRUE;
574b2e7b 67Bool_t useDevelopmentVersion = kFALSE;
fe0275ad 68
f59ecfbc 69void PilotAnalysis(const char *plugin_mode = "full")
70{
9bdd18e3 71 TString smode(plugin_mode);
72 smode.ToLower();
73 if (smode == "test") useProductionMode = kFALSE;
74 if (!useProductionMode) {
75 TGrid::Connect("alien://");
76 if (!gGrid || !gGrid->IsConnected()) {
77 ::Error("PilotAnalysis", "No grid connection");
78 return;
79 }
80 }
fe0275ad 81 // Write configuration
82 TString cdir = gSystem->WorkingDirectory();
83 gSystem->MakeDirectory(train_name);
84 gSystem->ChangeDirectory(train_name);
85 ofstream out;
86 out.open(Form("%sConfig.C",train_name.Data()), ios::out);
87 out << "{" << endl;
88 out << " train_name = " << "\"" << train_name.Data() << "\";" << endl;
89 out << " root_version = " << "\"" << root_version.Data() << "\";" << endl;
90 out << " aliroot_version = " << "\"" << aliroot_version.Data() << "\";" << endl;
91 out << " grid_datadir = " << "\"" << grid_datadir.Data() << "\";" << endl;
92 if (!alien_outdir.Length()) alien_outdir = Form("output_%s",train_name.Data());
93 out << " alien_outdir = " << "\"" << alien_outdir.Data() << "\";" << endl;
94 out << " doQAsim = " << doQAsym << ";" << endl;
95 out << " doVZERO = " << doVZERO << ";" << endl;
96 out << " doVertex = " << doVertex << ";" << endl;
97 out << " doSPD = " << doSPD << ";" << endl;
98 out << " doSDD = " << doSDD << ";" << endl;
574b2e7b 99 out << " doSSDdEdx = " << doSSDdEdx << ";" << endl;
fe0275ad 100 out << " doTPC = " << doTPC << ";" << endl;
a05adbe9 101 out << " doTRD = " << doTRD << ";" << endl;
102 out << " doImpParRes = " << doImpParRes << ";" << endl;
103 out << " doMUON = " << doMUON << ";" << endl;
c1c35c14 104 out << " doTOF = " << doTOF << ";" << endl;
105 out << " doHMPID = " << doHMPID << ";" << endl;
fe0275ad 106 out << " doEventStat = " << doEventStat << ";" << endl;
44a84424 107 out << " doCentrality = " << doCentrality << ";" << endl;
fe0275ad 108 out << "}" << endl;
109 out.close();
110
f59ecfbc 111 // Load libraries
44a84424 112 gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD -I$ALICE_ROOT/PWG1");
f59ecfbc 113 LoadLibraries();
114 // Create manager
115 AliAnalysisManager *mgr = new AliAnalysisManager("PilotAnalysis", "Production train");
574b2e7b 116 mgr->SetNSysInfo(100);
44a84424 117 mgr->SetDebugLevel(1);
f59ecfbc 118 // Input handler
119 AliESDInputHandlerRP *esdHandler = new AliESDInputHandlerRP();
574b2e7b 120 esdHandler->SetReadFriends(kTRUE);
f59ecfbc 121 esdHandler->SetActiveBranches("ESDfriend");
122 mgr->SetInputEventHandler(esdHandler);
9bdd18e3 123 mgr->SetDebugLevel(debug_level);
fe0275ad 124
f59ecfbc 125 // AnalysisTasks
126 AddAnalysisTasks();
127 // Grid handler
fe0275ad 128 AliAnalysisAlien *alienHandler = CreateAlienHandler(plugin_mode);
f59ecfbc 129 mgr->SetGridHandler(alienHandler);
130 if (mgr->InitAnalysis()) {
131 mgr->PrintStatus();
8a67db85 132 if (!strcmp(plugin_mode, "local")) mgr->StartAnalysis("local");
133 else mgr->StartAnalysis("grid");
f59ecfbc 134 }
135}
136
137void LoadLibraries()
138{
e583cb58 139 gSystem->Load("libANALYSIS");
140 gSystem->Load("libANALYSISalice");
141 gSystem->Load("libCORRFW");
142 gSystem->Load("libTENDER");
f59ecfbc 143 gSystem->Load("libPWG0base.so");
144 gSystem->Load("libPWG0dep.so");
145 gSystem->Load("libPWG0selectors.so");
146 gSystem->Load("libPWG1.so");
147 gSystem->Load("libPWG2.so");
148 gSystem->Load("libPWG2forward.so");
e583cb58 149
e583cb58 150 if (doCALO) {
151 gSystem->Load("libEMCALUtils");
152 gSystem->Load("libPWG4PartCorrBase");
153 gSystem->Load("libPWG4PartCorrDep");
f59ecfbc 154 }
9bdd18e3 155 if(doMUONTrig) {
e583cb58 156 gSystem->Load("libPWG3base");
157 gSystem->Load("libPWG3muon");
158 gSystem->Load("libPWG3muondep");
159 }
f59ecfbc 160}
161
162void AddAnalysisTasks()
163{
574b2e7b 164 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
165 mgr->SetCommonFileName("QAresults.root");
46ff50c9 166 // Statistics task
167 mgr->AddStatisticsTask(AliVEvent::kMB);
2251e21b 168 //
169 // CDB connection
170 //
171 if (doCDBconnect) {
172 gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskCDBconnect.C");
173 AliTaskCDBconnect *taskCDB = AddTaskCDBconnect();
174 if (!taskCDB) return;
8a67db85 175 taskCDB->SetRunNumber(runNumbers[0]);
2251e21b 176 }
177
574b2e7b 178 //
179 // Event Statistics (Jan Fiete)
180 //
574b2e7b 181 if (doEventStat) {
182 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
44a84424 183 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE /*MC*/);
9bdd18e3 184// mgr->RegisterExtraFile("event_stat.root");
185 if (!terminateFiles.IsNull()) terminateFiles += ",";
186 terminateFiles += "event_stat.root";
574b2e7b 187 }
44a84424 188
189 //
46ff50c9 190 // Centrality (A. Toia)
44a84424 191 //
192 if (doCentrality) {
0e23e583 193 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
039126a0 194 AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
46ff50c9 195// J.Thaeder
196// gROOT->LoadMacro("$ALICE_ROOT/PWG1/Centrality/AddTaskHIMultCorr.C");
197// AliAnalysisTaskHIMultCorr *taskHIcentrality = AddTaskHIMultCorr();
44a84424 198 }
199
f59ecfbc 200 // Vertexing (A. Dainese)
201 //
202 if (doVertex) {
203 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskVertexESD.C");
204 AliAnalysisTaskVertexESD* taskvertexesd = AddTaskVertexESD();
205 taskvertexesd->SelectCollisionCandidates();
206 }
207
208 // TPC QA (E. Sicking)
209 //
210 if (doQAsym) {
211 gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskQAsym.C");
574b2e7b 212 AliAnalysisTaskSE * taskqasim = AddTaskQAsym(0);
f59ecfbc 213 taskqasim->SelectCollisionCandidates();
214 }
215 //
216 // VZERO QA (C. Cheshkov)
217 //
218 if (doVZERO) {
219 gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskVZEROQA.C");
220 AliAnalysisTaskSE * taskv0qa = AddTaskVZEROQA(0);
e583cb58 221// taskv0qa->SelectCollisionCandidates();
f59ecfbc 222 }
f59ecfbc 223 //
f409164d 224 // TPC (Jacek Otwinowski & Michael Knichel)
f59ecfbc 225 //
b843fdc9 226 //
227 // Optionally MC information can be used by setting the 1st argument to true
228 // Optionally friends information can be switched off by setting the 2st argument
229 // to false
230 // Optionally highMult axis can be used by setting the 3st argument to true (for PbPb)
f59ecfbc 231 if (doTPC) {
8a67db85 232 gROOT->LoadMacro("$ALICE_ROOT/PWG1/TPC/macros/AddTaskPerformanceTPCdEdxQA.C");
b843fdc9 233 AliPerformanceTask *tpcQA = AddTaskPerformanceTPCdEdxQA(kFALSE, kTRUE, kFALSE);
f409164d 234 tpcQA->SelectCollisionCandidates();
f59ecfbc 235 }
236 //
237 // SPD (A. Mastroserio)
238 //
239 if (doSPD) {
240 gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskSPDQA.C");
241 AliAnalysisTaskSE* taskspdqa = AddTaskSPDQA();
574b2e7b 242 taskspdqa->SelectCollisionCandidates();
e583cb58 243 }
f59ecfbc 244 //
245 // SDD (F. Prino)
246 //
247 if (doSDD) {
248 gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddSDDPoints.C");
249 AliAnalysisTaskSE* tasksdd = AddSDDPoints();
250 tasksdd->SelectCollisionCandidates();
251 }
574b2e7b 252 //
253 // SSD dEdx (Marek Chojnacki)
254 //
255 if (doSSDdEdx) {
256 gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskdEdxSSDQA.C");
257 AliAnalysisTaskSE* taskssddedx = AddTaskdEdxSSDQA();
258 taskssddedx->SelectCollisionCandidates();
259 }
8e52a034 260
e583cb58 261 //
262 // ITS
263 //
264 if (doITS) {
265 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskPerformanceITS.C");
266 AliAnalysisTaskITSTrackingCheck *itsQA = AddTaskPerformanceITS(kFALSE);
267 }
8e52a034 268 //
269 // TRD (Alex Bercuci, M. Fasel)
270 //
271 if(doTRD) {
e583cb58 272 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTrainPerformanceTRD.C");
92238d29 273 // steer individual TRD tasks
274 Bool_t
275 doCheckESD(kTRUE), // AliTRDcheckESD
276 doCheckDET(kTRUE), // AliTRDcheckDET
277 doEffic(kTRUE), // AliTRDefficiency
278 doResolution(kTRUE),// AliTRDresolution
279 doCheckPID(kTRUE), // AliTRDcheckPID
280 doV0Monitor(kFALSE);// AliTRDv0Monitor
281 AddTrainPerformanceTRD(Translate(doCheckESD, doCheckDET, doEffic, doResolution, doCheckPID, doV0Monitor));
8e52a034 282 }
283
284 //
285 // Calorimetry (Gustavo Conesa)
286 //
287
288 if(doCALO) {
289 gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/QA/AddTaskCalorimeterQA.C");
290 AliAnalysisTaskParticleCorrelation *taskCaloQA = AddTaskCalorimeterQA("ESD", kTRUE, kFALSE);
2efff183 291 taskCaloQA->SetDebugLevel(0);
8e52a034 292 }
293
294 //
295 // Muon Trigger
296 //
297
298 if(doMUONTrig) {
299 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskMTRchamberEfficiency.C");
300 AliAnalysisTaskTrigChEff *taskMuonTrig = AddTaskMTRchamberEfficiency();
301 }
302
303 //
304 // Muon Efficiency
305 //
306
307 if(doMUONEff) {
308 gROOT->LoadMacro("$ALICE_ROOT/PWG3/muondep/AddTaskMUONTrackingEfficiency.C");
309 AliAnalysisTaskMuonTrackingEff *taskMuonTrackEff = AddTaskMUONTrackingEfficiency();
310 }
311
312 //
313 // V0-Decay Reconstruction (Ana Marin)
314 //
315
316 if (doV0) {
317 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskV0QA.C");
318 AliAnalysisTaskV0QA *taskv0QA = AddTaskV0QA(kFALSE);
319 }
c1c35c14 320 //
a05adbe9 321 // Impact parameter resolution (xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it)
322 //
323 if (doImpParRes) {
324 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskImpParRes.C");
44a84424 325 // AliAnalysisTaskSE* taskimpparres= AddTaskImpParRes();
326 AliAnalysisTaskSE* taskimpparres= AddTaskImpParRes(kFALSE,-1,kFALSE,kFALSE);
a05adbe9 327 taskimpparres->SelectCollisionCandidates();
328 }
c1c35c14 329 //
a05adbe9 330 // MUON QA (Philippe Pillot)
331 //
332 if (doMUON) {
333 gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/AddTaskMuonQA.C");
334 AliAnalysisTaskSE* taskmuonqa= AddTaskMuonQA();
335 }
c1c35c14 336 //
337 // TOF (Francesca Bellini)
338 //
339 if (doTOF) {
340 gROOT->LoadMacro("$ALICE_ROOT/PWG1/TOF/AddTaskTOFQA.C");
341 AliAnalysisTaskTOFqa *tofQA = AddTaskTOFQA();
342 tofQA->SelectCollisionCandidates();
343 }
344 //
345 // HMPID QA (Giacomo Volpe)
346 //
347 if (doHMPID) {
348 gROOT->LoadMacro("$ALICE_ROOT/PWG1/HMPID/AddTaskHmpidQA.C");
349 AliAnalysisTaskSE* taskhmpidqa= AddTaskHmpidQA(kFALSE);
350 }
f59ecfbc 351}
352
353//______________________________________________________________________________
354AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode)
355{
356// Check if user has a valid token, otherwise make one. This has limitations.
357// One can always follow the standard procedure of calling alien-token-init then
358// source /tmp/gclient_env_$UID in the current shell.
359 if (!AliAnalysisGrid::CreateToken()) return NULL;
360 AliAnalysisAlien *plugin = new AliAnalysisAlien();
361// Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
362 plugin->SetRunMode(plugin_mode);
9bdd18e3 363 if (useProductionMode) {
364 plugin->SetProductionMode();
365 plugin->AddDataFile(data_collection);
366 }
fe0275ad 367 plugin->SetJobTag(job_tag);
44a84424 368 plugin->SetNtestFiles(5);
9bdd18e3 369 plugin->SetCheckCopy(kFALSE);
35b82dbf 370 plugin->SetMergeDirName(mergeDirName);
bf90a869 371// plugin->SetOneStageMerging(kTRUE);
f59ecfbc 372// Set versions of used packages
f59ecfbc 373 plugin->SetAPIVersion("V1.1x");
fe0275ad 374 plugin->SetROOTVersion(root_version);
375 plugin->SetAliROOTVersion(aliroot_version);
f59ecfbc 376// Declare input data to be processed.
377// Method 1: Create automatically XML collections using alien 'find' command.
378// Define production directory LFN
fe0275ad 379 plugin->SetGridDataDir(grid_datadir);
f59ecfbc 380// Set data search pattern
fe0275ad 381 plugin->SetDataPattern(data_pattern);
f59ecfbc 382// ...then add run numbers to be considered
383// if (!iAODanalysis) plugin->SetRunRange(run_range[0], run_range[1]);
574b2e7b 384// plugin->SetOutputSingleFolder("output");
9bdd18e3 385 if (!useProductionMode) {
386 plugin->SetRunPrefix("000");
387 plugin->SetOutputToRunNo();
388 for (Int_t i=0; i<2; i++) {
389 if (!runNumbers[i]) break;
390 plugin->AddRunNumber(runNumbers[i]);
391 }
392 }
f59ecfbc 393// Define alien work directory where all files will be copied. Relative to alien $HOME.
9bdd18e3 394 plugin->SetGridWorkingDir(grid_workdir);
f59ecfbc 395// Declare alien output directory. Relative to working directory.
fe0275ad 396 if (alien_outdir.IsNull()) alien_outdir = Form("output_%s",train_name.Data());
397 plugin->SetGridOutputDir(alien_outdir);
f59ecfbc 398
574b2e7b 399 if (useDevelopmentVersion) {
400 plugin->EnablePackage("STEERBase");
401 plugin->EnablePackage("ESD");
402 plugin->EnablePackage("AOD");
403 plugin->EnablePackage("ANALYSIS");
404 plugin->EnablePackage("ANALYSISalice");
405 }
f59ecfbc 406
407// Declare the analysis source files names separated by blancs. To be compiled runtime
408// using ACLiC on the worker nodes.
409// Declare all libraries (other than the default ones for the framework. These will be
410// loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.
bf90a869 411 plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD");
574b2e7b 412
9bdd18e3 413 plugin->SetAdditionalLibs("libCORRFW.so libTENDER.so libPWG0base.so libPWG0dep.so libPWG0selectors.so libPWG1.so libPWG2.so \
574b2e7b 414 libPWG2forward.so libEMCALUtils.so libPWG4PartCorrBase.so libPWG4PartCorrDep.so \
bf90a869 415 libPWG3base.so libPWG3muon.so libPWG3muondep.so");
f59ecfbc 416
417// Declare the output file names separated by blancs.
418// (can be like: file.root or file.root@ALICE::Niham::File)
419 plugin->SetDefaultOutputs();
35b82dbf 420 plugin->SetMaxMergeFiles(maxMergeFiles);
f59ecfbc 421 plugin->SetNrunsPerMaster(1);
f59ecfbc 422
423 // Put default output files to archive
f59ecfbc 424 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
425 TIter next(mgr->GetOutputs());
426 AliAnalysisDataContainer *output;
574b2e7b 427 if (!mergeExcludes.IsNull()) plugin->SetMergeExcludes(mergeExcludes);
9bdd18e3 428 if (!terminateFiles.IsNull()) plugin->SetTerminateFiles(terminateFiles);
f59ecfbc 429// Set friends
f59ecfbc 430// Optionally set a name for the generated analysis macro (default MyAnalysis.C)
fe0275ad 431 plugin->SetAnalysisMacro(Form("%s.C", train_name.Data()));
9bdd18e3 432// Optionally set a name for the generated validation script
433 plugin->SetValidationScript("validation.sh");
f59ecfbc 434// Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
9bdd18e3 435 plugin->SetSplitMaxInputFileNumber(grid_split);
f59ecfbc 436// Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
437// plugin->SetMaxInitFailed(5);
9bdd18e3 438// Optionally modify the number of replicas
439 plugin->SetNumberOfReplicas(4);
f59ecfbc 440// Optionally resubmit threshold.
441// plugin->SetMasterResubmitThreshold(90);
442// Optionally set time to live (default 30000 sec)
443 plugin->SetTTL(70000);
444// Optionally set input format (default xml-single)
445 plugin->SetInputFormat("xml-single");
446// Optionally modify the name of the generated JDL (default analysis.jdl)
fe0275ad 447 plugin->SetJDLName(Form("%s.jdl", train_name.Data()));
f59ecfbc 448// Optionally modify the executable name (default analysis.sh)
fe0275ad 449 plugin->SetExecutable(Form("%s.sh", train_name.Data()));
f59ecfbc 450// Optionally modify job price (default 1)
451 plugin->SetPrice(1);
452// Optionally modify split mode (default 'se')
453 plugin->SetSplitMode("se");
454 plugin->SetExecutableCommand("aliroot -b -q");
574b2e7b 455// Merge via JDL
456 plugin->SetMergeViaJDL(useMergeViaJDL);
457// Use fastread option
458 plugin->SetFastReadOption(useFastReadOption);
459// UseOverwrite mode
460 plugin->SetOverwriteMode(useOverwriteMode);
9bdd18e3 461/*********************************************************
462 *** PROOF MODE SPECIFIC SETTINGS ************
463 *********************************************************/
464// Proof cluster
465// plugin->SetProofCluster("alice-caf");
466 plugin->SetProofCluster("skaf.saske.sk");
467// Dataset to be used
468 plugin->SetProofDataSet("/alice/data/LHC10e_000128175_p1#esdTree");
469// May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard
470 plugin->SetProofReset(0);
471// May limit number of workers
35b82dbf 472 plugin->SetNproofWorkers(1);
9bdd18e3 473// May use a specific version of root installed in proof
474 plugin->SetRootVersionForProof("current_dbg");
475// May set the aliroot mode. Check http://aaf.cern.ch/node/83
476 plugin->SetAliRootMode("ALIROOT"); // Loads AF libs by default
477// May request ClearPackages (individual ClearPackage not supported)
478 plugin->SetClearPackages(kFALSE);
479// Plugin test mode works only providing a file containing test file locations
480 plugin->SetFileForTestMode(gSystem->ExpandPathName("$ALICE_ROOT/PWG1/PilotTrain/files.txt"));
f59ecfbc 481 return plugin;
482}