3 //_____________________________________________________________________________
4 ///////////////////////////////////////////////////////////////////////////////
6 // class AliHBTWeightTheorQInvFctn
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 //-----------------------------------------------------------
22 #include "AliHBTWeightTheorFctn.h"
24 //--for test--AliHBTWeightQInvFctn* yyy= new AliHBTWeightQInvFctn();
25 /*************************************************************/
26 /*************************************************************/
27 /*************************************************************/
29 ClassImp(AliHBTWeightTheorQInvFctn)
30 /*************************************************************/
32 AliHBTWeightTheorQInvFctn::AliHBTWeightTheorQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
33 AliHBTOnePairFctn1D(nbins,maxXval,minXval)
36 fWriteNumAndDen = kTRUE;//change default behaviour
37 Rename("wqinvtheorcf","Q_{inv} Weight Theoretical Correlation Function");
39 /****************************************************************/
40 void AliHBTWeightTheorQInvFctn::ProcessSameEventParticles(AliHBTPair* partpair)
42 //Processes Particles and tracks Same different event
43 partpair = CheckPair(partpair);
44 if (partpair == 0x0) return;
45 Double_t weight = partpair->GetWeight();
46 if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQInv(),weight);
49 /**************************************************************/
50 TH1* AliHBTWeightTheorQInvFctn::GetResult()
52 //returns ratio of numerator and denominator
53 return GetRatio(Scale());
56 /*************************************************************/
57 /*************************************************************/
58 /*************************************************************/
60 ClassImp(AliHBTWeightTheorQOutFctn)
61 /*************************************************************/
63 AliHBTWeightTheorQOutFctn::AliHBTWeightTheorQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
64 AliHBTOnePairFctn1D(nbins,maxXval,minXval)
67 fWriteNumAndDen = kTRUE;//change default behaviour
68 Rename("wqouttheorcf","Q_{out} Weight Theoretical Correlation Function");
70 /****************************************************************/
71 void AliHBTWeightTheorQOutFctn::ProcessSameEventParticles(AliHBTPair* partpair)
73 //Processes Particles and tracks Same different even
74 partpair = CheckPair(partpair);
75 if (partpair == 0x0) return;
76 Double_t weight = partpair->GetWeight();
77 if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQOutCMSLC(),weight);
80 /**************************************************************/
81 TH1* AliHBTWeightTheorQOutFctn::GetResult()
83 //returns ratio of numerator and denominator
84 return GetRatio(Scale());
87 /*************************************************************/
88 /*************************************************************/
89 /*************************************************************/
91 ClassImp(AliHBTWeightTheorQSideFctn)
92 /*************************************************************/
94 AliHBTWeightTheorQSideFctn::AliHBTWeightTheorQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
95 AliHBTOnePairFctn1D(nbins,maxXval,minXval)
98 fWriteNumAndDen = kTRUE;//change default behaviour
99 Rename("wqsidetheorcf","Q_{side} Weight Theoretical Correlation Function");
101 /****************************************************************/
102 void AliHBTWeightTheorQSideFctn::ProcessSameEventParticles(AliHBTPair* partpair)
104 //Processes Particles and tracks Same different even
105 partpair = CheckPair(partpair);
106 if (partpair == 0x0) return;
107 Double_t weight = partpair->GetWeight();
108 if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQSideCMSLC(),weight);
111 /**************************************************************/
112 TH1* AliHBTWeightTheorQSideFctn::GetResult()
114 //returns ratio of numerator and denominator
115 return GetRatio(Scale());
118 /*************************************************************/
119 /*************************************************************/
120 /*************************************************************/
122 ClassImp(AliHBTWeightTheorQLongFctn)
123 /*************************************************************/
125 AliHBTWeightTheorQLongFctn::AliHBTWeightTheorQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
126 AliHBTOnePairFctn1D(nbins,maxXval,minXval)
129 fWriteNumAndDen = kTRUE;//change default behaviour
130 Rename("wqlongtheorcf","Q_{long} Weight Theoretical Correlation Function");
132 /****************************************************************/
133 void AliHBTWeightTheorQLongFctn::ProcessSameEventParticles(AliHBTPair* partpair)
135 //Processes Particles and tracks Same different even
136 partpair = CheckPair(partpair);
137 if (partpair == 0x0) return;
138 Double_t weight = partpair->GetWeight();
139 if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQLongCMSLC(),weight);
142 /**************************************************************/
143 TH1* AliHBTWeightTheorQLongFctn::GetResult()
145 //returns ratio of numerator and denominator
146 return GetRatio(Scale());
149 /*************************************************************/
150 /*************************************************************/
151 /*************************************************************/
153 ClassImp(AliHBTWeightTheorOSLFctn)
155 AliHBTWeightTheorOSLFctn::AliHBTWeightTheorOSLFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
156 Int_t nYbins, Double_t maxYval, Double_t minYval,
157 Int_t nZbins, Double_t maxZval, Double_t minZval):
158 AliHBTOnePairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
160 fWriteNumAndDen = kTRUE;//change default behaviour
161 Rename("wqosltheorcf","Q_{out}-Q_{side}-Q_{long} Weight Theoretical Correlation Fctn");
163 /*************************************************************/
165 void AliHBTWeightTheorOSLFctn::ProcessSameEventParticles(AliHBTPair* partpair)
168 partpair = CheckPair(partpair);
169 if (partpair == 0x0) return;
170 Double_t weight = partpair->GetWeight();
171 Double_t out = TMath::Abs(partpair->GetQOutCMSLC());
172 Double_t side = TMath::Abs(partpair->GetQSideCMSLC());
173 Double_t lon = TMath::Abs(partpair->GetQLongCMSLC());
174 fNumerator->Fill(out,side,lon,weight);
176 /*************************************************************/
178 TH1* AliHBTWeightTheorOSLFctn::GetResult()
180 //returns ratio of numerator and denominator
181 return GetRatio(Scale());