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"
14 //--for test--AliHBTLLWeightQInvFctn* yyy= new AliHBTLLWeightQInvFctn();
16 ClassImp( AliHBTLLWeightQInvFctn )
17 /****************************************************************/
18 AliHBTLLWeightQInvFctn::AliHBTLLWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
19 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
23 /****************************************************************/
24 void AliHBTLLWeightQInvFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
26 //Processes Particles and tracks Same different even
27 trackpair = CheckPair(trackpair);
28 partpair = CheckPair(partpair);
29 if ( trackpair && partpair)
31 Double_t weightPID=1.;
32 Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
33 Double_t weight=weightHBT*weightPID;
34 if(TMath::Abs(weight)<=10.)fNumerator->Fill(trackpair->GetQInv(),weight);
37 /****************************************************************/
39 void AliHBTLLWeightQInvFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
41 // Fills the denominator using mixed pairs
42 trackpair = CheckPair(trackpair);
43 partpair = CheckPair(partpair);
44 if ( trackpair && partpair)
46 fDenominator->Fill(trackpair->GetQInv());
49 /**************************************************************/
50 TH1* AliHBTLLWeightQInvFctn::GetResult()
53 //returns ratio of numerator and denominator
54 return GetRatio(Scale());
57 /**************************************************************************************/
58 /**************************************************************************************/
59 /**************************************************************************************/
60 /**************************************************************************************/
62 ClassImp(AliHBTLLWeightQOutFctn)
63 /****************************************************************/
64 void AliHBTLLWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
66 trackpair = CheckPair(trackpair);
67 partpair = CheckPair(partpair);
68 if ( trackpair && partpair)
70 Double_t weightPID=1.;
71 Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
72 Double_t weight=weightHBT*weightPID;
73 if(TMath::Abs(weight)<=10.) fNumerator->Fill(trackpair->GetQOutCMSLC(),weight);
76 /****************************************************************/
78 void AliHBTLLWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
80 trackpair = CheckPair(trackpair);
81 partpair = CheckPair(partpair);
82 if ( trackpair && partpair)
84 fDenominator->Fill(trackpair->GetQOutCMSLC());
87 /**************************************************************/
88 TH1* AliHBTLLWeightQOutFctn::GetResult()
91 //returns ratio of numerator and denominator
92 return GetRatio(Scale());
95 /*************************************************************************************/
96 /*************************************************************************************/
97 /*************************************************************************************/
99 ClassImp(AliHBTLLWeightQLongFctn)
100 /****************************************************************/
101 void AliHBTLLWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
103 //Processes Particles and tracks Same different even
104 trackpair = CheckPair(trackpair);
105 partpair = CheckPair(partpair);
106 if ( trackpair && partpair)
108 Double_t weightPID=1.;
109 Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
110 Double_t weight=weightHBT*weightPID;
111 if(TMath::Abs(weight)<=10.) fNumerator->Fill(trackpair->GetQLongCMSLC(),weight);
114 /****************************************************************/
116 void AliHBTLLWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
118 trackpair = CheckPair(trackpair);
119 partpair = CheckPair(partpair);
120 if ( trackpair && partpair)
122 fDenominator->Fill(trackpair->GetQLongCMSLC());
125 /**************************************************************/
126 TH1* AliHBTLLWeightQLongFctn::GetResult()
129 //returns ratio of numerator and denominator
130 return GetRatio(Scale());
133 /*************************************************************************************/
134 /*************************************************************************************/
135 /*************************************************************************************/
137 ClassImp(AliHBTLLWeightQSideFctn)
138 /****************************************************************/
139 void AliHBTLLWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
141 //Processes Particles and tracks Same different even
142 trackpair = CheckPair(trackpair);
143 partpair = CheckPair(partpair);
144 if ( trackpair && partpair)
146 Double_t weightPID=1.;
147 Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
148 Double_t weight=weightHBT*weightPID;
149 if(TMath::Abs(weight)<=10.) fNumerator->Fill(trackpair->GetQSideCMSLC(),weight);
152 /****************************************************************/
154 void AliHBTLLWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
156 trackpair = CheckPair(trackpair);
157 partpair = CheckPair(partpair);
158 if ( trackpair && partpair)
160 fDenominator->Fill(trackpair->GetQSideCMSLC());
163 /**************************************************************/
164 TH1* AliHBTLLWeightQSideFctn::GetResult()
167 //returns ratio of numerator and denominator
168 return GetRatio(Scale());
171 /*************************************************************************************/
172 /*************************************************************************************/
174 ClassImp(AliHBTLLWeightTwoKStarFctn)
175 /****************************************************************/
176 void AliHBTLLWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
178 //Processes Particles and tracks Same different even
179 trackpair = CheckPair(trackpair);
180 partpair = CheckPair(partpair);
181 if ( trackpair && partpair)
183 Double_t weightPID=1.;
184 Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
185 Double_t weight=weightHBT*weightPID;
186 if(TMath::Abs(weight)<=10.) fNumerator->Fill(2.0*(trackpair->GetKStar()),weight);
189 /****************************************************************/
191 void AliHBTLLWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
193 trackpair = CheckPair(trackpair);
194 partpair = CheckPair(partpair);
195 if ( trackpair && partpair)
197 fDenominator->Fill(2.0*(trackpair->GetKStar()));
200 /**************************************************************/
201 TH1* AliHBTLLWeightTwoKStarFctn::GetResult()
204 //returns ratio of numerator and denominator
205 return GetRatio(Scale());
208 /*************************************************************************************/