1 #ifndef ALIHBTQOUTVsQINVRESOLFCTN_H
2 #define ALIHBTQOUTVsQINVRESOLFCTN_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();
65 ClassDef(AliHBTKtResolVsQInvFctn,1)
69 /***********************************************************************/
70 /***********************************************************************/
71 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
74 AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
75 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
77 virtual ~AliHBTQInvResolVsQInvFctn(){}
79 TH1* GetResult(){return fNumerator;}
80 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
82 y = partpair->GetQInv() - trackpair->GetQInv();
83 x = partpair->GetQInv();
87 ClassDef(AliHBTQInvResolVsQInvFctn,1)
91 /***********************************************************************/
92 /***********************************************************************/
93 class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
96 AliHBTQOutResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
97 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
99 virtual ~AliHBTQOutResolVsQInvFctn(){}
101 TH1* GetResult(){return fNumerator;}
102 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
104 Double_t tqout = trackpair->GetQOutCMSLC();
105 y = partpair->GetQOutCMSLC() - tqout;
106 if (tqout < 0.0) y = -y;
107 x = partpair->GetQInv();
111 ClassDef(AliHBTQOutResolVsQInvFctn,1)
114 /***********************************************************************/
115 /***********************************************************************/
116 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
119 AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
120 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
121 virtual ~AliHBTQSideResolVsQInvFctn(){}
123 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
125 y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
126 if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
127 x = partpair->GetQInv();
129 TH1* GetResult(){return fNumerator;}
132 ClassDef(AliHBTQSideResolVsQInvFctn,1)
135 /***********************************************************************/
136 /***********************************************************************/
137 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
140 AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
141 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
142 virtual ~AliHBTQLongResolVsQInvFctn(){}
144 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
146 y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
147 if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
148 x = partpair->GetQInv();
150 TH1* GetResult(){return fNumerator;}
153 ClassDef(AliHBTQLongResolVsQInvFctn,1)
156 /***********************************************************************/
157 /***********************************************************************/
158 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
161 AliHBTQInvResolVsKtFctn(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 ~AliHBTQInvResolVsKtFctn(){};
165 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
167 y = partpair->GetQInv() - trackpair->GetQInv();
168 x = partpair->GetKt();
170 TH1* GetResult(){return fNumerator;}
173 ClassDef(AliHBTQInvResolVsKtFctn,1)
175 /***********************************************************************/
176 /***********************************************************************/
177 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
180 AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
181 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
182 virtual ~AliHBTQOutResolVsKtFctn(){}
183 TH1* GetResult(){return GetNumerator();}
184 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
186 y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
187 if (trackpair->GetQOutCMSLC() < 0.0) y = -y;
188 x = partpair->GetKt();
192 ClassDef(AliHBTQOutResolVsKtFctn,1)
194 /***********************************************************************/
195 /***********************************************************************/
196 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
199 AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
200 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
201 virtual ~AliHBTQSideResolVsKtFctn(){}
202 TH1* GetResult(){return GetNumerator();}
203 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
205 y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
206 if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
207 x = partpair->GetKt();
211 ClassDef(AliHBTQSideResolVsKtFctn,1)
213 /***********************************************************************/
214 /***********************************************************************/
215 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
218 AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
219 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
220 virtual ~AliHBTQLongResolVsKtFctn(){}
222 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
224 y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
225 if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
226 x = partpair->GetKt();
228 TH1* GetResult(){return fNumerator;}
231 ClassDef(AliHBTQLongResolVsKtFctn,1)
233 /***********************************************************************/
234 /***********************************************************************/
235 class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
238 AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
239 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
240 virtual ~AliHBTQOutResolVsQOutFctn(){}
242 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
244 x = partpair->GetQOutCMSLC();
245 y = x - trackpair->GetQOutCMSLC();
247 TH1* GetResult(){return fNumerator;}
250 ClassDef(AliHBTQOutResolVsQOutFctn,1)
253 /***********************************************************************/
254 /***********************************************************************/
256 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
259 AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
260 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
261 virtual ~AliHBTQSideResolVsQSideFctn(){}
263 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
265 x = partpair->GetQSideCMSLC();
266 y = x - trackpair->GetQSideCMSLC();
268 TH1* GetResult(){return fNumerator;}
271 ClassDef(AliHBTQSideResolVsQSideFctn,1)
275 /***********************************************************************/
276 /***********************************************************************/
278 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
281 AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
282 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
283 virtual ~AliHBTQLongResolVsQLongFctn(){}
285 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
287 x = partpair->GetQLongCMSLC();
288 y = x - trackpair->GetQLongCMSLC();
290 TH1* GetResult(){return fNumerator;}
293 ClassDef(AliHBTQLongResolVsQLongFctn,1)
297 /***********************************************************************/
298 /***********************************************************************/
299 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
302 AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
303 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
305 virtual ~AliHBTPairThetaResolVsQInvFctn(){}
307 TH1* GetResult(){return fNumerator;}
308 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
310 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
311 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
312 y = partTheta - trackTheta;
313 x = partpair->GetQInv();
317 ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
320 /***********************************************************************/
321 /***********************************************************************/
322 class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
325 AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(),
326 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
328 virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
330 TH1* GetResult(){return fNumerator;}
331 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
333 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
334 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
335 y = partTheta - trackTheta;
336 if (trackTheta < 0.0) y = -y;
341 ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
345 /***********************************************************************/
346 /***********************************************************************/
347 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
350 AliHBTPairPhiResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
351 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
353 virtual ~AliHBTPairPhiResolVsQInvFctn(){}
355 TH1* GetResult(){return fNumerator;}
356 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
358 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
359 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
360 y = partPhi - trackPhi;
361 x = partpair->GetQInv();
365 ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
368 /***********************************************************************/
369 /***********************************************************************/
370 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
373 AliHBTPairThetaResolVsKtFctn(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 ~AliHBTPairThetaResolVsKtFctn(){}
378 TH1* GetResult(){return fNumerator;}
379 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
381 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
382 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
383 y = partTheta - trackTheta;
384 x = partpair->GetKt();
388 ClassDef(AliHBTPairThetaResolVsKtFctn,1)
391 /***********************************************************************/
392 /***********************************************************************/
393 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
396 AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
397 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
399 virtual ~AliHBTPairPhiResolVsKtFctn(){}
401 TH1* GetResult(){return fNumerator;}
402 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
404 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
405 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
406 y = partPhi - trackPhi;
407 x = partpair->GetKt();
411 ClassDef(AliHBTPairPhiResolVsKtFctn,1)
415 /***********************************************************************/
416 /***********************************************************************/
417 class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
420 AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0,
421 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
423 virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
425 TH1* GetResult(){return fNumerator;}
426 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
428 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
429 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
430 y = partPhi - trackPhi;
435 ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)