// root[1] AnalysisTrainNew(ana_mode, plugin_mode, "train_default_<date>/ConfigTrain.C")
//================== TRAIN NAME ============================================
-TString train_name = "TR008_LHC09a2ESD"; // *CHANGE ME* (no blancs or special characters)
-TString job_tag = "TR008: ESD+MC analysis -> AOD + delta AOD + 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 = 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 = kTRUE; // use the plugin in production mode
// Usage of par files ONLY in grid mode and ONLY if the code is not available
// AliRoot.
Bool_t usePAR = kFALSE; // use par files for extra libs
Bool_t useCPAR = kFALSE; // use par files for common libs
-TString root_version = "v20091109-1"; // *CHANGE ME IF MORE RECENT IN GRID*
-TString aliroot_version = "v4-18-11-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/PDC_08b/LHC09a2";
+TString alien_datadir = "/alice/data/2010/LHC10d";
// AliEn output directory. If blank will become output_<train_name>
-TString alien_outdir = "/alice/sim/PDC_08b/LHC09a2/AOD1";
-// 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 forward.root resonances.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 = "ALICE::NIHAM::File,ALICE::CNAF::SE,ALICE::FZK::SE,ALICE::GSI::SE";
+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 = 20;
+Int_t nFilesPerJob = 50;
+// Int_t nFilesPerJob = 1; (AOD->delta AOD production case)
// Set the run range
-Int_t run_range[2] = {80000, 80025}; // LHC09a1 *CHANGE ME*
-//Int_t run_range[2] = {70000, 70000};
+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 = kFALSE; // 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 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 configPWG3d2h = "$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF_highmult.C";
-TString configPWG3d2h = "$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF_highmult.C";
+TString configPWG3d2h = "$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C";
// Temporaries.
TString anaPars = "";
TString anaLibs = "";
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
}
// Debugging if needed
if (useDBG) mgr->SetDebugLevel(3);
+ if (saveCanvases) mgr->SetSaveCanvases(kTRUE);
//==========================================================================
// Create the chain. In this example it is created only from ALIEN files but
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();
+ 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");
// PWG2 resonances
AliAnalysisManager::SetCommonFileName("resonances.root");
if (iPWG2res) {
- gROOT->LoadMacro("$ALICE_ROOT/PWG2/RESONANCES/macros/train/AddAnalysisTaskRsn.C");
- gROOT->LoadMacro("$ALICE_ROOT/PWG2/RESONANCES/macros/train/AddAnalysisTaskRsnEff.C");
+ gROOT->LoadMacro("$ALICE_ROOT/PWG2/RESONANCES/macros/train/AddAnalysisTaskRsnNew.C");
+ gROOT->LoadMacro("$ALICE_ROOT/PWG2/RESONANCES/macros/train/AddAnalysisTaskRsnEffNew.C");
TString path = gROOT->GetMacroPath();
path += ":$ALICE_ROOT/PWG2/RESONANCES/macros/train";
gROOT->SetMacroPath(path);
// 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");
gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/AddPWG3MuonTrain.C");
// iESDAnalysis, iAODAnalysis -> flags to select if the train is AOD or ESD based
// iMuonDistributions, iSingleMuonANAlysis -> flags to switch on/off analysis wagons
- Bool_t iESDAnalysis = !iAODanalysis;
- Bool_t iMuonDistributions = kTRUE;
- Bool_t iSingleMuonAnalysis = kTRUE;
- AddPWG3MuonTrain(iESDAnalysis,iAODanalysis,iMuonDistributions,iSingleMuonAnalysis);
+ Int_t isESDAnalysis = (iAODanalysis)?0:1;
+ Int_t isAODAnalysis = (iAODanalysis)?1:0;
+ Int_t addMuonDistributions = 1;
+ Int_t addSingleMuonAnalysis = 1;
+ Int_t addMuonHFAnalysis = 1;
+ Int_t ntaskmuon = AddPWG3MuonTrain(isESDAnalysis,isAODAnalysis,addMuonDistributions,addSingleMuonAnalysis,addMuonHFAnalysis);
+ printf("Added %d muon tasks\n", ntaskmuon);
}
// ********** PWG4 wagons ******************************************************
}
} else {
// AOD-based analysis. Add all reconstructors to write into delta AOD's
- if (iJETANdelta) AddTaskJetsDelta();
- AliAnalysisTaskJets * taskjets = AddTaskJets();
- taskjets->SetNonStdBranch("jetsAOD_UA1_04");
+ if (iJETANdelta) {
+ Int_t ntasksjets = AddTaskJetsDelta("AliAOD.Jets.root",0,kFALSE);
+ if (ntasksjets) printf("Added %d jet reconstructors\n", ntasksjets);
+ }
}
}
// PWG4 hadron correlations
if (iPWG4partcorr) {
+ Bool_t isSimulation = (runOnData)?kFALSE:kTRUE;
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskPartCorr.C");
- AliAnalysisTaskParticleCorrelation *taskpartcorrPHOS = AddTaskPartCorr("AOD", "PHOS");
+ AliAnalysisTaskParticleCorrelation *taskpartcorrPHOS = AddTaskPartCorr("AOD", "PHOS", kFALSE, isSimulation);
if (!taskpartcorrPHOS) ::Warning("AnalysisTrainNew", "AliAnalysisTaskParticleCorrelation PHOS cannot run for this train conditions - EXCLUDED");
- AliAnalysisTaskParticleCorrelation *taskpartcorrEMCAL = AddTaskPartCorr("AOD", "EMCAL");
+ AliAnalysisTaskParticleCorrelation *taskpartcorrEMCAL = AddTaskPartCorr("AOD", "EMCAL", kFALSE, isSimulation);
if (!taskpartcorrEMCAL) ::Warning("AnalysisTrainNew", "AliAnalysisTaskParticleCorrelation EMCAL 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");
}
if (iPWG3hfe)
::Info("AnalysisTrainNew.C::CheckModuleFlags", "PWG3hfe disabled on AOD's");
iPWG3hfe = 0;
- if (iPWG3vertexing)
- ::Info("AnalysisTrainNew.C::CheckModuleFlags", "PWG3vertexing disabled on AOD's");
-// iPWG3vertexing = 0;
if (iPWG4omega3pi)
::Info("AnalysisTrainNew.C::CheckModuleFlags", "PWG4omega3pi disabled on AOD's");
iPWG4omega3pi = 0;
- if (iPWG4partcorr)
- ::Info("AnalysisTrainNew.C::CheckModuleFlags", "PWG4partcorr disabled on AOD's");
- iPWG4partcorr = 0;
} else {
// ESD analysis
if (!useMC) useTR = kFALSE;
}
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);
+ plugin->SetOutputToRunNo();
+ }
plugin->SetJobTag(job_tag);
plugin->SetNtestFiles(1);
// plugin->SetPreferedSE("ALICE::NIHAM::File");
// Set versions of used packages
// plugin->SetAPIVersion("V2.4");
- plugin->SetAPIVersion("V1.0x");
+ plugin->SetAPIVersion("V1.1x");
plugin->SetROOTVersion(root_version);
plugin->SetAliROOTVersion(aliroot_version);
// Declare input data to be processed.
// Define production directory LFN
plugin->SetGridDataDir(alien_datadir);
// Set data search pattern
- if (iAODanalysis) plugin->SetDataPattern("*AliAOD.root");
- else plugin->SetDataPattern("*ESD.tag.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);
listaods += mgr->GetExtraFiles();
listaods.ReplaceAll(" ", ",");
}
- if (listhists.Length()) listhists = Form("hist_archive.zip:%s@%s", listhists.Data(), outputStorages.Data());;
- if (listaods.Length()) listaods = Form("aod_archive.zip:%s@%s", listaods.Data(), outputStorages.Data());;
+ if (listhists.Length()) listhists = Form("hist_archive.zip:%s@%s", listhists.Data(), outputStorages.Data());
+ if (listaods.Length()) listaods = Form("aod_archive.zip:%s@%s", listaods.Data(), outputStorages.Data());
if (!listhists.Length() && !listaods.Length()) {
::Fatal("AnalysisTrainNew", "No task output !");
}
- TString outputArchive = "log_archive.zip:stdout,stderr@ALICE::CERN::SE";
+ 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;