TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / mini / AnalysisSetupSigmaStar.C
CommitLineData
b897ea8d 1// Created by Enrico Fragiacomo - 13/02/14
2// Based on AnalysisSetupRsnMini
3//
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)
6//
7// Inputs:
8//
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
12//
13// Returns:
14//
15// - if successful: the name of the expected input TTre (esdTree or aodTree)
16// - if failed : NULL
17//
18
19enum ERsnCollType_t { kPP=0,
20 kPPb,
21 kPbPb};
22
23TString Setup
24(
25 const char *options,
26 const char *outputFileName,
27 const char *macroPath = "."
28)
29{
30 // prepare output
31 TString out("");
32
33 //
34 // === EXAMINE OPTIONS ==========================================================================
35 //
36
37 TString opt(options);
38 opt.ToUpper();
39
40 Bool_t isMC = opt.Contains("MC") || (!opt.Contains("DATA"));
41 Bool_t isESD = opt.Contains("ESD");
af472fff 42 Bool_t useTender = opt.Contains("Tender");
b897ea8d 43 Bool_t noV0 = opt.Contains("NOV0");
44
45 Int_t collSyst;
46 if( opt.Contains("PP") && (!opt.Contains("PB")) ) collSyst=kPP;
47 else if( opt.Contains("PPB") ) collSyst=kPPb;
48 else collSyst=kPbPb;
49
50 //
51 // === LOAD LIBRARIES ===========================================================================
52 //
53
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");
62
63 // tender-related libraries
64 if (isESD && useTender) {
65 ::Info("AnalysisSetup", "Loading tender libraries");
af472fff 66 gSystem->Load("libTender.so");
67 gSystem->Load("libTenderSupplies.so");
b897ea8d 68 } else if (!isESD) {
69 useTender = kFALSE;
70 }
71
72 // load development RSN library
73 if (!AliAnalysisAlien::SetupPar("PWGLFresonances.par")) return "";
74
75 //
76 // === CREATE ANALYSIS MANAGER ==================================================================
77 //
78
79 AliAnalysisManager *mgr = new AliAnalysisManager("RsnAnalysisManager");
80 mgr->SetCommonFileName(outputFileName);
81 ::Info("AnalysisSetup", "Common file name: %s", outputFileName);
82
83 //
84 // === INPUT / OUTPUT HANDLER CONFIGURATION =====================================================
85 //
86
87 if (isESD) {
88 out = "esdTree";
89 ::Info("AnalysisSetup", "Creating ESD handler");
90 AliESDInputHandler *esdHandler = new AliESDInputHandler();
91 mgr->SetInputEventHandler(esdHandler);
92 if (isMC) {
93 ::Info("AnalysisSetup", "Creating MC handler");
94 AliMCEventHandler *mcHandler = new AliMCEventHandler();
95 mgr->SetMCtruthEventHandler(mcHandler);
96 }
97 } else {
98 out = "aodTree";
99 ::Info("AnalysisSetup", "Creating AOD handler");
100 AliAODInputHandler *aodHandler = new AliAODInputHandler();
101 mgr->SetInputEventHandler(aodHandler);
102 }
103
104 //
af472fff 105 // === Tender TASK (ESD only -- optional) =======================================================
b897ea8d 106 //
107
108 if (isESD && useTender) {
109 ::Info("AnalysisSetup", "Adding tender (and then accepting V0 info)", options);
110 gROOT->LoadMacro(Form("%s/AddTaskTender.C", macroPath));
111 AddTaskTender();
112 noV0 = kFALSE;
113 }
114
115 //
116 // === PHYSICS SELECTION (ESD only) =============================================================
117 //
118
119 if (isESD) {
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);
123 if (noV0) {
124 ::Info("AnalysisSetup", "Skip of V0 info is required");
125 physSelTask->GetPhysicsSelection()->SetSkipV0(kTRUE);
126 }
127 }
128
129 //
130 // === CENTRALITY/PLANE (ESD only) ==============================================================
131 //
132
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();
138 if (isMC) {
139 ::Info("AnalysisSetup", "Setting centrality computation for MC");
140 taskCentrality->SetMCInput();
141 }
142 AddTaskEventplane();
143 }
144
145 //
146 // === PID RESPONSE =============================================================================
147 //
148
149 gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDResponse.C");
150 AddTaskPIDResponse(isMC);
151
152 //
153 // === MAIN TASK FOR THE SIGMASTAR ANALYSIS ==============================================================================
154 //
155
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 "";
158
159 ::Info("AnalysisSetup", "Setup successful");
160 return out;
161}