Bug correction
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.h
CommitLineData
87a97b84 1#ifndef ALIHBTQRESOLUTIONFCTNS_H
2#define ALIHBTQRESOLUTIONFCTNS_H
89c60e9f 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////////////////////////////////////////////////////////////////////
1b446896 19
20
475caf1c 21class AliHBTKtResolVsQInvFctn; //Kt Res Vs QInvCMSLC
22
89ef84e1 23class AliHBTQOutResolVsQInvFctn; //QOutCMSLC Res Vs QInvCMSLC
24class AliHBTQSideResolVsQInvFctn; //QSideCMSLC Res Vs QInvCMSLC
25class AliHBTQLongResolVsQInvFctn; //QLongCMSLC Res Vs QInvCMSLC
26class AliHBTQInvResolVsQInvFctn; //QInvCMSLC Res Vs QInvCMSLC
1b446896 27
89ef84e1 28class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res Vs QInvCMSLC
29class AliHBTPairPhiResolVsQInvFctn; //PairPhi Res Vs QInvCMSLC
1b446896 30
89ef84e1 31class AliHBTQInvResolVsKtFctn; //QInvCMSLC Res Vs Kt
32class AliHBTQOutResolVsKtFctn; //QOutCMSLC Res Vs Kt
33class AliHBTQSideResolVsKtFctn; //QSideCMSLC Res Vs Kt
34class AliHBTQLongResolVsKtFctn; //QLongCMSLC Res Vs Kt
1b446896 35
89ef84e1 36class AliHBTPairThetaResolVsKtFctn; //PairTheta Res Vs Kt
37class AliHBTPairPhiResolVsKtFctn; //PairPhi Res Vs Kt
1b446896 38
89ef84e1 39
40class AliHBTQOutResolVsQOutFctn; //QOutCMSLC Res Vs QOut
41class AliHBTQSideResolVsQSideFctn;//QSideCMSLC Res Vs QSide
42class AliHBTQLongResolVsQLongFctn;//QLongCMSLC Res Vs QLong
43
44
45
1b446896 46#include "AliHBTFunction.h"
47/***********************************************************************/
475caf1c 48/***********************************************************************/
49class AliHBTKtResolVsQInvFctn: public AliHBTTwoPairFctn2D
50 {
51 public:
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);
54
55 virtual ~AliHBTKtResolVsQInvFctn(){}
56
57 TH1* GetResult(){return fNumerator;}
58 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
59 {
60 y = partpair->GetKt() - trackpair->GetKt();
61 x = partpair->GetQInv();
62 }
58ee8590 63 ClassDef(AliHBTKtResolVsQInvFctn,1)
475caf1c 64 };
65
66
67/***********************************************************************/
1b446896 68/***********************************************************************/
89ef84e1 69class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
1b446896 70 {
71 public:
89ef84e1 72 AliHBTQInvResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
1b446896 73 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
74
89ef84e1 75 virtual ~AliHBTQInvResolVsQInvFctn(){}
76
77 TH1* GetResult(){return fNumerator;}
78 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
79 {
80 y = partpair->GetQInv() - trackpair->GetQInv();
81 x = partpair->GetQInv();
82 }
58ee8590 83 ClassDef(AliHBTQInvResolVsQInvFctn,1)
89ef84e1 84 };
85
86
87/***********************************************************************/
88/***********************************************************************/
89class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
90 {
91 public:
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);
94
95 virtual ~AliHBTQOutResolVsQInvFctn(){}
1b446896 96
97 TH1* GetResult(){return fNumerator;}
87a97b84 98 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 99 ClassDef(AliHBTQOutResolVsQInvFctn,1)
1b446896 100 };
101
102/***********************************************************************/
103/***********************************************************************/
89ef84e1 104class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
1b446896 105 {
106 public:
89ef84e1 107 AliHBTQSideResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
1b446896 108 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
89ef84e1 109 virtual ~AliHBTQSideResolVsQInvFctn(){}
1b446896 110
87a97b84 111 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
1b446896 112 TH1* GetResult(){return fNumerator;}
58ee8590 113 ClassDef(AliHBTQSideResolVsQInvFctn,1)
1b446896 114 };
115
116/***********************************************************************/
117/***********************************************************************/
89ef84e1 118class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
1b446896 119 {
120 public:
89ef84e1 121 AliHBTQLongResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
1b446896 122 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
89ef84e1 123 virtual ~AliHBTQLongResolVsQInvFctn(){}
1b446896 124
87a97b84 125 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
1b446896 126 TH1* GetResult(){return fNumerator;}
58ee8590 127 ClassDef(AliHBTQLongResolVsQInvFctn,1)
1b446896 128 };
129
130/***********************************************************************/
131/***********************************************************************/
89ef84e1 132class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
1b446896 133 {
134 public:
89ef84e1 135 AliHBTQInvResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
1b446896 136 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
89ef84e1 137 virtual ~AliHBTQInvResolVsKtFctn(){};
1b446896 138
139 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
87a97b84 140 {y = partpair->GetQInv() - trackpair->GetQInv();x = partpair->GetKt();}
1b446896 141 TH1* GetResult(){return fNumerator;}
58ee8590 142 ClassDef(AliHBTQInvResolVsKtFctn,1)
1b446896 143 };
144/***********************************************************************/
145/***********************************************************************/
89ef84e1 146class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
1b446896 147 {
148 public:
89ef84e1 149 AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
1b446896 150 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
89ef84e1 151 virtual ~AliHBTQOutResolVsKtFctn(){}
1b446896 152 TH1* GetResult(){return GetNumerator();}
87a97b84 153 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 154 ClassDef(AliHBTQOutResolVsKtFctn,1)
1b446896 155 };
156/***********************************************************************/
157/***********************************************************************/
89ef84e1 158class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
1b446896 159 {
160 public:
89ef84e1 161 AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
1b446896 162 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
89ef84e1 163 virtual ~AliHBTQSideResolVsKtFctn(){}
1b446896 164 TH1* GetResult(){return GetNumerator();}
87a97b84 165 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 166 ClassDef(AliHBTQSideResolVsKtFctn,1)
1b446896 167 };
168/***********************************************************************/
169/***********************************************************************/
89ef84e1 170class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
1b446896 171 {
172 public:
89ef84e1 173 AliHBTQLongResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0,
1b446896 174 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
89ef84e1 175 virtual ~AliHBTQLongResolVsKtFctn(){}
1b446896 176
87a97b84 177 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
89ef84e1 178 TH1* GetResult(){return fNumerator;}
58ee8590 179 ClassDef(AliHBTQLongResolVsKtFctn,1)
1b446896 180 };
181/***********************************************************************/
182/***********************************************************************/
89ef84e1 183class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
1b446896 184 {
185 public:
89ef84e1 186 AliHBTQOutResolVsQOutFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
1b446896 187 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
89ef84e1 188 virtual ~AliHBTQOutResolVsQOutFctn(){}
1b446896 189
190 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
87a97b84 191 {x = partpair->GetQOutCMSLC();y = x - trackpair->GetQOutCMSLC();}
192
1b446896 193 TH1* GetResult(){return fNumerator;}
58ee8590 194 ClassDef(AliHBTQOutResolVsQOutFctn,1)
1b446896 195 };
196
197/***********************************************************************/
198/***********************************************************************/
199
89ef84e1 200class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
1b446896 201 {
202 public:
89ef84e1 203 AliHBTQSideResolVsQSideFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
1b446896 204 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
89ef84e1 205 virtual ~AliHBTQSideResolVsQSideFctn(){}
1b446896 206
207 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
87a97b84 208 {x = partpair->GetQSideCMSLC(); y = x - trackpair->GetQSideCMSLC();}
209
1b446896 210 TH1* GetResult(){return fNumerator;}
58ee8590 211 ClassDef(AliHBTQSideResolVsQSideFctn,1)
1b446896 212 };
213
1b446896 214/***********************************************************************/
215/***********************************************************************/
216
89ef84e1 217class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
1b446896 218 {
219 public:
89ef84e1 220 AliHBTQLongResolVsQLongFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = -0.2,
1b446896 221 Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
89ef84e1 222 virtual ~AliHBTQLongResolVsQLongFctn(){}
1b446896 223
224 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
87a97b84 225 {x = partpair->GetQLongCMSLC(); y = x - trackpair->GetQLongCMSLC();}
226
1b446896 227 TH1* GetResult(){return fNumerator;}
58ee8590 228 ClassDef(AliHBTQLongResolVsQLongFctn,1)
89ef84e1 229 };
89ef84e1 230/***********************************************************************/
231/***********************************************************************/
87a97b84 232
89ef84e1 233class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
234 {
235 public:
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);
238
239 virtual ~AliHBTPairThetaResolVsQInvFctn(){}
240
241 TH1* GetResult(){return fNumerator;}
87a97b84 242 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 243 ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
89ef84e1 244 };
245
22a9bbf4 246/***********************************************************************/
247/***********************************************************************/
248class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
249 {
250 public:
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);
253
254 virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
255
256 TH1* GetResult(){return fNumerator;}
87a97b84 257 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 258 ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
22a9bbf4 259 };
260
261
89ef84e1 262/***********************************************************************/
263/***********************************************************************/
264class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
265 {
266 public:
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);
269
270 virtual ~AliHBTPairPhiResolVsQInvFctn(){}
271
272 TH1* GetResult(){return fNumerator;}
f5439e69 273 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 274 ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
1b446896 275 };
276
89ef84e1 277/***********************************************************************/
278/***********************************************************************/
279class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
280 {
281 public:
282 AliHBTPairThetaResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
283 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
284
285 virtual ~AliHBTPairThetaResolVsKtFctn(){}
286
287 TH1* GetResult(){return fNumerator;}
f5439e69 288 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 289 ClassDef(AliHBTPairThetaResolVsKtFctn,1)
89ef84e1 290 };
1b446896 291
89ef84e1 292/***********************************************************************/
293/***********************************************************************/
294class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
295 {
296 public:
297 AliHBTPairPhiResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0,
298 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
299
300 virtual ~AliHBTPairPhiResolVsKtFctn(){}
301
302 TH1* GetResult(){return fNumerator;}
f5439e69 303 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 304 ClassDef(AliHBTPairPhiResolVsKtFctn,1)
89ef84e1 305 };
1b446896 306
22a9bbf4 307/***********************************************************************/
308/***********************************************************************/
309class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
310 {
311 public:
312 AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0,
313 Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
314
315 virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
316
317 TH1* GetResult(){return fNumerator;}
f5439e69 318 void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y);
58ee8590 319 ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)
22a9bbf4 320 };
321
f5439e69 322
323#endif