Updated PaintContour() method
[u/mrichter/AliRoot.git] / HBTAN / AliHBTWeightFctn.h
1 #ifndef ALIHBTWeightQINVFCTN_H
2 #define ALIHBTWeightQINVFCTN_H
3
4 /* $Id$ */
5 //_________________________________________________________________________
6 //
7 // class AliHBTWeightQInvFctn
8 // class AliHBTWeightQOutFctn
9 // class AliHBTWeightQSideFctn
10 // class AliHBTWeightQLongFctn
11 // 
12 // This class allows to obtain Q_inv correlation function with weights
13 // calculated by Lednicky's alghorithm.
14 // Numerator is filled with weighted events. Weights are attributed to reconstructed tracks.
15 // Weights are calculated with corresponding simulated particles momenta.
16 // Denominator is filled with mixing unweighted reconstructed tracks.
17 // One needs both pairs 
18 // (simulated and recontructed), thus function is of class AliHBTTwoPairFctn1D.
19 // Author: Ludmila Malinina, JINR (malinina@sunhe.jinr.ru)
20 //
21 ////////////////////////////////////////////////////////////////////////////////
22
23 #include "AliHBTFunction.h"
24
25
26 class AliHBTWeights;
27
28 class AliHBTWeightQInvFctn: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
29 {
30  public:
31   AliHBTWeightQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
32   virtual  ~AliHBTWeightQInvFctn(){};
33   TH1* GetResult(); 
34   
35   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
36   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
37   
38  protected:
39   Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) const
40     { return trackpair->GetQInv()-partpair->GetQInv();} //isn't use                                                                    
41   ClassDef(AliHBTWeightQInvFctn,3)
42 };
43 /*************************************************************************************/ 
44
45 class AliHBTWeightQOutFctn: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
46 {
47
48   //  friend class AliHBTOnePairFctn1D;
49  public:
50   AliHBTWeightQOutFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
51   virtual ~AliHBTWeightQOutFctn(){};
52   TH1* GetResult();
53   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
54   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
55       
56  protected:
57   Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) const
58     { return trackpair->GetQOutLCMS()-partpair->GetQOutLCMS();} //isn't use                                                                    
59   ClassDef(AliHBTWeightQOutFctn,3)
60  
61 };
62 /*************************************************************************************/ 
63   
64 class AliHBTWeightQLongFctn: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
65 {
66   //  friend class AliHBTOnePairFctn1D;
67  public:
68   AliHBTWeightQLongFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
69   virtual ~AliHBTWeightQLongFctn(){};
70   TH1* GetResult();
71   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
72   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
73   
74  protected:
75   Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) const
76     { return trackpair->GetQLongLCMS()-partpair->GetQLongLCMS();} //isn't used
77
78   ClassDef(AliHBTWeightQLongFctn,3)
79  
80 };
81 /*************************************************************************************/ 
82   
83 class AliHBTWeightQSideFctn: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
84 {
85   // friend class AliHBTOnePairFctn1D;
86  public:
87   AliHBTWeightQSideFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
88   virtual ~AliHBTWeightQSideFctn(){};
89   TH1* GetResult();
90   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
91   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
92       
93  protected:
94   Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) const
95     { return trackpair->GetQLongLCMS()-partpair->GetQLongLCMS();} //isn't used
96
97   ClassDef(AliHBTWeightQSideFctn,3) 
98 };
99 /*************************************************************************************/ 
100   
101 class AliHBTWeightTwoKStarFctn: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
102 {
103   // friend class AliHBTOnePairFctn1D;
104  public:
105   AliHBTWeightTwoKStarFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
106   virtual ~AliHBTWeightTwoKStarFctn(){};
107   TH1* GetResult();
108   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
109   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
110       
111  protected:
112   Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) const
113     { return trackpair->GetKStar()-partpair->GetKStar();} //isn't used
114   ClassDef(AliHBTWeightTwoKStarFctn,3) 
115
116 };
117 /*************************************************************************************/ 
118
119 class AliHBTWeightQOutQSideFctn: public AliHBTTwoPairFctn2D, public AliHBTCorrelFunction
120 {
121
122   //  friend class AliHBTOnePairFctn1D;
123  public:
124   AliHBTWeightQOutQSideFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
125                               Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
126   virtual ~AliHBTWeightQOutQSideFctn(){};
127   TH1* GetResult();
128   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
129   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
130       
131  protected:
132   void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/) const{}
133   ClassDef(AliHBTWeightQOutQSideFctn,3)
134  
135 };
136 /*************************************************************************************/ 
137
138 class AliHBTWeightQOutQLongFctn: public AliHBTTwoPairFctn2D, public AliHBTCorrelFunction
139 {
140
141   //  friend class AliHBTOnePairFctn1D;
142  public:
143   AliHBTWeightQOutQLongFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
144                               Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
145   virtual ~AliHBTWeightQOutQLongFctn(){};
146   TH1* GetResult();
147   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
148   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
149       
150  protected:
151   void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/) const{}
152   ClassDef(AliHBTWeightQOutQLongFctn,3)
153  
154 };
155 /*************************************************************************************/ 
156
157 class AliHBTWeightQSideQLongFctn: public AliHBTTwoPairFctn2D, public AliHBTCorrelFunction
158 {
159
160   //  friend class AliHBTOnePairFctn1D;
161  public:
162   AliHBTWeightQSideQLongFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
163                              Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
164   virtual ~AliHBTWeightQSideQLongFctn(){};
165   TH1* GetResult();
166   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
167   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
168       
169  protected:
170   void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/) const{}
171   ClassDef(AliHBTWeightQSideQLongFctn,3)
172  
173 };
174 /*************************************************************************************/ 
175
176 class AliHBTWeightQOutSQideQLongFctn: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
177 {
178
179   public:
180     AliHBTWeightQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.3, Double_t minXval = 0.0,
181                                 Int_t nYbins = 100, Double_t maxYval = 0.3, Double_t minYval = 0.0,
182                                 Int_t nZbins = 100, Double_t maxZval = 0.3, Double_t minZval = 0.0);
183     virtual  ~AliHBTWeightQOutSQideQLongFctn(){}
184
185     TH1* GetResult();
186   void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
187   void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
188   
189   protected:
190     void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, 
191                    Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/)  const{ } 
192
193     ClassDef(AliHBTWeightQOutSQideQLongFctn,1)
194 };
195
196
197 #endif