]>
Commit | Line | Data |
---|---|---|
cbcc22b0 | 1 | #include "AliHBTNonId3DCorrFctn.h" |
2 | #include <TH1.h> | |
3 | #include <Riostream.h> | |
4 | ||
5 | /////////////////////////////////////////////////////// | |
6 | // // | |
7 | // AliHBTNonId3DCorrFctn.h // | |
8 | // // | |
9 | // Class for calculating 3D non-id correlation // | |
10 | // functions // | |
11 | // // | |
12 | /////////////////////////////////////////////////////// | |
13 | ||
55d46048 | 14 | AliHBTNonId3DCorrFctn x; |
15 | ||
cbcc22b0 | 16 | ClassImp(AliHBTNonId3DCorrFctn) |
17 | ||
18 | AliHBTNonId3DCorrFctn::AliHBTNonId3DCorrFctn(const char* name, const char* title): | |
19 | AliHBTOnePairFctn1D(name,title), | |
20 | fNumOutP(0x0), | |
21 | fDenOutP(0x0), | |
22 | fRatOutP(0x0), | |
23 | fNumOutN(0x0), | |
24 | fDenOutN(0x0), | |
25 | fRatOutN(0x0), | |
26 | fRatOut(0x0), | |
27 | fRatOutNOverP(0x0), | |
28 | fNumSideP(0x0), | |
29 | fDenSideP(0x0), | |
30 | fRatSideP(0x0), | |
31 | fNumSideN(0x0), | |
32 | fDenSideN(0x0), | |
33 | fRatSideN(0x0), | |
34 | fRatSide(0x0), | |
35 | fRatSideNOverP(0x0), | |
36 | fNumLongP(0x0), | |
37 | fDenLongP(0x0), | |
38 | fRatLongP(0x0), | |
39 | fNumLongN(0x0), | |
40 | fDenLongN(0x0), | |
41 | fRatLongN(0x0), | |
42 | fRatLong(0x0), | |
43 | fRatLongNOverP(0x0) | |
44 | { | |
45 | //ctor | |
46 | } | |
47 | /******************************************************************/ | |
48 | AliHBTNonId3DCorrFctn::AliHBTNonId3DCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval): | |
49 | AliHBTOnePairFctn1D(name,title,nbins,maxXval,minXval), | |
50 | fNumOutP(0x0), | |
51 | fDenOutP(0x0), | |
52 | fRatOutP(0x0), | |
53 | fNumOutN(0x0), | |
54 | fDenOutN(0x0), | |
55 | fRatOutN(0x0), | |
56 | fRatOut(0x0), | |
57 | fRatOutNOverP(0x0), | |
58 | fNumSideP(0x0), | |
59 | fDenSideP(0x0), | |
60 | fRatSideP(0x0), | |
61 | fNumSideN(0x0), | |
62 | fDenSideN(0x0), | |
63 | fRatSideN(0x0), | |
64 | fRatSide(0x0), | |
65 | fRatSideNOverP(0x0), | |
66 | fNumLongP(0x0), | |
67 | fDenLongP(0x0), | |
68 | fRatLongP(0x0), | |
69 | fNumLongN(0x0), | |
70 | fDenLongN(0x0), | |
71 | fRatLongN(0x0), | |
72 | fRatLong(0x0), | |
73 | fRatLongNOverP(0x0) | |
74 | { | |
75 | //ctor | |
76 | } | |
77 | ||
78 | /******************************************************************/ | |
79 | AliHBTNonId3DCorrFctn::AliHBTNonId3DCorrFctn(const AliHBTNonId3DCorrFctn& in): | |
80 | AliHBTOnePairFctn1D(in), | |
81 | fNumOutP(0x0), | |
82 | fDenOutP(0x0), | |
83 | fRatOutP(0x0), | |
84 | fNumOutN(0x0), | |
85 | fDenOutN(0x0), | |
86 | fRatOutN(0x0), | |
87 | fRatOut(0x0), | |
88 | fRatOutNOverP(0x0), | |
89 | fNumSideP(0x0), | |
90 | fDenSideP(0x0), | |
91 | fRatSideP(0x0), | |
92 | fNumSideN(0x0), | |
93 | fDenSideN(0x0), | |
94 | fRatSideN(0x0), | |
95 | fRatSide(0x0), | |
96 | fRatSideNOverP(0x0), | |
97 | fNumLongP(0x0), | |
98 | fDenLongP(0x0), | |
99 | fRatLongP(0x0), | |
100 | fNumLongN(0x0), | |
101 | fDenLongN(0x0), | |
102 | fRatLongN(0x0), | |
103 | fRatLong(0x0), | |
104 | fRatLongNOverP(0x0) | |
105 | { | |
106 | //ctor | |
107 | } | |
108 | ||
109 | /******************************************************************/ | |
110 | ||
111 | AliHBTNonId3DCorrFctn::~AliHBTNonId3DCorrFctn() | |
112 | { | |
113 | //dtor | |
114 | delete fNumOutP; | |
115 | delete fDenOutP; | |
116 | delete fRatOutP; | |
117 | delete fNumOutN; | |
118 | delete fDenOutN; | |
119 | delete fRatOutN; | |
120 | delete fRatOut; | |
121 | delete fRatOutNOverP; | |
122 | delete fNumSideP; | |
123 | delete fDenSideP; | |
124 | delete fRatSideP; | |
125 | delete fNumSideN; | |
126 | delete fDenSideN; | |
127 | delete fRatSideN; | |
128 | delete fRatSide; | |
129 | delete fRatSideNOverP; | |
130 | delete fNumLongP; | |
131 | delete fDenLongP; | |
132 | delete fRatLongP; | |
133 | delete fNumLongN; | |
134 | delete fDenLongN; | |
135 | delete fRatLongN; | |
136 | delete fRatLong; | |
137 | delete fRatLongNOverP; | |
138 | ||
139 | } | |
140 | ||
141 | /******************************************************************/ | |
142 | void AliHBTNonId3DCorrFctn::WriteFunction() | |
143 | { | |
144 | ||
145 | Double_t outPscale = Scale(fNumOutP,fDenOutP); | |
146 | cout<<"outPscale = "<<outPscale<<endl; | |
147 | fRatOutP->Divide(fNumOutP,fDenOutP,outPscale); | |
148 | ||
149 | Double_t outNscale = Scale(fNumOutN,fDenOutN); | |
150 | cout<<"outNscale = "<<outNscale<<endl; | |
151 | fRatOutN->Divide(fNumOutN,fDenOutN,outNscale); | |
152 | ||
153 | fRatOutNOverP->Divide(fRatOutN,fRatOutP); | |
154 | ||
155 | ||
156 | Double_t sidePscale = Scale(fNumSideP,fDenSideP); | |
157 | fRatSideP->Divide(fNumSideP,fDenSideP,sidePscale); | |
158 | ||
159 | Double_t sideNscale = Scale(fNumSideN,fDenSideN); | |
160 | fRatSideN->Divide(fNumSideN,fDenSideN,sideNscale); | |
161 | ||
162 | fRatSideNOverP->Divide(fRatSideN,fRatSideP); | |
163 | ||
164 | ||
165 | Double_t longPscale = Scale(fNumLongP,fDenLongP); | |
166 | fRatLongP->Divide(fNumLongP,fDenLongP,longPscale); | |
167 | ||
168 | Double_t longNscale = Scale(fNumLongN,fDenLongN); | |
169 | fRatLongN->Divide(fNumLongN,fDenLongN,longNscale); | |
170 | ||
171 | fRatLongNOverP->Divide(fRatLongN,fRatLongP); | |
172 | ||
173 | fNumOutP->Write(); | |
174 | fDenOutP->Write(); | |
175 | fRatOutP->Write(); | |
176 | fNumOutN->Write(); | |
177 | fDenOutN->Write(); | |
178 | fRatOutN->Write(); | |
179 | fRatOut->Write(); | |
180 | fRatOutNOverP->Write(); | |
181 | ||
182 | fNumSideP->Write(); | |
183 | fDenSideP->Write(); | |
184 | fRatSideP->Write(); | |
185 | fNumSideN->Write(); | |
186 | fDenSideN->Write(); | |
187 | fRatSideN->Write(); | |
188 | fRatSide->Write(); | |
189 | fRatSideNOverP->Write(); | |
190 | ||
191 | fNumLongP->Write(); | |
192 | fDenLongP->Write(); | |
193 | fRatLongP->Write(); | |
194 | fNumLongN->Write(); | |
195 | fDenLongN->Write(); | |
196 | fRatLongN->Write(); | |
197 | fRatLong->Write(); | |
198 | fRatLongNOverP->Write(); | |
199 | ||
200 | } | |
201 | ||
202 | //------------------------------------- | |
203 | void AliHBTNonId3DCorrFctn::ProcessSameEventParticles(AliHBTPair* pair) | |
204 | { | |
205 | //Fills the numerator using pair from the same event | |
206 | pair = CheckPair(pair); | |
207 | if(pair == 0x0) return; | |
208 | ||
31aae134 | 209 | double tKStar = TMath::Abs(pair->GetKStar()); |
cbcc22b0 | 210 | double tKStarOut = pair->GetKStarOut(); |
211 | double tKStarSide = pair->GetKStarSide(); | |
212 | double tKStarLong = pair->GetKStarLong(); | |
213 | ||
214 | if(tKStarOut>0.) | |
215 | { | |
216 | fNumOutP->Fill(tKStar); | |
217 | } | |
218 | else | |
219 | { | |
220 | fNumOutN->Fill(tKStar); | |
221 | } | |
222 | ||
223 | if(tKStarSide>0.) | |
224 | { | |
225 | fNumSideP->Fill(tKStar); | |
226 | } | |
227 | else | |
228 | { | |
229 | fNumSideN->Fill(tKStar); | |
230 | } | |
231 | ||
232 | if(tKStarLong>0.) | |
233 | { | |
234 | fNumLongP->Fill(tKStar); | |
235 | } | |
236 | else | |
237 | { | |
238 | fNumLongN->Fill(tKStar); | |
239 | } | |
240 | } | |
241 | ||
242 | /****************************************************************/ | |
243 | void AliHBTNonId3DCorrFctn::Init() | |
244 | { | |
245 | AliHBTOnePairFctn1D::Init(); | |
246 | fNumOutP->Reset(); | |
247 | fDenOutP->Reset(); | |
248 | fRatOutP->Reset(); | |
249 | fNumOutN->Reset(); | |
250 | fDenOutN->Reset(); | |
251 | fRatOutN->Reset(); | |
252 | fRatOut->Reset(); | |
253 | fRatOutNOverP->Reset(); | |
254 | ||
255 | fNumSideP->Reset(); | |
256 | fDenSideP->Reset(); | |
257 | fRatSideP->Reset(); | |
258 | fNumSideN->Reset(); | |
259 | fDenSideN->Reset(); | |
260 | fRatSideN->Reset(); | |
261 | fRatSide->Reset(); | |
262 | fRatSideNOverP->Reset(); | |
263 | ||
264 | fNumLongP->Reset(); | |
265 | fDenLongP->Reset(); | |
266 | fRatLongP->Reset(); | |
267 | fNumLongN->Reset(); | |
268 | fDenLongN->Reset(); | |
269 | fRatLongN->Reset(); | |
270 | fRatLong->Reset(); | |
271 | fRatLongNOverP->Reset(); | |
272 | } | |
273 | /****************************************************************/ | |
274 | ||
275 | ||
276 | void AliHBTNonId3DCorrFctn::ProcessDiffEventParticles(AliHBTPair* pair) | |
277 | { | |
278 | ||
31aae134 | 279 | double tKStar = TMath::Abs(pair->GetKStar()); |
cbcc22b0 | 280 | double tKStarOut = pair->GetKStarOut(); |
281 | double tKStarSide = pair->GetKStarSide(); | |
282 | double tKStarLong = pair->GetKStarLong(); | |
283 | ||
284 | if(tKStarOut>0.) | |
285 | { | |
286 | fDenOutP->Fill(tKStar); | |
287 | } | |
288 | else | |
289 | { | |
290 | fDenOutN->Fill(tKStar); | |
291 | } | |
292 | ||
293 | if(tKStarSide>0.) | |
294 | { | |
295 | fDenSideP->Fill(tKStar); | |
296 | } | |
297 | else | |
298 | { | |
299 | fDenSideN->Fill(tKStar); | |
300 | } | |
301 | ||
302 | if(tKStarLong>0.) | |
303 | { | |
304 | fDenLongP->Fill(tKStar); | |
305 | } | |
306 | else | |
307 | { | |
308 | fDenLongN->Fill(tKStar); | |
309 | } | |
310 | ||
311 | } | |
312 | ||
313 | ||
314 | /******************************************************************/ | |
315 | ||
316 | void AliHBTNonId3DCorrFctn::BuildHistos(Int_t nbins, Float_t max, Float_t min) | |
317 | { | |
318 | ||
319 | AliHBTFunction1D::BuildHistos(nbins,max,min); | |
320 | ||
321 | TString nameNumOutP = "NumOutP"; | |
322 | TString nameDenOutP = "DenOutP"; | |
323 | TString nameRatOutP = "RatOutP"; | |
324 | TString nameNumOutN = "NumOutN"; | |
325 | TString nameDenOutN = "DenOutN"; | |
326 | TString nameRatOutN = "RatOutN"; | |
327 | TString nameRatOut = "RatOut"; | |
328 | TString nameRatOutNOverP = "RatOutNOverP"; | |
329 | TString nameNumSideP = "NumSideP"; | |
330 | TString nameDenSideP = "DenSideP"; | |
331 | TString nameRatSideP = "RatSideP"; | |
332 | TString nameNumSideN = "NumSideN"; | |
333 | TString nameDenSideN = "DenSideN"; | |
334 | TString nameRatSideN = "RatSideN"; | |
335 | TString nameRatSide = "RatSide"; | |
336 | TString nameRatSideNOverP = "RatSideNOverP"; | |
337 | TString nameNumLongP = "NumLongP"; | |
338 | TString nameDenLongP = "DenLongP"; | |
339 | TString nameRatLongP = "RatLongP"; | |
340 | TString nameNumLongN = "NumLongN"; | |
341 | TString nameDenLongN = "DenLongN"; | |
342 | TString nameRatLongN = "RatLongN"; | |
343 | TString nameRatLong = "RatLong"; | |
344 | TString nameRatLongNOverP = "RatLongNOverP"; | |
345 | ||
346 | fNumOutP = new TH1D(nameNumOutP.Data(),nameNumOutP.Data(),nbins,min,max); | |
347 | fDenOutP = new TH1D(nameDenOutP.Data(),nameDenOutP.Data(),nbins,min,max); | |
348 | fRatOutP = new TH1D(nameRatOutP.Data(),nameRatOutP.Data(),nbins,min,max); | |
349 | ||
350 | fNumOutN = new TH1D(nameNumOutN.Data(),nameNumOutN.Data(),nbins,min,max); | |
351 | fDenOutN = new TH1D(nameDenOutN.Data(),nameDenOutN.Data(),nbins,min,max); | |
352 | fRatOutN = new TH1D(nameRatOutN.Data(),nameRatOutN.Data(),nbins,min,max); | |
353 | ||
354 | fRatOut = new TH1D(nameRatOut.Data(),nameRatOut.Data(),nbins,min,max); | |
355 | fRatOutNOverP = new TH1D(nameRatOutNOverP.Data(),nameRatOutNOverP.Data(),nbins,min,max); | |
356 | ||
357 | fNumSideP = new TH1D(nameNumSideP.Data(),nameNumSideP.Data(),nbins,min,max); | |
358 | fDenSideP = new TH1D(nameDenSideP.Data(),nameDenSideP.Data(),nbins,min,max); | |
359 | fRatSideP = new TH1D(nameRatSideP.Data(),nameRatSideP.Data(),nbins,min,max); | |
360 | ||
361 | fNumSideN = new TH1D(nameNumSideN.Data(),nameNumSideN.Data(),nbins,min,max); | |
362 | fDenSideN = new TH1D(nameDenSideN.Data(),nameDenSideN.Data(),nbins,min,max); | |
363 | fRatSideN = new TH1D(nameRatSideN.Data(),nameRatSideN.Data(),nbins,min,max); | |
364 | ||
365 | fRatSide = new TH1D(nameRatSide.Data(),nameRatSide.Data(),nbins,min,max); | |
366 | fRatSideNOverP = new TH1D(nameRatSideNOverP.Data(),nameRatSideNOverP.Data(),nbins,min,max); | |
367 | ||
368 | fNumLongP = new TH1D(nameNumLongP.Data(),nameNumLongP.Data(),nbins,min,max); | |
369 | fDenLongP = new TH1D(nameDenLongP.Data(),nameDenLongP.Data(),nbins,min,max); | |
370 | fRatLongP = new TH1D(nameRatLongP.Data(),nameRatLongP.Data(),nbins,min,max); | |
371 | ||
372 | fNumLongN = new TH1D(nameNumLongN.Data(),nameNumLongN.Data(),nbins,min,max); | |
373 | fDenLongN = new TH1D(nameDenLongN.Data(),nameDenLongN.Data(),nbins,min,max); | |
374 | fRatLongN = new TH1D(nameRatLongN.Data(),nameRatLongN.Data(),nbins,min,max); | |
375 | ||
376 | fRatLong = new TH1D(nameRatLong.Data(),nameRatLong.Data(),nbins,min,max); | |
377 | fRatLongNOverP = new TH1D(nameRatLongNOverP.Data(),nameRatLongNOverP.Data(),nbins,min,max); | |
378 | ||
379 | ||
380 | fNumOutP->Sumw2(); | |
381 | fDenOutP->Sumw2(); | |
382 | fRatOutP->Sumw2(); | |
383 | fNumOutN->Sumw2(); | |
384 | fDenOutN->Sumw2(); | |
385 | fRatOutN->Sumw2(); | |
386 | fRatOut->Sumw2(); | |
387 | fRatOutNOverP->Sumw2(); | |
388 | fNumSideP->Sumw2(); | |
389 | fDenSideP->Sumw2(); | |
390 | fRatSideP->Sumw2(); | |
391 | fNumSideN->Sumw2(); | |
392 | fDenSideN->Sumw2(); | |
393 | fRatSideN->Sumw2(); | |
394 | fRatSide->Sumw2(); | |
395 | fRatSideNOverP->Sumw2(); | |
396 | fNumLongP->Sumw2(); | |
397 | fDenLongP->Sumw2(); | |
398 | fRatLongP->Sumw2(); | |
399 | fNumLongN->Sumw2(); | |
400 | fDenLongN->Sumw2(); | |
401 | fRatLongN->Sumw2(); | |
402 | fRatLong->Sumw2(); | |
403 | fRatLongNOverP->Sumw2(); | |
404 | } | |
405 | ||
406 | TH1* AliHBTNonId3DCorrFctn::GetResult() | |
407 | { | |
408 | return fRatOutN; | |
409 | } |