// root[1] AnalysisTrainNew(ana_mode, plugin_mode, "train_default_<date>/ConfigTrain.C")
//================== TRAIN NAME ============================================
-TString train_name = "testTR018_LHC10a6ESD"; // *CHANGE ME* (no blancs or special characters)
-TString job_tag = "testTR018: ESD -> histograms"; // *CHANGE ME*
+TString train_name = "FILTER_DATA"; // *CHANGE ME* (no blancs or special characters)
+TString job_tag = "FILTER_DATA: data ESD + PhysSel + Tender -> AOD + Muons + Vertices"; // *CHANGE ME*
//==============================================================================
// ### Settings that make sense in PROOF only
// ### Settings that make sense when using the Alien plugin
//==============================================================================
-Int_t runOnData = 0; // Set to 1 if processing real data
+Int_t runOnData = 1; // Set to 1 if processing real data
Int_t iCollision = 0; // 0=pp, 1=Pb-Pb
Bool_t usePLUGIN = kTRUE; // do not change
-Bool_t useProductionMode = kFALSE; // use the plugin in production mode
+Bool_t useProductionMode = kTRUE; // use the plugin in production mode
// Usage of par files ONLY in grid mode and ONLY if the code is not available
// in the deployed AliRoot versions. Par file search path: local dir, if not there $ALICE_ROOT.
// To refresh par files, remove the ones in the workdir, then do "make <target.par>" in
// AliRoot.
Bool_t usePAR = kFALSE; // use par files for extra libs
Bool_t useCPAR = kFALSE; // use par files for common libs
-TString root_version = "v5-26-00b"; // *CHANGE ME IF MORE RECENT IN GRID*
-TString aliroot_version = "v4-19-06-AN"; // *CHANGE ME IF MORE RECENT IN GRID*
+TString root_version = "v5-27-05"; // *CHANGE ME IF MORE RECENT IN GRID*
+TString aliroot_version = "v4-20-06-AN-1"; // *CHANGE ME IF MORE RECENT IN GRID*
// Change production base directory here
-TString alien_datadir = "/alice/sim/LHC10a13";
+TString alien_datadir = "/alice/data/2010/LHC10d";
// AliEn output directory. If blank will become output_<train_name>
-//TString alien_outdir = "/alice/sim/LHC10a6/analysis/ESD/TR016";
- TString alien_outdir = "";
+//TString alien_outdir = "/alice/data/2010/LHC10b/AOD1";
+TString alien_outdir = "";
// Output folder to write delta AOD's. Considered if not null.
TString outputSingleFolder = "";
//TString outputSingleFolder = "deltas";
// Number of files merged in a chunk
Int_t maxMergeFiles = 20;
// Files that should not be merged
-TString mergeExclude = "AliAOD.root AliAOD.VertexingHF.root AliAOD.Jets.root deltaAODPartCorr.root AliAOD.Muons.root resonances.root forward.root";
+TString mergeExclude = "AliAOD.root AliAOD.VertexingHF.root AliAOD.Jets.root deltaAODPartCorr.root AliAOD.Muons.root AliAOD.Dimuons.root";
// Make replicas on the storages below
TString outputStorages = "disk=4";
// Number of runs per master job
Int_t nRunsPerMaster = 10;
// Maximum number of files per job (gives size of AOD)
-Int_t nFilesPerJob = 10;
+Int_t nFilesPerJob = 50;
// Int_t nFilesPerJob = 1; (AOD->delta AOD production case)
// Set the run range
-Int_t run_range[2] = {104824, 104825}; // *CHANGE ME*
+Int_t run_numbers[10] = {126432}; // **********************!!!!!!!
+//Int_t run_range[2] = {114786, 114949}; // LHC09a7 *CHANGE ME*
// ### Settings that make sense only for local analysis
//==============================================================================
// Change local xml dataset for local interactive analysis
// ### Other flags to steer the analysis
//==============================================================================
-Bool_t useDATE = kFALSE; // use date in train name
-Bool_t useDBG = kTRUE; // activate debugging
-Bool_t useMC = kTRUE; // use MC info
-Bool_t useTAGS = kTRUE; // use ESD tags for selection
-Bool_t useKFILTER = kTRUE; // use Kinematics filter
-Bool_t useTR = kTRUE; // use track references
-Bool_t useCORRFW = kFALSE; // do not change
-Bool_t useAODTAGS = kFALSE; // use AOD tags
-Bool_t saveTrain = kTRUE; // save train configuration as:
-Bool_t saveCanvases = kTRUE; // save canvases created in Terminate
-Bool_t saveProofToAlien = kFALSE; // save proof outputs in AliEn
- // train_[trainName]_ddMonthyyyy_time.C
+Bool_t usePhysicsSelection = kTRUE; // use physics selection
+Bool_t useTender = kTRUE; // use tender wagon
+Bool_t useMergeViaJDL = kTRUE; // merge via JDL
+Bool_t useFastReadOption = kTRUE; // use xrootd tweaks
+Bool_t useOverwriteMode = kTRUE; // overwrite existing collections
+Bool_t useDATE = kFALSE; // use date in train name
+Bool_t useDBG = kTRUE; // activate debugging
+Bool_t useMC = kFALSE; // use MC info
+Bool_t useTAGS = kFALSE; // use ESD tags for selection
+Bool_t useKFILTER = kFALSE; // use Kinematics filter
+Bool_t useTR = kFALSE; // use track references
+Bool_t useCORRFW = kFALSE; // do not change
+Bool_t useAODTAGS = kFALSE; // use AOD tags
+Bool_t saveTrain = kTRUE; // save train configuration as:
+Bool_t saveCanvases = kFALSE; // save canvases created in Terminate
+Bool_t saveProofToAlien = kFALSE; // save proof outputs in AliEn
+
// ### Analysis modules to be included. Some may not be yet fully implemented.
//==============================================================================
Int_t iAODanalysis = 0; // Analysis on input AOD's
Int_t iESDfilter = 1; // ESD to AOD filter (barrel + muon tracks)
Int_t iMUONcopyAOD = 1; // Task that copies only muon events in a separate AOD (PWG3)
Int_t iJETAN = 1; // Jet analysis (PWG4)
-Int_t iJETANdelta = 1; // Jet delta AODs
-Int_t iPWG4partcorr = 1; // Gamma-hadron correlations task (PWG4)
-Int_t iPWG4gammaconv = 1; // Gamma conversion analysis (PWG4)
-Int_t iPWG4omega3pi = 1; // Omega to 3 pi analysis (PWG4)
+Int_t iJETANdelta = 0; // Jet delta AODs
+Int_t iPWG4partcorr = 0; // Gamma-hadron correlations task (PWG4)
+Int_t iPWG4gammaconv = 0; // Gamma conversion analysis (PWG4)
+Int_t iPWG4omega3pi = 0; // Omega to 3 pi analysis (PWG4)
Int_t iPWG3vertexing = 1; // Vertexing HF task (PWG3)
-Int_t iPWG3hfe = 1; // Electrons analysis (PWG3)
-Int_t iPWG3d2h = 1; // D0->2 hadrons (PWG3)
+Int_t iPWG3hfe = 0; // Electrons analysis (PWG3)
+Int_t iPWG3d2h = 0; // D0->2 hadrons (PWG3)
Int_t iPWG3d0mass = 1; // D0 mass (PWG3D2H)
Int_t iPWG3d0massLS = 1; // D0 mass LS (PWG3D2H)
Int_t iPWG3dplus = 1; // D+ analysis (PWG3D2H)
Int_t iPWG3LSjpsi = 1; // LS J/Psi analysis (PWG3D2H)
Int_t iPWG3CFd0 = 1; // CF D0 analysis (PWG3D2H)
Int_t iPWG3promptd0 = 1; // prompt D0 analysis (PWG3D2H)
-Int_t iPWG3MuonTrain = 1; // Muon analysis train
-Int_t iPWG2femto = 1; // Femtoscopy task (PWG2)
-Int_t iPWG2spectra = 1; // Spectra tasks (PWG2
+Int_t iPWG3MuonTrain = 0; // Muon analysis train
+Int_t iPWG2femto = 0; // Femtoscopy task (PWG2)
+Int_t iPWG2spectra = 0; // Spectra tasks (PWG2
Int_t iPWG2protons = 1; // Proton-antiproton analysis
Int_t iPWG2checkcascade = 1; // Check cascades task
Int_t iPWG2perfcascade = 1; // Check performance cascade
Int_t iPWG2checkv0 = 1; // Check V0 task
Int_t iPWG2strange = 1; // Strangeness task
Int_t iPWG2central = 1; // Anisothropy in central collisions
-Int_t iPWG2flow = 1; // Flow analysis tasks (PWG2)
-Int_t iPWG2res = 1; // Resonances task (PWG2)
-Int_t iPWG2rsneff = 1; // Resonances efficiency
-Int_t iPWG2kink = 1; // Kink analysis tasks (PWG2)
+Int_t iPWG2flow = 0; // Flow analysis tasks (PWG2)
+Int_t iPWG2res = 0; // Resonances task (PWG2)
+Int_t iPWG2rsneff = 0; // Resonances efficiency
+Int_t iPWG2kink = 0; // Kink analysis tasks (PWG2)
Int_t iPWG2kinkESDMC = 1; // Kink ESD-MC comparison (PWG2)
Int_t iPWG2kinkLSKstar = 1; // Kink like-sign K* (PWG2)
Int_t iPWG2kinkLSL1520 = 1; // Kink like-sign L1520 (PWG2)
Int_t iPWG2kinkL1520MC = 1; // Kink L1520 MC (PWG2)
Int_t iPWG2kinkPhiESD = 1; // Kink resonances Phi ESD (PWG2)
Int_t iPWG2kinkPhiMC = 1; // Kink resonances Phi MC (PWG2)
-Int_t iPWG2evchar = 1; // Event characteristics (PWG2)
-Int_t iPWG2unicor = 1; // Unicor analysis (PWG2)
-Int_t iPWG2forward = 1; // FMD analysis (PWG2)
+Int_t iPWG2evchar = 0; // Event characteristics (PWG2)
+Int_t iPWG2unicor = 0; // Unicor analysis (PWG2)
+Int_t iPWG2forward = 0; // FMD analysis (PWG2)
// ### Configuration macros used for each module
//==============================================================================
-//TString configPWG2femto = "$ALICE_ROOT/PWG2/FEMTOSCOPY/macros/Train/Train3/ConfigFemtoAnalysis.C";
-TString configPWG2femto = "$ALICE_ROOT/PWG2/FEMTOSCOPY/macros/Train/PWG2TrainLHC10a6/ConfigFemtoAnalysis.C";
+TString configPWG2femto = "$ALICE_ROOT/PWG2/FEMTOSCOPY/macros/Train/Train3/ConfigFemtoAnalysis.C";
//TString configPWG3d2h = "$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF_highmult.C";
TString configPWG3d2h = "$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C";
// Temporaries.
printf("= Configuring analysis train for: =\n");
if (iAODanalysis) printf("= AOD analysis =\n");
else printf("= ESD analysis =\n");
+ if (usePhysicsSelection) printf("= Physics selection =\n");
+ if (useTender) printf("= TENDER =\n");
if (iESDfilter) printf("= ESD filter =\n");
if (iMUONcopyAOD) printf("= MUON copy AOD =\n");
if (iJETAN) printf("= Jet analysis =\n");
if (iPWG4gammaconv) printf("= PWG4 gamma conversion =\n");
if (iPWG4omega3pi) printf("= PWG4 omega to 3 pions =\n");
printf("==================================================================\n");
- printf(":: use MC truth %d\n", (UInt_t)useMC);
- printf(":: use KINE filter %d\n", (UInt_t)useKFILTER);
- printf(":: use track refs %d\n", (UInt_t)useTR);
- printf(":: use tags %d\n", (UInt_t)useTAGS);
- printf(":: use AOD tags %d\n", (UInt_t)useAODTAGS);
- printf(":: use debugging %d\n", (UInt_t)useDBG);
- printf(":: use PAR files %d\n", (UInt_t)usePAR);
- printf(":: use AliEn plugin %d\n", (UInt_t)usePLUGIN);
+ printf(":: use physics selection: %d\n", (UInt_t)usePhysicsSelection);
+ printf(":: use xrootd tweaks: %d\n", (UInt_t)useFastReadOption);
+ printf(":: use overwrite xml : %d\n", (UInt_t)useOverwriteMode);
+ printf(":: use merge via JDL: %d\n", (UInt_t)useMergeViaJDL);
+ printf(":: use MC truth: %d\n", (UInt_t)useMC);
+ printf(":: use KINE filter: %d\n", (UInt_t)useKFILTER);
+ printf(":: use track references: %d\n", (UInt_t)useTR);
+ printf(":: use tags: %d\n", (UInt_t)useTAGS);
+ printf(":: use AOD tags: %d\n", (UInt_t)useAODTAGS);
+ printf(":: use debugging: %d\n", (UInt_t)useDBG);
+ printf(":: use PAR files: %d\n", (UInt_t)usePAR);
+ printf(":: use AliEn plugin: %d\n", (UInt_t)usePLUGIN);
//==========================================================================
// Connect to back-end system
if (iAODanalysis) {
aodHandler->SetFillAOD(kFALSE);
aodHandler->SetCreateNonStandardAOD();
- aodHandler->SetOutputFileName("");
if (iJETAN) aodHandler->SetOutputFileName("AliAOD.Jets.root");
// if (iPWG3vertexing) aodHandler->SetOutputFileName("AliAOD.VertexingHF.root");
}
}
// Debugging if needed
- if (useDBG) mgr->SetDebugLevel(2);
+ if (useDBG) mgr->SetDebugLevel(3);
if (saveCanvases) mgr->SetSaveCanvases(kTRUE);
//==========================================================================
if (saveTrain && smode=="GRID") {
AliAnalysisAlien *gridhandler = (AliAnalysisAlien*)mgr->GetGridHandler();
TString alien_workdir = gGrid->GetHomeDirectory();
- if (iAODanalysis) alien_workdir += "analysisAOD";
- else alien_workdir += "analysisESD";
+ alien_workdir += train_name;
alien_outdir = gridhandler->GetGridOutputDir();
printf("=== Registering ConfigTrain.C in the work directory <%s> ===\n",
alien_workdir.Data());
// Add all analysis task wagons to the train
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ //
+ // Tender and supplies
+ //
+ if (useTender) {
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/TenderSupplies/AddTaskTender.C");
+ AliAnalysisTaskSE *tender = AddTaskTender(kTRUE);
+// tender->SelectCollisionCandidates();
+ tender->SetDebugLevel(2);
+ }
+ if (usePhysicsSelection) {
+ // Physics selection task
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
+ mgr->RegisterExtraFile("event_stat.root");
+ AliPhysicsSelectionTask *physSel = AddTaskPhysicsSelection(useMC);
+ }
+
if (iESDfilter && !iAODanalysis) {
// ESD filter task configuration.
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskESDFilter.C");
if (iMUONcopyAOD) {
printf("Registering delta AOD file\n");
mgr->RegisterExtraFile("AliAOD.Muons.root");
- AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(useKFILTER, kTRUE);
+ mgr->RegisterExtraFile("AliAOD.Dimuons.root");
+ AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(useKFILTER, kTRUE, kTRUE, usePhysicsSelection);
} else {
- AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(useKFILTER, kFALSE);
+ AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(useKFILTER, kFALSE, kFALSE, usePhysicsSelection);
}
}
// cascades
if (iPWG2checkcascade) {
gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/AddTaskCheckCascade.C");
- AliAnalysisTaskCheckCascade *taskcheckcascade = AddTaskCheckCascade(iCollision);
+ AliAnalysisTaskCheckCascade *taskcheckcascade = AddTaskCheckCascade(iCollision,runOnData);
if (!taskcheckcascade) ::Warning("AnalysisTrainNew", "AliAnalysisTaskCheckCascade cannot run for this train conditions - EXCLUDED");
}
// v0's
if (!taskunicor) ::Warning("AnalysisTrainNew", "AliAnalysisTaskUnicor cannot run for this train conditions - EXCLUDED");
}
- // FMD
+ // Forward Multiplicity
AliAnalysisManager::SetCommonFileName("forward.root");
if (iPWG2forward) {
- gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis/AddTaskFMD.C");
- AliFMDAnalysisTaskSE *taskfmd = AddTaskFMD();
- if (!taskfmd) ::Warning("AnalysisTrainNew", "AliFMDAnalysisTaskSE cannot run for this train conditions - EXCLUDED");
+ gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskForwardMult.C");
+ gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCentralMult.C");
+ Bool_t mc = false;
+ UShort_t sys = 0; // 0: get from data, 1: pp, 2: AA
+ UShort_t sNN = 0; // 0: get from data, otherwise center of mass
+ // energy (per nucleon pair)
+ Short_t fld = 0; // 0: get from data, otherwise L3 field in kG
+ AliAnalysisTask *taskForward = AddTaskForwardMult(mc, sys, sNN, fld);
+ if (!taskForward)
+ ::Warning("AnalysisTrainNew", "AliForwardMultiplicityTask cannot run for this train conditions - EXCLUDED");
+ AliAnalysisTask *taskCentral = AddTaskCentralMult(mc, sys, sNN, fld);
+ if (!taskCentral)
+ ::Warning("AnalysisTrainNew", "AliCentralMultiplicityTask cannot run for this train conditions - EXCLUDED");
}
AliAnalysisManager::SetCommonFileName("PWG2histograms.root");
TString path = gROOT->GetMacroPath();
path += ":$ALICE_ROOT/PWG2/RESONANCES/macros/train";
gROOT->SetMacroPath(path);
- AddAnalysisTaskRsnNew();
- if (iPWG2rsneff) AddAnalysisTaskRsnEffNew();
+ AddAnalysisTaskRsn(kTRUE);
+ if (iPWG2rsneff) AddAnalysisTaskRsnEff();
}
AliAnalysisManager::SetCommonFileName("PWG2histograms.root");
// PWG3 vertexing
if (iPWG3vertexing) {
- gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/AddTaskVertexingHF.C");
+ gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/macros/AddTaskVertexingHF.C");
if (!iPWG3d2h) TFile::Cp(gSystem->ExpandPathName(configPWG3d2h.Data()), Form("%s/ConfigVertexingHF.C", train_name.Data()));
AliAnalysisTaskSEVertexingHF *taskvertexingHF = AddTaskVertexingHF();
if (!taskvertexingHF) ::Warning("AnalysisTrainNew", "AliAnalysisTaskSEVertexingHF cannot run for this train conditions - EXCLUDED");
if (iPWG3d2h) {
gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/AddD2HTrain.C");
TFile::Cp(gSystem->ExpandPathName(configPWG3d2h.Data()), Form("%s/ConfigVertexingHF.C", train_name.Data()));
- AddD2HTrain(kTRUE, iPWG3d0mass,iPWG3d0massLS,iPWG3dplus, iPWG3LSd0, iPWG3LSjpsi, iPWG3CFd0, iPWG3promptd0);
+ AddD2HTrain(iPWG3d0mass,iPWG3d0massLS,iPWG3dplus, iPWG3LSd0, iPWG3LSjpsi, iPWG3CFd0, iPWG3promptd0);
}
// PWG3 muon
Int_t addMuonDistributions = 1;
Int_t addSingleMuonAnalysis = 1;
Int_t addMuonHFAnalysis = 1;
- Int_t addDimuonCFContainer = 1; // Dimuons container
- Int_t ntaskmuon = AddPWG3MuonTrain(isESDAnalysis,isAODAnalysis,addMuonDistributions,addSingleMuonAnalysis,addMuonHFAnalysis, addDimuonCFContainer);
+ Int_t ntaskmuon = AddPWG3MuonTrain(isESDAnalysis,isAODAnalysis,addMuonDistributions,addSingleMuonAnalysis,addMuonHFAnalysis);
printf("Added %d muon tasks\n", ntaskmuon);
}
} else {
// AOD-based analysis. Add all reconstructors to write into delta AOD's
if (iJETANdelta) {
- Int_t ntasksjets = AddTaskJetsDelta("AliAOD.Jets.root");
+ Int_t ntasksjets = AddTaskJetsDelta("AliAOD.Jets.root",0,kFALSE);
if (ntasksjets) printf("Added %d jet reconstructors\n", ntasksjets);
}
}
if (!taskpartcorrPHOS) ::Warning("AnalysisTrainNew", "AliAnalysisTaskParticleCorrelation PHOS cannot run for this train conditions - EXCLUDED");
AliAnalysisTaskParticleCorrelation *taskpartcorrEMCAL = AddTaskPartCorr("AOD", "EMCAL", kFALSE, isSimulation);
if (!taskpartcorrEMCAL) ::Warning("AnalysisTrainNew", "AliAnalysisTaskParticleCorrelation EMCAL cannot run for this train conditions - EXCLUDED");
- gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/QA/AddTaskCalorimeterQA.C");
- AliAnalysisTaskParticleCorrelation *taskpartcorrqa = AddTaskCalorimeterQA("ESD",kFALSE,kFALSE);
- if (!taskpartcorrqa) ::Warning("AnalysisTrainNew", "AliAnalysisTaskParticleCorrelation QA cannot run for this train conditions - EXCLUDED");
mgr->RegisterExtraFile("deltaAODPartCorr.root");
}
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskGammaConversion.C");
TString cdir = gSystem->WorkingDirectory();
gSystem->ChangeDirectory(gSystem->ExpandPathName("$ALICE_ROOT/PWG4/macros/"));
- TString gcArguments = "-run-on-train -run-jet -run-chic -run-neutralmeson -run-cf";
+ TString gcArguments = "-run-on-train -use-own-xyz -run-jet -run-neutralmeson -no-aod -apply-chi2-cut -low-memory -use-v0-multiplicity -move-bg-vertex ";
+ TString kGCAnalysisCutSelectionId="900110204010001";
+ gcArguments.Append(Form(" -set-cut-selection %s",kGCAnalysisCutSelectionId.Data()));
+ if(!useMC)gcArguments += " -mc-off";
AliAnalysisTaskGammaConversion * taskGammaConversion = AddTaskGammaConversion(gcArguments,mgr->GetCommonInputContainer());
gSystem->ChangeDirectory(cdir);
+ taskGammaConversion->SelectCollisionCandidates();
if (!taskGammaConversion) ::Warning("AnalysisTrainNew", "AliAnalysisTaskGammaConversion cannot run for these train conditions - EXCLUDED");
}
::Info("AnalysisTrainNew.C::CheckModuleFlags", "iPWG2evchar disabled if not reading track references");
iPWG2evchar = 0;
}
- if (!iAODhandler) {
- ::Info("AnalysisTrainNew.C::CheckModuleFlags", "iPWG3d2h disabled on ESD analysis without AOD handler");
- iPWG3d2h = 0;
- }
}
if (!useMC) {
if (iPWG2perfcascade)
if (iPWG2central)
::Info("AnalysisTrainNew.C::CheckModuleFlags", "PWG2central disabled without MC info");
iPWG2central = 0;
- if (iPWG2rsneff)
- ::Info("AnalysisTrainNew.C::CheckModuleFlags", "PWG2rsneff disabled without MC info");
- iPWG2rsneff = 0;
}
if (iJETAN && !iAODanalysis) iESDfilter=1;
if (iESDfilter) {iAODhandler=1; useCORRFW = kTRUE;}
}
break;
case 2:
- if (!username.Length()) {
- ::Error(Form("AnalysisTrainNew.C::Connect <%s>", mode), "Make sure you:\n \
- 1. Have called: alien-token-init <username>\n \
- 2. Have called: >source /tmp/gclient_env_$UID");
- return kFALSE;
- }
if (usePLUGIN && !gSystem->Getenv("alien_CLOSE_SE")) {
::Error(Form("AnalysisTrainNew.C::Connect <%s>", mode),
"When using the AliEn plugin it is preferable to define the \
{
// Load common analysis libraries.
Bool_t success = kTRUE;
+ if (useTender) {
+ if (!LoadLibrary("Tender", mode, kTRUE) ||
+ !LoadLibrary("TenderSupplies", mode, kTRUE)) return kFALSE;
+ }
if (iESDfilter || iPWG3MuonTrain) {
if (!LoadLibrary("PWG3base", mode, kTRUE) ||
!LoadLibrary("PWG3muon", mode, kTRUE)) return kFALSE;
}
// PWG2 FORWARD
if (iPWG2forward) {
- if (!LoadLibrary("PWG2forward", mode, kTRUE)) return kFALSE;
+ if (!LoadLibrary("PWG2forward2", mode, kTRUE)) return kFALSE;
}
// PWG3 Vertexing HF
if (iPWG3vertexing || iPWG3d2h) {
// Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
plugin->SetRunMode(plugin_mode);
if (useProductionMode) plugin->SetProductionMode();
- if (!outputSingleFolder.IsNull()) plugin->SetOutputSingleFolder(outputSingleFolder);
+ if (!outputSingleFolder.IsNull()) {
+ plugin->SetOutputSingleFolder(outputSingleFolder);
+ plugin->SetOutputToRunNo();
+ }
plugin->SetJobTag(job_tag);
plugin->SetNtestFiles(1);
// plugin->SetPreferedSE("ALICE::NIHAM::File");
// Define production directory LFN
plugin->SetGridDataDir(alien_datadir);
// Set data search pattern
- if (iAODanalysis) plugin->SetDataPattern("*AliAOD.root");
- else plugin->SetDataPattern("*AliESDs.root");
+ if (runOnData) {
+ plugin->SetRunPrefix("000");
+ plugin->SetDataPattern("*ESDs/pass1/*ESDs.root");
+ } else {
+ plugin->SetDataPattern("*ESDs.root");
+ }
// ...then add run numbers to be considered
- if (!iAODanalysis) plugin->SetRunRange(run_range[0], run_range[1]);
-// for (Int_t i=0; i<10; i++) {
-// if (run_numbers[i]==0) break;
-// plugin->AddRunNumber(run_numbers[i]);
-// }
+// if (!iAODanalysis) plugin->SetRunRange(run_range[0], run_range[1]);
+ for (Int_t i=0; i<10; i++) {
+ if (run_numbers[i]==0) break;
+ plugin->AddRunNumber(run_numbers[i]);
+ }
// Method 2: Declare existing data files (raw collections, xml collections, root file)
// If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir())
// XML collections added via this method can be combined with the first method if
// plugin->AddDataFile("tag.xml");
// plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");
// Define alien work directory where all files will be copied. Relative to alien $HOME.
- if (iAODanalysis) plugin->SetGridWorkingDir("analysisAOD");
- else plugin->SetGridWorkingDir("analysisESD");
+ plugin->SetGridWorkingDir(train_name);
// Declare alien output directory. Relative to working directory.
if (!alien_outdir.Length()) alien_outdir = Form("output_%s",train_name.Data());
plugin->SetGridOutputDir(alien_outdir);
if (!listhists.Length() && !listaods.Length()) {
::Fatal("AnalysisTrainNew", "No task output !");
}
- TString outputArchive = Form("log_archive.zip:stderr,stdout@%s", outputStorages.Data());
+ TString outputArchive = Form("log_archive.zip:stderr@%s", outputStorages.Data());
if (listaods.Length()) {
outputArchive += " ";
outputArchive += listaods;
// Set friends
// if (iAODanalysis && iPWG3d2h)
// plugin->SetFriendChainName("AliAOD.VertexingHF.root");
- plugin->SetOutputArchive(outputArchive);
+// 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 maximum number of input files/subjob (default 100, put 0 to ignore)
plugin->SetExecutable(Form("%s.sh", train_name.Data()));
// Optionally modify job price (default 1)
plugin->SetPrice(1);
+// Merge via JDL
+ plugin->SetMergeViaJDL(useMergeViaJDL);
+// Use fastread option
+ plugin->SetFastReadOption(useFastReadOption);
+// UseOverwrite mode
+ plugin->SetOverwriteMode(useOverwriteMode);
+ plugin->SetExecutableCommand("aliroot -b -q");
// Optionally modify split mode (default 'se')
-// plugin->SetSplitMode("se");
+ plugin->SetSplitMode("se");
return plugin;
}
fdate.getline(date,64);
fdate.close();
gSystem->Exec("rm date.tmp");
- train_name = Form("train_%s_%s", train_name.Data(), date);
- } else {
- train_name = Form("train_%s", train_name.Data());
+ train_name = Form("%s_%s", train_name.Data(), date);
}
TString cdir = gSystem->WorkingDirectory();
gSystem->MakeDirectory(train_name);
// if (run_numbers[i])
// out << " run_numbers[" << i << "] = " << run_numbers[i] << ";" << endl;
// }
- out << " run_range[0] = " << run_range[0] << ";" << endl;
- out << " run_range[1] = " << run_range[1] << ";" << endl;
+// out << " run_range[0] = " << run_range[0] << ";" << endl;
+// out << " run_range[1] = " << run_range[1] << ";" << endl;
+ out << " usePhysicsSelection = " << usePhysicsSelection << ";" << endl;
+ out << " useTender = " << useTender << ";" << endl;
+ out << " useMergeViaJDL = " << useMergeViaJDL << ";" << endl;
+ out << " useOverwriteMode = " << useOverwriteMode << ";" << endl;
+ out << " useFastReadOption = " << useFastReadOption << ";" << endl;
out << " useDBG = " << useDBG << ";" << endl;
out << " useMC = " << useMC << ";" << endl;
out << " useTAGS = " << useTAGS << ";" << endl;