]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTWeightTheorFctn.cxx
Coding Violations Corrected.
[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 void  AliHBTWeightTheorQInvFctn::ProcessSameEventParticles(AliHBTPair* partpair)
41 {
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);
47
48
49 /**************************************************************/
50 TH1* AliHBTWeightTheorQInvFctn::GetResult() 
51 {
52   //returns ratio of numerator and denominator
53   return GetRatio(Scale());
54 }                    
55                                                               
56 /*************************************************************/
57 /*************************************************************/
58 /*************************************************************/
59
60 ClassImp(AliHBTWeightTheorQOutFctn)  
61 /*************************************************************/
62
63 AliHBTWeightTheorQOutFctn::AliHBTWeightTheorQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
64   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
65 {
66   //ctor
67  fWriteNumAndDen = kTRUE;//change default behaviour
68  Rename("wqouttheorcf","Q_{out} Weight Theoretical Correlation Function");
69 }
70 /****************************************************************/
71 void  AliHBTWeightTheorQOutFctn::ProcessSameEventParticles(AliHBTPair* partpair)
72 {
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);
78
79
80 /**************************************************************/
81 TH1* AliHBTWeightTheorQOutFctn::GetResult() 
82 {
83   //returns ratio of numerator and denominator
84   return GetRatio(Scale());
85 }                    
86
87 /*************************************************************/
88 /*************************************************************/
89 /*************************************************************/
90
91 ClassImp(AliHBTWeightTheorQSideFctn)  
92 /*************************************************************/
93
94 AliHBTWeightTheorQSideFctn::AliHBTWeightTheorQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
95   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
96 {
97   //ctor
98  fWriteNumAndDen = kTRUE;//change default behaviour
99  Rename("wqsidetheorcf","Q_{side} Weight Theoretical Correlation Function");
100 }
101 /****************************************************************/
102 void  AliHBTWeightTheorQSideFctn::ProcessSameEventParticles(AliHBTPair* partpair)
103 {
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);
109
110
111 /**************************************************************/
112 TH1* AliHBTWeightTheorQSideFctn::GetResult() 
113 {
114   //returns ratio of numerator and denominator
115   return GetRatio(Scale());
116 }                    
117
118 /*************************************************************/
119 /*************************************************************/
120 /*************************************************************/
121
122 ClassImp(AliHBTWeightTheorQLongFctn)  
123 /*************************************************************/
124
125 AliHBTWeightTheorQLongFctn::AliHBTWeightTheorQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
126   AliHBTOnePairFctn1D(nbins,maxXval,minXval)
127 {
128   //ctor
129  fWriteNumAndDen = kTRUE;//change default behaviour
130  Rename("wqlongtheorcf","Q_{long} Weight Theoretical Correlation Function");
131 }
132 /****************************************************************/
133 void  AliHBTWeightTheorQLongFctn::ProcessSameEventParticles(AliHBTPair* partpair)
134 {
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);
140
141
142 /**************************************************************/
143 TH1* AliHBTWeightTheorQLongFctn::GetResult() 
144 {
145   //returns ratio of numerator and denominator
146   return GetRatio(Scale());
147 }                    
148
149 /*************************************************************/
150 /*************************************************************/
151 /*************************************************************/
152
153 ClassImp(AliHBTWeightTheorOSLFctn)
154
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)
159 {
160   fWriteNumAndDen = kTRUE;//change default behaviour
161   Rename("wqosltheorcf","Q_{out}-Q_{side}-Q_{long} Weight Theoretical Correlation Fctn");
162 }
163 /*************************************************************/
164
165 void AliHBTWeightTheorOSLFctn::ProcessSameEventParticles(AliHBTPair* partpair)
166 {
167 //Fills numerator
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);
175 }
176 /*************************************************************/
177
178 TH1* AliHBTWeightTheorOSLFctn::GetResult()
179 {
180   //returns ratio of numerator and denominator
181   return GetRatio(Scale());
182 }