1 // Created by Enrico Fragiacomo - 13/02/14
2 // Based on AnalysisSetupRsnMini
4 // This macro sets all those aspects of configuration of an Analysis Train run
5 // which are always the same for all kinds of analysis (local, PROOF, AliEn)
9 // - options = a set of keywords which drive some configurations
10 // - outputFileName = name of file produced by train
11 // - configPath = a path where all required config macros are stored
15 // - if successful: the name of the expected input TTre (esdTree or aodTree)
19 enum ERsnCollType_t { kPP=0,
26 const char *outputFileName,
27 const char *macroPath = "."
34 // === EXAMINE OPTIONS ==========================================================================
40 Bool_t isMC = opt.Contains("MC") || (!opt.Contains("DATA"));
41 Bool_t isESD = opt.Contains("ESD");
42 Bool_t useTender = opt.Contains("Tender");
43 Bool_t noV0 = opt.Contains("NOV0");
46 if( opt.Contains("PP") && (!opt.Contains("PB")) ) collSyst=kPP;
47 else if( opt.Contains("PPB") ) collSyst=kPPb;
51 // === LOAD LIBRARIES ===========================================================================
54 // load analysis libraries
55 gSystem->Load("libSTEERBase.so");
56 gSystem->Load("libESD.so");
57 gSystem->Load("libAOD.so");
58 gSystem->Load("libANALYSIS.so");
59 gSystem->Load("libANALYSISalice.so");
60 gSystem->Load("libEventMixing.so");
61 gSystem->Load("libCORRFW.so");
63 // tender-related libraries
64 if (isESD && useTender) {
65 ::Info("AnalysisSetup", "Loading tender libraries");
66 gSystem->Load("libTender.so");
67 gSystem->Load("libTenderSupplies.so");
72 // load development RSN library
73 if (!AliAnalysisAlien::SetupPar("PWGLFresonances.par")) return "";
76 // === CREATE ANALYSIS MANAGER ==================================================================
79 AliAnalysisManager *mgr = new AliAnalysisManager("RsnAnalysisManager");
80 mgr->SetCommonFileName(outputFileName);
81 ::Info("AnalysisSetup", "Common file name: %s", outputFileName);
84 // === INPUT / OUTPUT HANDLER CONFIGURATION =====================================================
89 ::Info("AnalysisSetup", "Creating ESD handler");
90 AliESDInputHandler *esdHandler = new AliESDInputHandler();
91 mgr->SetInputEventHandler(esdHandler);
93 ::Info("AnalysisSetup", "Creating MC handler");
94 AliMCEventHandler *mcHandler = new AliMCEventHandler();
95 mgr->SetMCtruthEventHandler(mcHandler);
99 ::Info("AnalysisSetup", "Creating AOD handler");
100 AliAODInputHandler *aodHandler = new AliAODInputHandler();
101 mgr->SetInputEventHandler(aodHandler);
105 // === Tender TASK (ESD only -- optional) =======================================================
108 if (isESD && useTender) {
109 ::Info("AnalysisSetup", "Adding tender (and then accepting V0 info)", options);
110 gROOT->LoadMacro(Form("%s/AddTaskTender.C", macroPath));
116 // === PHYSICS SELECTION (ESD only) =============================================================
120 ::Info("AnalysisSetup", "Add physics selection by default on ESD analysis");
121 gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPhysicsSelection.C");
122 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(isMC);
124 ::Info("AnalysisSetup", "Skip of V0 info is required");
125 physSelTask->GetPhysicsSelection()->SetSkipV0(kTRUE);
130 // === CENTRALITY/PLANE (ESD only) ==============================================================
133 if (isESD && !(collSyst==kPP) ) {
134 ::Info("AnalysisSetup", "Add centrality and event plane computation tasks");
135 gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskCentrality.C");
136 gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskEventplane.C");
137 AliCentralitySelectionTask* taskCentrality = (AliCentralitySelectionTask*)AddTaskCentrality();
139 ::Info("AnalysisSetup", "Setting centrality computation for MC");
140 taskCentrality->SetMCInput();
146 // === PID RESPONSE =============================================================================
149 gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDResponse.C");
150 AddTaskPIDResponse(isMC);
153 // === MAIN TASK FOR THE SIGMASTAR ANALYSIS ==============================================================================
156 gROOT->LoadMacro(Form("%s/AddTaskSigmaStar.C", macroPath));
157 if (!AddTaskSigmaStar(isMC, collSyst, 10.0 ,0, 0, 0, 5, 3.0, 3.0, 7.0, 0.01, 0.3, 0.97, 0.5, 70, 1.0, 10.0, 20.0, 68, "Sigma1385")) return "";
159 ::Info("AnalysisSetup", "Setup successful");