]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/Cascades/AliAnalysisTaskStrangenessVsMultiplicityMC.h
First commit of experimental task to test VZERO percentiles from AliCentrality for...
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / AliAnalysisTaskStrangenessVsMultiplicityMC.h
CommitLineData
af0d4791 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
17//
18// Modified version of AliAnalysisTaskCheckCascade.h
19// Used bits of code from AliAnalysisTaskCheckPerformanceStrange
20//
21// --- David Dobrigkeit Chinellato
22//
23// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24
25#ifndef AliAnalysisTaskStrangenessVsMultiplicityMC_H
26#define AliAnalysisTaskStrangenessVsMultiplicityMC_H
27
28class TList;
29class TH1F;
30class TH2F;
31class TH3F;
32class TVector3;
33class THnSparse;
34
35class AliESDpid;
36class AliESDtrackCuts;
37class AliAnalysisUtils;
38class AliESDEvent;
39class AliPhysicsSelection;
40class AliCFContainer;
41
42//#include "TString.h"
43//#include "AliESDtrackCuts.h"
44//#include "AliAnalysisTaskSE.h"
45
46class AliAnalysisTaskStrangenessVsMultiplicityMC : public AliAnalysisTaskSE {
47 public:
48 AliAnalysisTaskStrangenessVsMultiplicityMC();
49 AliAnalysisTaskStrangenessVsMultiplicityMC(const char *name);
50 virtual ~AliAnalysisTaskStrangenessVsMultiplicityMC();
51
52 virtual void UserCreateOutputObjects();
53 virtual void UserExec(Option_t *option);
54 virtual void Terminate(Option_t *);
55 Double_t MyRapidity(Double_t rE, Double_t rPz) const;
56
57 void SetSaveV0s (Bool_t lSaveV0s = kTRUE ) { fkSaveV0Tree = lSaveV0s; }
58 void SetSaveCascades (Bool_t lSaveCascades = kTRUE ) { fkSaveCascadeTree = lSaveCascades; }
59
60//---------------------------------------------------------------------------------------
61 //Task Configuration: Meant to enable quick re-execution of vertexer if needed
62 void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; }
63//---------------------------------------------------------------------------------------
64//Setters for the V0 Vertexer Parameters
65 void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
66 void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
67 void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
68 void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
69 void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
70 void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
71 void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
72//---------------------------------------------------------------------------------------
73//Setters for the Cascade Vertexer Parameters
74 void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; }
75 void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; }
76 void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; }
77 void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; }
78 void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; }
79 void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; }
80 void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; }
81 void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; }
82//---------------------------------------------------------------------------------------
83
84 private:
85 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
86 // your data member object is created on the worker nodes and streaming is not needed.
87 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
88 TList *fListHist; //! List of Cascade histograms
89 TTree *fTreeEvent; //! Output Tree, Events
90 TTree *fTreeV0; //! Output Tree, V0s
91 TTree *fTreeCascade; //! Output Tree, Cascades
92
93 AliPIDResponse *fPIDResponse; // PID response object
94 AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition
95
96 //Objects Controlling Task Behaviour
97 Bool_t fkSaveV0Tree; //if true, save TTree
98 Bool_t fkSaveCascadeTree; //if true, save TTree
99
100 //Objects Controlling Task Behaviour: has to be streamed!
101 Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts *** only for CASCADES! ***
102 Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related
103 Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related
104
105//===========================================================================================
106// Variables for Event Tree
107//===========================================================================================
108 Float_t fAmplitude_V0A; //!
109 Float_t fAmplitude_V0C; //!
110 Float_t fAmplitude_V0AEq; //!
111 Float_t fAmplitude_V0CEq; //!
112 Float_t fCentrality_V0A; //!
113 Float_t fCentrality_V0C; //!
114 Float_t fCentrality_V0M; //!
115 Float_t fCentrality_V0AEq; //!
116 Float_t fCentrality_V0CEq; //!
117 Float_t fCentrality_V0MEq; //!
118 Int_t fRefMultEta5; //!
119 Int_t fRefMultEta8; //!
120 Int_t fTrueMultEta5; //!
121 Int_t fTrueMultEta8; //!
122 Int_t fTrueMultVZEROA; //!
123 Int_t fTrueMultVZEROC; //!
124 Int_t fRunNumber; //!
125
126//===========================================================================================
127// Variables for Cascade Candidate Tree
128//===========================================================================================
129 Int_t fTreeCascVarCharge; //!
130 Float_t fTreeCascVarMassAsXi; //!
131 Float_t fTreeCascVarMassAsOmega; //!
132 Float_t fTreeCascVarPt; //!
133 Float_t fTreeCascVarPtMC; //!
134 Float_t fTreeCascVarRapXi; //!
135 Float_t fTreeCascVarRapOmega; //!
136 Float_t fTreeCascVarRapMC; //!
137 Float_t fTreeCascVarNegEta; //!
138 Float_t fTreeCascVarPosEta; //!
139 Float_t fTreeCascVarBachEta; //!
140 Float_t fTreeCascVarDCACascDaughters; //!
141 Float_t fTreeCascVarDCABachToPrimVtx; //!
142 Float_t fTreeCascVarDCAV0Daughters; //!
143 Float_t fTreeCascVarDCAV0ToPrimVtx; //!
144 Float_t fTreeCascVarDCAPosToPrimVtx; //!
145 Float_t fTreeCascVarDCANegToPrimVtx; //!
146 Float_t fTreeCascVarCascCosPointingAngle; //!
147 Float_t fTreeCascVarCascRadius; //!
148 Float_t fTreeCascVarV0Mass; //!
149 Float_t fTreeCascVarV0CosPointingAngle; //!
150 Float_t fTreeCascVarV0CosPointingAngleSpecial; //!
151 Float_t fTreeCascVarV0Radius; //!
152 Int_t fTreeCascVarLeastNbrClusters; //!
153 Float_t fTreeCascVarDistOverTotMom; //!
154
155 //TPC dEdx
156 Float_t fTreeCascVarNegNSigmaPion; //!
157 Float_t fTreeCascVarNegNSigmaProton; //!
158 Float_t fTreeCascVarPosNSigmaPion; //!
159 Float_t fTreeCascVarPosNSigmaProton; //!
160 Float_t fTreeCascVarBachNSigmaPion; //!
161 Float_t fTreeCascVarBachNSigmaKaon; //!
162
163 //Event Multiplicity Variables
164 Float_t fTreeCascVarCentV0A; //!
165 Float_t fTreeCascVarCentV0C; //!
166 Float_t fTreeCascVarCentV0M; //!
167 Float_t fTreeCascVarCentV0AEq; //!
168 Float_t fTreeCascVarCentV0CEq; //!
169 Float_t fTreeCascVarCentV0MEq; //!
170 Float_t fTreeCascVarAmpV0A; //!
171 Float_t fTreeCascVarAmpV0C; //!
172 Float_t fTreeCascVarAmpV0AEq; //!
173 Float_t fTreeCascVarAmpV0CEq; //!
174 Int_t fTreeCascVarRefMultEta8; //!
175 Int_t fTreeCascVarRefMultEta5; //!
176 Int_t fTreeCascVarTrueMultEta5; //!
177 Int_t fTreeCascVarTrueMultEta8; //!
178 Int_t fTreeCascVarTrueMultVZEROA; //!
179 Int_t fTreeCascVarTrueMultVZEROC; //!
180
181 //MC-only Variables
182 Int_t fTreeCascVarIsPhysicalPrimary; //!
183 Int_t fTreeCascVarPID; //!
184
185//===========================================================================================
186// Histograms
187//===========================================================================================
188
189 TH1D *fHistEventCounter; //!
190
191//===========================================================================================
192// Histos needed for efficiency computation || Xis
193//===========================================================================================
194
195 //These are all analysis-level
196
197 //Let's not care too much about rapidity at the moment!
198 TH1D *fHistPt_GenXiMinus; //!
199 TH1D *fHistPt_GenXiPlus; //!
200 TH1D *fHistPt_GenOmegaMinus; //!
201 TH1D *fHistPt_GenOmegaPlus; //!
202
203 //VsRefMult
204 TH2D *fHistPtVsRefMultEta5_GenXiMinus; //!
205 TH2D *fHistPtVsRefMultEta5_GenXiPlus; //!
206 TH2D *fHistPtVsRefMultEta5_GenOmegaMinus; //!
207 TH2D *fHistPtVsRefMultEta5_GenOmegaPlus; //!
208 TH2D *fHistPtVsRefMultEta8_GenXiMinus; //!
209 TH2D *fHistPtVsRefMultEta8_GenXiPlus; //!
210 TH2D *fHistPtVsRefMultEta8_GenOmegaMinus; //!
211 TH2D *fHistPtVsRefMultEta8_GenOmegaPlus; //!
212
213 //VsCentralities
214 TH2D *fHistPtVsCentV0A_GenXiMinus; //!
215 TH2D *fHistPtVsCentV0A_GenXiPlus; //!
216 TH2D *fHistPtVsCentV0A_GenOmegaMinus; //!
217 TH2D *fHistPtVsCentV0A_GenOmegaPlus; //!
218 TH2D *fHistPtVsCentV0C_GenXiMinus; //!
219 TH2D *fHistPtVsCentV0C_GenXiPlus; //!
220 TH2D *fHistPtVsCentV0C_GenOmegaMinus; //!
221 TH2D *fHistPtVsCentV0C_GenOmegaPlus; //!
222 TH2D *fHistPtVsCentV0M_GenXiMinus; //!
223 TH2D *fHistPtVsCentV0M_GenXiPlus; //!
224 TH2D *fHistPtVsCentV0M_GenOmegaMinus; //!
225 TH2D *fHistPtVsCentV0M_GenOmegaPlus; //!
226
227 //Equalized
228 TH2D *fHistPtVsCentV0AEq_GenXiMinus; //!
229 TH2D *fHistPtVsCentV0AEq_GenXiPlus; //!
230 TH2D *fHistPtVsCentV0AEq_GenOmegaMinus; //!
231 TH2D *fHistPtVsCentV0AEq_GenOmegaPlus; //!
232 TH2D *fHistPtVsCentV0CEq_GenXiMinus; //!
233 TH2D *fHistPtVsCentV0CEq_GenXiPlus; //!
234 TH2D *fHistPtVsCentV0CEq_GenOmegaMinus; //!
235 TH2D *fHistPtVsCentV0CEq_GenOmegaPlus; //!
236 TH2D *fHistPtVsCentV0MEq_GenXiMinus; //!
237 TH2D *fHistPtVsCentV0MEq_GenXiPlus; //!
238 TH2D *fHistPtVsCentV0MEq_GenOmegaMinus; //!
239 TH2D *fHistPtVsCentV0MEq_GenOmegaPlus; //!
240
241 //VsAmp
242 TH2D *fHistPtVsAmpV0A_GenXiMinus; //!
243 TH2D *fHistPtVsAmpV0A_GenXiPlus; //!
244 TH2D *fHistPtVsAmpV0A_GenOmegaMinus; //!
245 TH2D *fHistPtVsAmpV0A_GenOmegaPlus; //!
246 TH2D *fHistPtVsAmpV0C_GenXiMinus; //!
247 TH2D *fHistPtVsAmpV0C_GenXiPlus; //!
248 TH2D *fHistPtVsAmpV0C_GenOmegaMinus; //!
249 TH2D *fHistPtVsAmpV0C_GenOmegaPlus; //!
250 TH2D *fHistPtVsAmpV0M_GenXiMinus; //!
251 TH2D *fHistPtVsAmpV0M_GenXiPlus; //!
252 TH2D *fHistPtVsAmpV0M_GenOmegaMinus; //!
253 TH2D *fHistPtVsAmpV0M_GenOmegaPlus; //!
254 //Equalized Amps
255 TH2D *fHistPtVsAmpV0AEq_GenXiMinus; //!
256 TH2D *fHistPtVsAmpV0AEq_GenXiPlus; //!
257 TH2D *fHistPtVsAmpV0AEq_GenOmegaMinus; //!
258 TH2D *fHistPtVsAmpV0AEq_GenOmegaPlus; //!
259 TH2D *fHistPtVsAmpV0CEq_GenXiMinus; //!
260 TH2D *fHistPtVsAmpV0CEq_GenXiPlus; //!
261 TH2D *fHistPtVsAmpV0CEq_GenOmegaMinus; //!
262 TH2D *fHistPtVsAmpV0CEq_GenOmegaPlus; //!
263 TH2D *fHistPtVsAmpV0MEq_GenXiMinus; //!
264 TH2D *fHistPtVsAmpV0MEq_GenXiPlus; //!
265 TH2D *fHistPtVsAmpV0MEq_GenOmegaMinus; //!
266 TH2D *fHistPtVsAmpV0MEq_GenOmegaPlus; //!
267
268
269 AliAnalysisTaskStrangenessVsMultiplicityMC(const AliAnalysisTaskStrangenessVsMultiplicityMC&); // not implemented
270 AliAnalysisTaskStrangenessVsMultiplicityMC& operator=(const AliAnalysisTaskStrangenessVsMultiplicityMC&); // not implemented
271
272 ClassDef(AliAnalysisTaskStrangenessVsMultiplicityMC, 11);
273};
274
275#endif