Bug correction
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.cxx
1 #include "AliHBTQResolutionFctns.h"
2
3 //__________________________________________________________________
4 ////////////////////////////////////////////////////////////////////
5 //                                                                //
6 // General Remark:                                                //
7 // CMSLC means                                                    //
8 // Center of Mass System Longitudially Co-moving                  //
9 //                                                                //
10 //                                                                //
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    //
17 //                                                                //
18 ////////////////////////////////////////////////////////////////////
19
20
21
22 /******************************************************************/
23 /******************************************************************/
24 /******************************************************************/
25 ClassImp( AliHBTKtResolVsQInvFctn )
26 AliHBTKtResolVsQInvFctn::
27 AliHBTKtResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
28                         Int_t nYbins, Double_t maxYval, Double_t minYval):
29  AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
30 {
31 //ctor
32  Rename("KtResolVsQInv","K_{t} Resolution vs. Q_{Inv}");
33 }
34 /******************************************************************/
35 /******************************************************************/
36 /******************************************************************/
37 ClassImp( AliHBTQInvResolVsQInvFctn )
38 AliHBTQInvResolVsQInvFctn::
39 AliHBTQInvResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
40                           Int_t nYbins, Double_t maxYval, Double_t minYval):
41                  AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
42 {
43 //ctor
44  Rename("QInvResolVsQInv","Q_{Inv} Resolution vs. Q_{Inv}");
45 }
46 /******************************************************************/
47 /******************************************************************/
48 /******************************************************************/
49
50 ClassImp( AliHBTQOutResolVsQInvFctn )
51 AliHBTQOutResolVsQInvFctn::
52 AliHBTQOutResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
53                           Int_t nYbins, Double_t maxYval, Double_t minYval):
54                  AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
55 {
56 //ctor
57  Rename("QOutResolVsQInv","Q_{Out} Resolution vs. Q_{Inv}");
58 }
59 /******************************************************************/
60
61 void AliHBTQOutResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
62 {
63   //returns Qoutsim-Qoutrec for y
64   //returns Qinv for x
65   Double_t tqout = trackpair->GetQOutCMSLC();
66   y = partpair->GetQOutCMSLC() - tqout;
67   if (tqout < 0.0) y = -y;
68   x = partpair->GetQInv();
69 }
70
71 /******************************************************************/
72 /******************************************************************/
73 /******************************************************************/
74
75 ClassImp( AliHBTQSideResolVsQInvFctn )
76
77 AliHBTQSideResolVsQInvFctn::
78 AliHBTQSideResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
79                           Int_t nYbins, Double_t maxYval, Double_t minYval):
80                  AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
81 {
82 //ctor
83  Rename("QSideResolVsQInv","Q_{Side} Resolution vs. Q_{Inv}");
84 }
85 /******************************************************************/
86
87 void AliHBTQSideResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y)
88 {
89   //returns Qsidesim-Qsiderec for y
90   //returns Qinv for x
91   y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
92   if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
93   x = partpair->GetQInv();
94 }
95
96 /******************************************************************/
97 /******************************************************************/
98 /******************************************************************/
99
100 ClassImp( AliHBTQLongResolVsQInvFctn )
101
102 AliHBTQLongResolVsQInvFctn::
103 AliHBTQLongResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
104                            Int_t nYbins, Double_t maxYval, Double_t minYval):
105                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
106 {
107 //ctor
108  Rename("QLongResolVsQInv","Q_{Long} Resolution vs. Q_{Inv}");
109 }
110 /******************************************************************/
111
112 void AliHBTQLongResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
113 {
114   //returns Qlongsim-Qlongrec for y
115   //returns Qinv for x
116   y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
117   if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
118   x = partpair->GetQInv();
119 }
120
121 /******************************************************************/
122 /******************************************************************/
123 /******************************************************************/
124
125 ClassImp( AliHBTQInvResolVsKtFctn )
126
127 AliHBTQInvResolVsKtFctn::
128 AliHBTQInvResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
129                         Int_t nYbins, Double_t maxYval, Double_t minYval):
130                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
131 {
132 //ctor
133  Rename("QInvResolVsKt","Q_{Inv} Resolution vs. K_{t}");
134 }
135
136 /******************************************************************/
137 /******************************************************************/
138 /******************************************************************/
139 ClassImp( AliHBTQOutResolVsKtFctn )
140
141 AliHBTQOutResolVsKtFctn::
142 AliHBTQOutResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
143                            Int_t nYbins, Double_t maxYval, Double_t minYval):
144                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
145 {
146 //ctor
147  Rename("QOutResolVsKt","Q_{Out} Resolution vs. K_{t} ");
148 }
149 /******************************************************************/
150
151 void AliHBTQOutResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
152 {
153   //returns Qoutsim-Qoutrec for y
154   //returns Kt for x
155   y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
156   if (trackpair->GetQOutCMSLC() < 0.0) y = -y;
157   x = partpair->GetKt();
158 }
159
160 /******************************************************************/
161 /******************************************************************/
162 /******************************************************************/
163 ClassImp( AliHBTQSideResolVsKtFctn )
164
165 AliHBTQSideResolVsKtFctn::
166 AliHBTQSideResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
167                            Int_t nYbins, Double_t maxYval, Double_t minYval):
168                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
169 {
170 //ctor
171  Rename("QSideResolVsKt","Q_{Side} Resolution vs. K_{t} ");
172 }
173 /******************************************************************/
174
175 void AliHBTQSideResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
176 {
177   //returns Qsidesim-Qsiderec for y
178   //returns Kt for x
179   y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
180   if (trackpair->GetQSideCMSLC() < 0.0) y = -y;
181   x = partpair->GetKt();
182 }
183
184 /******************************************************************/
185 /******************************************************************/
186 /******************************************************************/
187 ClassImp( AliHBTQLongResolVsKtFctn )
188
189 AliHBTQLongResolVsKtFctn::
190 AliHBTQLongResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
191                            Int_t nYbins, Double_t maxYval, Double_t minYval):
192                              AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
193 {
194 //ctor
195  Rename("QLongResolVsKt","Q_{Long} Resolution vs. K_{t} ");
196 }
197 /******************************************************************/
198
199 void AliHBTQLongResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
200 {
201   //returns Qlongsim-Qlongrec for y
202   //returns Kt for x
203   y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
204   if (trackpair->GetQLongCMSLC() < 0.0) y = -y;
205   x = partpair->GetKt();
206 }
207 /******************************************************************/
208 /******************************************************************/
209 /******************************************************************/
210
211 ClassImp( AliHBTQOutResolVsQOutFctn)
212
213 AliHBTQOutResolVsQOutFctn::
214 AliHBTQOutResolVsQOutFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
215                            Int_t nYbins, Double_t maxYval, Double_t minYval):
216                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
217 {
218 //ctor
219  Rename("QOutResolVsQOut","Q_{Out} Resolution vs. Q_{Out} ");
220 }
221  
222 /******************************************************************/
223 /******************************************************************/
224 /******************************************************************/
225 ClassImp( AliHBTQSideResolVsQSideFctn )
226
227 AliHBTQSideResolVsQSideFctn::
228 AliHBTQSideResolVsQSideFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
229                            Int_t nYbins, Double_t maxYval, Double_t minYval):
230                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
231 {
232 //ctor
233  Rename("QSideResolVsQSide","Q_{Side} Resolution vs. Q_{Side} ");
234 }
235
236 /******************************************************************/
237 /******************************************************************/
238 /******************************************************************/
239 ClassImp( AliHBTQLongResolVsQLongFctn )
240
241 AliHBTQLongResolVsQLongFctn::
242 AliHBTQLongResolVsQLongFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
243                            Int_t nYbins, Double_t maxYval, Double_t minYval):
244                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
245 {
246 //ctor
247  Rename("QLongResolVsQLong","Q_{Long} Resolution vs. Q_{Long} ");
248 }
249
250
251
252 /******************************************************************/
253 /******************************************************************/
254 /******************************************************************/
255
256 ClassImp( AliHBTPairThetaResolVsQInvFctn )
257
258 AliHBTPairThetaResolVsQInvFctn::
259 AliHBTPairThetaResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
260                            Int_t nYbins, Double_t maxYval, Double_t minYval):
261                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
262 {
263 //ctor
264  Rename("PairThetaResolVsQInv","Pair Theta Angle Resolution vs. Q_{Inv} ");
265 }
266 /******************************************************************/
267
268 void AliHBTPairThetaResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
269  {
270   //returns Pair Theta sim - Pair Theta rec for y
271   //returns Qinv for x
272    Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
273    Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
274    y = partTheta - trackTheta;
275    x = partpair->GetQInv();
276  }
277 /******************************************************************/
278 /******************************************************************/
279 /******************************************************************/
280
281 ClassImp( AliHBTPairThetaResolVsPairThetaFctn )
282
283 AliHBTPairThetaResolVsPairThetaFctn::
284 AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
285                            Int_t nYbins, Double_t maxYval, Double_t minYval):
286                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
287 {
288 //ctor
289  Rename("PairThetaResolVsPairTheta","Pair Theta Angle Resolution vs. Pair Theta ");
290 }
291 /******************************************************************/
292 void AliHBTPairThetaResolVsPairThetaFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
293 {
294   //returns Pair Theta sim - Pair Theta rec for y
295   //returns Pair Theta sim for x
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   if (trackTheta < 0.0) y = -y;
300   x = trackTheta;
301 }
302 /******************************************************************/
303 /******************************************************************/
304 /******************************************************************/
305
306 ClassImp( AliHBTPairPhiResolVsQInvFctn )
307
308 AliHBTPairPhiResolVsQInvFctn::
309 AliHBTPairPhiResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
310                            Int_t nYbins, Double_t maxYval, Double_t minYval):
311                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
312 {
313 //ctor
314  Rename("PairPhiResolVsQInv","Pair Phi Angle Resolution vs. Q_{Inv} ");
315 }
316 /******************************************************************/
317
318 void AliHBTPairPhiResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
319  {
320   //returns Pair Phi sim - Pair Phi rec for y
321   //returns QInv sim for x
322   Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
323   Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
324   y = partPhi - trackPhi;
325   x = partpair->GetQInv();
326  }
327
328 /******************************************************************/
329 /******************************************************************/
330 /******************************************************************/
331
332
333 ClassImp( AliHBTPairThetaResolVsKtFctn )
334
335 AliHBTPairThetaResolVsKtFctn::
336 AliHBTPairThetaResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
337                            Int_t nYbins, Double_t maxYval, Double_t minYval):
338                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
339 {
340 //ctor
341  Rename("PairThetaResolVsKt","Pair Theta Angle Resolution vs. K_{t} ");
342 }
343 /******************************************************************/
344
345 void AliHBTPairThetaResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
346 {
347   //returns Pair Theta sim - Pair Theta rec for y
348   //returns Kt sim for x
349   Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
350   Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
351   y = partTheta - trackTheta;
352   x = partpair->GetKt();
353 }
354 /******************************************************************/
355 /******************************************************************/
356 /******************************************************************/
357
358 ClassImp( AliHBTPairPhiResolVsKtFctn )
359
360 AliHBTPairPhiResolVsKtFctn::
361 AliHBTPairPhiResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
362                            Int_t nYbins, Double_t maxYval, Double_t minYval):
363                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
364 {
365 //ctor
366  Rename("PairPhiResolVsKt","Pair Phi Angle Resolution vs. K_{t} ");
367 }
368 /******************************************************************/
369
370 void AliHBTPairPhiResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
371 {
372   //returns Pair Phi sim - Pair Phi rec for y
373   //returns Kt sim for x
374   Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
375   Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
376   y = partPhi - trackPhi;
377   x = partpair->GetKt();
378 }
379
380 /******************************************************************/
381 /******************************************************************/
382 /******************************************************************/
383
384
385 ClassImp( AliHBTPairPhiResolVsPairPhiFctn )
386
387 AliHBTPairPhiResolVsPairPhiFctn::
388 AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
389                            Int_t nYbins, Double_t maxYval, Double_t minYval):
390                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
391 {
392 //ctor
393  Rename("PairPhiResolVsPairPhi","Pair Phi Angle Resolution vs. Pair Phi ");
394 }
395 /******************************************************************/
396
397 void AliHBTPairPhiResolVsPairPhiFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
398 {
399   //returns Pair Phi sim - Pair Phi rec for y
400   //returns Pair Phi sim for x
401   Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
402   Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
403   y = partPhi - trackPhi;
404   x = trackPhi;
405 }
406
407 /******************************************************************/
408 /******************************************************************/
409 /******************************************************************/