09159c91ed48994acf27068f5c5216c44c195d05
[u/mrichter/AliRoot.git] / HBTAN / AliHBTCorrelFctn.h
1 #ifndef ALIHBTCORRELFUNCTION_H
2 #define ALIHBTCORRELFUNCTION_H
3 //____________________________________________________________________________
4 //////////////////////////////////////////////////////////////////////////////
5 //
6 // class AliHBTQInvCorrelFctn
7 // class AliHBTQOutCMSLCCorrelFctn
8 // class AliHBTQLongCMSLCCorrelFctn
9 // class AliHBTQSideCMSLCCorrelFctn
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){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)
55       { x=TMath::Abs(pair->GetQOutCMSLC()); y=TMath::Abs(pair->GetQSideCMSLC()); z=TMath::Abs(pair->GetQLongCMSLC());} 
56
57   ClassDef(AliHBTOutSideLongFctn,1)
58 };
59
60 /*************************************************************************************/ 
61
62 class AliHBTQOutCMSLCCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
63 {
64 //Q OutCMSLCaraint Correlation Function
65 //1D two particle function 
66  public:
67    AliHBTQOutCMSLCCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
68    virtual ~AliHBTQOutCMSLCCorrelFctn(){};
69    TH1* GetResult();
70  protected:
71    Double_t GetValue(AliHBTPair * pair){return pair->GetQOutCMSLC();}
72  private:  
73     ClassDef(AliHBTQOutCMSLCCorrelFctn,2)
74 };
75 /*************************************************************************************/ 
76
77 class AliHBTQLongCMSLCCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
78 {
79 //Q LongCMSLCaraint Correlation Function
80 //1D two particle function 
81  public:
82    AliHBTQLongCMSLCCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
83    virtual ~AliHBTQLongCMSLCCorrelFctn(){};
84    TH1* GetResult();
85  protected:
86    Double_t GetValue(AliHBTPair * pair){return pair->GetQLongCMSLC();}
87  private:  
88     ClassDef(AliHBTQLongCMSLCCorrelFctn,2)
89 };
90 /*************************************************************************************/ 
91
92 class AliHBTQSideCMSLCCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
93 {
94 //Q SideCMSLCaraint Correlation Function
95 //1D two particle function 
96  public:
97    AliHBTQSideCMSLCCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
98    virtual ~AliHBTQSideCMSLCCorrelFctn(){}
99    TH1* GetResult();
100  protected:
101    Double_t GetValue(AliHBTPair * pair){return pair->GetQSideCMSLC();}
102  private:  
103     ClassDef(AliHBTQSideCMSLCCorrelFctn,2)
104 };
105 /*************************************************************************************/ 
106
107 class AliHBTInvMassCorrelFctn: public AliHBTOnePairFctn1D
108 {
109 //   Invariant Mass Function 
110  public:
111    AliHBTInvMassCorrelFctn(Int_t nbins = 2000, Double_t maxXval = 2., Double_t minXval = 0.0);
112    virtual ~AliHBTInvMassCorrelFctn(){};
113    TH1* GetResult();
114  protected:
115    Double_t GetValue(AliHBTPair * pair) { return pair->GetInvMass();}
116  private:  
117     ClassDef(AliHBTInvMassCorrelFctn,1)
118 };
119
120 /*************************************************************************************/ 
121
122 class AliHBTTwoKStarCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
123 {
124 //   Correlation Function of 2*KStar
125  public:
126    AliHBTTwoKStarCorrelFctn(Int_t nbins = 200, Double_t maxXval = 0.15, Double_t minXval = 0.0);
127    virtual ~AliHBTTwoKStarCorrelFctn(){};
128    TH1* GetResult();
129  protected:
130    Double_t GetValue(AliHBTPair * pair) { return 2.0*pair->GetKStar();}
131  private:  
132     ClassDef(AliHBTTwoKStarCorrelFctn,2)
133 };
134
135 #endif