]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTQResolutionFctns.h
PairPhiRes Vs Phi and PairThetaRes Vs Theta added.
[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   protected:
64   private: 
65     ClassDef(AliHBTKtResolVsQInvFctn,1)
66  };
67
68
69 /***********************************************************************/
70 /***********************************************************************/
71 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
72  {
73   public: 
74    AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
75                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
76    
77    virtual ~AliHBTQInvResolVsQInvFctn(){}
78    
79    TH1* GetResult(){return fNumerator;}  
80    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
81     {
82      y = partpair->GetQInv() - trackpair->GetQInv();
83      x = partpair->GetQInv();
84     }
85   protected:
86   private: 
87     ClassDef(AliHBTQInvResolVsQInvFctn,1)
88  };
89
90
91 /***********************************************************************/
92 /***********************************************************************/
93 class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
94  {
95   public: 
96    AliHBTQOutResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
97                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
98    
99    virtual ~AliHBTQOutResolVsQInvFctn(){}
100    
101    TH1* GetResult(){return fNumerator;}  
102    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
103     {
104      Double_t tqout = trackpair->GetQOutCMSLC();
105      y = partpair->GetQOutCMSLC() - tqout;
106      if (tqout < 0.0) y = -y;
107     x = partpair->GetQInv();
108     }
109   protected:
110   private: 
111     ClassDef(AliHBTQOutResolVsQInvFctn,1)
112  };
113
114 /***********************************************************************/
115 /***********************************************************************/
116 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
117  {
118   public: 
119    AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
120                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
121    virtual ~AliHBTQSideResolVsQInvFctn(){}
122
123    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y)
124     {
125      y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
126      if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
127      x = partpair->GetQInv();
128     }
129    TH1* GetResult(){return fNumerator;} 
130   protected:
131   private:
132     ClassDef(AliHBTQSideResolVsQInvFctn,1)
133  };
134
135 /***********************************************************************/
136 /***********************************************************************/
137 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
138  {
139   public: 
140    AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
141                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
142    virtual ~AliHBTQLongResolVsQInvFctn(){}
143
144    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
145     {
146      y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
147      if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
148      x = partpair->GetQInv();
149     }
150    TH1* GetResult(){return fNumerator;} 
151   protected:
152   private:
153     ClassDef(AliHBTQLongResolVsQInvFctn,1)
154  };
155
156 /***********************************************************************/
157 /***********************************************************************/
158 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
159  {
160   public: 
161    AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
162                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
163    virtual ~AliHBTQInvResolVsKtFctn(){};
164
165    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
166     {
167      y = partpair->GetQInv() - trackpair->GetQInv();
168      x = partpair->GetKt();
169     }
170    TH1* GetResult(){return fNumerator;} 
171   protected:
172   private:
173     ClassDef(AliHBTQInvResolVsKtFctn,1)
174  };
175 /***********************************************************************/
176 /***********************************************************************/
177 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
178  {
179   public: 
180    AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
181                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
182    virtual ~AliHBTQOutResolVsKtFctn(){}
183    TH1* GetResult(){return GetNumerator();}
184    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
185     {
186      y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
187      if (trackpair->GetQOutCMSLC() < 0.0) y = -y;
188      x = partpair->GetKt();
189     }
190   protected:
191   private:
192     ClassDef(AliHBTQOutResolVsKtFctn,1)
193  };
194 /***********************************************************************/
195 /***********************************************************************/
196 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
197  {
198   public: 
199    AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
200                             Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
201    virtual ~AliHBTQSideResolVsKtFctn(){}
202    TH1* GetResult(){return GetNumerator();}
203    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
204     {
205      y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
206      if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
207      x = partpair->GetKt();
208     }
209   protected:
210   private:
211     ClassDef(AliHBTQSideResolVsKtFctn,1)
212  };
213 /***********************************************************************/
214 /***********************************************************************/
215 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
216  {
217   public: 
218    AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
219                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
220    virtual ~AliHBTQLongResolVsKtFctn(){}
221
222    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
223     {
224      y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
225      if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
226      x = partpair->GetKt();
227     }
228    TH1* GetResult(){return fNumerator;}
229   protected:
230   private:
231     ClassDef(AliHBTQLongResolVsKtFctn,1)
232  };
233 /***********************************************************************/
234 /***********************************************************************/
235 class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
236  {
237   public: 
238    AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
239                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
240    virtual ~AliHBTQOutResolVsQOutFctn(){}
241
242    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
243     {
244      x = partpair->GetQOutCMSLC();
245      y = x - trackpair->GetQOutCMSLC();
246     }
247    TH1* GetResult(){return fNumerator;}  
248   protected:
249   private:
250     ClassDef(AliHBTQOutResolVsQOutFctn,1)
251  };
252
253 /***********************************************************************/
254 /***********************************************************************/
255
256 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
257  {
258   public: 
259    AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
260                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
261    virtual ~AliHBTQSideResolVsQSideFctn(){}
262
263    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
264     {
265      x = partpair->GetQSideCMSLC();
266      y = x - trackpair->GetQSideCMSLC();
267     }
268    TH1* GetResult(){return fNumerator;}  
269   protected:
270   private:
271     ClassDef(AliHBTQSideResolVsQSideFctn,1)
272  };
273
274
275 /***********************************************************************/
276 /***********************************************************************/
277
278 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
279  {
280   public: 
281    AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
282                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
283    virtual ~AliHBTQLongResolVsQLongFctn(){}
284
285    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
286     {
287      x = partpair->GetQLongCMSLC();
288      y = x - trackpair->GetQLongCMSLC();
289     }
290    TH1* GetResult(){return fNumerator;}  
291   protected:
292   private:
293     ClassDef(AliHBTQLongResolVsQLongFctn,1)
294  };
295
296
297 /***********************************************************************/
298 /***********************************************************************/
299 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
300  {
301   public: 
302    AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
303                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
304    
305    virtual ~AliHBTPairThetaResolVsQInvFctn(){}
306    
307    TH1* GetResult(){return fNumerator;}  
308    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
309     {
310      Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
311      Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
312      y = partTheta - trackTheta;
313      x = partpair->GetQInv();
314     }
315   protected:
316   private: 
317     ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
318  };
319
320 /***********************************************************************/
321 /***********************************************************************/
322 class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
323  {
324   public: 
325    AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(), 
326                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
327    
328    virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
329    
330    TH1* GetResult(){return fNumerator;}  
331    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
332     {
333      Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
334      Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
335      y = partTheta - trackTheta;
336      if (trackTheta < 0.0) y = -y;
337      x = trackTheta;
338     }
339   protected:
340   private: 
341     ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
342  };
343
344
345 /***********************************************************************/
346 /***********************************************************************/
347 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
348  {
349   public: 
350    AliHBTPairPhiResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
351                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
352    
353    virtual ~AliHBTPairPhiResolVsQInvFctn(){}
354    
355    TH1* GetResult(){return fNumerator;}  
356    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
357     {
358      Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
359      Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
360      y = partPhi - trackPhi;
361      x = partpair->GetQInv();
362     }
363   protected:
364   private: 
365     ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
366  };
367
368 /***********************************************************************/
369 /***********************************************************************/
370 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
371  {
372   public: 
373    AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
374                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
375    
376    virtual ~AliHBTPairThetaResolVsKtFctn(){}
377    
378    TH1* GetResult(){return fNumerator;}  
379    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
380     {
381      Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
382      Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
383      y = partTheta - trackTheta;
384      x = partpair->GetKt();
385     }
386   protected:
387   private: 
388     ClassDef(AliHBTPairThetaResolVsKtFctn,1)
389  };
390
391 /***********************************************************************/
392 /***********************************************************************/
393 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
394  {
395   public: 
396    AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
397                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
398    
399    virtual ~AliHBTPairPhiResolVsKtFctn(){}
400    
401    TH1* GetResult(){return fNumerator;}  
402    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
403     {
404      Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
405      Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
406      y = partPhi - trackPhi;
407      x = partpair->GetKt();
408     }
409   protected:
410   private: 
411     ClassDef(AliHBTPairPhiResolVsKtFctn,1)
412  };
413
414 #endif
415 /***********************************************************************/
416 /***********************************************************************/
417 class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
418  {
419   public: 
420    AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0, 
421                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
422    
423    virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
424    
425    TH1* GetResult(){return fNumerator;}  
426    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
427     {
428      Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
429      Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
430      y = partPhi - trackPhi;
431      x = trackPhi;
432     }
433   protected:
434   private: 
435     ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)
436  };
437
438