]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTMonResolutionFctns.h
PhiRes Vs Phi and ThetaRes Vs Theta added. Coding conventions violations corrected.
[u/mrichter/AliRoot.git] / HBTAN / AliHBTMonResolutionFctns.h
1 #ifndef ALIHBTMONRESOLUTIONFCTNS_H
2 #define ALIHBTMONRESOLUTIONFCTNS_H
3 //_______________________________________________________________________________
4 /////////////////////////////////////////////////////////////////////////////////
5 //
6 // class AliHBTMonPxResolutionFctn;
7 // class AliHBTMonPyResolutionFctn;
8 // class AliHBTMonPzResolutionFctn;
9 // class AliHBTMonPResolutionFctn;
10 // class AliHBTMonPtResolutionFctn;
11 // class AliHBTMonPhiResolutionFctn;
12 // class AliHBTMonThetaResolutionFctn;
13 // class AliHBTMonPxResolutionVsPtFctn;
14 // class AliHBTMonPyResolutionVsPtFctn;
15 // class AliHBTMonPzResolutionVsPtFctn;
16 // class AliHBTMonPResolutionVsPtFctn;
17 // class AliHBTMonPtResolutionVsPtFctn;
18 // class AliHBTMonPhiResolutionVsPtFctn;
19 // class AliHBTMonThetaResolutionVsPtFctn;
20 //
21 // Caution: On 2D plots on X axis in simulated values
22 // That is contrary to two-particle resolutions where it is reconstructed one
23 //
24 // added by Zbigniew.Chajecki@cern.ch
25 // this classes create resolution functions of particle momentum 
26 //
27 //////////////////////////////////////////////////////////////////////////////////
28
29 class AliHBTMonPxResolutionFctn;
30 class AliHBTMonPyResolutionFctn;
31 class AliHBTMonPzResolutionFctn;
32 class AliHBTMonPResolutionFctn;
33 class AliHBTMonPtResolutionFctn;
34 class AliHBTMonPhiResolutionFctn;
35 class AliHBTMonThetaResolutionFctn;
36
37 class AliHBTMonPxResolutionVsPtFctn;
38 class AliHBTMonPyResolutionVsPtFctn;
39 class AliHBTMonPzResolutionVsPtFctn;
40 class AliHBTMonPResolutionVsPtFctn;
41 class AliHBTMonPtResolutionVsPtFctn;
42 class AliHBTMonPhiResolutionVsPtFctn;
43 class AliHBTMonThetaResolutionVsPtFctn;
44
45
46 #include "AliHBTMonitorFunction.h"
47 /***********************************************************************/
48 /***********************************************************************/
49 /***********************************************************************/
50 class AliHBTMonPxResolutionFctn: public AliHBTMonTwoParticleFctn1D
51  {
52   public: 
53    AliHBTMonPxResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
54    virtual ~AliHBTMonPxResolutionFctn(){}
55
56    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
57      { 
58         return (partparticle->Px()-trackparticle->Px()) ;
59      } 
60    TH1* GetResult(){return fResult;} 
61    ClassDef(AliHBTMonPxResolutionFctn,1)
62  };
63 /***********************************************************************/
64 class AliHBTMonPyResolutionFctn: public AliHBTMonTwoParticleFctn1D
65  {
66   public: 
67    AliHBTMonPyResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
68    virtual ~AliHBTMonPyResolutionFctn(){}
69
70    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
71      { 
72         return (partparticle->Py()-trackparticle->Py()) ;
73      } 
74    TH1* GetResult(){return fResult;} 
75    ClassDef(AliHBTMonPyResolutionFctn,1)
76  };
77 /***********************************************************************/
78 class AliHBTMonPzResolutionFctn: public AliHBTMonTwoParticleFctn1D
79  {
80   public: 
81    AliHBTMonPzResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
82    virtual ~AliHBTMonPzResolutionFctn(){}
83
84    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
85      { 
86         return (partparticle->Pz()-trackparticle->Pz()) ;
87      } 
88    TH1* GetResult(){return fResult;} 
89    ClassDef(AliHBTMonPzResolutionFctn,1)
90  };
91 /***********************************************************************/
92 class AliHBTMonPResolutionFctn: public AliHBTMonTwoParticleFctn1D
93  {
94   public: 
95    AliHBTMonPResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
96    virtual ~AliHBTMonPResolutionFctn(){}
97
98    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
99      { 
100         return (partparticle->P()-trackparticle->P()) ;
101      } 
102    TH1* GetResult(){return fResult;} 
103    ClassDef(AliHBTMonPResolutionFctn,1)
104  };
105 /***********************************************************************/
106 class AliHBTMonPtResolutionFctn: public AliHBTMonTwoParticleFctn1D
107  {
108   public: 
109    AliHBTMonPtResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
110    virtual ~AliHBTMonPtResolutionFctn(){}
111
112    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
113      { 
114         return (partparticle->Pt()-trackparticle->Pt()) ;
115      } 
116    TH1* GetResult(){return fResult;} 
117    ClassDef(AliHBTMonPtResolutionFctn,1)
118  };
119 /***********************************************************************/
120 /***********************************************************************/
121 /***********************************************************************/
122 class AliHBTMonPxResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
123  {
124   public: 
125    AliHBTMonPxResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = -0.1, 
126                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
127    virtual ~AliHBTMonPxResolutionVsPtFctn(){}
128    TH1* GetResult(){return fResult;}
129    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
130     {
131      x = partparticle->Pt();
132      y = partparticle->Px()-trackparticle->Px();
133     }
134    ClassDef(AliHBTMonPxResolutionVsPtFctn,1)
135  };
136 /***********************************************************************/
137 class AliHBTMonPyResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
138  {
139   public: 
140    AliHBTMonPyResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = -0.1, 
141                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
142    virtual ~AliHBTMonPyResolutionVsPtFctn(){}
143    TH1* GetResult(){return fResult;}
144    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
145     {
146      x = partparticle->Pt();
147      y = partparticle->Py()-trackparticle->Py();
148     }
149    ClassDef(AliHBTMonPyResolutionVsPtFctn,1)
150  };
151 /***********************************************************************/
152 class AliHBTMonPzResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
153  {
154   public: 
155    AliHBTMonPzResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = -0.1, 
156                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
157    virtual ~AliHBTMonPzResolutionVsPtFctn(){}
158    TH1* GetResult(){return fResult;}
159    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
160     {
161      x = partparticle->Pt();
162      y = partparticle->Pz()-trackparticle->Pz();
163     }
164    ClassDef(AliHBTMonPzResolutionVsPtFctn,1)
165  };
166 /***********************************************************************/
167 class AliHBTMonPResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
168  {
169   public: 
170    AliHBTMonPResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = -0.1, 
171                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
172    virtual ~AliHBTMonPResolutionVsPtFctn(){}
173    TH1* GetResult(){return fResult;}
174    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
175     {
176      x = partparticle->Pt();
177      y = partparticle->P()-trackparticle->P();
178     }
179   protected:
180   private:
181   public:
182     ClassDef(AliHBTMonPResolutionVsPtFctn,1)
183  };
184 /***********************************************************************/
185 class AliHBTMonPtResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
186  {
187   public: 
188    AliHBTMonPtResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = -0.1, 
189                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
190    virtual ~AliHBTMonPtResolutionVsPtFctn(){}
191    TH1* GetResult(){return fResult;}
192    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
193     {
194      x = partparticle->Pt();
195      y = partparticle->Pt()-trackparticle->Pt();
196     }
197    ClassDef(AliHBTMonPtResolutionVsPtFctn,1)
198  };
199 /***********************************************************************/
200 /***********************************************************************/
201 /***********************************************************************/
202 /***********************************************************************/
203 class AliHBTMonPhiResolutionFctn: public AliHBTMonTwoParticleFctn1D
204  {
205   public: 
206    AliHBTMonPhiResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
207    virtual ~AliHBTMonPhiResolutionFctn(){}
208
209    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
210      { 
211         return (partparticle->Phi()-trackparticle->Phi()) ;
212      } 
213    TH1* GetResult(){return fResult;} 
214    ClassDef(AliHBTMonPhiResolutionFctn,1)
215  };
216 /***********************************************************************/
217 class AliHBTMonThetaResolutionFctn: public AliHBTMonTwoParticleFctn1D
218  {
219   public: 
220    AliHBTMonThetaResolutionFctn(Int_t nbins = 200, Double_t maxXval = 0.05, Double_t minXval = -0.05);
221    virtual ~AliHBTMonThetaResolutionFctn(){}
222
223    Double_t GetValue(AliHBTParticle * trackparticle,AliHBTParticle * partparticle) 
224      { 
225         return (partparticle->Theta()-trackparticle->Theta()) ;
226      } 
227    TH1* GetResult(){return fResult;} 
228    ClassDef(AliHBTMonThetaResolutionFctn,1)
229  };
230 /***********************************************************************/
231 /***********************************************************************/
232 class AliHBTMonPhiResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
233  {
234   public: 
235    AliHBTMonPhiResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = 0.0, 
236                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
237    virtual ~AliHBTMonPhiResolutionVsPtFctn(){}
238    TH1* GetResult(){return fResult;}
239    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
240     {
241      x = partparticle->Pt();
242      y = partparticle->Phi()-trackparticle->Phi();
243     }
244    ClassDef(AliHBTMonPhiResolutionVsPtFctn,1)
245  };
246 /***********************************************************************/
247 class AliHBTMonPhiResolutionVsPhiFctn: public AliHBTMonTwoParticleFctn2D
248  {
249   public: 
250    AliHBTMonPhiResolutionVsPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0,
251                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
252    virtual ~AliHBTMonPhiResolutionVsPhiFctn(){}
253    TH1* GetResult(){return fResult;}
254    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
255     {
256      x = partparticle->Phi();
257      y = partparticle->Phi()-trackparticle->Phi();
258     }
259    ClassDef(AliHBTMonPhiResolutionVsPhiFctn,1)
260  };
261 /***********************************************************************/
262 class AliHBTMonThetaResolutionVsPtFctn: public AliHBTMonTwoParticleFctn2D
263  {
264   public: 
265    AliHBTMonThetaResolutionVsPtFctn(Int_t nXbins = 200, Double_t maxXval = 1.4, Double_t minXval = -0.1, 
266                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
267    virtual ~AliHBTMonThetaResolutionVsPtFctn(){}
268    TH1* GetResult(){return fResult;}
269    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
270     {
271      x = partparticle->Pt();
272      y = partparticle->Theta()-trackparticle->Theta();
273     }
274    ClassDef(AliHBTMonThetaResolutionVsPtFctn,1)
275  };
276
277 /***********************************************************************/
278 class AliHBTMonThetaResolutionVsThetaFctn: public AliHBTMonTwoParticleFctn2D
279  {
280   public: 
281    AliHBTMonThetaResolutionVsThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(),
282                              Int_t nYbins = 200, Double_t maxYval = 0.05, Double_t minYval =-0.05);
283    virtual ~AliHBTMonThetaResolutionVsThetaFctn(){}
284    TH1* GetResult(){return fResult;}
285    void GetValues(AliHBTParticle* trackparticle, AliHBTParticle* partparticle, Double_t& x, Double_t& y)
286     {
287      y = partparticle->Theta()-trackparticle->Theta();
288      x = partparticle->Theta();
289     }
290    ClassDef(AliHBTMonThetaResolutionVsThetaFctn,1)
291  };
292 /***********************************************************************/
293 /***********************************************************************/
294 /***********************************************************************/
295 /***********************************************************************/
296 /***********************************************************************/
297 /***********************************************************************/
298 /***********************************************************************/
299 /***********************************************************************/
300 /***********************************************************************/
301 /***********************************************************************/
302
303 #endif