Do not unload gAlice, it is needed until the end of the simulation run
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.h
1 #ifndef ALIHBTQRESOLUTIONFCTNS_H
2 #define ALIHBTQRESOLUTIONFCTNS_H
3 //__________________________________________________________________
4 ////////////////////////////////////////////////////////////////////
5 //                                                                //
6 // General Remark:                                                //
7 // LCMS 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   QInvLCMS 
22
23 class AliHBTQOutResolVsQInvFctn;  //QOutLCMS  Res   Vs   QInvLCMS 
24 class AliHBTQSideResolVsQInvFctn; //QSideLCMS Res   Vs   QInvLCMS 
25 class AliHBTQLongResolVsQInvFctn; //QLongLCMS Res   Vs   QInvLCMS 
26 class AliHBTQInvResolVsQInvFctn;  //QInvLCMS Res   Vs   QInvLCMS 
27
28 class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res   Vs   QInvLCMS
29 class AliHBTPairPhiResolVsQInvFctn;  //PairPhi   Res   Vs   QInvLCMS
30
31 class AliHBTQInvResolVsKtFctn;    //QInvLCMS  Res   Vs   Kt
32 class AliHBTQOutResolVsKtFctn;    //QOutLCMS  Res   Vs   Kt
33 class AliHBTQSideResolVsKtFctn;   //QSideLCMS Res   Vs   Kt
34 class AliHBTQLongResolVsKtFctn;   //QLongLCMS Res   Vs   Kt
35
36 class AliHBTPairThetaResolVsKtFctn;   //PairTheta Res   Vs   Kt
37 class AliHBTPairPhiResolVsKtFctn;   //PairPhi Res   Vs   Kt
38
39
40 class AliHBTQOutResolVsQOutFctn;  //QOutLCMS  Res   Vs   QOut
41 class AliHBTQSideResolVsQSideFctn;//QSideLCMS Res   Vs   QSide
42 class AliHBTQLongResolVsQLongFctn;//QLongLCMS 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 this->fNumerator;}  
58    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
59    ClassDef(AliHBTKtResolVsQInvFctn,1)
60  };
61
62
63 /***********************************************************************/
64 /***********************************************************************/
65 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
66  {
67   public: 
68    AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
69                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
70    
71    virtual ~AliHBTQInvResolVsQInvFctn(){}
72    
73    TH1* GetResult(){return this->fNumerator;}  
74    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
75    ClassDef(AliHBTQInvResolVsQInvFctn,1)
76  };
77
78
79 /***********************************************************************/
80 /***********************************************************************/
81 class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
82  {
83   public: 
84    AliHBTQOutResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
85                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
86    
87    virtual ~AliHBTQOutResolVsQInvFctn(){}
88    
89    TH1* GetResult(){return this->fNumerator;}  
90    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
91    ClassDef(AliHBTQOutResolVsQInvFctn,1)
92  };
93
94 /***********************************************************************/
95 /***********************************************************************/
96 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
97  {
98   public: 
99    AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
100                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
101    virtual ~AliHBTQSideResolVsQInvFctn(){}
102
103    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y) const;
104    TH1* GetResult(){return this->fNumerator;} 
105    ClassDef(AliHBTQSideResolVsQInvFctn,1)
106  };
107
108 /***********************************************************************/
109 /***********************************************************************/
110 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
111  {
112   public: 
113    AliHBTQLongResolVsQInvFctn(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 ~AliHBTQLongResolVsQInvFctn(){}
116
117    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
118    TH1* GetResult(){return this->fNumerator;} 
119    ClassDef(AliHBTQLongResolVsQInvFctn,1)
120  };
121
122 /***********************************************************************/
123 /***********************************************************************/
124 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
125  {
126   public: 
127    AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
128                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
129    virtual ~AliHBTQInvResolVsKtFctn(){};
130
131    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
132    TH1* GetResult(){return this->fNumerator;} 
133    ClassDef(AliHBTQInvResolVsKtFctn,1)
134  };
135 /***********************************************************************/
136 /***********************************************************************/
137 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
138  {
139   public: 
140    AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
141                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
142    virtual ~AliHBTQOutResolVsKtFctn(){}
143    TH1* GetResult(){return this->GetNumerator();}
144    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
145    ClassDef(AliHBTQOutResolVsKtFctn,1)
146  };
147 /***********************************************************************/
148 /***********************************************************************/
149 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
150  {
151   public: 
152    AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
153                             Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
154    virtual ~AliHBTQSideResolVsKtFctn(){}
155    TH1* GetResult(){return this->GetNumerator();}
156    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
157    ClassDef(AliHBTQSideResolVsKtFctn,1)
158  };
159 /***********************************************************************/
160 /***********************************************************************/
161 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
162  {
163   public: 
164    AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
165                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
166    virtual ~AliHBTQLongResolVsKtFctn(){}
167
168    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
169    TH1* GetResult(){return this->GetNumerator();}
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) const;
182    TH1* GetResult(){return this->fNumerator;}  
183    ClassDef(AliHBTQOutResolVsQOutFctn,1)
184  };
185
186 /***********************************************************************/
187 /***********************************************************************/
188
189 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
190  {
191   public: 
192    AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2, 
193                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
194    virtual ~AliHBTQSideResolVsQSideFctn(){}
195
196    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
197    TH1* GetResult(){return this->fNumerator;}  
198    ClassDef(AliHBTQSideResolVsQSideFctn,1)
199  };
200
201 /***********************************************************************/
202 /***********************************************************************/
203
204 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
205  {
206   public: 
207    AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
208                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
209    virtual ~AliHBTQLongResolVsQLongFctn(){}
210
211    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
212    TH1* GetResult(){return this->fNumerator;}  
213    ClassDef(AliHBTQLongResolVsQLongFctn,1)
214  };
215 /***********************************************************************/
216 /***********************************************************************/
217
218 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
219  {
220   public: 
221    AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
222                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
223    
224    virtual ~AliHBTPairThetaResolVsQInvFctn(){}
225    
226    TH1* GetResult(){return this->fNumerator;}  
227    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
228    ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
229  };
230
231 /***********************************************************************/
232 /***********************************************************************/
233 class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
234  {
235   public: 
236    AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(), 
237                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
238    
239    virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
240    
241    TH1* GetResult(){return this->fNumerator;}  
242    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
243    ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
244  };
245
246
247 /***********************************************************************/
248 /***********************************************************************/
249 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
250  {
251   public: 
252    AliHBTPairPhiResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
253                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
254    
255    virtual ~AliHBTPairPhiResolVsQInvFctn(){}
256    
257    TH1* GetResult(){return this->fNumerator;}  
258    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
259    ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
260  };
261
262 /***********************************************************************/
263 /***********************************************************************/
264 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
265  {
266   public: 
267    AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
268                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
269    
270    virtual ~AliHBTPairThetaResolVsKtFctn(){}
271    
272    TH1* GetResult(){return this->fNumerator;}  
273    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
274    ClassDef(AliHBTPairThetaResolVsKtFctn,1)
275  };
276
277 /***********************************************************************/
278 /***********************************************************************/
279 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
280  {
281   public: 
282    AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
283                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
284    
285    virtual ~AliHBTPairPhiResolVsKtFctn(){}
286    
287    TH1* GetResult(){return this->fNumerator;}  
288    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
289    ClassDef(AliHBTPairPhiResolVsKtFctn,1)
290  };
291
292 /***********************************************************************/
293 /***********************************************************************/
294 class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
295  {
296   public: 
297    AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0, 
298                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
299    
300    virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
301    
302    TH1* GetResult(){return this->fNumerator;}  
303    void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
304    ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)
305  };
306
307
308 #endif