//
// This macro sets all the aspects of configuration of an Analysis Train run
// which are always the same for all kinds of analysis (local, PROOF, AliEn)
//
// Inputs:
//
// - nmix = number of mixings to do (if > 0, initialize mixing stuff)
// - options = a set of keywords which drive some configurations
// - outputFileName = name of file produced by train
// - configPath = a path where all required config macros are stored
//
// Notes:
//
// - in case the source is an ESD, and if inputs are a MC production
// the MC input handler is created by default
//
// Returns:
//
// - if successful: the name of the expected input TTre (esdTree or aodTree)
// - if failed : NULL
//
TString Setup
(
Int_t nmix,
const char *options,
const char *outputFileName,
const char *macroPath = "."
)
{
// prepare output
TString out("");
//
// === EXAMINE OPTIONS ==========================================================================
//
// this is done using the utility 'RsnOptions.C'
// which provides a unique way to interpret them
TString opt(options);
opt.ToUpper();
Bool_t isMC = opt.Contains("MC") || (!opt.Contains("DATA"));
Bool_t isPP = opt.Contains("PP") || (!opt.Contains("PBPB"));
Bool_t isESD = opt.Contains("ESD");
Bool_t useTender = opt.Contains("TENDER");
Bool_t noV0 = opt.Contains("NOV0");
//
// === LOAD LIBRARIES ===========================================================================
//
// load analysis libraries
gSystem->Load("libSTEERBase.so");
gSystem->Load("libESD.so");
gSystem->Load("libAOD.so");
gSystem->Load("libANALYSIS.so");
gSystem->Load("libANALYSISalice.so");
gSystem->Load("libEventMixing.so");
gSystem->Load("libCORRFW.so");
// tender-related libraries
if (isESD && useTender) {
::Info("AnalysisSetup", "Loading tender libraries");
gSystem->Load("libTENDER.so");
gSystem->Load("libTENDERSupplies.so");
} else if (!isESD) {
useTender = kFALSE;
}
gSystem->Load("libPWGLFresonances.so");
// // load development RSN library
// if (!AliAnalysisAlien::SetupPar("PWG2resonances.par")) return "";
//
// === CREATE ANALYSIS MANAGER ==================================================================
//
AliAnalysisManager *mgr = new AliAnalysisManager("RsnAnalysisManager");
mgr->SetCommonFileName(outputFileName);
::Info("AnalysisSetup", "Common file name: %s", outputFileName);
//
// === INPUT / OUTPUT HANDLER CONFIGURATION =====================================================
//
if (isESD) {
out = "esdTree";
::Info("AnalysisSetup", "Creating ESD handler");
AliESDInputHandler *esdHandler = new AliESDInputHandler();
mgr->SetInputEventHandler(esdHandler);
if (isMC) {
::Info("AnalysisSetup", "Creating MC handler");
AliMCEventHandler *mcHandler = new AliMCEventHandler();
mgr->SetMCtruthEventHandler(mcHandler);
}
} else {
out = "aodTree";
::Info("AnalysisSetup", "Creating AOD handler");
AliAODInputHandler *aodHandler = new AliAODInputHandler();
mgr->SetInputEventHandler(aodHandler);
}
//
// === PID RESPONSE =============================================================================
//
gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDResponse.C");
AddTaskPIDResponse(isMC);
gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDqa.C ");
AddTaskPIDqa();
//
// === TENDER TASK (ESD only -- optional) =======================================================
//
if (isESD && useTender) {
::Info("AnalysisSetup", "Adding tender (and then accepting V0 info)", options);
// gROOT->LoadMacro(Form("%s/AddTaskTender.C", macroPath)); //for developers usage
// gROOT->LoadMacro(Form("$(ALICE_ROOT)/PWGLF/RESONANCES/macros/mini/AddTaskTender.C")); //deprecated
gROOT->LoadMacro(Form("$(ALICE_ROOT)/ANALYSIS/TenderSupplies/AddTaskTender.C"));
AddTaskTender();
noV0 = kFALSE;
}
//
// === PHYSICS SELECTION (ESD only) =============================================================
//
if (isESD) {
::Info("AnalysisSetup", "Add physics selection by default on ESD analysis");
gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPhysicsSelection.C");
AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(isMC);
if (noV0) {
::Info("AnalysisSetup", "Skip of V0 info is required");
physSelTask->GetPhysicsSelection()->SetSkipV0(kTRUE);
}
}
//
// === CENTRALITY/PLANE (ESD only) ==============================================================
//
if (isESD && !isPP) {
::Info("AnalysisSetup", "Add centrality and event plane computation tasks");
gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskCentrality.C");
gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskEventplane.C");
AliCentralitySelectionTask* taskCentrality = (AliCentralitySelectionTask*)AddTaskCentrality();
if (isMC) {
::Info("AnalysisSetup", "Setting centrality computation for MC");
taskCentrality->SetMCInput();
}
AddTaskEventplane();
}
// //
// // === PID RESPONSE =============================================================================
// //
//
// gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDResponse.C");
// AddTaskPIDResponse(isMC);
//
// //gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDqa.C ");
// //AddTaskPIDqa();
//
// === OTHER TASKS ==============================================================================
//
// add RSN task
gROOT->LoadMacro(Form("%s/AddAnalysisTaskRsnMini.C", macroPath));
if (!AddAnalysisTaskRsnMini(isMC, isPP, macroPath, nmix)) return "";
::Info("AnalysisSetup", "Setup successful");
return out;
}
AnalysisSetupRsnMini.C:10 AnalysisSetupRsnMini.C:11 AnalysisSetupRsnMini.C:12 AnalysisSetupRsnMini.C:13 AnalysisSetupRsnMini.C:14 AnalysisSetupRsnMini.C:15 AnalysisSetupRsnMini.C:16 AnalysisSetupRsnMini.C:17 AnalysisSetupRsnMini.C:18 AnalysisSetupRsnMini.C:19 AnalysisSetupRsnMini.C:20 AnalysisSetupRsnMini.C:21 AnalysisSetupRsnMini.C:22 AnalysisSetupRsnMini.C:23 AnalysisSetupRsnMini.C:24 AnalysisSetupRsnMini.C:25 AnalysisSetupRsnMini.C:26 AnalysisSetupRsnMini.C:27 AnalysisSetupRsnMini.C:28 AnalysisSetupRsnMini.C:29 AnalysisSetupRsnMini.C:30 AnalysisSetupRsnMini.C:31 AnalysisSetupRsnMini.C:32 AnalysisSetupRsnMini.C:33 AnalysisSetupRsnMini.C:34 AnalysisSetupRsnMini.C:35 AnalysisSetupRsnMini.C:36 AnalysisSetupRsnMini.C:37 AnalysisSetupRsnMini.C:38 AnalysisSetupRsnMini.C:39 AnalysisSetupRsnMini.C:40 AnalysisSetupRsnMini.C:41 AnalysisSetupRsnMini.C:42 AnalysisSetupRsnMini.C:43 AnalysisSetupRsnMini.C:44 AnalysisSetupRsnMini.C:45 AnalysisSetupRsnMini.C:46 AnalysisSetupRsnMini.C:47 AnalysisSetupRsnMini.C:48 AnalysisSetupRsnMini.C:49 AnalysisSetupRsnMini.C:50 AnalysisSetupRsnMini.C:51 AnalysisSetupRsnMini.C:52 AnalysisSetupRsnMini.C:53 AnalysisSetupRsnMini.C:54 AnalysisSetupRsnMini.C:55 AnalysisSetupRsnMini.C:56 AnalysisSetupRsnMini.C:57 AnalysisSetupRsnMini.C:58 AnalysisSetupRsnMini.C:59 AnalysisSetupRsnMini.C:60 AnalysisSetupRsnMini.C:61 AnalysisSetupRsnMini.C:62 AnalysisSetupRsnMini.C:63 AnalysisSetupRsnMini.C:64 AnalysisSetupRsnMini.C:65 AnalysisSetupRsnMini.C:66 AnalysisSetupRsnMini.C:67 AnalysisSetupRsnMini.C:68 AnalysisSetupRsnMini.C:69 AnalysisSetupRsnMini.C:70 AnalysisSetupRsnMini.C:71 AnalysisSetupRsnMini.C:72 AnalysisSetupRsnMini.C:73 AnalysisSetupRsnMini.C:74 AnalysisSetupRsnMini.C:75 AnalysisSetupRsnMini.C:76 AnalysisSetupRsnMini.C:77 AnalysisSetupRsnMini.C:78 AnalysisSetupRsnMini.C:79 AnalysisSetupRsnMini.C:80 AnalysisSetupRsnMini.C:81 AnalysisSetupRsnMini.C:82 AnalysisSetupRsnMini.C:83 AnalysisSetupRsnMini.C:84 AnalysisSetupRsnMini.C:85 AnalysisSetupRsnMini.C:86 AnalysisSetupRsnMini.C:87 AnalysisSetupRsnMini.C:88 AnalysisSetupRsnMini.C:89 AnalysisSetupRsnMini.C:90 AnalysisSetupRsnMini.C:91 AnalysisSetupRsnMini.C:92 AnalysisSetupRsnMini.C:93 AnalysisSetupRsnMini.C:94 AnalysisSetupRsnMini.C:95 AnalysisSetupRsnMini.C:96 AnalysisSetupRsnMini.C:97 AnalysisSetupRsnMini.C:98 AnalysisSetupRsnMini.C:99 AnalysisSetupRsnMini.C:100 AnalysisSetupRsnMini.C:101 AnalysisSetupRsnMini.C:102 AnalysisSetupRsnMini.C:103 AnalysisSetupRsnMini.C:104 AnalysisSetupRsnMini.C:105 AnalysisSetupRsnMini.C:106 AnalysisSetupRsnMini.C:107 AnalysisSetupRsnMini.C:108 AnalysisSetupRsnMini.C:109 AnalysisSetupRsnMini.C:110 AnalysisSetupRsnMini.C:111 AnalysisSetupRsnMini.C:112 AnalysisSetupRsnMini.C:113 AnalysisSetupRsnMini.C:114 AnalysisSetupRsnMini.C:115 AnalysisSetupRsnMini.C:116 AnalysisSetupRsnMini.C:117 AnalysisSetupRsnMini.C:118 AnalysisSetupRsnMini.C:119 AnalysisSetupRsnMini.C:120 AnalysisSetupRsnMini.C:121 AnalysisSetupRsnMini.C:122 AnalysisSetupRsnMini.C:123 AnalysisSetupRsnMini.C:124 AnalysisSetupRsnMini.C:125 AnalysisSetupRsnMini.C:126 AnalysisSetupRsnMini.C:127 AnalysisSetupRsnMini.C:128 AnalysisSetupRsnMini.C:129 AnalysisSetupRsnMini.C:130 AnalysisSetupRsnMini.C:131 AnalysisSetupRsnMini.C:132 AnalysisSetupRsnMini.C:133 AnalysisSetupRsnMini.C:134 AnalysisSetupRsnMini.C:135 AnalysisSetupRsnMini.C:136 AnalysisSetupRsnMini.C:137 AnalysisSetupRsnMini.C:138 AnalysisSetupRsnMini.C:139 AnalysisSetupRsnMini.C:140 AnalysisSetupRsnMini.C:141 AnalysisSetupRsnMini.C:142 AnalysisSetupRsnMini.C:143 AnalysisSetupRsnMini.C:144 AnalysisSetupRsnMini.C:145 AnalysisSetupRsnMini.C:146 AnalysisSetupRsnMini.C:147 AnalysisSetupRsnMini.C:148 AnalysisSetupRsnMini.C:149 AnalysisSetupRsnMini.C:150 AnalysisSetupRsnMini.C:151 AnalysisSetupRsnMini.C:152 AnalysisSetupRsnMini.C:153 AnalysisSetupRsnMini.C:154 AnalysisSetupRsnMini.C:155 AnalysisSetupRsnMini.C:156 AnalysisSetupRsnMini.C:157 AnalysisSetupRsnMini.C:158 AnalysisSetupRsnMini.C:159 AnalysisSetupRsnMini.C:160 AnalysisSetupRsnMini.C:161 AnalysisSetupRsnMini.C:162 AnalysisSetupRsnMini.C:163 AnalysisSetupRsnMini.C:164 AnalysisSetupRsnMini.C:165 AnalysisSetupRsnMini.C:166 AnalysisSetupRsnMini.C:167 AnalysisSetupRsnMini.C:168 AnalysisSetupRsnMini.C:169 AnalysisSetupRsnMini.C:170 AnalysisSetupRsnMini.C:171 AnalysisSetupRsnMini.C:172 AnalysisSetupRsnMini.C:173 AnalysisSetupRsnMini.C:174 AnalysisSetupRsnMini.C:175 AnalysisSetupRsnMini.C:176 AnalysisSetupRsnMini.C:177 AnalysisSetupRsnMini.C:178