]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/Kinks/AliAnalysisPionKinksMCESD.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Kinks / AliAnalysisPionKinksMCESD.h
1 #ifndef AliAnalysisPionKinksMCESD_h
2 #define AliAnalysisPionKinksMCESD_h
3
4
5 class AliESDEvent;
6 class TF1;
7 class TH1;
8 class TH2;
9 class TH3;
10 class TParticle;
11 class TParticle;
12 class AliESDtrackCuts;
13 class AliPhysicsSelection;
14 class AliPIDResponse;
15
16 #include "AliAnalysisTaskSE.h"
17
18 class 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