1 #ifndef ALIHBTQRESOLUTIONFCTNS_H
2 #define ALIHBTQRESOLUTIONFCTNS_H
3 //__________________________________________________________________
4 ////////////////////////////////////////////////////////////////////
8 // Center of Mass System Longitudially Co-moving //
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 //
18 ////////////////////////////////////////////////////////////////////
21 class AliHBTKtResolVsQInvFctn; //Kt Res Vs QInvCMSLC
23 class AliHBTQOutResolVsQInvFctn; //QOutCMSLC Res Vs QInvCMSLC
24 class AliHBTQSideResolVsQInvFctn; //QSideCMSLC Res Vs QInvCMSLC
25 class AliHBTQLongResolVsQInvFctn; //QLongCMSLC Res Vs QInvCMSLC
26 class AliHBTQInvResolVsQInvFctn; //QInvCMSLC Res Vs QInvCMSLC
28 class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res Vs QInvCMSLC
29 class AliHBTPairPhiResolVsQInvFctn; //PairPhi Res Vs QInvCMSLC
31 class AliHBTQInvResolVsKtFctn; //QInvCMSLC Res Vs Kt
32 class AliHBTQOutResolVsKtFctn; //QOutCMSLC Res Vs Kt
33 class AliHBTQSideResolVsKtFctn; //QSideCMSLC Res Vs Kt
34 class AliHBTQLongResolVsKtFctn; //QLongCMSLC Res Vs Kt
36 class AliHBTPairThetaResolVsKtFctn; //PairTheta Res Vs Kt
37 class AliHBTPairPhiResolVsKtFctn; //PairPhi Res Vs Kt
40 class AliHBTQOutResolVsQOutFctn; //QOutCMSLC Res Vs QOut
41 class AliHBTQSideResolVsQSideFctn;//QSideCMSLC Res Vs QSide
42 class AliHBTQLongResolVsQLongFctn;//QLongCMSLC Res Vs QLong
46 #include "AliHBTFunction.h"
47 /***********************************************************************/
48 /***********************************************************************/
49 class AliHBTKtResolVsQInvFctn: public AliHBTTwoPairFctn2D
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);
55 virtual ~AliHBTKtResolVsQInvFctn(){}
57 TH1* GetResult(){return fNumerator;}
58 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
60 y = partpair->GetKt() - trackpair->GetKt();
61 x = partpair->GetQInv();
63 ClassDef(AliHBTKtResolVsQInvFctn,1)
67 /***********************************************************************/
68 /***********************************************************************/
69 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
72 AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
73 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
75 virtual ~AliHBTQInvResolVsQInvFctn(){}
77 TH1* GetResult(){return fNumerator;}
78 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
80 y = partpair->GetQInv() - trackpair->GetQInv();
81 x = partpair->GetQInv();
83 ClassDef(AliHBTQInvResolVsQInvFctn,1)
87 /***********************************************************************/
88 /***********************************************************************/
89 class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
92 AliHBTQOutResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
93 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
95 virtual ~AliHBTQOutResolVsQInvFctn(){}
97 TH1* GetResult(){return fNumerator;}
98 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
99 ClassDef(AliHBTQOutResolVsQInvFctn,1)
102 /***********************************************************************/
103 /***********************************************************************/
104 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
107 AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
108 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
109 virtual ~AliHBTQSideResolVsQInvFctn(){}
111 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
112 TH1* GetResult(){return fNumerator;}
113 ClassDef(AliHBTQSideResolVsQInvFctn,1)
116 /***********************************************************************/
117 /***********************************************************************/
118 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
121 AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
122 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
123 virtual ~AliHBTQLongResolVsQInvFctn(){}
125 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
126 TH1* GetResult(){return fNumerator;}
127 ClassDef(AliHBTQLongResolVsQInvFctn,1)
130 /***********************************************************************/
131 /***********************************************************************/
132 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
135 AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
136 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
137 virtual ~AliHBTQInvResolVsKtFctn(){};
139 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
140 {y = partpair->GetQInv() - trackpair->GetQInv();x = partpair->GetKt();}
141 TH1* GetResult(){return fNumerator;}
142 ClassDef(AliHBTQInvResolVsKtFctn,1)
144 /***********************************************************************/
145 /***********************************************************************/
146 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
149 AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
150 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
151 virtual ~AliHBTQOutResolVsKtFctn(){}
152 TH1* GetResult(){return GetNumerator();}
153 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
154 ClassDef(AliHBTQOutResolVsKtFctn,1)
156 /***********************************************************************/
157 /***********************************************************************/
158 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
161 AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
162 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
163 virtual ~AliHBTQSideResolVsKtFctn(){}
164 TH1* GetResult(){return GetNumerator();}
165 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
166 ClassDef(AliHBTQSideResolVsKtFctn,1)
168 /***********************************************************************/
169 /***********************************************************************/
170 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
173 AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
174 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
175 virtual ~AliHBTQLongResolVsKtFctn(){}
177 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
178 TH1* GetResult(){return fNumerator;}
179 ClassDef(AliHBTQLongResolVsKtFctn,1)
181 /***********************************************************************/
182 /***********************************************************************/
183 class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
186 AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
187 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
188 virtual ~AliHBTQOutResolVsQOutFctn(){}
190 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
191 {x = partpair->GetQOutCMSLC();y = x - trackpair->GetQOutCMSLC();}
193 TH1* GetResult(){return fNumerator;}
194 ClassDef(AliHBTQOutResolVsQOutFctn,1)
197 /***********************************************************************/
198 /***********************************************************************/
200 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
203 AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
204 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
205 virtual ~AliHBTQSideResolVsQSideFctn(){}
207 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
208 {x = partpair->GetQSideCMSLC(); y = x - trackpair->GetQSideCMSLC();}
210 TH1* GetResult(){return fNumerator;}
211 ClassDef(AliHBTQSideResolVsQSideFctn,1)
214 /***********************************************************************/
215 /***********************************************************************/
217 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
220 AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
221 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
222 virtual ~AliHBTQLongResolVsQLongFctn(){}
224 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
225 {x = partpair->GetQLongCMSLC(); y = x - trackpair->GetQLongCMSLC();}
227 TH1* GetResult(){return fNumerator;}
228 ClassDef(AliHBTQLongResolVsQLongFctn,1)
230 /***********************************************************************/
231 /***********************************************************************/
233 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
236 AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
237 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
239 virtual ~AliHBTPairThetaResolVsQInvFctn(){}
241 TH1* GetResult(){return fNumerator;}
242 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
243 ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
246 /***********************************************************************/
247 /***********************************************************************/
248 class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
251 AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(),
252 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
254 virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
256 TH1* GetResult(){return fNumerator;}
257 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
258 ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
262 /***********************************************************************/
263 /***********************************************************************/
264 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
267 AliHBTPairPhiResolVsQInvFctn(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);
270 virtual ~AliHBTPairPhiResolVsQInvFctn(){}
272 TH1* GetResult(){return fNumerator;}
273 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
275 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
276 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
277 y = partPhi - trackPhi;
278 x = partpair->GetQInv();
280 ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
283 /***********************************************************************/
284 /***********************************************************************/
285 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
288 AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
289 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
291 virtual ~AliHBTPairThetaResolVsKtFctn(){}
293 TH1* GetResult(){return fNumerator;}
294 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
296 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
297 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
298 y = partTheta - trackTheta;
299 x = partpair->GetKt();
301 ClassDef(AliHBTPairThetaResolVsKtFctn,1)
304 /***********************************************************************/
305 /***********************************************************************/
306 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
309 AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
310 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
312 virtual ~AliHBTPairPhiResolVsKtFctn(){}
314 TH1* GetResult(){return fNumerator;}
315 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
317 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
318 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
319 y = partPhi - trackPhi;
320 x = partpair->GetKt();
322 ClassDef(AliHBTPairPhiResolVsKtFctn,1)
326 /***********************************************************************/
327 /***********************************************************************/
328 class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
331 AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0,
332 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
334 virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
336 TH1* GetResult(){return fNumerator;}
337 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
339 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
340 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
341 y = partPhi - trackPhi;
344 ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)