]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTWeightTheorFctn.cxx
Changing fabs into TMath::Abs
[u/mrichter/AliRoot.git] / HBTAN / AliHBTWeightTheorFctn.cxx
1 /* $Id$ */
2
3 //_____________________________________________________________________________
4 ///////////////////////////////////////////////////////////////////////////////
5 //
6 // class AliHBTWeightTheorQInvFctn
7 //
8 // This function allows to obtain Q_inv correlation function with weights
9 // calculated by Lednicky's alghorithm.
10 // Numerator is filled with weighted events. Weights are attributed to simulated particles.
11 // Weights are calculated with corresponding simulated particles momenta.
12 // Denominator is filled with mixing unweighted simulated particles.
13 // One needs only simulated pairs, so 
14 // this function is of class AliHBTOnePairFctn1D.
15 //-----------------------------------------------------------
16 // This class introduces the weights calculated according 
17 // with functions of efficiency of identification (TPC+TOF) 
18 // (calculated by B.V. Batyunia).
19 // Author: Ludmila Malinina, JINR (malinina@sunhe.jinr.ru)
20 //-----------------------------------------------------------
21
22 #include "AliHBTWeightTheorFctn.h"
23
24 //--for test--AliHBTWeightQInvFctn* yyy= new AliHBTWeightQInvFctn();
25 /*************************************************************/
26 /*************************************************************/
27 /*************************************************************/
28
29 ClassImp(AliHBTWeightTheorQInvFctn)  
30 /*************************************************************/
31
32 AliHBTWeightTheorQInvFctn::AliHBTWeightTheorQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
33   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
34 {
35   //ctor
36  fWriteNumAndDen = kTRUE;//change default behaviour
37  Rename("wqinvtheorcf","Q_{inv} Weight Theoretical Correlation Function");
38 }
39 /**************************************************************/
40
41 void  AliHBTWeightTheorQInvFctn::ProcessSameEventParticles(AliHBTPair* partpair)
42 {
43   //Processes Particles and tracks Same different event
44   partpair  = CheckPair(partpair);
45   if (partpair == 0x0) return;
46   Double_t weight = partpair->GetWeight();
47   if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQInv(),weight);
48
49 /**************************************************************/
50
51 TH1* AliHBTWeightTheorQInvFctn::GetResult() 
52 {
53  //returns the scaled ratio
54  delete fRatio;
55  fRatio = GetRatio(Scale());
56  return fRatio;
57 }                    
58                                                               
59 /*************************************************************/
60 /*************************************************************/
61 /*************************************************************/
62
63 ClassImp(AliHBTWeightTheorQOutFctn)  
64 /*************************************************************/
65
66 AliHBTWeightTheorQOutFctn::AliHBTWeightTheorQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
67   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
68 {
69   //ctor
70  fWriteNumAndDen = kTRUE;//change default behaviour
71  Rename("wqouttheorcf","Q_{out} Weight Theoretical Correlation Function");
72 }
73 /****************************************************************/
74
75 void  AliHBTWeightTheorQOutFctn::ProcessSameEventParticles(AliHBTPair* partpair)
76 {
77   //Processes Particles and tracks Same different even
78   partpair  = CheckPair(partpair);
79   if (partpair == 0x0) return;
80   Double_t weight = partpair->GetWeight();
81   if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQOutLCMS(),weight);
82
83
84 /**************************************************************/
85 TH1* AliHBTWeightTheorQOutFctn::GetResult() 
86 {
87  //returns the scaled ratio
88  delete fRatio;
89  fRatio = GetRatio(Scale());
90  return fRatio;
91 }                    
92
93 /*************************************************************/
94 /*************************************************************/
95 /*************************************************************/
96
97 ClassImp(AliHBTWeightTheorQSideFctn)  
98 /*************************************************************/
99
100 AliHBTWeightTheorQSideFctn::AliHBTWeightTheorQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
101   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
102 {
103   //ctor
104  fWriteNumAndDen = kTRUE;//change default behaviour
105  Rename("wqsidetheorcf","Q_{side} Weight Theoretical Correlation Function");
106 }
107 /****************************************************************/
108
109 void  AliHBTWeightTheorQSideFctn::ProcessSameEventParticles(AliHBTPair* partpair)
110 {
111   //Processes Particles and tracks Same different even
112   partpair  = CheckPair(partpair);
113   if (partpair == 0x0) return;
114   Double_t weight = partpair->GetWeight();
115   if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQSideLCMS(),weight);
116
117 /**************************************************************/
118
119 TH1* AliHBTWeightTheorQSideFctn::GetResult() 
120 {
121  //returns the scaled ratio
122  delete fRatio;
123  fRatio = GetRatio(Scale());
124  return fRatio;
125 }                    
126
127 /*************************************************************/
128 /*************************************************************/
129 /*************************************************************/
130
131 ClassImp(AliHBTWeightTheorQLongFctn)  
132 /*************************************************************/
133
134 AliHBTWeightTheorQLongFctn::AliHBTWeightTheorQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
135   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
136 {
137   //ctor
138  fWriteNumAndDen = kTRUE;//change default behaviour
139  Rename("wqlongtheorcf","Q_{long} Weight Theoretical Correlation Function");
140 }
141 /****************************************************************/
142
143 void  AliHBTWeightTheorQLongFctn::ProcessSameEventParticles(AliHBTPair* partpair)
144 {
145   //Processes Particles and tracks Same different even
146   partpair  = CheckPair(partpair);
147   if (partpair == 0x0) return;
148   Double_t weight = partpair->GetWeight();
149   if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQLongLCMS(),weight);
150
151 /**************************************************************/
152
153 TH1* AliHBTWeightTheorQLongFctn::GetResult() 
154 {
155  //returns the scaled ratio
156  delete fRatio;
157  fRatio = GetRatio(Scale());
158  return fRatio;
159 }                    
160
161 /*************************************************************/
162 /*************************************************************/
163 /*************************************************************/
164
165 ClassImp(AliHBTWeightTheorQtFctn)  
166 /*************************************************************/
167
168 AliHBTWeightTheorQtFctn::AliHBTWeightTheorQtFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
169   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
170 {
171   //ctor
172  fWriteNumAndDen = kTRUE;//change default behaviour
173  Rename("wqttheorcf","Q_{t} Weight Theoretical Correlation Function");
174 }
175 /****************************************************************/
176
177 void  AliHBTWeightTheorQtFctn::ProcessSameEventParticles(AliHBTPair* partpair)
178 {
179   //Processes Particles and tracks Same different even
180   partpair  = CheckPair(partpair);
181   if (partpair == 0x0) return;
182   Double_t weight = partpair->GetWeight();
183   if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQt(),weight);
184
185 /**************************************************************/
186
187 TH1* AliHBTWeightTheorQtFctn::GetResult() 
188 {
189  //returns the scaled ratio
190  delete fRatio;
191  fRatio = GetRatio(Scale());
192  return fRatio;
193 }                    
194
195 /*************************************************************/
196 /*************************************************************/
197 /*************************************************************/
198
199 ClassImp(AliHBTWeightTheorOSLFctn)
200
201 AliHBTWeightTheorOSLFctn::AliHBTWeightTheorOSLFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
202                                                    Int_t nYbins, Double_t maxYval, Double_t minYval,
203                                                    Int_t nZbins, Double_t maxZval, Double_t minZval):
204  AliHBTOnePairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
205 {
206   //ctor
207   fWriteNumAndDen = kTRUE;//change default behaviour
208   Rename("wqosltheorcf","Q_{out}-Q_{side}-Q_{long} Weight Theoretical Correlation Fctn");
209 }
210
211 /*************************************************************/
212
213 void AliHBTWeightTheorOSLFctn::GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z) const
214
215 //returns values of a functions for a given pair of particles
216   x=pair->GetQOutLCMS(); 
217   y=pair->GetQSideLCMS(); 
218   z=pair->GetQLongLCMS();
219
220   if (fAbs)
221    {
222      x = TMath::Abs(x);
223      y = TMath::Abs(y);
224      z = TMath::Abs(z);
225    }
226   
227
228
229 void AliHBTWeightTheorOSLFctn::ProcessSameEventParticles(AliHBTPair* partpair)
230 {
231 //Fills numerator
232   partpair  = CheckPair(partpair);
233   if (partpair == 0x0) return;
234   Double_t weight = partpair->GetWeight();
235   Double_t out, side, lon;
236   
237   GetValues(partpair, out, side, lon);
238
239 /*  
240   if (out < 0.01)
241     if (side < 0.01)
242       if (lon < 0.01)
243        {
244          Info("TheorOSL Num","================================================================");
245          Info("TheorOSL Num","o:%f, s:%f, l:%f, w%f",out,side,lon,weight);
246          Info("TheorOSL Num","First");
247          partpair->Particle1()->Print();
248          Info("TheorOSL Num","Second");
249          partpair->Particle2()->Print();
250          fflush(0);
251        }
252 */ 
253   fNumerator->Fill(out,side,lon,weight);
254 }
255 /*************************************************************/
256
257 TH1* AliHBTWeightTheorOSLFctn::GetResult()
258 {
259  //returns the scaled ratio
260  delete fRatio;
261  fRatio = GetRatio(Scale());
262  return fRatio;
263 }