611914b1115502f2713faf487fb6ffbd441c68dc
[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->GetQOutCMSLC(),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->GetQSideCMSLC(),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->GetQLongCMSLC(),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(AliHBTWeightTheorOSLFctn)
166
167 AliHBTWeightTheorOSLFctn::AliHBTWeightTheorOSLFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
168                                                    Int_t nYbins, Double_t maxYval, Double_t minYval,
169                                                    Int_t nZbins, Double_t maxZval, Double_t minZval):
170  AliHBTOnePairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
171 {
172   fWriteNumAndDen = kTRUE;//change default behaviour
173   Rename("wqosltheorcf","Q_{out}-Q_{side}-Q_{long} Weight Theoretical Correlation Fctn");
174 }
175 /*************************************************************/
176
177 void AliHBTWeightTheorOSLFctn::ProcessSameEventParticles(AliHBTPair* partpair)
178 {
179 //Fills numerator
180   partpair  = CheckPair(partpair);
181   if (partpair == 0x0) return;
182   Double_t weight = partpair->GetWeight();
183   Double_t out = TMath::Abs(partpair->GetQOutCMSLC());
184   Double_t side = TMath::Abs(partpair->GetQSideCMSLC());
185   Double_t lon = TMath::Abs(partpair->GetQLongCMSLC());
186   fNumerator->Fill(out,side,lon,weight);
187 }
188 /*************************************************************/
189
190 TH1* AliHBTWeightTheorOSLFctn::GetResult()
191 {
192  //returns the scaled ratio
193  delete fRatio;
194  fRatio = GetRatio(Scale());
195  return fRatio;
196 }