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();
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)
100 Double_t tqout = trackpair->GetQOutCMSLC();
101 y = partpair->GetQOutCMSLC() - tqout;
102 if (tqout < 0.0) y = -y;
103 x = partpair->GetQInv();
105 ClassDef(AliHBTQOutResolVsQInvFctn,1)
108 /***********************************************************************/
109 /***********************************************************************/
110 class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
113 AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
114 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
115 virtual ~AliHBTQSideResolVsQInvFctn(){}
117 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
119 y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
120 if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
121 x = partpair->GetQInv();
123 TH1* GetResult(){return fNumerator;}
124 ClassDef(AliHBTQSideResolVsQInvFctn,1)
127 /***********************************************************************/
128 /***********************************************************************/
129 class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
132 AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
133 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
134 virtual ~AliHBTQLongResolVsQInvFctn(){}
136 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
138 y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
139 if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
140 x = partpair->GetQInv();
142 TH1* GetResult(){return fNumerator;}
143 ClassDef(AliHBTQLongResolVsQInvFctn,1)
146 /***********************************************************************/
147 /***********************************************************************/
148 class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
151 AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
152 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
153 virtual ~AliHBTQInvResolVsKtFctn(){};
155 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
157 y = partpair->GetQInv() - trackpair->GetQInv();
158 x = partpair->GetKt();
160 TH1* GetResult(){return fNumerator;}
161 ClassDef(AliHBTQInvResolVsKtFctn,1)
163 /***********************************************************************/
164 /***********************************************************************/
165 class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
168 AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
169 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
170 virtual ~AliHBTQOutResolVsKtFctn(){}
171 TH1* GetResult(){return GetNumerator();}
172 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
174 y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
175 if (trackpair->GetQOutCMSLC() < 0.0) y = -y;
176 x = partpair->GetKt();
178 ClassDef(AliHBTQOutResolVsKtFctn,1)
180 /***********************************************************************/
181 /***********************************************************************/
182 class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
185 AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
186 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
187 virtual ~AliHBTQSideResolVsKtFctn(){}
188 TH1* GetResult(){return GetNumerator();}
189 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
191 y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
192 if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
193 x = partpair->GetKt();
195 ClassDef(AliHBTQSideResolVsKtFctn,1)
197 /***********************************************************************/
198 /***********************************************************************/
199 class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
202 AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
203 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
204 virtual ~AliHBTQLongResolVsKtFctn(){}
206 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
208 y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
209 if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
210 x = partpair->GetKt();
212 TH1* GetResult(){return fNumerator;}
213 ClassDef(AliHBTQLongResolVsKtFctn,1)
215 /***********************************************************************/
216 /***********************************************************************/
217 class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
220 AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
221 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
222 virtual ~AliHBTQOutResolVsQOutFctn(){}
224 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
226 x = partpair->GetQOutCMSLC();
227 y = x - trackpair->GetQOutCMSLC();
229 TH1* GetResult(){return fNumerator;}
230 ClassDef(AliHBTQOutResolVsQOutFctn,1)
233 /***********************************************************************/
234 /***********************************************************************/
236 class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
239 AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
240 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
241 virtual ~AliHBTQSideResolVsQSideFctn(){}
243 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
245 x = partpair->GetQSideCMSLC();
246 y = x - trackpair->GetQSideCMSLC();
248 TH1* GetResult(){return fNumerator;}
249 ClassDef(AliHBTQSideResolVsQSideFctn,1)
253 /***********************************************************************/
254 /***********************************************************************/
256 class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
259 AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
260 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
261 virtual ~AliHBTQLongResolVsQLongFctn(){}
263 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
265 x = partpair->GetQLongCMSLC();
266 y = x - trackpair->GetQLongCMSLC();
268 TH1* GetResult(){return fNumerator;}
269 ClassDef(AliHBTQLongResolVsQLongFctn,1)
273 /***********************************************************************/
274 /***********************************************************************/
275 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
278 AliHBTPairThetaResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
279 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
281 virtual ~AliHBTPairThetaResolVsQInvFctn(){}
283 TH1* GetResult(){return fNumerator;}
284 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
286 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
287 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
288 y = partTheta - trackTheta;
289 x = partpair->GetQInv();
291 ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
294 /***********************************************************************/
295 /***********************************************************************/
296 class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
299 AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(),
300 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
302 virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
304 TH1* GetResult(){return fNumerator;}
305 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
307 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
308 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
309 y = partTheta - trackTheta;
310 if (trackTheta < 0.0) y = -y;
313 ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
317 /***********************************************************************/
318 /***********************************************************************/
319 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
322 AliHBTPairPhiResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
323 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
325 virtual ~AliHBTPairPhiResolVsQInvFctn(){}
327 TH1* GetResult(){return fNumerator;}
328 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
330 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
331 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
332 y = partPhi - trackPhi;
333 x = partpair->GetQInv();
335 ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
338 /***********************************************************************/
339 /***********************************************************************/
340 class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
343 AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
344 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
346 virtual ~AliHBTPairThetaResolVsKtFctn(){}
348 TH1* GetResult(){return fNumerator;}
349 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
351 Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
352 Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
353 y = partTheta - trackTheta;
354 x = partpair->GetKt();
356 ClassDef(AliHBTPairThetaResolVsKtFctn,1)
359 /***********************************************************************/
360 /***********************************************************************/
361 class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
364 AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
365 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
367 virtual ~AliHBTPairPhiResolVsKtFctn(){}
369 TH1* GetResult(){return fNumerator;}
370 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
372 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
373 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
374 y = partPhi - trackPhi;
375 x = partpair->GetKt();
377 ClassDef(AliHBTPairPhiResolVsKtFctn,1)
381 /***********************************************************************/
382 /***********************************************************************/
383 class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
386 AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0,
387 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
389 virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
391 TH1* GetResult(){return fNumerator;}
392 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
394 Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
395 Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
396 y = partPhi - trackPhi;
399 ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)