]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTCorrelFctn.h
Separated TOF libraries (base,rec,sim)
[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     void UseAbsoluteValues(Bool_t flag){fAbs = flag;}
53  
54   protected:
55     void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z) const;
56     
57     Bool_t fAbs;//flag indicating if absolute values of qout, qside and qlong should be histogrammed
58   ClassDef(AliHBTOutSideLongFctn,1)
59 };
60
61 /*************************************************************************************/ 
62
63 class AliHBTQOutLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
64 {
65 //Q OutLCMSaraint Correlation Function
66 //1D two particle function 
67  public:
68    AliHBTQOutLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
69    virtual ~AliHBTQOutLCMSCorrelFctn(){};
70    TH1* GetResult();
71  protected:
72    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQOutLCMS();}
73  private:  
74     ClassDef(AliHBTQOutLCMSCorrelFctn,2)
75 };
76 /*************************************************************************************/ 
77
78 class AliHBTQLongLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
79 {
80 //Q LongLCMSaraint Correlation Function
81 //1D two particle function 
82  public:
83    AliHBTQLongLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
84    virtual ~AliHBTQLongLCMSCorrelFctn(){};
85    TH1* GetResult();
86  protected:
87    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQLongLCMS();}
88  private:  
89     ClassDef(AliHBTQLongLCMSCorrelFctn,2)
90 };
91 /*************************************************************************************/ 
92
93 class AliHBTQtLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
94 {
95 //Q LongLCMSaraint Correlation Function
96 //1D two particle function 
97  public:
98    AliHBTQtLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
99    virtual ~AliHBTQtLCMSCorrelFctn(){};
100    TH1* GetResult();
101  protected:
102    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQtLCMS();}
103  private:  
104     ClassDef(AliHBTQtLCMSCorrelFctn,2)
105 };
106 /*************************************************************************************/ 
107
108 class AliHBTQSideLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
109 {
110 //Q SideLCMSaraint Correlation Function
111 //1D two particle function 
112  public:
113    AliHBTQSideLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
114    virtual ~AliHBTQSideLCMSCorrelFctn(){}
115    TH1* GetResult();
116  protected:
117    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQSideLCMS();}
118  private:  
119     ClassDef(AliHBTQSideLCMSCorrelFctn,2)
120 };
121 /*************************************************************************************/ 
122
123 class AliHBTQtCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
124 {
125 //Q Longaraint Correlation Function
126 //1D two particle function 
127  public:
128    AliHBTQtCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
129    virtual ~AliHBTQtCorrelFctn(){};
130    TH1* GetResult();
131  protected:
132    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQt();}
133  private:  
134     ClassDef(AliHBTQtCorrelFctn,1)
135 };
136 /*************************************************************************************/ 
137
138 class AliHBTInvMassCorrelFctn: public AliHBTOnePairFctn1D
139 {
140 //   Invariant Mass Function 
141  public:
142    AliHBTInvMassCorrelFctn(Int_t nbins = 2000, Double_t maxXval = 2., Double_t minXval = 0.0);
143    virtual ~AliHBTInvMassCorrelFctn(){};
144    TH1* GetResult();
145  protected:
146    Double_t GetValue(AliHBTPair * pair) const { return pair->GetInvMass();}
147  private:  
148     ClassDef(AliHBTInvMassCorrelFctn,1)
149 };
150
151 /*************************************************************************************/ 
152
153 class AliHBTTwoKStarCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
154 {
155 //   Correlation Function of 2*KStar
156  public:
157    AliHBTTwoKStarCorrelFctn(Int_t nbins = 200, Double_t maxXval = 0.15, Double_t minXval = 0.0);
158    virtual ~AliHBTTwoKStarCorrelFctn(){};
159    TH1* GetResult();
160  protected:
161    Double_t GetValue(AliHBTPair * pair) const { return 2.0*pair->GetKStar();}
162  private:  
163     ClassDef(AliHBTTwoKStarCorrelFctn,2)
164 };
165
166 /*************************************************************************************/ 
167
168 class AliHBTAvSeparCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
169 {
170 //   Correlation Function of 2*KStar
171  public:
172    AliHBTAvSeparCorrelFctn(Int_t nbins = 200, Double_t maxXval = 30, Double_t minXval = 0.0);
173    virtual ~AliHBTAvSeparCorrelFctn(){};
174    TH1* GetResult();
175  protected:
176    Double_t GetValue(AliHBTPair * pair) const { return pair->GetAvarageDistance();}
177  private:  
178     ClassDef(AliHBTAvSeparCorrelFctn,2)
179 };
180
181 #endif