ReaderInternal: Internal data format implementation
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.h
1 #ifndef ALIHBTQOUTVSQINVRESOLFCTN_H
2 #define ALIHBTQOUTVSQINVRESOLFCTN_H
3 //General Remark:
4 //CMSLC means
5 //Center of Mass System Longitudially Co-moving
6
7
8 //this class creates resolution function of Qout 
9 //(difference of simulated pair Qout and recontructed pair)
10 //in function of QInv
11 //it inherits from AliHBTTwoPairFctn2D
12 //  it needs two pairs to compare
13 //  and is two dimentional: numerator and denominator are TH2D
14
15 class AliHBTQOutResolVSQInvFctn;  //QOutCMSLC  Res   VS   QInvCMSLC 
16 class AliHBTQSideResolVSQInvFctn; //QSideCMSLC Res   VS   QInvCMSLC 
17 class AliHBTQLongResolVSQInvFctn; //QLongCMSLC Res   VS   QInvCMSLC 
18
19 class AliHBTQInvResolVSKtFctn;    //QInvCMSLC  Res   VS   Kt
20 class AliHBTQOutResolVSKtFctn;    //QOutCMSLC  Res   VS   Kt
21 class AliHBTQSideResolVSKtFctn;   //QSideCMSLC Res   VS   Kt
22 class AliHBTQLongResolVSKtFctn;   //QLongCMSLC Res   VS   Kt
23
24 class AliHBTQOutResolVSQOutFctn;  //QOutCMSLC  Res   VS   QOut
25 class AliHBTQSideResolVSQSideFctn;//QSideCMSLC Res   VS   QSide
26 class AliHBTQLongResolVSQLongFctn;//QLongCMSLC Res   VS   QLong
27
28
29 #include "AliHBTFunction.h"
30 /***********************************************************************/
31 /***********************************************************************/
32 class AliHBTQOutResolVSQInvFctn: public AliHBTTwoPairFctn2D
33  {
34   public: 
35    AliHBTQOutResolVSQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
36                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
37    
38    virtual ~AliHBTQOutResolVSQInvFctn(){}
39    
40    TH1* GetResult(){return fNumerator;}  
41    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
42     {
43      y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
44      x = partpair->GetQInv();
45     }
46   protected:
47   private: 
48   public:
49     ClassDef(AliHBTQOutResolVSQInvFctn,1)
50  };
51
52 /***********************************************************************/
53 /***********************************************************************/
54 class AliHBTQSideResolVSQInvFctn: public AliHBTTwoPairFctn2D
55  {
56   public: 
57    AliHBTQSideResolVSQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
58                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
59    virtual ~AliHBTQSideResolVSQInvFctn(){}
60
61    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y)
62     {
63      y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
64      x = partpair->GetQInv();
65     }
66    TH1* GetResult(){return fNumerator;} 
67   protected:
68   private:
69   public:
70     ClassDef(AliHBTQSideResolVSQInvFctn,1)
71  };
72
73 /***********************************************************************/
74 /***********************************************************************/
75 class AliHBTQLongResolVSQInvFctn: public AliHBTTwoPairFctn2D
76  {
77   public: 
78    AliHBTQLongResolVSQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
79                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
80    virtual ~AliHBTQLongResolVSQInvFctn(){}
81
82    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
83     {
84      y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
85      x = partpair->GetQInv();
86     }
87    TH1* GetResult(){return fNumerator;} 
88   protected:
89   private:
90   public:
91     ClassDef(AliHBTQLongResolVSQInvFctn,1)
92  };
93
94 /***********************************************************************/
95 /***********************************************************************/
96 class AliHBTQInvResolVSKtFctn: public AliHBTTwoPairFctn2D
97  {
98   public: 
99    AliHBTQInvResolVSKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
100                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
101    virtual ~AliHBTQInvResolVSKtFctn(){};
102
103    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
104     {
105      y = partpair->GetQInv() - trackpair->GetQInv();
106      x = partpair->GetKt();
107     }
108    TH1* GetResult(){return fNumerator;} 
109   protected:
110   private:
111   public:
112     ClassDef(AliHBTQInvResolVSKtFctn,1)
113  };
114 /***********************************************************************/
115 /***********************************************************************/
116 class AliHBTQOutResolVSKtFctn: public AliHBTTwoPairFctn2D
117  {
118   public: 
119    AliHBTQOutResolVSKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
120                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
121    virtual ~AliHBTQOutResolVSKtFctn(){}
122    TH1* GetResult(){return GetNumerator();}
123    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
124     {
125      y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
126      x = partpair->GetKt();
127     }
128   protected:
129   private:
130   public:
131     ClassDef(AliHBTQOutResolVSKtFctn,1)
132  };
133 /***********************************************************************/
134 /***********************************************************************/
135 class AliHBTQSideResolVSKtFctn: public AliHBTTwoPairFctn2D
136  {
137   public: 
138    AliHBTQSideResolVSKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
139                             Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
140    virtual ~AliHBTQSideResolVSKtFctn(){}
141    TH1* GetResult(){return GetNumerator();}
142    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
143     {
144      y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
145      x = partpair->GetKt();
146     }
147   protected:
148   private:
149   public:
150     ClassDef(AliHBTQSideResolVSKtFctn,1)
151  };
152 /***********************************************************************/
153 /***********************************************************************/
154 class AliHBTQLongResolVSKtFctn: public AliHBTTwoPairFctn2D
155  {
156   public: 
157    AliHBTQLongResolVSKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
158                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
159    virtual ~AliHBTQLongResolVSKtFctn(){}
160
161    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
162     {
163      y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
164      x = partpair->GetKt();
165     }
166    TH1* GetResult(){return fNumerator;}  
167   protected:
168   private:
169   public:
170     ClassDef(AliHBTQLongResolVSKtFctn,1)
171  };
172 /***********************************************************************/
173 /***********************************************************************/
174 class AliHBTQOutResolVSQOutFctn: public AliHBTTwoPairFctn2D
175  {
176   public: 
177    AliHBTQOutResolVSQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
178                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
179    virtual ~AliHBTQOutResolVSQOutFctn(){}
180
181    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
182     {
183      x = partpair->GetQOutCMSLC();
184      y = x - trackpair->GetQOutCMSLC();
185     }
186    TH1* GetResult(){return fNumerator;}  
187   protected:
188   private:
189   public:
190     ClassDef(AliHBTQOutResolVSQOutFctn,1)
191  };
192
193 /***********************************************************************/
194 /***********************************************************************/
195
196 class AliHBTQSideResolVSQSideFctn: public AliHBTTwoPairFctn2D
197  {
198   public: 
199    AliHBTQSideResolVSQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
200                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
201    virtual ~AliHBTQSideResolVSQSideFctn(){}
202
203    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
204     {
205      x = partpair->GetQSideCMSLC();
206      y = x - trackpair->GetQSideCMSLC();
207     }
208    TH1* GetResult(){return fNumerator;}  
209   protected:
210   private:
211   public:
212     ClassDef(AliHBTQSideResolVSQSideFctn,1)
213  };
214
215
216 /***********************************************************************/
217 /***********************************************************************/
218
219 class AliHBTQLongResolVSQLongFctn: public AliHBTTwoPairFctn2D
220  {
221   public: 
222    AliHBTQLongResolVSQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
223                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
224    virtual ~AliHBTQLongResolVSQLongFctn(){}
225
226    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
227     {
228      x = partpair->GetQLongCMSLC();
229      y = x - trackpair->GetQLongCMSLC();
230     }
231    TH1* GetResult(){return fNumerator;}  
232   protected:
233   private:
234   public:
235     ClassDef(AliHBTQLongResolVSQLongFctn,1)
236  };
237
238
239
240 #endif