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.
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"
15 //--for test--AliHBTLLWeightQInvFctn* yyy= new AliHBTLLWeightQInvFctn();
17 ClassImp( AliHBTLLWeightQInvFctn )
20 /****************************************************************/
21 AliHBTLLWeightQInvFctn::AliHBTLLWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
22 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
26 /****************************************************************/
27 void AliHBTLLWeightQInvFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
29 //Processes Particles and tracks Same different even
30 trackpair = CheckPair(trackpair);
31 partpair = CheckPair(partpair);
32 if ( trackpair && partpair)
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);
40 /****************************************************************/
42 void AliHBTLLWeightQInvFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
44 // Fills the denominator using mixed pairs
45 trackpair = CheckPair(trackpair);
46 partpair = CheckPair(partpair);
47 if ( trackpair && partpair)
49 fDenominator->Fill(trackpair->GetQInv());
52 /**************************************************************/
53 TH1* AliHBTLLWeightQInvFctn::GetResult()
56 //returns ratio of numerator and denominator
57 return GetRatio(Scale());
60 /**************************************************************************************/
61 /**************************************************************************************/
62 /**************************************************************************************/
63 /**************************************************************************************/
65 ClassImp(AliHBTLLWeightQOutFctn)
66 /****************************************************************/
67 void AliHBTLLWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
69 trackpair = CheckPair(trackpair);
70 partpair = CheckPair(partpair);
71 if ( trackpair && partpair)
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);
79 /****************************************************************/
81 void AliHBTLLWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
83 trackpair = CheckPair(trackpair);
84 partpair = CheckPair(partpair);
85 if ( trackpair && partpair)
87 fDenominator->Fill(trackpair->GetQOutCMSLC());
90 /**************************************************************/
91 TH1* AliHBTLLWeightQOutFctn::GetResult()
94 //returns ratio of numerator and denominator
95 return GetRatio(Scale());
98 /*************************************************************************************/
99 /*************************************************************************************/
100 /*************************************************************************************/
102 ClassImp(AliHBTLLWeightQLongFctn)
103 /****************************************************************/
104 void AliHBTLLWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
106 //Processes Particles and tracks Same different even
107 trackpair = CheckPair(trackpair);
108 partpair = CheckPair(partpair);
109 if ( trackpair && partpair)
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);
117 /****************************************************************/
119 void AliHBTLLWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
121 trackpair = CheckPair(trackpair);
122 partpair = CheckPair(partpair);
123 if ( trackpair && partpair)
125 fDenominator->Fill(trackpair->GetQLongCMSLC());
128 /**************************************************************/
129 TH1* AliHBTLLWeightQLongFctn::GetResult()
132 //returns ratio of numerator and denominator
133 return GetRatio(Scale());
136 /*************************************************************************************/
137 /*************************************************************************************/
138 /*************************************************************************************/
140 ClassImp(AliHBTLLWeightQSideFctn)
141 /****************************************************************/
142 void AliHBTLLWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
144 //Processes Particles and tracks Same different even
145 trackpair = CheckPair(trackpair);
146 partpair = CheckPair(partpair);
147 if ( trackpair && partpair)
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);
155 /****************************************************************/
157 void AliHBTLLWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
159 trackpair = CheckPair(trackpair);
160 partpair = CheckPair(partpair);
161 if ( trackpair && partpair)
163 fDenominator->Fill(trackpair->GetQSideCMSLC());
166 /**************************************************************/
167 TH1* AliHBTLLWeightQSideFctn::GetResult()
170 //returns ratio of numerator and denominator
171 return GetRatio(Scale());
174 /*************************************************************************************/
175 /*************************************************************************************/
177 ClassImp(AliHBTLLWeightTwoKStarFctn)
178 /****************************************************************/
179 void AliHBTLLWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
181 //Processes Particles and tracks Same different even
182 trackpair = CheckPair(trackpair);
183 partpair = CheckPair(partpair);
184 if ( trackpair && partpair)
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);
192 /****************************************************************/
194 void AliHBTLLWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
196 trackpair = CheckPair(trackpair);
197 partpair = CheckPair(partpair);
198 if ( trackpair && partpair)
200 fDenominator->Fill(2.0*(trackpair->GetKStar()));
203 /**************************************************************/
204 TH1* AliHBTLLWeightTwoKStarFctn::GetResult()
207 //returns ratio of numerator and denominator
208 return GetRatio(Scale());
211 /*************************************************************************************/