]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/Cascades/AliAnalysisTaskStrangenessVsMultiplicityMC.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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;
535c1213 38class AliPPVsMultUtils;
af0d4791 39class AliESDEvent;
40class AliPhysicsSelection;
41class AliCFContainer;
42
43//#include "TString.h"
44//#include "AliESDtrackCuts.h"
45//#include "AliAnalysisTaskSE.h"
46
47class AliAnalysisTaskStrangenessVsMultiplicityMC : public AliAnalysisTaskSE {
48 public:
49 AliAnalysisTaskStrangenessVsMultiplicityMC();
50 AliAnalysisTaskStrangenessVsMultiplicityMC(const char *name);
51 virtual ~AliAnalysisTaskStrangenessVsMultiplicityMC();
52
53 virtual void UserCreateOutputObjects();
54 virtual void UserExec(Option_t *option);
55 virtual void Terminate(Option_t *);
56 Double_t MyRapidity(Double_t rE, Double_t rPz) const;
57
58 void SetSaveV0s (Bool_t lSaveV0s = kTRUE ) { fkSaveV0Tree = lSaveV0s; }
59 void SetSaveCascades (Bool_t lSaveCascades = kTRUE ) { fkSaveCascadeTree = lSaveCascades; }
60
61//---------------------------------------------------------------------------------------
62 //Task Configuration: Meant to enable quick re-execution of vertexer if needed
63 void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; }
dedb9266 64
65//---------------------------------------------------------------------------------------
66 //Task Configuration: Skip Event Selections after trigger (VZERO test)
67 void SetSkipEventSelection ( Bool_t lSkipEventSelection = kTRUE) { fkSkipEventSelection = lSkipEventSelection; }
af0d4791 68//---------------------------------------------------------------------------------------
69//Setters for the V0 Vertexer Parameters
70 void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
71 void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
72 void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
73 void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
74 void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
75 void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
76 void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
77//---------------------------------------------------------------------------------------
78//Setters for the Cascade Vertexer Parameters
79 void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; }
80 void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; }
81 void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; }
82 void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; }
83 void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; }
84 void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; }
85 void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; }
86 void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; }
87//---------------------------------------------------------------------------------------
88
89 private:
90 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
91 // your data member object is created on the worker nodes and streaming is not needed.
92 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
93 TList *fListHist; //! List of Cascade histograms
94 TTree *fTreeEvent; //! Output Tree, Events
95 TTree *fTreeV0; //! Output Tree, V0s
96 TTree *fTreeCascade; //! Output Tree, Cascades
97
98 AliPIDResponse *fPIDResponse; // PID response object
99 AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition
535c1213 100 AliPPVsMultUtils *fPPVsMultUtils; //
af0d4791 101
102 //Objects Controlling Task Behaviour
103 Bool_t fkSaveV0Tree; //if true, save TTree
104 Bool_t fkSaveCascadeTree; //if true, save TTree
105
106 //Objects Controlling Task Behaviour: has to be streamed!
dedb9266 107 Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts *** only for CASCADES! ***
108 Bool_t fkSkipEventSelection; // if true, will only perform TRIGGER selection (currently kMB, to change)
af0d4791 109 Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related
110 Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related
111
112//===========================================================================================
113// Variables for Event Tree
114//===========================================================================================
115 Float_t fAmplitude_V0A; //!
116 Float_t fAmplitude_V0C; //!
117 Float_t fAmplitude_V0AEq; //!
118 Float_t fAmplitude_V0CEq; //!
119 Float_t fCentrality_V0A; //!
120 Float_t fCentrality_V0C; //!
121 Float_t fCentrality_V0M; //!
122 Float_t fCentrality_V0AEq; //!
123 Float_t fCentrality_V0CEq; //!
124 Float_t fCentrality_V0MEq; //!
535c1213 125 Float_t fCustomCentrality_V0M; //!
126 Float_t fCustomCentrality_V0MEq; //!
af0d4791 127 Int_t fRefMultEta5; //!
128 Int_t fRefMultEta8; //!
129 Int_t fTrueMultEta5; //!
130 Int_t fTrueMultEta8; //!
131 Int_t fTrueMultVZEROA; //!
132 Int_t fTrueMultVZEROC; //!
133 Int_t fRunNumber; //!
dedb9266 134
135 //Event Characterization Variables - optional
136 Bool_t fEvSel_HasAtLeastSPDVertex; //!
137 Bool_t fEvSel_VtxZCut; //!
138 Bool_t fEvSel_IsNotPileup; //!
139 Bool_t fEvSel_IsNotPileupMV; //!
140 Bool_t fEvSel_IsNotPileupInMultBins; //!
141 Bool_t fEvSel_HasVtxContributor; //!
142 Bool_t fEvSel_Triggered; //!
af0d4791 143
2ca41fef 144 Float_t fEvSel_VtxZ; //! pv z position (cm)
145 Int_t fEvSel_MCType; //! type of event (to be used in PYTHIA, specifically)
146
161c57ac 147//===========================================================================================
148// Variables for V0 Tree
149//===========================================================================================
150 Float_t fTreeVariableChi2V0; //!
151 Float_t fTreeVariableDcaV0Daughters; //!
152 Float_t fTreeVariableDcaV0ToPrimVertex; //!
153 Float_t fTreeVariableDcaPosToPrimVertex; //!
154 Float_t fTreeVariableDcaNegToPrimVertex; //!
155 Float_t fTreeVariableV0CosineOfPointingAngle; //!
156 Float_t fTreeVariableV0Radius; //!
157 Float_t fTreeVariablePt; //!
158 Float_t fTreeVariablePtMC; //!
159 Float_t fTreeVariableRapK0Short; //!
160 Float_t fTreeVariableRapLambda; //!
161 Float_t fTreeVariableRapMC; //!
162 Float_t fTreeVariableInvMassK0s; //!
163 Float_t fTreeVariableInvMassLambda; //!
164 Float_t fTreeVariableInvMassAntiLambda; //!
165 Float_t fTreeVariableAlphaV0; //!
166 Float_t fTreeVariablePtArmV0;//!
167 Float_t fTreeVariableNegEta; //!
168 Float_t fTreeVariablePosEta; //!
169
170 Float_t fTreeVariableNSigmasPosProton; //!
171 Float_t fTreeVariableNSigmasPosPion; //!
172 Float_t fTreeVariableNSigmasNegProton; //!
173 Float_t fTreeVariableNSigmasNegPion; //!
174
175 Float_t fTreeVariableDistOverTotMom;//!
176 Int_t fTreeVariableLeastNbrCrossedRows;//!
177 Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
178
179 //Event Multiplicity Variables
180 Float_t fTreeVariableCentV0A; //!
181 Float_t fTreeVariableCentV0C; //!
182 Float_t fTreeVariableCentV0M; //!
183 Float_t fTreeVariableCentV0AEq; //!
184 Float_t fTreeVariableCentV0CEq; //!
185 Float_t fTreeVariableCentV0MEq; //!
9a28e152 186 Float_t fTreeVariableCustomCentV0M; //!
161c57ac 187 Float_t fTreeVariableAmpV0A; //!
188 Float_t fTreeVariableAmpV0C; //!
189 Float_t fTreeVariableAmpV0AEq; //!
190 Float_t fTreeVariableAmpV0CEq; //!
191 Int_t fTreeVariableRefMultEta8; //!
192 Int_t fTreeVariableRefMultEta5; //!
193 Int_t fTreeVariableRunNumber; //! //want to re-quantile per run? here's your ticket
194
195 //MC exclusive Characteristics: 7, also required for feeddown tests
196 Float_t fTreeVariablePtMother; //!
197 Int_t fTreeVariablePID; //!
198 Int_t fTreeVariablePIDPositive; //!
199 Int_t fTreeVariablePIDNegative; //!
200 Int_t fTreeVariablePIDMother; //!
201 Int_t fTreeVariablePrimaryStatus; //!
202 Int_t fTreeVariablePrimaryStatusMother; //!
203
204
af0d4791 205//===========================================================================================
206// Variables for Cascade Candidate Tree
207//===========================================================================================
208 Int_t fTreeCascVarCharge; //!
209 Float_t fTreeCascVarMassAsXi; //!
210 Float_t fTreeCascVarMassAsOmega; //!
211 Float_t fTreeCascVarPt; //!
212 Float_t fTreeCascVarPtMC; //!
213 Float_t fTreeCascVarRapXi; //!
214 Float_t fTreeCascVarRapOmega; //!
215 Float_t fTreeCascVarRapMC; //!
216 Float_t fTreeCascVarNegEta; //!
217 Float_t fTreeCascVarPosEta; //!
218 Float_t fTreeCascVarBachEta; //!
219 Float_t fTreeCascVarDCACascDaughters; //!
220 Float_t fTreeCascVarDCABachToPrimVtx; //!
221 Float_t fTreeCascVarDCAV0Daughters; //!
222 Float_t fTreeCascVarDCAV0ToPrimVtx; //!
223 Float_t fTreeCascVarDCAPosToPrimVtx; //!
224 Float_t fTreeCascVarDCANegToPrimVtx; //!
225 Float_t fTreeCascVarCascCosPointingAngle; //!
226 Float_t fTreeCascVarCascRadius; //!
227 Float_t fTreeCascVarV0Mass; //!
228 Float_t fTreeCascVarV0CosPointingAngle; //!
229 Float_t fTreeCascVarV0CosPointingAngleSpecial; //!
230 Float_t fTreeCascVarV0Radius; //!
231 Int_t fTreeCascVarLeastNbrClusters; //!
232 Float_t fTreeCascVarDistOverTotMom; //!
233
234 //TPC dEdx
235 Float_t fTreeCascVarNegNSigmaPion; //!
236 Float_t fTreeCascVarNegNSigmaProton; //!
237 Float_t fTreeCascVarPosNSigmaPion; //!
238 Float_t fTreeCascVarPosNSigmaProton; //!
239 Float_t fTreeCascVarBachNSigmaPion; //!
240 Float_t fTreeCascVarBachNSigmaKaon; //!
241
242 //Event Multiplicity Variables
243 Float_t fTreeCascVarCentV0A; //!
244 Float_t fTreeCascVarCentV0C; //!
245 Float_t fTreeCascVarCentV0M; //!
246 Float_t fTreeCascVarCentV0AEq; //!
247 Float_t fTreeCascVarCentV0CEq; //!
248 Float_t fTreeCascVarCentV0MEq; //!
9a28e152 249 Float_t fTreeCascVarCustomCentV0M; //!
af0d4791 250 Float_t fTreeCascVarAmpV0A; //!
251 Float_t fTreeCascVarAmpV0C; //!
252 Float_t fTreeCascVarAmpV0AEq; //!
253 Float_t fTreeCascVarAmpV0CEq; //!
254 Int_t fTreeCascVarRefMultEta8; //!
255 Int_t fTreeCascVarRefMultEta5; //!
256 Int_t fTreeCascVarTrueMultEta5; //!
257 Int_t fTreeCascVarTrueMultEta8; //!
258 Int_t fTreeCascVarTrueMultVZEROA; //!
259 Int_t fTreeCascVarTrueMultVZEROC; //!
260
261 //MC-only Variables
262 Int_t fTreeCascVarIsPhysicalPrimary; //!
263 Int_t fTreeCascVarPID; //!
264
26d39641 265 Int_t fTreeCascVarRunNumber; //!
266
af0d4791 267//===========================================================================================
268// Histograms
269//===========================================================================================
270
271 TH1D *fHistEventCounter; //!
272
273//===========================================================================================
274// Histos needed for efficiency computation || Xis
275//===========================================================================================
276
277 //These are all analysis-level
278
279 //Let's not care too much about rapidity at the moment!
161c57ac 280 TH1D *fHistPt_GenK0Short; //!
281 TH1D *fHistPt_GenLambda; //!
282 TH1D *fHistPt_GenAntiLambda; //!
283
af0d4791 284 TH1D *fHistPt_GenXiMinus; //!
285 TH1D *fHistPt_GenXiPlus; //!
286 TH1D *fHistPt_GenOmegaMinus; //!
287 TH1D *fHistPt_GenOmegaPlus; //!
288
289 //VsRefMult
290 TH2D *fHistPtVsRefMultEta5_GenXiMinus; //!
291 TH2D *fHistPtVsRefMultEta5_GenXiPlus; //!
292 TH2D *fHistPtVsRefMultEta5_GenOmegaMinus; //!
293 TH2D *fHistPtVsRefMultEta5_GenOmegaPlus; //!
294 TH2D *fHistPtVsRefMultEta8_GenXiMinus; //!
295 TH2D *fHistPtVsRefMultEta8_GenXiPlus; //!
296 TH2D *fHistPtVsRefMultEta8_GenOmegaMinus; //!
297 TH2D *fHistPtVsRefMultEta8_GenOmegaPlus; //!
298
299 //VsCentralities
300 TH2D *fHistPtVsCentV0A_GenXiMinus; //!
301 TH2D *fHistPtVsCentV0A_GenXiPlus; //!
302 TH2D *fHistPtVsCentV0A_GenOmegaMinus; //!
303 TH2D *fHistPtVsCentV0A_GenOmegaPlus; //!
304 TH2D *fHistPtVsCentV0C_GenXiMinus; //!
305 TH2D *fHistPtVsCentV0C_GenXiPlus; //!
306 TH2D *fHistPtVsCentV0C_GenOmegaMinus; //!
307 TH2D *fHistPtVsCentV0C_GenOmegaPlus; //!
308 TH2D *fHistPtVsCentV0M_GenXiMinus; //!
309 TH2D *fHistPtVsCentV0M_GenXiPlus; //!
310 TH2D *fHistPtVsCentV0M_GenOmegaMinus; //!
311 TH2D *fHistPtVsCentV0M_GenOmegaPlus; //!
312
313 //Equalized
314 TH2D *fHistPtVsCentV0AEq_GenXiMinus; //!
315 TH2D *fHistPtVsCentV0AEq_GenXiPlus; //!
316 TH2D *fHistPtVsCentV0AEq_GenOmegaMinus; //!
317 TH2D *fHistPtVsCentV0AEq_GenOmegaPlus; //!
318 TH2D *fHistPtVsCentV0CEq_GenXiMinus; //!
319 TH2D *fHistPtVsCentV0CEq_GenXiPlus; //!
320 TH2D *fHistPtVsCentV0CEq_GenOmegaMinus; //!
321 TH2D *fHistPtVsCentV0CEq_GenOmegaPlus; //!
322 TH2D *fHistPtVsCentV0MEq_GenXiMinus; //!
323 TH2D *fHistPtVsCentV0MEq_GenXiPlus; //!
324 TH2D *fHistPtVsCentV0MEq_GenOmegaMinus; //!
325 TH2D *fHistPtVsCentV0MEq_GenOmegaPlus; //!
326
327 //VsAmp
328 TH2D *fHistPtVsAmpV0A_GenXiMinus; //!
329 TH2D *fHistPtVsAmpV0A_GenXiPlus; //!
330 TH2D *fHistPtVsAmpV0A_GenOmegaMinus; //!
331 TH2D *fHistPtVsAmpV0A_GenOmegaPlus; //!
332 TH2D *fHistPtVsAmpV0C_GenXiMinus; //!
333 TH2D *fHistPtVsAmpV0C_GenXiPlus; //!
334 TH2D *fHistPtVsAmpV0C_GenOmegaMinus; //!
335 TH2D *fHistPtVsAmpV0C_GenOmegaPlus; //!
336 TH2D *fHistPtVsAmpV0M_GenXiMinus; //!
337 TH2D *fHistPtVsAmpV0M_GenXiPlus; //!
338 TH2D *fHistPtVsAmpV0M_GenOmegaMinus; //!
339 TH2D *fHistPtVsAmpV0M_GenOmegaPlus; //!
340 //Equalized Amps
341 TH2D *fHistPtVsAmpV0AEq_GenXiMinus; //!
342 TH2D *fHistPtVsAmpV0AEq_GenXiPlus; //!
343 TH2D *fHistPtVsAmpV0AEq_GenOmegaMinus; //!
344 TH2D *fHistPtVsAmpV0AEq_GenOmegaPlus; //!
345 TH2D *fHistPtVsAmpV0CEq_GenXiMinus; //!
346 TH2D *fHistPtVsAmpV0CEq_GenXiPlus; //!
347 TH2D *fHistPtVsAmpV0CEq_GenOmegaMinus; //!
348 TH2D *fHistPtVsAmpV0CEq_GenOmegaPlus; //!
349 TH2D *fHistPtVsAmpV0MEq_GenXiMinus; //!
350 TH2D *fHistPtVsAmpV0MEq_GenXiPlus; //!
351 TH2D *fHistPtVsAmpV0MEq_GenOmegaMinus; //!
352 TH2D *fHistPtVsAmpV0MEq_GenOmegaPlus; //!
1dac6d41 353
354 TH2D *fHistVZEROResponseStudy; //!
355 TH2D *fHistVZEROResponseStudyTotal; //!
af0d4791 356
357
358 AliAnalysisTaskStrangenessVsMultiplicityMC(const AliAnalysisTaskStrangenessVsMultiplicityMC&); // not implemented
359 AliAnalysisTaskStrangenessVsMultiplicityMC& operator=(const AliAnalysisTaskStrangenessVsMultiplicityMC&); // not implemented
360
361 ClassDef(AliAnalysisTaskStrangenessVsMultiplicityMC, 11);
362};
363
364#endif