1 #ifndef ALIHBTQOUTVsQINVRESOLFCTN_H
2 #define ALIHBTQOUTVsQINVRESOLFCTN_H
5 //Center of Mass System Longitudially Co-moving
8 //this class creates resolution function of Qout
9 //(difference of simulated pair Qout and recontructed pair)
11 //it inherits from AliHBTTwoPairFctn2D
12 // it needs two pairs to compare
13 // and is two dimentional: numerator and denominator are TH2D
15 class AliHBTKtResolVsQInvFctn; //Kt Res Vs QInvCMSLC
17 class AliHBTQOutResolVsQInvFctn; //QOutCMSLC Res Vs QInvCMSLC
18 class AliHBTQSideResolVsQInvFctn; //QSideCMSLC Res Vs QInvCMSLC
19 class AliHBTQLongResolVsQInvFctn; //QLongCMSLC Res Vs QInvCMSLC
20 class AliHBTQInvResolVsQInvFctn; //QInvCMSLC Res Vs QInvCMSLC
22 class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res Vs QInvCMSLC
23 class AliHBTPairPhiResolVsQInvFctn; //PairPhi Res Vs QInvCMSLC
25 class AliHBTQInvResolVsKtFctn; //QInvCMSLC Res Vs Kt
26 class AliHBTQOutResolVsKtFctn; //QOutCMSLC Res Vs Kt
27 class AliHBTQSideResolVsKtFctn; //QSideCMSLC Res Vs Kt
28 class AliHBTQLongResolVsKtFctn; //QLongCMSLC Res Vs Kt
30 class AliHBTPairThetaResolVsKtFctn; //PairTheta Res Vs Kt
31 class AliHBTPairPhiResolVsKtFctn; //PairPhi Res Vs Kt
34 class AliHBTQOutResolVsQOutFctn; //QOutCMSLC Res Vs QOut
35 class AliHBTQSideResolVsQSideFctn;//QSideCMSLC Res Vs QSide
36 class AliHBTQLongResolVsQLongFctn;//QLongCMSLC Res Vs QLong
40 #include "AliHBTFunction.h"
41 /***********************************************************************/
42 /***********************************************************************/
43 class AliHBTKtResolVsQInvFctn: public AliHBTTwoPairFctn2D
46 AliHBTKtResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
47 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
49 virtual ~AliHBTKtResolVsQInvFctn(){}
51 TH1* GetResult(){return fNumerator;}
52 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
54 y = partpair->GetKt() - trackpair->GetKt();
55 x = partpair->GetQInv();
60 ClassDef(AliHBTKtResolVsQInvFctn,1)
64 /***********************************************************************/
65 /***********************************************************************/
66 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
69 AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
70 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
72 virtual ~AliHBTQInvResolVsQInvFctn(){}
74 TH1* GetResult(){return fNumerator;}
75 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
77 y = partpair->GetQInv() - trackpair->GetQInv();
78 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)
100 y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
101 x = partpair->GetQInv();
106 ClassDef(AliHBTQOutResolVsQInvFctn,1)
109 /***********************************************************************/
110 /***********************************************************************/
111 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
114 AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
115 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
116 virtual ~AliHBTQSideResolVsQInvFctn(){}
118 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
120 y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
121 x = partpair->GetQInv();
123 TH1* GetResult(){return fNumerator;}
127 ClassDef(AliHBTQSideResolVsQInvFctn,1)
130 /***********************************************************************/
131 /***********************************************************************/
132 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
135 AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
136 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
137 virtual ~AliHBTQLongResolVsQInvFctn(){}
139 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
141 y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
142 x = partpair->GetQInv();
144 TH1* GetResult(){return fNumerator;}
148 ClassDef(AliHBTQLongResolVsQInvFctn,1)
151 /***********************************************************************/
152 /***********************************************************************/
153 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
156 AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
157 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
158 virtual ~AliHBTQInvResolVsKtFctn(){};
160 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
162 y = partpair->GetQInv() - trackpair->GetQInv();
163 x = partpair->GetKt();
165 TH1* GetResult(){return fNumerator;}
169 ClassDef(AliHBTQInvResolVsKtFctn,1)
171 /***********************************************************************/
172 /***********************************************************************/
173 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
176 AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
177 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
178 virtual ~AliHBTQOutResolVsKtFctn(){}
179 TH1* GetResult(){return GetNumerator();}
180 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
182 y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
183 x = partpair->GetKt();
188 ClassDef(AliHBTQOutResolVsKtFctn,1)
190 /***********************************************************************/
191 /***********************************************************************/
192 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
195 AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
196 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
197 virtual ~AliHBTQSideResolVsKtFctn(){}
198 TH1* GetResult(){return GetNumerator();}
199 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
201 y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
202 x = partpair->GetKt();
207 ClassDef(AliHBTQSideResolVsKtFctn,1)
209 /***********************************************************************/
210 /***********************************************************************/
211 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
214 AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
215 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
216 virtual ~AliHBTQLongResolVsKtFctn(){}
218 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
220 y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
221 x = partpair->GetKt();
223 TH1* GetResult(){return fNumerator;}
227 ClassDef(AliHBTQLongResolVsKtFctn,1)
229 /***********************************************************************/
230 /***********************************************************************/
231 class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
234 AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
235 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
236 virtual ~AliHBTQOutResolVsQOutFctn(){}
238 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
240 x = partpair->GetQOutCMSLC();
241 y = x - trackpair->GetQOutCMSLC();
243 TH1* GetResult(){return fNumerator;}
247 ClassDef(AliHBTQOutResolVsQOutFctn,1)
250 /***********************************************************************/
251 /***********************************************************************/
253 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
256 AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
257 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
258 virtual ~AliHBTQSideResolVsQSideFctn(){}
260 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
262 x = partpair->GetQSideCMSLC();
263 y = x - trackpair->GetQSideCMSLC();
265 TH1* GetResult(){return fNumerator;}
269 ClassDef(AliHBTQSideResolVsQSideFctn,1)
273 /***********************************************************************/
274 /***********************************************************************/
276 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
279 AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
280 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
281 virtual ~AliHBTQLongResolVsQLongFctn(){}
283 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
285 x = partpair->GetQLongCMSLC();
286 y = x - trackpair->GetQLongCMSLC();
288 TH1* GetResult(){return fNumerator;}
292 ClassDef(AliHBTQLongResolVsQLongFctn,1)
296 /***********************************************************************/
297 /***********************************************************************/
298 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
301 AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
302 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
304 virtual ~AliHBTPairThetaResolVsQInvFctn(){}
306 TH1* GetResult(){return fNumerator;}
307 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
309 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
310 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
311 y = partTheta - trackTheta;
312 x = partpair->GetQInv();
317 ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
320 /***********************************************************************/
321 /***********************************************************************/
322 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
325 AliHBTPairPhiResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
326 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
328 virtual ~AliHBTPairPhiResolVsQInvFctn(){}
330 TH1* GetResult(){return fNumerator;}
331 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
333 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
334 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
335 y = partPhi - trackPhi;
336 x = partpair->GetQInv();
341 ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
344 /***********************************************************************/
345 /***********************************************************************/
346 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
349 AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
350 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
352 virtual ~AliHBTPairThetaResolVsKtFctn(){}
354 TH1* GetResult(){return fNumerator;}
355 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
357 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
358 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
359 y = partTheta - trackTheta;
360 x = partpair->GetKt();
365 ClassDef(AliHBTPairThetaResolVsKtFctn,1)
368 /***********************************************************************/
369 /***********************************************************************/
370 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
373 AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
374 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
376 virtual ~AliHBTPairPhiResolVsKtFctn(){}
378 TH1* GetResult(){return fNumerator;}
379 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
381 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
382 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
383 y = partPhi - trackPhi;
384 x = partpair->GetKt();
389 ClassDef(AliHBTPairPhiResolVsKtFctn,1)