class AliAnalysisAlien;
AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode);
-Bool_t doQAsym = 1; // output ok
-Bool_t doVZERO = 1; // output ok but there is a 2nd file
-Bool_t doVertex = 1; // output ok
-Bool_t doSPD = 1; // output ok, needs RP
-Bool_t doFMD = 1; // output ok
-Bool_t doTPC = 1; // output ok
-Bool_t doEventStat = 1; // output ok
-Bool_t doSDD = 1; // outout ok needs RP
+// Collision type: 0 = p-p 1 = Pb-Pb
+Int_t iCollisionType = 0;
+Int_t runNumbers[5] = {145384};
-TString train_name = "QA001_PASS4";
-TString job_tag = "QA001: PWG1 QA train";
-TString root_version = "v5-26-00b";
-TString aliroot_version = "v4-19-04-AN";
-TString grid_datadir = "/alice/data/2009/LHC09d";
-TString data_pattern = "*ESDs/pass4/*ESDs.root";
-//TString alien_outdir = "";
-TString alien_outdir = "/alice/data/2009/LHC09d/analysis/QA001_PASS4";
+Bool_t doCDBconnect = 1;
+Bool_t doEventStat = 1;
+Bool_t doCentrality = 0;
+Bool_t doQAsym = 1;
+Bool_t doVZERO = 1; // there is a 2nd file
+Bool_t doVertex = 1;
+Bool_t doSPD = 1; // needs RP
+Bool_t doTPC = 1;
+Bool_t doSDD = 1; // needs RP
+Bool_t doSSDdEdx = 1;
+
+Bool_t doTRD = 0;
+Bool_t doITS = 1;
+Bool_t doITSsaTracks = 1; // new
+Bool_t doITSalign = 0; // new (try to load geom)
+Bool_t doCALO = 1;
+Bool_t doMUONTrig = 1;
+Bool_t doImpParRes = 1;
+Bool_t doMUON = 1;
+Bool_t doTOF = 1;
+Bool_t doHMPID = 1;
+Bool_t doT0 = 1; // new
+Bool_t doZDC = 0;
+
+Bool_t doMUONEff = 0; // NEEDS geometry
+Bool_t doV0 = 0; // NEEDS MCtruth
+
+TString train_name = "QA"; // QA local folder name
+TString train_tag = (iCollisionType)?"_Pb-Pb":"_p-p"; // Train special tag appended to
+ // visible name. ("sim", "pp", ...)
+ // Name in train page (DON'T CHANGE)
+TString visible_name = Form("QA$2_$3%s", train_tag.Data()); //# FIXED #
+TString job_comment = "PWG1 QA train(no TRD, no ZDC)"; // Can add observations here
+ // Job tag (DON'T CHANGE)
+TString job_tag = Form("%s: %s", visible_name.Data(), job_comment.Data());
+ // Package versions - Modify as needed
+TString root_version = "v5-28-00a";
+TString aliroot_version = "v4-21-17b-AN";
+ // Production directory - change as needed for test mode
+TString grid_datadir = "/alice/data/2011/LHC11a";
+ // Work directory in GRID (DON'T CHANGE)
+TString grid_workdir = "/alice/cern.ch/user/a/alidaq/QA/QA$2";
+ // Job splitting
+Int_t grid_split = 20; // Splitting
+ // Debug level
+Int_t debug_level = 1; // Debugging
+ // File merging
+Int_t maxMergeFiles = 10; // Max files to merge in a chunk
+ // Data pattern - change as needed for test mode
+TString data_pattern = "*ESDs/Pass1/*ESDs.root";
+ // Output directory (DON'T CHANGE)
+TString alien_outdir = "$1/QA$2";
+ // Input collection (production mode)
+TString data_collection = "$1/qa1.xml";
+TString mergeExcludes = ""; // Files to be excluded for merging
+TString mergeDirName = "QA$2";
+TString terminateFiles = "trending.root"; // Files produced during Terminate
Bool_t useProductionMode = kTRUE;
+Bool_t useMergeViaJDL = kTRUE;
+Bool_t useFastReadOption = kFALSE;
+Bool_t useOverwriteMode = kTRUE;
+Bool_t useDevelopmentVersion = kFALSE;
void PilotAnalysis(const char *plugin_mode = "full")
{
- TGrid::Connect("alien://");
- if (!gGrid || !gGrid->IsConnected()) {
- ::Error("PilotAnalysis", "No grid connection");
- return;
- }
+ TString smode(plugin_mode);
+ smode.ToLower();
+ if (smode == "test") useProductionMode = kFALSE;
+ if (!useProductionMode) {
+ TGrid::Connect("alien://");
+ if (!gGrid || !gGrid->IsConnected()) {
+ ::Error("PilotAnalysis", "No grid connection");
+ return;
+ }
+ }
// Write configuration
TString cdir = gSystem->WorkingDirectory();
gSystem->MakeDirectory(train_name);
out << " doVertex = " << doVertex << ";" << endl;
out << " doSPD = " << doSPD << ";" << endl;
out << " doSDD = " << doSDD << ";" << endl;
- out << " doFMD = " << doFMD << ";" << endl;
+ out << " doSSDdEdx = " << doSSDdEdx << ";" << endl;
out << " doTPC = " << doTPC << ";" << endl;
+ out << " doTRD = " << doTRD << ";" << endl;
+ out << " doITS = " << doITS << ";" << endl;
+ out << " doITSsaTracks = " << doITSsaTracks << ";" << endl;
+ out << " doITSalign = " << doITSalign << ";" << endl;
+ out << " doZDC = " << doZDC << ";" << endl;
+ out << " doImpParRes = " << doImpParRes << ";" << endl;
+ out << " doMUON = " << doMUON << ";" << endl;
+ out << " doTOF = " << doTOF << ";" << endl;
+ out << " doHMPID = " << doHMPID << ";" << endl;
+ out << " doZDC = " << doZDC << ";" << endl;
+ out << " doT0 = " << doT0 << ";" << endl;
out << " doEventStat = " << doEventStat << ";" << endl;
+ if (iCollisionType) out << " doCentrality = " << doCentrality << ";" << endl;
out << "}" << endl;
out.close();
// Load libraries
- gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS");
+ 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");
LoadLibraries();
// Create manager
AliAnalysisManager *mgr = new AliAnalysisManager("PilotAnalysis", "Production train");
- mgr->SetNSysInfo(1);
+ mgr->SetNSysInfo(100);
// Input handler
AliESDInputHandlerRP *esdHandler = new AliESDInputHandlerRP();
+ esdHandler->SetReadFriends(kTRUE);
esdHandler->SetActiveBranches("ESDfriend");
mgr->SetInputEventHandler(esdHandler);
-
- mgr->SetDebugLevel(3);
- mgr->SetSaveCanvases(kTRUE);
+ mgr->SetDebugLevel(debug_level);
// AnalysisTasks
AddAnalysisTasks();
mgr->SetGridHandler(alienHandler);
if (mgr->InitAnalysis()) {
mgr->PrintStatus();
- mgr->StartAnalysis("grid");
- TString alien_workdir = gGrid->GetHomeDirectory();
- alien_workdir += "analysisDATA";
- TString configName = Form("%s/%sConfig.C", alien_workdir.Data(), train_name.Data());
- if (strcmp(plugin_mode, "test")) {
- printf("=== Registering configuration file <%s>===\n", configName.Data());
- if (AliAnalysisAlien::FileExists(configName.Data())) gGrid->Rm(configName.Data());
- TFile::Cp(Form("file:%sConfig.C",train_name.Data()), Form("alien://%s", configName.Data()));
- }
+ if (!strcmp(plugin_mode, "local")) mgr->StartAnalysis("local");
+ else mgr->StartAnalysis("grid");
}
}
{
gSystem->Load("libANALYSIS");
gSystem->Load("libANALYSISalice");
+ gSystem->Load("libCORRFW");
gSystem->Load("libTENDER");
gSystem->Load("libPWG0base.so");
gSystem->Load("libPWG0dep.so");
gSystem->Load("libPWG0selectors.so");
gSystem->Load("libPWG1.so");
- gSystem->Load("libPWG2.so");
- gSystem->Load("libPWG2forward.so");
- if (doSPD) {
- TFile::Cp(gSystem->ExpandPathName("$ALICE_ROOT/PWG1/ITS/AliAnalysisTaskSPD.cxx"), "AliAnalysisTaskSPD.cxx");
- TFile::Cp(gSystem->ExpandPathName("$ALICE_ROOT/PWG1/ITS/AliAnalysisTaskSPD.h"), "AliAnalysisTaskSPD.h");
- gROOT->LoadMacro("AliAnalysisTaskSPD.cxx++g");
- }
- if (doSDD) {
- TFile::Cp(gSystem->ExpandPathName("$ALICE_ROOT/PWG1/ITS/AliAnalysisTaskSDDRP.cxx"), "AliAnalysisTaskSDDRP.cxx");
- TFile::Cp(gSystem->ExpandPathName("$ALICE_ROOT/PWG1/ITS/AliAnalysisTaskSDDRP.h"), "AliAnalysisTaskSDDRP.h");
-// gROOT->LoadMacro("AliAnalysisTaskSDDRP.cxx++g");
+ if (doCALO) {
+ gSystem->Load("libEMCALUtils");
+ gSystem->Load("libPHOSUtils");
+ gSystem->Load("libPWG4PartCorrBase");
+ gSystem->Load("libPWG4PartCorrDep");
}
+ if(doMUONTrig) {
+ gSystem->Load("libPWG3base");
+ gSystem->Load("libPWG3muon");
+ gSystem->Load("libPWG3muondep");
+ }
}
void AddAnalysisTasks()
{
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ mgr->SetCommonFileName("QAresults.root");
+ // Statistics task
+ mgr->AddStatisticsTask(AliVEvent::kMB);
+ //
+ // CDB connection
+ //
+ if (doCDBconnect) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskCDBconnect.C");
+ AliTaskCDBconnect *taskCDB = AddTaskCDBconnect();
+ if (!taskCDB) return;
+ taskCDB->SetRunNumber(runNumbers[0]);
+ }
+
+ //
+ // Event Statistics (Jan Fiete)
+ //
+ if (doEventStat) {
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
+ AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE /*MC*/);
+// mgr->RegisterExtraFile("event_stat.root");
+ if (!terminateFiles.IsNull()) terminateFiles += ",";
+ terminateFiles += "event_stat.root";
+ }
+
+ //
+ // Centrality (A. Toia)
+ //
+ if (doCentrality) {
+ if (!iCollisionType) {
+ printf("Disabling centrality task for p-p\n");
+ doCentrality = kFALSE;
+ } else {
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
+ AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
+ }
+ }
+
// Vertexing (A. Dainese)
//
if (doVertex) {
//
if (doQAsym) {
gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskQAsym.C");
- AliAnalysisTaskSE * taskqasim = AddTaskQAsym();
+ AliAnalysisTaskSE * taskqasim = AddTaskQAsym(0);
taskqasim->SelectCollisionCandidates();
}
//
AliAnalysisTaskSE * taskv0qa = AddTaskVZEROQA(0);
// taskv0qa->SelectCollisionCandidates();
}
- // FMD (Hans Hjersing Dalsgaard)
//
- if (doFMD) {
- gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskFMD.C");
- AliAnalysisTaskSE* taskfmd = AddTaskFMD();
- taskfmd->SelectCollisionCandidates();
- }
+ // TPC (Jacek Otwinowski & Michael Knichel)
//
- // TPC (Jacek Otwinowski)
//
+ // Optionally MC information can be used by setting the 1st argument to true
+ // Optionally friends information can be switched off by setting the 2st argument
+ // to false
+ // Optionally highMult axis can be used by setting the 3st argument to true (for PbPb)
if (doTPC) {
- gROOT->LoadMacro("$(ALICE_ROOT)/PWG1/TPC/macros/AddTaskPerformanceTPCQA.C");
- AliPerformanceTask *tpcQA = AddTaskPerformanceTPCQA(kFALSE, kTRUE);
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/TPC/macros/AddTaskPerformanceTPCdEdxQA.C");
+ AliPerformanceTask *tpcQA = AddTaskPerformanceTPCdEdxQA(kFALSE, kTRUE, kFALSE);
+ tpcQA->SelectCollisionCandidates();
}
//
// SPD (A. Mastroserio)
tasksdd->SelectCollisionCandidates();
}
//
- // Event Statistics (Jan Fiete)
+ // SSD dEdx (Marek Chojnacki)
//
+ if (doSSDdEdx) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskdEdxSSDQA.C");
+ AliAnalysisTaskSE* taskssddedx = AddTaskdEdxSSDQA();
+ taskssddedx->SelectCollisionCandidates();
+ }
- if (doEventStat) {
- gROOT->LoadMacro("$ALICE_ROOT/PWG1/PilotTrain/AddTaskPhysicsSelection.C");
- AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
- AliPhysicsSelection* physSel = physSelTask->GetPhysicsSelection();
- physSel->AddBackgroundIdentification(new AliBackgroundSelection());
- AliAnalysisManager::GetAnalysisManager()->RegisterExtraFile("event_stat.root");
- }
+ //
+ // ITS
+ //
+ if (doITS) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskPerformanceITS.C");
+ AliAnalysisTaskITSTrackingCheck *itsQA = 0;
+ AliAnalysisTaskITSTrackingCheck *itsQACent0010 = 0;
+ AliAnalysisTaskITSTrackingCheck *itsQACent3050 = 0;
+ AliAnalysisTaskITSTrackingCheck *itsQACent6080 = 0;
+ if(iCollisionType==0) {
+ itsQA = AddTaskPerformanceITS(kFALSE);
+ } else {
+ itsQA = AddTaskPerformanceITS(kFALSE);
+ itsQACent0010 = AddTaskPerformanceITS(kFALSE,kFALSE,kFALSE,3500,10000);
+ itsQACent3050 = AddTaskPerformanceITS(kFALSE,kFALSE,kFALSE,590,1570);
+ itsQACent6080 = AddTaskPerformanceITS(kFALSE,kFALSE,kFALSE,70,310);
+ }
+ }
+ //
+ // ITS saTracks, align (F.Prino)
+ //
+ if (doITSsaTracks) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskITSsaTracks.C");
+ AliAnalysisTaskITSsaTracks *itssaTracks = AddTaskITSsaTracks(kFALSE,kFALSE);
+ }
+ if (doITSalign) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskITSAlign.C");
+ AliAnalysisTaskITSAlignQA *itsAlign = AddTaskITSAlign(0,2011);
+ }
+ //
+ // TRD (Alex Bercuci, M. Fasel)
+ //
+ if(doTRD) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTrainPerformanceTRD.C");
+ // steer individual TRD tasks
+ Bool_t
+ doCheckESD(kTRUE), // AliTRDcheckESD
+ doCheckDET(kTRUE), // AliTRDcheckDET
+ doEffic(kTRUE), // AliTRDefficiency
+ doResolution(kTRUE),// AliTRDresolution
+ doCheckPID(kTRUE), // AliTRDcheckPID
+ doV0Monitor(kFALSE);// AliTRDv0Monitor
+ AddTrainPerformanceTRD(Translate(doCheckESD, doCheckDET, doEffic, doResolution, doCheckPID, doV0Monitor));
+ }
+
+ //
+ // ZDC (Chiara Oppedisano)
+ //
+ if(doZDC) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/ZDC/AddTaskZDCQA.C");
+ AliAnalysisTaskSE *taskZDC = AddTaskZDCQA();
+ }
+ //
+ // Calorimetry (Gustavo Conesa)
+ //
+
+ if(doCALO) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/QA/AddTaskCalorimeterQA.C");
+ AliAnalysisTaskParticleCorrelation *taskCaloQA = AddTaskCalorimeterQA("ESD", 2011, kFALSE, kFALSE);
+ taskCaloQA->SetDebugLevel(0);
+ }
+
+ //
+ // Muon Trigger
+ //
+
+ if(doMUONTrig) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskMTRchamberEfficiency.C");
+ AliAnalysisTaskTrigChEff *taskMuonTrig = AddTaskMTRchamberEfficiency();
+ }
+
+ //
+ // Muon Efficiency
+ //
+
+ if(doMUONEff) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG3/muondep/AddTaskMUONTrackingEfficiency.C");
+ AliAnalysisTaskMuonTrackingEff *taskMuonTrackEff = AddTaskMUONTrackingEfficiency();
+ }
+
+ //
+ // V0-Decay Reconstruction (Ana Marin)
+ //
+
+ if (doV0) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskV0QA.C");
+ AliAnalysisTaskV0QA *taskv0QA = AddTaskV0QA(kFALSE);
+ }
+ //
+ // Impact parameter resolution (xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it)
+ //
+ if (doImpParRes) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskImpParRes.C");
+ AliAnalysisTaskSE* taskimpparres=0;
+ if(iCollisionType==0) {
+ taskimpparres= AddTaskImpParRes();
+ } else {
+ taskimpparres= AddTaskImpParRes(kFALSE,-1,kFALSE,kFALSE);
+ }
+ taskimpparres->SelectCollisionCandidates();
+ }
+ //
+ // MUON QA (Philippe Pillot)
+ //
+ if (doMUON) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/AddTaskMuonQA.C");
+ AliAnalysisTaskSE* taskmuonqa= AddTaskMuonQA();
+ }
+ //
+ // TOF (Francesca Bellini)
+ //
+ if (doTOF) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/TOF/AddTaskTOFQA.C");
+ AliAnalysisTaskTOFqa *tofQA = AddTaskTOFQA();
+ tofQA->SelectCollisionCandidates();
+ }
+ //
+ // HMPID QA (Giacomo Volpe)
+ //
+ if (doHMPID) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/HMPID/AddTaskHmpidQA.C");
+ AliAnalysisTaskSE* taskhmpidqa= AddTaskHmpidQA(kFALSE);
+ }
+ // T0 QA (Alla Mayevskaya
+ if (doT0) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/T0/AddTaskT0QA.C");
+ AliT0AnalysisTaskQA* tast0qa= AddTaskT0QA();
+ }
}
//______________________________________________________________________________
AliAnalysisAlien *plugin = new AliAnalysisAlien();
// Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
plugin->SetRunMode(plugin_mode);
- if (useProductionMode) plugin->SetProductionMode();
+ if (useProductionMode) {
+ plugin->SetProductionMode();
+ plugin->AddDataFile(data_collection);
+ }
plugin->SetJobTag(job_tag);
plugin->SetNtestFiles(1);
+ plugin->SetCheckCopy(kFALSE);
+ plugin->SetMergeDirName(mergeDirName);
// Set versions of used packages
plugin->SetAPIVersion("V1.1x");
plugin->SetROOTVersion(root_version);
plugin->SetDataPattern(data_pattern);
// ...then add run numbers to be considered
// if (!iAODanalysis) plugin->SetRunRange(run_range[0], run_range[1]);
- plugin->SetRunPrefix("000");
- plugin->SetOutputSingleFolder("output");
- plugin->SetOutputToRunNo();
- Int_t run_numbers[30] = {104065, 104155, 104157, 104159, 104160, 104315, 104316, 104320, 104321, 104439,
- 104792, 104793, 104799, 104800, 104801, 104802, 104803, 104821, 104824, 104825,
- 104841, 104845, 104849, 104852, 104865, 104867, 104876, 104892, 105143, 105160};
- for (Int_t i=0; i<30; i++) {
- plugin->AddRunNumber(run_numbers[i]);
- }
+// plugin->SetOutputSingleFolder("outpu$ALICE_ROOT/PWG1/T0/Addt");
+ if (!useProductionMode) {
+ plugin->SetRunPrefix("000");
+ plugin->SetOutputToRunNo();
+ for (Int_t i=0; i<2; i++) {
+ if (!runNumbers[i]) break;
+ plugin->AddRunNumber(runNumbers[i]);
+ }
+ }
// Define alien work directory where all files will be copied. Relative to alien $HOME.
- plugin->SetGridWorkingDir("analysisDATA");
+ plugin->SetGridWorkingDir(grid_workdir);
// Declare alien output directory. Relative to working directory.
if (alien_outdir.IsNull()) alien_outdir = Form("output_%s",train_name.Data());
plugin->SetGridOutputDir(alien_outdir);
-// plugin->EnablePackage("");
+ if (useDevelopmentVersion) {
+ plugin->EnablePackage("STEERBase");
+ plugin->EnablePackage("ESD");
+ plugin->EnablePackage("AOD");
+ plugin->EnablePackage("ANALYSIS");
+ plugin->EnablePackage("ANALYSISalice");
+ }
// Declare the analysis source files names separated by blancs. To be compiled runtime
// using ACLiC on the worker nodes.
// Declare all libraries (other than the default ones for the framework. These will be
// loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.
- plugin->AddIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS");
- plugin->SetAnalysisSource("AliAnalysisTaskSPD.cxx AliAnalysisTaskSDDRP.cxx");
- plugin->SetAdditionalLibs("libTENDER.so libPWG0base.so libPWG0dep.so libPWG0selectors.so libPWG1.so libPWG2.so libPWG2forward.so AliAnalysisTaskSPD.h AliAnalysisTaskSPD.cxx AliAnalysisTaskSDDRP.h AliAnalysisTaskSDDRP.cxx");
+ plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD");
+
+ plugin->SetAdditionalLibs("libCORRFW.so libTENDER.so libPWG0base.so libPWG0dep.so libPWG0selectors.so libPWG1.so \
+ libEMCALUtils.so libPHOSUtils.so libPWG4PartCorrBase.so libPWG4PartCorrDep.so \
+ libPWG3base.so libPWG3muon.so libPWG3muondep.so");
// Declare the output file names separated by blancs.
-// (can be like: file.root or file.root@ALICE::Niham::File)
plugin->SetDefaultOutputs();
-// plugin->SetMergeExcludes(mergeExclude);
- plugin->SetMaxMergeFiles(100);
+ plugin->SetMaxMergeFiles(maxMergeFiles);
plugin->SetNrunsPerMaster(1);
-// Optionally define the files to be archived.
-// plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:AliAOD.root,AOD.tag.root@ALICE::NIHAM::File");
// Put default output files to archive
- TString listhists = "";
- TString listaods = "";
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
TIter next(mgr->GetOutputs());
AliAnalysisDataContainer *output;
- while ((output=(AliAnalysisDataContainer*)next())) {
- const char *filename = output->GetFileName();
- if (!(strcmp(filename, "default"))) {
- if (!mgr->GetOutputEventHandler()) continue;
- filename = mgr->GetOutputEventHandler()->GetOutputFileName();
- if (listaods.Length()) listaods += ",";
- listaods += filename;
- } else {
- if (listhists.Contains(filename)) continue;
- if (listhists.Length()) listhists += ",";
- listhists += filename;
- }
- }
- if (mgr->GetExtraFiles().Length()) {
- if (listhists.Length()) listhists += ",";
- listhists += mgr->GetExtraFiles();
- listhists.ReplaceAll(" ", ",");
- }
- if (listhists.Length()) listhists = Form("hist_archive.zip:%s", listhists.Data());
- if (listaods.Length()) listaods = Form("aod_archive.zip:%s", listaods.Data());
- if (!listhists.Length()) {
- ::Fatal("AnalysisTrainNew", "No task output !");
- }
- TString outputArchive = "log_archive.zip:stdout,stderr@disk=4";
- if (listaods.Length()) {
- outputArchive += " ";
- outputArchive += listaods;
- outputArchive += "@disk=4";
- }
- if (listhists.Length()) {
- outputArchive += " ";
- outputArchive += listhists;
- outputArchive += "@disk=4";
- }
+ if (!mergeExcludes.IsNull()) plugin->SetMergeExcludes(mergeExcludes);
+ if (!terminateFiles.IsNull()) plugin->SetTerminateFiles(terminateFiles);
// Set friends
-// if (iAODanalysis && iPWG3d2h)
-// plugin->SetFriendChainName("AliAOD.VertexingHF.root");
- plugin->SetOutputArchive(outputArchive);
// Optionally set a name for the generated analysis macro (default MyAnalysis.C)
plugin->SetAnalysisMacro(Form("%s.C", train_name.Data()));
+// Optionally set a name for the generated validation script
+ plugin->SetValidationScript("validation.sh");
// Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
- plugin->SetSplitMaxInputFileNumber(1000);
+ plugin->SetSplitMaxInputFileNumber(grid_split);
// Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
// plugin->SetMaxInitFailed(5);
+// Optionally modify the number of replicas
+ plugin->SetNumberOfReplicas(5);
// Optionally resubmit threshold.
// plugin->SetMasterResubmitThreshold(90);
// Optionally set time to live (default 30000 sec)
// Optionally modify split mode (default 'se')
plugin->SetSplitMode("se");
plugin->SetExecutableCommand("aliroot -b -q");
+// Merge via JDL
+ plugin->SetMergeViaJDL(useMergeViaJDL);
+// Use fastread option
+ plugin->SetFastReadOption(useFastReadOption);
+// UseOverwrite mode
+ plugin->SetOverwriteMode(useOverwriteMode);
+/*********************************************************
+ *** PROOF MODE SPECIFIC SETTINGS ************
+ *********************************************************/
+// Proof cluster
+// plugin->SetProofCluster("alice-caf");
+ plugin->SetProofCluster("skaf.saske.sk");
+// Dataset to be used
+ plugin->SetProofDataSet("/alice/data/LHC10e_000128175_p1#esdTree");
+// May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard
+ plugin->SetProofReset(0);
+// May limit number of workers
+ plugin->SetNproofWorkers(1);
+// May use a specific version of root installed in proof
+ plugin->SetRootVersionForProof("current_dbg");
+// May set the aliroot mode. Check http://aaf.cern.ch/node/83
+ plugin->SetAliRootMode("ALIROOT"); // Loads AF libs by default
+// May request ClearPackages (individual ClearPackage not supported)
+ plugin->SetClearPackages(kFALSE);
+// Plugin test mode works only providing a file containing test file locations
+ plugin->SetFileForTestMode(gSystem->ExpandPathName("$ALICE_ROOT/PWG1/PilotTrain/files.txt"));
return plugin;
}