1 #ifndef AliAnalysisPionKinksMCESD_h
2 #define AliAnalysisPionKinksMCESD_h
12 class AliESDtrackCuts;
13 class AliPhysicsSelection;
16 #include "AliAnalysisTaskSE.h"
18 class AliAnalysisPionKinksMCESD : public AliAnalysisTaskSE {
20 AliAnalysisPionKinksMCESD(const char *name = "AliAnalysisPionKinksMCESD");
21 virtual ~AliAnalysisPionKinksMCESD() {}
23 virtual void UserCreateOutputObjects();
24 virtual void UserExec(Option_t *option);
25 virtual void Terminate(Option_t *);
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;
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;}
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;}
82 TH1F* hMCRapidityPiPlus;
83 TH1F* hMCNDaughtersPlus;
84 TH1F* hMCRadPiDauPlus;
85 TH1F* hMCKinkPosZPlus;
86 TH1F* hMCUIDPiDauPlus;
87 TH1F* hMCPdgPiNonDecayedPlus;
88 TH1F* hMCPdgPiDauPlus;
90 TH1F* hMCKinkAnglePlus;
91 TH2F* hMCPKinkAngPlus;
92 TH2F* hMCPdgCodemdPlus;
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;
107 TH1F* hMCRapidityPiMinus;
108 TH1F* hMCNDaughtersMinus;
109 TH1F* hMCRadPiDauMinus;
110 TH1F* hMCKinkPosZMinus;
111 TH1F* hMCUIDPiDauMinus;
112 TH1F* hMCPdgPiNonDecayedMinus;
113 TH1F* hMCPdgPiDauMinus;
115 TH1F* hMCKinkAngleMinus;
116 TH2F* hMCPKinkAngMinus;
117 TH2F* hMCPdgCodemdMinus;
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;
144 //TH1F* hTPCchi2clusters;
145 //TH1F* hdcaToVertexXY;
146 //TH1F* hdcaToVertexZ;
151 TH2F* hPrimTrackPosxy;
152 TH2F* hPrimTrackPosyz;
153 TH2F* hPrimTrackPosxz;
161 TH1F* hKinkPosRTPCclusters1;
162 TH2F* hKinkPosRTPCclusters2;
172 TH2F* hKinkPosZMCKinkPosZ;
180 TH1F* hRapidityKinkFake;
182 TH1F* hKinkPosRTPCclusters1Fake;
183 TH2F* hKinkPosRTPCclusters2Fake;
185 TH1F* hKinkAngleFake;
187 TH2F* hPmKinkAngFake;
188 TH2F* hKinkPosXYFake;
189 TH2F* hKinkPosZYFake;
190 TH2F* hKinkPosZRFake;
193 TH2F* hKinkPosZMCKinkPosZFake;
194 TH2F* hPdgCodemdFake;
197 TH1F* hUIDKinkDauFake;
199 TH1F* hPtPosRSelected;
200 TH2F* hPdgCodemdZRejected;
202 TH2F* hPdgCodemdAngRejected;
203 TH1F* hPtAngSelected;
204 TH2F* hPdgCodemdPmRejected;
206 TH2F* hPdgCodemdQtLowRejected;
209 TH1F* hRapidityGoodKink;
211 TH2F* hPmGoodKinkAng;
212 TH2F* hPdgCodemdGoodKink;
214 TH1F* hUIDGoodKinkDau;
220 TH1F* hRapidityPiPlus;
222 TH1F* hKinkAnglePiPlus;
223 TH2F* hPmKinkAngPiPlus;
224 TH2F* hKinkPosXYPiPlus;
225 TH2F* hKinkPosZRPiPlus;
226 TH1F* hKinkPosRPiPlus;
227 TH1F* hDCAkinkPiPlus;
228 TH2F* hPdgCodemdPiPlus;
232 TH2F* hPmKinkAngPimuPlus;
233 TH1F* hQtPiotherPlus;
234 TH2F* hPmKinkAngPiotherPlus;
235 TH2F* hPdgCodemdPiotherPlus;
236 TH1F* hUIDPiDauMinus;
240 TH1F* hRapidityPiMinus;
242 TH1F* hKinkAnglePiMinus;
243 TH2F* hPmKinkAngPiMinus;
244 TH2F* hKinkPosXYPiMinus;
245 TH2F* hKinkPosZRPiMinus;
246 TH1F* hKinkPosRPiMinus;
247 TH1F* hDCAkinkPiMinus;
248 TH2F* hPdgCodemdPiMinus;
252 TH2F* hPmKinkAngPimuMinus;
253 TH1F* hQtPiotherMinus;
254 TH2F* hPmKinkAngPiotherMinus;
255 TH2F* hPdgCodemdPiotherMinus;
256 TH2F* hPdgCodemdQtRejected;
258 TH2F* hPdgCodemdMaxAngRejected;
259 TH1F* hPtMaxAngSelected;
260 TH2F* hPdgCodemdRTPCclustersRejected;
261 TH1F* hPtRTPCclustersSelected;
262 TH2F* hRTPCclustersRTPCclustersSelected;
263 TH2F* hPdgCodemdMinvRejected;
266 TH1F* hRapiditySelected;
268 TH1F* hKinkAngleSelected;
269 TH1F* hDCAkinkSelected;
270 TH2F* hPmKinkAngSelected;
271 TH2F* hKinkPosXYSelected;
272 TH2F* hKinkPosZRSelected;
273 TH1F* hKinkPosRSelected;
274 TH2F* hPdgCodemdSelected;
276 TH1F* hMinvPimuSelected;
277 TH1F* hUIDKinkDauSelected;
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;
294 TH1F* hEtaPiSelected;
295 TH1F* hRapidityPiSelected;
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;
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
362 TList* fListOfHistos;
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;
376 Int_t cPdgKaon, cPdgPion, cPdgMuon, cPdgElectron;
377 Double_t cKaonMass, cPionMass, cMuonMass, cElectronMass;
380 Int_t nBinsMult, hLowMult, hUpMult;
382 Double_t hLowPt, hUpPt;
384 Double_t hLowEta, hUpEta;
386 Double_t hLowQt, hUpQt;
388 Double_t hLowPdg, hUpPdg;
390 Double_t hLowPdg2, hUpPdg2;
392 Double_t hLowUID, hUpUID;
394 Double_t hLowR, hUpR;
396 Double_t hLowZ, hUpZ;
398 Double_t hLowXY, hUpXY;
400 Double_t hLowAngle, hUpAngle;
402 Double_t hLowZV, hUpZV;
404 Double_t hLowXYV, hUpXYV;
406 Double_t hLowInvMass, hUpInvMass;
408 Double_t hLowdEdx, hUpdEdx;
410 AliPIDResponse *fPIDResponse; //! PID response object
411 AliESDtrackCuts* fMaxDCAtoVtxCut;
412 AliESDtrackCuts* fTrackCuts;
415 AliAnalysisPionKinksMCESD(const AliAnalysisPionKinksMCESD&);
416 AliAnalysisPionKinksMCESD& operator=(const AliAnalysisPionKinksMCESD&);
418 ClassDef(AliAnalysisPionKinksMCESD, 1);