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