]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/Kinks/AliAnalysisPionKinksMCESD.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Kinks / AliAnalysisPionKinksMCESD.h
CommitLineData
bd4be5f8 1#ifndef AliAnalysisPionKinksMCESD_h
2#define AliAnalysisPionKinksMCESD_h
3
4
30687e36 5/* See cxx source for full Copyright notice */
6
7//-----------------------------------------------------------------
8// AliAnalysisPionKinksMCESD class
9// This task is an example of an analysis task
10// for kink topology Study
11// Authors: Eftychios Cheiladakis, under the supervision
12// of Martha's Spyropoulou-Stassinaki
13// Physics Department of Athens University
14//------------------------------------------------------------------
bd4be5f8 15class AliESDEvent;
16class TF1;
17class TH1;
18class TH2;
19class TH3;
20class TParticle;
21class TParticle;
22class AliESDtrackCuts;
23class AliPhysicsSelection;
24class AliPIDResponse;
25
26#include "AliAnalysisTaskSE.h"
27
28class AliAnalysisPionKinksMCESD : public AliAnalysisTaskSE {
29 public:
30 AliAnalysisPionKinksMCESD(const char *name = "AliAnalysisPionKinksMCESD");
31 virtual ~AliAnalysisPionKinksMCESD() {}
32
33 virtual void UserCreateOutputObjects();
34 virtual void UserExec(Option_t *option);
35 virtual void Terminate(Option_t *);
36
37 const AliESDVertex *GetEventVertex(AliESDEvent* esd);
38 Double_t Energy(AliESDtrack* track) const;
39 Double_t GetMCRapidity(TParticle* particle) const;
40 Double_t fuRapidity(AliESDtrack* track) const;
41 Double_t MCPQt(AliMCEvent* mcEvent, Int_t iMC, TParticle* MCdaughter) const;
42 Double_t fuMCKinkAngle(AliMCEvent* mcEvent, Int_t iMC, TParticle* MCdaughter, Bool_t degrees) const;
43 Bool_t IsGoodTrack(AliESDtrack* ESDTrack) const;
44 Bool_t IsPrimaryTrack(AliESDtrack* ESDTrack) const;
45 Bool_t IsRealPionKink(AliESDkink* kink, AliStack* MCstack) const;
46
47 // Set limits & cuts
48 void SetMulCut(Int_t low, Int_t up){fLowMulcut=low; fUpMulcut=up;}
49 void SetPtCut(Double_t PtCut){cLowPt=PtCut;}
50 void SetRapidityLimits(Double_t RapidityLim){cRapidityLim=RapidityLim;}
51 void SetRadiusRange(Double_t LowR, Double_t UpR){cLowR=LowR; cUpR=UpR;}
52 void SetZRange(Double_t LowZ, Double_t UpZ){cLowZ=LowZ; cUpZ=UpZ;}
53 void SetKinkAngleCut(Double_t LowAngle){cLowKinkAngle=LowAngle;}
54 void SetQtRange(Double_t LowQt, Double_t UpQt){cLowQt=LowQt; cUpQt=UpQt;}
55 void SetInvMassRange(Double_t LowInvMass, Double_t UpInvMass){cLowInvMass=LowInvMass; cUpInvMass=UpInvMass;}
56 void SetSigmaCut(Double_t SigmaCut){cSigmaCut=SigmaCut;}
57 void SetPdgCodes(Int_t kaon, Int_t pion, Int_t muon, Int_t electron){cPdgKaon=kaon; cPdgPion=pion; cPdgMuon=muon; cPdgElectron=electron;}
58 void SetMasses(Double_t KaonMass, Double_t PionMass, Double_t MuonMass, Double_t ElectronMass){cKaonMass=KaonMass; cPionMass=PionMass; cMuonMass=MuonMass; cElectronMass=ElectronMass;}
59
60 // Set histos limits
61 void SetMultHistos(Int_t BinsMult, Int_t LowMult, Int_t UpMult){nBinsMult=BinsMult; hLowPt=LowMult; hUpMult=UpMult;}
62 void SetPtHistos(Int_t BinsPt, Double_t LowPt, Double_t UpPt){nBinsPt=BinsPt; hLowPt=LowPt; hUpPt=UpPt;}
63 void SetEtaHistos(Int_t BinsEta, Double_t LowEta, Double_t UpEta){nBinsEta=BinsEta; hLowEta=LowEta; hUpEta=UpEta;}
64 void SetQtHistos(Int_t BinsQt, Double_t LowQt, Double_t UpQt){nBinsQt=BinsQt; hLowQt=LowQt; hUpQt=UpQt;}
65 void SetPdgHistos(Int_t BinsPdg, Double_t LowPdg, Double_t UpPdg){nBinsPdg=BinsPdg; hLowPdg=LowPdg; hUpPdg=UpPdg;}
66 void SetPdg2Histos(Int_t BinsPdg2, Double_t LowPdg2, Double_t UpPdg2){nBinsPdg2=BinsPdg2; hLowPdg2=LowPdg2; hUpPdg2=UpPdg2;}
67 void SetUIDHistos(Int_t BinsUID, Double_t LowUID, Double_t UpUID){nBinsUID=BinsUID; hLowUID=LowUID; hUpUID=UpUID;}
68 void SetRHistos(Int_t BinsR, Double_t LowR, Double_t UpR){nBinsR=BinsR; hLowR=LowR; hUpR=UpR;}
69 void SetZHistos(Int_t BinsZ, Double_t LowZ, Double_t UpZ){nBinsZ=BinsZ; hLowZ=LowZ; hUpZ=UpZ;}
70 void SetXYHistos(Int_t BinsXY, Double_t LowXY, Double_t UpXY){nBinsXY=BinsXY; hLowXY=LowXY; hUpXY=UpXY;}
71 void SetAngleHistos(Int_t BinsAngle, Double_t LowAngle, Double_t UpAngle){nBinsAngle=BinsAngle; hLowAngle=LowAngle; hUpAngle=UpAngle;}
72 void SetZVHistos(Int_t BinsZV, Double_t LowZV, Double_t UpZV){nBinsZV=BinsZV; hLowZV=LowZV; hUpZV=UpZV;}
73 void SetXYVHistos(Int_t BinsXYV, Double_t LowXYV, Double_t UpXYV){nBinsXYV=BinsXYV; hLowXYV=LowXYV; hUpXYV=UpXYV;}
74 void SetInvMassHistos(Int_t BinsInvMass, Double_t LowInvMass, Double_t UpInvMass){nBinsInvMass=BinsInvMass; hLowInvMass=LowInvMass; hUpInvMass=UpInvMass;}
75 void SetdEdxHistos(Int_t BinsdEdx, Double_t LowdEdx, Double_t UpdEdx){nBinsdEdx=BinsdEdx; hLowdEdx=LowdEdx; hUpdEdx=UpdEdx;}
76 private:
77 TF1* fMaxKinkAngKmu;
78 TF1* fMaxKinkAngPimu;
79
80 TH1F* hMCMult;
81 TH1F* hMCMultPrim;
82 TH1F* hMCPtAll;
83 TH1F* hMCEtaAll;
84 TH1F* hMCPtPrim;
85 TH1F* hMCEtaPrim;
86 TH1F* hMCPt;
87 TH1F* hMCEta;
88 TH1F* hMCPdg;
89 TH1F* hMCMultPiPlus;
90 TH1F* hMCPtPiPlus;
91 TH1F* hMCEtaPiPlus;
92 TH1F* hMCRapidityPiPlus;
93 TH1F* hMCNDaughtersPlus;
94 TH1F* hMCRadPiDauPlus;
95 TH1F* hMCKinkPosZPlus;
96 TH1F* hMCUIDPiDauPlus;
97 TH1F* hMCPdgPiNonDecayedPlus;
98 TH1F* hMCPdgPiDauPlus;
99 TH1F* hMCQtPlus;
100 TH1F* hMCKinkAnglePlus;
101 TH2F* hMCPKinkAngPlus;
102 TH2F* hMCPdgCodemdPlus;
103 TH2F* hMCPtmdPlus;
104 TH1F* hMCPtPimuonPlus;
105 TH1F* hMCEtaPimuonPlus;
106 TH1F* hMCRapidityPimuonPlus;
107 TH1F* hMCQtPimuonPlus;
108 TH1F* hMCPKinkAngPimuonPlus;
109 TH1F* hMCPtPiotherPlus;
110 TH1F* hMCEtaPiotherPlus;
111 TH1F* hMCRapidityPiotherPlus;
112 TH1F* hMCQtPiotherPlus;
113 TH1F* hMCPKinkAngPiotherPlus;
114 TH1F* hMCMultPiMinus;
115 TH1F* hMCPtPiMinus;
116 TH1F* hMCEtaPiMinus;
117 TH1F* hMCRapidityPiMinus;
118 TH1F* hMCNDaughtersMinus;
119 TH1F* hMCRadPiDauMinus;
120 TH1F* hMCKinkPosZMinus;
121 TH1F* hMCUIDPiDauMinus;
122 TH1F* hMCPdgPiNonDecayedMinus;
123 TH1F* hMCPdgPiDauMinus;
124 TH1F* hMCQtMinus;
125 TH1F* hMCKinkAngleMinus;
126 TH2F* hMCPKinkAngMinus;
127 TH2F* hMCPdgCodemdMinus;
128 TH2F* hMCPtmdMinus;
129 TH1F* hMCPtPimuonMinus;
130 TH1F* hMCEtaPimuonMinus;
131 TH1F* hMCRapidityPimuonMinus;
132 TH1F* hMCQtPimuonMinus;
133 TH1F* hMCPKinkAngPimuonMinus;
134 TH1F* hMCPtPiotherMinus;
135 TH1F* hMCEtaPiotherMinus;
136 TH1F* hMCRapidityPiotherMinus;
137 TH1F* hMCQtPiotherMinus;
138 TH1F* hMCPKinkAngPiotherMinus;
139
140 TH1F* hMult;
141 TH1F* hAcceptedMult;
142 TH1F* hMultPS;
143 TH3F* hvtx;
144 TH2F* hvtxy;
145 TH2F* hvtyz;
146 TH2F* hvtxz;
147 TH1F* hMultPSV;
148 TH1F* hPtAll;
149 TH1F* hEtaAll;
150 TH3F* hTrackPos;
151 TH2F* hTrackPosxy;
152 TH2F* hTrackPosyz;
153 TH2F* hTrackPosxz;
154 //TH1F* hTPCchi2clusters;
155 //TH1F* hdcaToVertexXY;
156 //TH1F* hdcaToVertexZ;
157 TH1F* hMultPrim;
158 TH1F* hPtPrim;
159 TH1F* hEtaPrim;
160 TH3F* hPrimTrackPos;
161 TH2F* hPrimTrackPosxy;
162 TH2F* hPrimTrackPosyz;
163 TH2F* hPrimTrackPosxz;
164 TH1F* hPt;
165 TH1F* hEta;
166 //TH1F* hRapidity;
167 TH1F* hPtKink;
168 TH1F* hEtaKink;
169 TH1F* hRapidityKink;
170 TH2F* hPmP;
171 TH1F* hKinkPosRTPCclusters1;
172 TH2F* hKinkPosRTPCclusters2;
173 TH1F* hQt;
174 TH1F* hKinkAngle;
175 TH1F* hDCAkink;
176 TH2F* hPmKinkAng;
177 TH2F* hKinkPosXY;
178 TH2F* hKinkPosZY;
179 TH2F* hKinkPosZR;
180 TH1F* hKinkPosR;
181 TH1F* hKinkPosZ;
182 TH2F* hKinkPosZMCKinkPosZ;
183 TH2F* hPdgCodemd;
184 TH2F* hPmd;
185 TH1F* hMinvPimu;
186 TH1F* hUIDKinkDau;
187 TH2F* hdEdx;
188 TH1F* hPtKinkFake;
189 TH1F* hEtaKinkFake;
190 TH1F* hRapidityKinkFake;
191 TH2F* hPmPFake;
192 TH1F* hKinkPosRTPCclusters1Fake;
193 TH2F* hKinkPosRTPCclusters2Fake;
194 TH1F* hQtFake;
195 TH1F* hKinkAngleFake;
196 TH1F* hDCAkinkFake;
197 TH2F* hPmKinkAngFake;
198 TH2F* hKinkPosXYFake;
199 TH2F* hKinkPosZYFake;
200 TH2F* hKinkPosZRFake;
201 TH1F* hKinkPosRFake;
202 TH1F* hKinkPosZFake;
203 TH2F* hKinkPosZMCKinkPosZFake;
204 TH2F* hPdgCodemdFake;
205 TH2F* hPmdFake;
206 TH1F* hMinvPimuFake;
207 TH1F* hUIDKinkDauFake;
208 TH2F* hdEdxFake;
209 TH1F* hPtPosRSelected;
210 TH2F* hPdgCodemdZRejected;
211 TH1F* hPtZSelected;
212 TH2F* hPdgCodemdAngRejected;
213 TH1F* hPtAngSelected;
214 TH2F* hPdgCodemdPmRejected;
215 TH1F* hPtPmSelected;
216 TH2F* hPdgCodemdQtLowRejected;
217 TH1F* hPtGoodKink;
218 TH1F* hEtaGoodKink;
219 TH1F* hRapidityGoodKink;
220 TH1F* hQtGoodKink;
221 TH2F* hPmGoodKinkAng;
222 TH2F* hPdgCodemdGoodKink;
223 TH2F* hPmdGoodKink;
224 TH1F* hUIDGoodKinkDau;
225 TH2F* hdEdxGoodKink;
226 TH1F* hUIDPiDauPlus;
227 TH1F* hMultPiPlus;
228 TH1F* hPtPiPlus;
229 TH1F* hEtaPiPlus;
230 TH1F* hRapidityPiPlus;
231 TH1F* hQtPiPlus;
232 TH1F* hKinkAnglePiPlus;
233 TH2F* hPmKinkAngPiPlus;
234 TH2F* hKinkPosXYPiPlus;
235 TH2F* hKinkPosZRPiPlus;
236 TH1F* hKinkPosRPiPlus;
237 TH1F* hDCAkinkPiPlus;
238 TH2F* hPdgCodemdPiPlus;
239 TH2F* hPmdPiPlus;
240 TH2F* hdEdxPiPlus;
241 TH1F* hQtPimuPlus;
242 TH2F* hPmKinkAngPimuPlus;
243 TH1F* hQtPiotherPlus;
244 TH2F* hPmKinkAngPiotherPlus;
245 TH2F* hPdgCodemdPiotherPlus;
246 TH1F* hUIDPiDauMinus;
247 TH1F* hMultPiMinus;
248 TH1F* hPtPiMinus;
249 TH1F* hEtaPiMinus;
250 TH1F* hRapidityPiMinus;
251 TH1F* hQtPiMinus;
252 TH1F* hKinkAnglePiMinus;
253 TH2F* hPmKinkAngPiMinus;
254 TH2F* hKinkPosXYPiMinus;
255 TH2F* hKinkPosZRPiMinus;
256 TH1F* hKinkPosRPiMinus;
257 TH1F* hDCAkinkPiMinus;
258 TH2F* hPdgCodemdPiMinus;
259 TH2F* hPmdPiMinus;
260 TH2F* hdEdxPiMinus;
261 TH1F* hQtPimuMinus;
262 TH2F* hPmKinkAngPimuMinus;
263 TH1F* hQtPiotherMinus;
264 TH2F* hPmKinkAngPiotherMinus;
265 TH2F* hPdgCodemdPiotherMinus;
266 TH2F* hPdgCodemdQtRejected;
267 TH1F* hPtQtSelected;
268 TH2F* hPdgCodemdMaxAngRejected;
269 TH1F* hPtMaxAngSelected;
270 TH2F* hPdgCodemdRTPCclustersRejected;
271 TH1F* hPtRTPCclustersSelected;
272 TH2F* hRTPCclustersRTPCclustersSelected;
273 TH2F* hPdgCodemdMinvRejected;
274 TH1F* hPtSelected;
275 TH1F* hEtaSelected;
276 TH1F* hRapiditySelected;
277 TH1F* hQtSelected;
278 TH1F* hKinkAngleSelected;
279 TH1F* hDCAkinkSelected;
280 TH2F* hPmKinkAngSelected;
281 TH2F* hKinkPosXYSelected;
282 TH2F* hKinkPosZRSelected;
283 TH1F* hKinkPosRSelected;
284 TH2F* hPdgCodemdSelected;
285 TH2F* hPmdSelected;
286 TH1F* hMinvPimuSelected;
287 TH1F* hUIDKinkDauSelected;
288 TH2F* hdEdxSelected;
289 TH1F* hPtSelectedFake;
290 TH1F* hEtaSelectedFake;
291 TH1F* hRapiditySelectedFake;
292 TH1F* hQtSelectedFake;
293 TH1F* hKinkAngleSelectedFake;
294 TH1F* hDCAkinkSelectedFake;
295 TH2F* hPmKinkAngSelectedFake;
296 TH2F* hKinkPosXYSelectedFake;
297 TH2F* hKinkPosZRSelectedFake;
298 TH1F* hKinkPosRSelectedFake;
299 TH2F* hPmdSelectedFake;
300 TH1F* hMinvPimuSelectedFake;
301 TH2F* hdEdxSelectedFake;
302 TH2F* hPdgCodemddEdxRejected;
303 TH1F* hPtPiSelected;
304 TH1F* hEtaPiSelected;
305 TH1F* hRapidityPiSelected;
306 TH1F* hQtPiSelected;
307 TH1F* hKinkAnglePiSelected;
308 TH1F* hDCAkinkPiSelected;
309 TH2F* hPmKinkAngPiSelected;
310 TH1F* hKinkPosRTPCclusters1PiSelected;
311 TH2F* hKinkPosRTPCclusters2PiSelected;
312 TH2F* hKinkPosXYPiSelected;
313 TH2F* hKinkPosZRPiSelected;
314 TH1F* hKinkPosRPiSelected;
315 TH1F* hKinkPosZPiSelected;
316 TH2F* hPmPPiSelected;
317 TH2F* hPdgCodemdPiSelected;
318 TH2F* hPmdPiSelected;
319 TH1F* hMinvPimuPiSelected;
320 TH1F* hUIDKinkDauPiSelected;
321 TH2F* hdEdxPiSelected;
322
323 TH1F* hPtPiSelectedPlus; //plus
324 TH1F* hEtaPiSelectedPlus;
325 TH1F* hRapidityPiSelectedPlus;
326 TH1F* hQtPiSelectedPlus;
327 TH1F* hKinkAnglePiSelectedPlus;
328 TH1F* hDCAkinkPiSelectedPlus;
329 TH2F* hPmKinkAngPiSelectedPlus;
330 TH2F* hKinkPosXYPiSelectedPlus;
331 TH2F* hKinkPosZRPiSelectedPlus;
332 TH2F* hPdgCodemdPiSelectedPlus;
333 TH2F* hPmdPiSelectedPlus;
334 TH1F* hMinvPimuPiSelectedPlus;
335 TH1F* hUIDPiDaumuSelectedPlus;
336 TH2F* hdEdxPiSelectedPlus;
337 TH1F* hPtPrimPiKinksPlus;
338 TH1F* hEtaPrimPiKinksPlus;
339 TH1F* hRapidityPrimPiKinksPlus;
340 TH1F* hPtSecondPiKinksPlus;
341 TH1F* hEtaSecondPiKinksPlus;
342 TH1F* hRapiditySecondPiKinksPlus;
343 TH1F* hPtNonPiKinksPlus;
344 TH1F* hEtaNonPiKinksPlus;
345 TH1F* hRapidityNonPiKinksPlus;
346 TH2F* hPdgCodemdNonPiKinksPlus;
347 TH1F* hPtPiSelectedMinus;//minus
348 TH1F* hEtaPiSelectedMinus;
349 TH1F* hRapidityPiSelectedMinus;
350 TH1F* hQtPiSelectedMinus;
351 TH1F* hKinkAnglePiSelectedMinus;
352 TH1F* hDCAkinkPiSelectedMinus;
353 TH2F* hPmKinkAngPiSelectedMinus;
354 TH2F* hKinkPosXYPiSelectedMinus;
355 TH2F* hKinkPosZRPiSelectedMinus;
356 TH2F* hPdgCodemdPiSelectedMinus;
357 TH2F* hPmdPiSelectedMinus;
358 TH1F* hMinvPimuPiSelectedMinus;
359 TH1F* hUIDPiDaumuSelectedMinus;
360 TH2F* hdEdxPiSelectedMinus;
361 TH1F* hPtPrimPiKinksMinus;
362 TH1F* hEtaPrimPiKinksMinus;
363 TH1F* hRapidityPrimPiKinksMinus;
364 TH1F* hPtSecondPiKinksMinus;
365 TH1F* hEtaSecondPiKinksMinus;
366 TH1F* hRapiditySecondPiKinksMinus;
367 TH1F* hPtNonPiKinksMinus;
368 TH1F* hEtaNonPiKinksMinus;
369 TH1F* hRapidityNonPiKinksMinus;
370 TH2F* hPdgCodemdNonPiKinksMinus;// reconstruction histograms
371
372 TList* fListOfHistos;
373
374 // Limits and cuts
375 Int_t fLowMulcut;
376 Int_t fUpMulcut;
377
378 Double_t cLowPt;
379 Double_t cRapidityLim;
380 Double_t cLowR, cUpR;
381 Double_t cLowZ, cUpZ;
382 Double_t cLowKinkAngle;
383 Double_t cLowQt, cUpQt;
384 Double_t cLowInvMass, cUpInvMass;
385 Double_t cSigmaCut;
386 Int_t cPdgKaon, cPdgPion, cPdgMuon, cPdgElectron;
387 Double_t cKaonMass, cPionMass, cMuonMass, cElectronMass;
388
389 // Histos limits
390 Int_t nBinsMult, hLowMult, hUpMult;
391 Int_t nBinsPt;
392 Double_t hLowPt, hUpPt;
393 Int_t nBinsEta;
394 Double_t hLowEta, hUpEta;
395 Int_t nBinsQt;
396 Double_t hLowQt, hUpQt;
397 Int_t nBinsPdg;
398 Double_t hLowPdg, hUpPdg;
399 Int_t nBinsPdg2;
400 Double_t hLowPdg2, hUpPdg2;
401 Int_t nBinsUID;
402 Double_t hLowUID, hUpUID;
403 Int_t nBinsR;
404 Double_t hLowR, hUpR;
405 Int_t nBinsZ;
406 Double_t hLowZ, hUpZ;
407 Int_t nBinsXY;
408 Double_t hLowXY, hUpXY;
409 Int_t nBinsAngle;
410 Double_t hLowAngle, hUpAngle;
411 Int_t nBinsZV;
412 Double_t hLowZV, hUpZV;
413 Int_t nBinsXYV;
414 Double_t hLowXYV, hUpXYV;
415 Int_t nBinsInvMass;
416 Double_t hLowInvMass, hUpInvMass;
417 Int_t nBinsdEdx;
418 Double_t hLowdEdx, hUpdEdx;
419
420 AliPIDResponse *fPIDResponse; //! PID response object
421 AliESDtrackCuts* fMaxDCAtoVtxCut;
422 AliESDtrackCuts* fTrackCuts;
423
424
425 AliAnalysisPionKinksMCESD(const AliAnalysisPionKinksMCESD&);
426 AliAnalysisPionKinksMCESD& operator=(const AliAnalysisPionKinksMCESD&);
427
428 ClassDef(AliAnalysisPionKinksMCESD, 1);
429};
430#endif
431
432