0cc61f4421334171a29ccf8f24ed1ec0bad8b84f
[u/mrichter/AliRoot.git] / HBTAN / AliHBTLLWeightFctn.cxx
1 /* $Id$ */
2
3 //This class allows to obtain Q_inv correlation function with weights
4 //calculated by Lednicky's alghorithm.
5 //Numerator is filled with weighted events. Weights are attributed to reconstructed tracks.
6 //Weights are calculated with corresponding simulated particles momenta.
7 //Denominator is filled with mixing unweighted reconstructed tracks.
8 //One needs both pairs 
9 //(simulated and recontructed), thus function is of class AliHBTTwoPairFctn1D.
10 //Author: Ludmila Malinina, JINR (malinina@sunhe.jinr.ru)
11 #include "AliHBTLLWeightFctn.h"
12 #include "AliHBTLLWeights.h"
13 #include "AliHBTLLWeightsPID.h"
14
15 //--for test--AliHBTLLWeightQInvFctn* yyy= new AliHBTLLWeightQInvFctn();
16
17 ClassImp( AliHBTLLWeightQInvFctn )
18
19   
20 /****************************************************************/
21 AliHBTLLWeightQInvFctn::AliHBTLLWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
22            AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
23 {
24 //ctor
25 }
26 /****************************************************************/
27 void  AliHBTLLWeightQInvFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
28 {
29 //Processes Particles and tracks Same different even
30   trackpair = CheckPair(trackpair);
31   partpair  = CheckPair(partpair);
32   if ( trackpair && partpair)     
33   {
34     Double_t weightPID=1.;
35     Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
36     Double_t weight=weightHBT*weightPID;
37     if(TMath::Abs(weight)<=10.)fNumerator->Fill(trackpair->GetQInv(),weight);
38   }
39
40 /****************************************************************/
41
42 void  AliHBTLLWeightQInvFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
43 {
44   // Fills the denominator using mixed pairs
45   trackpair = CheckPair(trackpair);
46   partpair  = CheckPair(partpair);
47   if ( trackpair && partpair)  
48   {
49      fDenominator->Fill(trackpair->GetQInv());
50   }
51 }
52 /**************************************************************/
53 TH1* AliHBTLLWeightQInvFctn::GetResult() 
54                                                                                
55
56 //returns ratio of numerator and denominator                                    
57  return GetRatio(Scale());                                                  
58 }                    
59                                                               
60 /**************************************************************************************/
61 /**************************************************************************************/
62 /**************************************************************************************/
63 /**************************************************************************************/
64
65 ClassImp(AliHBTLLWeightQOutFctn)
66 /****************************************************************/
67 void AliHBTLLWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
68 {
69   trackpair = CheckPair(trackpair);
70   partpair  = CheckPair(partpair);
71   if ( trackpair && partpair)     
72   {
73     Double_t weightPID=1.;
74     Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
75     Double_t weight=weightHBT*weightPID;
76     if(TMath::Abs(weight)<=10.) fNumerator->Fill(trackpair->GetQOutCMSLC(),weight);
77   }
78
79 /****************************************************************/
80
81 void AliHBTLLWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
82 {
83   trackpair = CheckPair(trackpair);
84   partpair  = CheckPair(partpair);
85   if ( trackpair && partpair)  
86   {
87      fDenominator->Fill(trackpair->GetQOutCMSLC());
88   }
89 }
90 /**************************************************************/
91 TH1* AliHBTLLWeightQOutFctn::GetResult() 
92                                                                                
93
94 //returns ratio of numerator and denominator                                    
95  return GetRatio(Scale());                                                  
96 }                    
97                                                               
98 /*************************************************************************************/ 
99 /*************************************************************************************/ 
100 /*************************************************************************************/ 
101
102 ClassImp(AliHBTLLWeightQLongFctn)
103 /****************************************************************/
104 void  AliHBTLLWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
105 {
106 //Processes Particles and tracks Same different even
107   trackpair = CheckPair(trackpair);
108   partpair  = CheckPair(partpair);
109   if ( trackpair && partpair)     
110   {
111     Double_t weightPID=1.;
112     Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
113     Double_t weight=weightHBT*weightPID;
114     if(TMath::Abs(weight)<=10.) fNumerator->Fill(trackpair->GetQLongCMSLC(),weight);
115   }
116
117 /****************************************************************/
118
119 void  AliHBTLLWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
120 {
121   trackpair = CheckPair(trackpair);
122   partpair  = CheckPair(partpair);
123   if ( trackpair && partpair)  
124   {
125      fDenominator->Fill(trackpair->GetQLongCMSLC());
126   }
127 }
128 /**************************************************************/
129 TH1* AliHBTLLWeightQLongFctn::GetResult() 
130                                                                                
131
132 //returns ratio of numerator and denominator                                    
133  return GetRatio(Scale());                                                  
134 }                    
135                                                               
136 /*************************************************************************************/ 
137 /*************************************************************************************/ 
138 /*************************************************************************************/ 
139
140 ClassImp(AliHBTLLWeightQSideFctn)
141 /****************************************************************/
142 void  AliHBTLLWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
143 {
144 //Processes Particles and tracks Same different even
145   trackpair = CheckPair(trackpair);
146   partpair  = CheckPair(partpair);
147   if ( trackpair && partpair)     
148   {
149     Double_t weightPID=1.;
150     Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
151     Double_t weight=weightHBT*weightPID;
152     if(TMath::Abs(weight)<=10.) fNumerator->Fill(trackpair->GetQSideCMSLC(),weight);
153   }
154
155 /****************************************************************/
156
157 void  AliHBTLLWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
158 {
159   trackpair = CheckPair(trackpair);
160   partpair  = CheckPair(partpair);
161   if ( trackpair && partpair)  
162   {
163      fDenominator->Fill(trackpair->GetQSideCMSLC());
164   }
165 }
166 /**************************************************************/
167 TH1* AliHBTLLWeightQSideFctn::GetResult() 
168                                                                                
169
170 //returns ratio of numerator and denominator                                    
171  return GetRatio(Scale());                                                  
172 }                    
173                                                               
174 /*************************************************************************************/ 
175 /*************************************************************************************/ 
176
177 ClassImp(AliHBTLLWeightTwoKStarFctn)
178 /****************************************************************/
179 void  AliHBTLLWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
180 {
181 //Processes Particles and tracks Same different even
182   trackpair = CheckPair(trackpair);
183   partpair  = CheckPair(partpair);
184   if ( trackpair && partpair)     
185   {
186     Double_t weightPID=1.;
187     Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
188     Double_t weight=weightHBT*weightPID;
189     if(TMath::Abs(weight)<=10.) fNumerator->Fill(2.0*(trackpair->GetKStar()),weight);
190   }
191
192 /****************************************************************/
193
194 void  AliHBTLLWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
195 {
196   trackpair = CheckPair(trackpair);
197   partpair  = CheckPair(partpair);
198   if ( trackpair && partpair)  
199   {
200      fDenominator->Fill(2.0*(trackpair->GetKStar()));
201   }
202 }
203 /**************************************************************/
204 TH1* AliHBTLLWeightTwoKStarFctn::GetResult() 
205                                                                                
206
207 //returns ratio of numerator and denominator                                    
208  return GetRatio(Scale());                                                  
209 }                    
210                                                               
211 /*************************************************************************************/ 
212