]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTQResolutionFctns.h
Coding conventions violations corrected.
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.h
1 #ifndef ALIHBTQOUTVsQINVRESOLFCTN_H
2 #define ALIHBTQOUTVsQINVRESOLFCTN_H
3 //__________________________________________________________________
4 ////////////////////////////////////////////////////////////////////
5 //                                                                //
6 // General Remark:                                                //
7 // CMSLC means                                                    //
8 // Center of Mass System Longitudially Co-moving                  //
9 //                                                                //
10 //                                                                //
11 // This class creates resolution function of Qout                 //
12 // (difference of simulated pair Qout and recontructed pair)      //
13 // in function of QInv                                            //
14 // it inherits from AliHBTTwoPairFctn2D                           //
15 //  it needs two pairs to compare                                 //
16 //  and is two dimentional: numerator and denominator are TH2D    //
17 //                                                                //
18 ////////////////////////////////////////////////////////////////////
19
20
21 class AliHBTKtResolVsQInvFctn;  //Kt Res   Vs   QInvCMSLC 
22
23 class AliHBTQOutResolVsQInvFctn;  //QOutCMSLC  Res   Vs   QInvCMSLC 
24 class AliHBTQSideResolVsQInvFctn; //QSideCMSLC Res   Vs   QInvCMSLC 
25 class AliHBTQLongResolVsQInvFctn; //QLongCMSLC Res   Vs   QInvCMSLC 
26 class AliHBTQInvResolVsQInvFctn;  //QInvCMSLC Res   Vs   QInvCMSLC 
27
28 class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res   Vs   QInvCMSLC
29 class AliHBTPairPhiResolVsQInvFctn;  //PairPhi   Res   Vs   QInvCMSLC
30
31 class AliHBTQInvResolVsKtFctn;    //QInvCMSLC  Res   Vs   Kt
32 class AliHBTQOutResolVsKtFctn;    //QOutCMSLC  Res   Vs   Kt
33 class AliHBTQSideResolVsKtFctn;   //QSideCMSLC Res   Vs   Kt
34 class AliHBTQLongResolVsKtFctn;   //QLongCMSLC Res   Vs   Kt
35
36 class AliHBTPairThetaResolVsKtFctn;   //PairTheta Res   Vs   Kt
37 class AliHBTPairPhiResolVsKtFctn;   //PairPhi Res   Vs   Kt
38
39
40 class AliHBTQOutResolVsQOutFctn;  //QOutCMSLC  Res   Vs   QOut
41 class AliHBTQSideResolVsQSideFctn;//QSideCMSLC Res   Vs   QSide
42 class AliHBTQLongResolVsQLongFctn;//QLongCMSLC Res   Vs   QLong
43
44
45  
46 #include "AliHBTFunction.h"
47 /***********************************************************************/
48 /***********************************************************************/
49 class AliHBTKtResolVsQInvFctn: public AliHBTTwoPairFctn2D
50  {
51   public: 
52    AliHBTKtResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
53                            Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
54    
55    virtual ~AliHBTKtResolVsQInvFctn(){}
56    
57    TH1* GetResult(){return fNumerator;}  
58    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
59     {
60      y = partpair->GetKt() - trackpair->GetKt();
61      x = partpair->GetQInv();
62     }
63    ClassDef(AliHBTKtResolVsQInvFctn,1)
64  };
65
66
67 /***********************************************************************/
68 /***********************************************************************/
69 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
70  {
71   public: 
72    AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
73                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
74    
75    virtual ~AliHBTQInvResolVsQInvFctn(){}
76    
77    TH1* GetResult(){return fNumerator;}  
78    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
79     {
80      y = partpair->GetQInv() - trackpair->GetQInv();
81      x = partpair->GetQInv();
82     }
83    ClassDef(AliHBTQInvResolVsQInvFctn,1)
84  };
85
86
87 /***********************************************************************/
88 /***********************************************************************/
89 class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
90  {
91   public: 
92    AliHBTQOutResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
93                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
94    
95    virtual ~AliHBTQOutResolVsQInvFctn(){}
96    
97    TH1* GetResult(){return fNumerator;}  
98    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
99     {
100      Double_t tqout = trackpair->GetQOutCMSLC();
101      y = partpair->GetQOutCMSLC() - tqout;
102      if (tqout < 0.0) y = -y;
103     x = partpair->GetQInv();
104     }
105    ClassDef(AliHBTQOutResolVsQInvFctn,1)
106  };
107
108 /***********************************************************************/
109 /***********************************************************************/
110 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
111  {
112   public: 
113    AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
114                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
115    virtual ~AliHBTQSideResolVsQInvFctn(){}
116
117    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y)
118     {
119      y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
120      if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
121      x = partpair->GetQInv();
122     }
123    TH1* GetResult(){return fNumerator;} 
124    ClassDef(AliHBTQSideResolVsQInvFctn,1)
125  };
126
127 /***********************************************************************/
128 /***********************************************************************/
129 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
130  {
131   public: 
132    AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
133                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
134    virtual ~AliHBTQLongResolVsQInvFctn(){}
135
136    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
137     {
138      y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
139      if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
140      x = partpair->GetQInv();
141     }
142    TH1* GetResult(){return fNumerator;} 
143    ClassDef(AliHBTQLongResolVsQInvFctn,1)
144  };
145
146 /***********************************************************************/
147 /***********************************************************************/
148 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
149  {
150   public: 
151    AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
152                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
153    virtual ~AliHBTQInvResolVsKtFctn(){};
154
155    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
156     {
157      y = partpair->GetQInv() - trackpair->GetQInv();
158      x = partpair->GetKt();
159     }
160    TH1* GetResult(){return fNumerator;} 
161    ClassDef(AliHBTQInvResolVsKtFctn,1)
162  };
163 /***********************************************************************/
164 /***********************************************************************/
165 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
166  {
167   public: 
168    AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
169                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
170    virtual ~AliHBTQOutResolVsKtFctn(){}
171    TH1* GetResult(){return GetNumerator();}
172    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
173     {
174      y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
175      if (trackpair->GetQOutCMSLC() < 0.0) y = -y;
176      x = partpair->GetKt();
177     }
178    ClassDef(AliHBTQOutResolVsKtFctn,1)
179  };
180 /***********************************************************************/
181 /***********************************************************************/
182 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
183  {
184   public: 
185    AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
186                             Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
187    virtual ~AliHBTQSideResolVsKtFctn(){}
188    TH1* GetResult(){return GetNumerator();}
189    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
190     {
191      y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
192      if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
193      x = partpair->GetKt();
194     }
195    ClassDef(AliHBTQSideResolVsKtFctn,1)
196  };
197 /***********************************************************************/
198 /***********************************************************************/
199 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
200  {
201   public: 
202    AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
203                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
204    virtual ~AliHBTQLongResolVsKtFctn(){}
205
206    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
207     {
208      y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
209      if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
210      x = partpair->GetKt();
211     }
212    TH1* GetResult(){return fNumerator;}
213    ClassDef(AliHBTQLongResolVsKtFctn,1)
214  };
215 /***********************************************************************/
216 /***********************************************************************/
217 class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
218  {
219   public: 
220    AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
221                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
222    virtual ~AliHBTQOutResolVsQOutFctn(){}
223
224    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
225     {
226      x = partpair->GetQOutCMSLC();
227      y = x - trackpair->GetQOutCMSLC();
228     }
229    TH1* GetResult(){return fNumerator;}  
230    ClassDef(AliHBTQOutResolVsQOutFctn,1)
231  };
232
233 /***********************************************************************/
234 /***********************************************************************/
235
236 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
237  {
238   public: 
239    AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
240                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
241    virtual ~AliHBTQSideResolVsQSideFctn(){}
242
243    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
244     {
245      x = partpair->GetQSideCMSLC();
246      y = x - trackpair->GetQSideCMSLC();
247     }
248    TH1* GetResult(){return fNumerator;}  
249    ClassDef(AliHBTQSideResolVsQSideFctn,1)
250  };
251
252
253 /***********************************************************************/
254 /***********************************************************************/
255
256 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
257  {
258   public: 
259    AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
260                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
261    virtual ~AliHBTQLongResolVsQLongFctn(){}
262
263    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
264     {
265      x = partpair->GetQLongCMSLC();
266      y = x - trackpair->GetQLongCMSLC();
267     }
268    TH1* GetResult(){return fNumerator;}  
269    ClassDef(AliHBTQLongResolVsQLongFctn,1)
270  };
271
272
273 /***********************************************************************/
274 /***********************************************************************/
275 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
276  {
277   public: 
278    AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
279                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
280    
281    virtual ~AliHBTPairThetaResolVsQInvFctn(){}
282    
283    TH1* GetResult(){return fNumerator;}  
284    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
285     {
286      Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
287      Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
288      y = partTheta - trackTheta;
289      x = partpair->GetQInv();
290     }
291    ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
292  };
293
294 /***********************************************************************/
295 /***********************************************************************/
296 class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
297  {
298   public: 
299    AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(), 
300                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
301    
302    virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
303    
304    TH1* GetResult(){return fNumerator;}  
305    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
306     {
307      Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
308      Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
309      y = partTheta - trackTheta;
310      if (trackTheta < 0.0) y = -y;
311      x = trackTheta;
312     }
313    ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
314  };
315
316
317 /***********************************************************************/
318 /***********************************************************************/
319 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
320  {
321   public: 
322    AliHBTPairPhiResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
323                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
324    
325    virtual ~AliHBTPairPhiResolVsQInvFctn(){}
326    
327    TH1* GetResult(){return fNumerator;}  
328    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
329     {
330      Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
331      Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
332      y = partPhi - trackPhi;
333      x = partpair->GetQInv();
334     }
335    ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
336  };
337
338 /***********************************************************************/
339 /***********************************************************************/
340 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
341  {
342   public: 
343    AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
344                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
345    
346    virtual ~AliHBTPairThetaResolVsKtFctn(){}
347    
348    TH1* GetResult(){return fNumerator;}  
349    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
350     {
351      Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
352      Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
353      y = partTheta - trackTheta;
354      x = partpair->GetKt();
355     }
356    ClassDef(AliHBTPairThetaResolVsKtFctn,1)
357  };
358
359 /***********************************************************************/
360 /***********************************************************************/
361 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
362  {
363   public: 
364    AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
365                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
366    
367    virtual ~AliHBTPairPhiResolVsKtFctn(){}
368    
369    TH1* GetResult(){return fNumerator;}  
370    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
371     {
372      Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
373      Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
374      y = partPhi - trackPhi;
375      x = partpair->GetKt();
376     }
377    ClassDef(AliHBTPairPhiResolVsKtFctn,1)
378  };
379
380 #endif
381 /***********************************************************************/
382 /***********************************************************************/
383 class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
384  {
385   public: 
386    AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0, 
387                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
388    
389    virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
390    
391    TH1* GetResult(){return fNumerator;}  
392    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
393     {
394      Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
395      Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
396      y = partPhi - trackPhi;
397      x = trackPhi;
398     }
399    ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)
400  };
401