Updates in GRP Preprocessor (Ernesto)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTCorrelFctn.h
1 #ifndef ALIHBTCORRELFUNCTION_H
2 #define ALIHBTCORRELFUNCTION_H
3 //____________________________________________________________________________
4 //////////////////////////////////////////////////////////////////////////////
5 //
6 // class AliHBTQInvCorrelFctn
7 // class AliHBTQOutLCMSCorrelFctn
8 // class AliHBTQLongLCMSCorrelFctn
9 // class AliHBTQSideLCMSCorrelFctn
10 // class AliHBTInvMassCorrelFctn
11 // class AliHBTTwoKStarCorrelFctn
12 //
13 // Set of functions:
14 //   Q Invaraint Correlation Function
15 //   Invariant Mass Function
16 //
17 // more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
18 // Piotr.Skowronski@cern.ch
19 //
20 //////////////////////////////////////////////////////////////////////////////
21
22 #include "AliHBTFunction.h"
23 #include <Riostream.h>
24
25 /*************************************************************************************/ 
26 class AliHBTQInvCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
27 {
28 //Q Invaraint Correlation Function
29 //1D two particle function 
30  public:
31    AliHBTQInvCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
32    virtual ~AliHBTQInvCorrelFctn(){};
33    TH1* GetResult();
34  protected:
35    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
36  private:  
37    ClassDef(AliHBTQInvCorrelFctn,2)
38  
39 };
40 /*************************************************************/
41
42 class AliHBTOutSideLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
43 {
44
45   public:
46     AliHBTOutSideLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
47                           Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
48               Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
49     virtual  ~AliHBTOutSideLongFctn(){}
50
51     TH1* GetResult();
52  
53   protected:
54     void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z) const;
55     
56   ClassDef(AliHBTOutSideLongFctn,1)
57 };
58
59 /*************************************************************************************/ 
60
61 class AliHBTQOutLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
62 {
63 //Q OutLCMSaraint Correlation Function
64 //1D two particle function 
65  public:
66    AliHBTQOutLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
67    virtual ~AliHBTQOutLCMSCorrelFctn(){};
68    TH1* GetResult();
69  protected:
70    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQOutLCMS();}
71  private:  
72     ClassDef(AliHBTQOutLCMSCorrelFctn,2)
73 };
74 /*************************************************************************************/ 
75
76 class AliHBTQLongLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
77 {
78 //Q LongLCMSaraint Correlation Function
79 //1D two particle function 
80  public:
81    AliHBTQLongLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
82    virtual ~AliHBTQLongLCMSCorrelFctn(){};
83    TH1* GetResult();
84  protected:
85    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQLongLCMS();}
86  private:  
87     ClassDef(AliHBTQLongLCMSCorrelFctn,2)
88 };
89 /*************************************************************************************/ 
90
91 class AliHBTQtLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
92 {
93 //Q LongLCMSaraint Correlation Function
94 //1D two particle function 
95  public:
96    AliHBTQtLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
97    virtual ~AliHBTQtLCMSCorrelFctn(){};
98    TH1* GetResult();
99  protected:
100    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQtLCMS();}
101  private:  
102     ClassDef(AliHBTQtLCMSCorrelFctn,2)
103 };
104 /*************************************************************************************/ 
105
106 class AliHBTQSideLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
107 {
108 //Q SideLCMSaraint Correlation Function
109 //1D two particle function 
110  public:
111    AliHBTQSideLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
112    virtual ~AliHBTQSideLCMSCorrelFctn(){}
113    TH1* GetResult();
114  protected:
115    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQSideLCMS();}
116  private:  
117     ClassDef(AliHBTQSideLCMSCorrelFctn,2)
118 };
119 /*************************************************************************************/ 
120
121 class AliHBTQtCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
122 {
123 //Q Longaraint Correlation Function
124 //1D two particle function 
125  public:
126    AliHBTQtCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
127    virtual ~AliHBTQtCorrelFctn(){};
128    TH1* GetResult();
129  protected:
130    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQt();}
131  private:  
132     ClassDef(AliHBTQtCorrelFctn,1)
133 };
134 /*************************************************************************************/ 
135
136 class AliHBTInvMassCorrelFctn: public AliHBTOnePairFctn1D
137 {
138 //   Invariant Mass Function 
139  public:
140    AliHBTInvMassCorrelFctn(Int_t nbins = 2000, Double_t maxXval = 2., Double_t minXval = 0.0);
141    virtual ~AliHBTInvMassCorrelFctn(){};
142    TH1* GetResult();
143  protected:
144    Double_t GetValue(AliHBTPair * pair) const { return pair->GetInvMass();}
145  private:  
146     ClassDef(AliHBTInvMassCorrelFctn,1)
147 };
148
149 /*************************************************************************************/ 
150
151 class AliHBTTwoKStarCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
152 {
153 //   Correlation Function of 2*KStar
154  public:
155    AliHBTTwoKStarCorrelFctn(Int_t nbins = 200, Double_t maxXval = 0.15, Double_t minXval = 0.0);
156    virtual ~AliHBTTwoKStarCorrelFctn(){};
157    TH1* GetResult();
158  protected:
159    Double_t GetValue(AliHBTPair * pair) const { return 2.0*pair->GetKStar();}
160  private:  
161     ClassDef(AliHBTTwoKStarCorrelFctn,2)
162 };
163
164 /*************************************************************************************/ 
165
166 class AliHBTAvSeparCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
167 {
168 //   Correlation Function of 2*KStar
169  public:
170    AliHBTAvSeparCorrelFctn(Int_t nbins = 200, Double_t maxXval = 30, Double_t minXval = 0.0);
171    virtual ~AliHBTAvSeparCorrelFctn(){};
172    TH1* GetResult();
173  protected:
174    Double_t GetValue(AliHBTPair * pair) const { return pair->GetAvarageDistance();}
175  private:  
176     ClassDef(AliHBTAvSeparCorrelFctn,2)
177 };
178
179 /*************************************************************************************/ 
180
181 class AliHBTAvSeparVsQInvCorrelFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
182 {
183 //   Correlation Function of 2*KStar
184  public:
185    AliHBTAvSeparVsQInvCorrelFctn(Int_t nXbins = 10, Double_t maxXval = 0.05, Double_t minXval = 0.,
186                            Int_t nYbins = 20, Double_t maxYval = 20, Double_t minYval = 0.0);
187    virtual ~AliHBTAvSeparVsQInvCorrelFctn(){};
188    TH1* GetResult();
189  protected:
190    void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
191     {
192      y = pair->GetAvarageDistance();
193      x = pair->GetQInv();
194     }
195  private:  
196     ClassDef(AliHBTAvSeparVsQInvCorrelFctn,1)
197 };
198 /*************************************************************************************/ 
199 /*************************************************************************************/ 
200 /*************************************************************************************/ 
201
202 class AliHBTQOutQSideFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
203 {
204
205   //  friend class AliHBTOnePairFctn1D;
206  public:
207   AliHBTQOutQSideFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
208                       Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
209   virtual ~AliHBTQOutQSideFctn(){};
210   TH1* GetResult();
211       
212  protected:
213    void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
214     {
215      y = pair->GetQSideLCMS();
216      x = pair->GetQOutLCMS();
217     }
218   ClassDef(AliHBTQOutQSideFctn,1)
219  
220 };
221 /*************************************************************************************/ 
222
223 class AliHBTQOutQLongFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
224 {
225
226   //  friend class AliHBTOnePairFctn1D;
227  public:
228   AliHBTQOutQLongFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
229                               Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
230   virtual ~AliHBTQOutQLongFctn(){};
231   TH1* GetResult();
232       
233  protected:
234    void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
235     {
236      y = pair->GetQLongLCMS();
237      x = pair->GetQOutLCMS();
238     }
239   ClassDef(AliHBTQOutQLongFctn,1)
240  
241 };
242 /*************************************************************************************/ 
243
244 class AliHBTQSideQLongFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
245 {
246
247   //  friend class AliHBTOnePairFctn1D;
248  public:
249   AliHBTQSideQLongFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
250                              Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
251   virtual ~AliHBTQSideQLongFctn(){};
252   TH1* GetResult();
253       
254  protected:
255    void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
256     {
257      y = pair->GetQLongLCMS();
258      x = pair->GetQSideLCMS();
259     }
260   ClassDef(AliHBTQSideQLongFctn,1)
261  
262 };
263
264 #endif
265
266
267