1 #include "AliHBTMonitorFunction.h"
2 /******************************************************************/
4 Base classes for monitor functions
14 one particle two particle
19 Zbigniew.Chajecki@cern.ch
22 /******************************************************************/
23 /******************************************************************/
25 #include <Riostream.h>
26 ClassImp( AliHBTMonitorFunction )
28 AliHBTMonitorFunction::AliHBTMonitorFunction()
30 fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut
32 /******************************************************************/
33 AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):TNamed(name,title)
35 fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut
37 /******************************************************************/
39 AliHBTMonitorFunction::~AliHBTMonitorFunction()
41 if (fParticleCut) delete fParticleCut;
43 /******************************************************************/
45 void AliHBTMonitorFunction::
48 if (GetResult()) GetResult()->Write();
50 /******************************************************************/
52 /******************************************************************/
53 void AliHBTMonitorFunction::SetParticleCut(AliHBTParticleCut* cut)
55 //Sets new Particle Cut. Old one is deleted
56 //Note that it is created new object instead of simple pointer set
57 //I do not want to have pointer
58 //to object created somewhere else
59 //because in that case I could not believe that
60 //it would always exist (sb could delete it)
61 //so we have always own copy
65 Error("AliHBTMonitorFunction::SetParticleCut","argument is NULL");
69 fParticleCut = (AliHBTParticleCut*)cut->Clone();
73 /******************************************************************/
75 void AliHBTMonitorFunction::
76 Rename(const Char_t * name)
78 //renames the function and histograms
82 TString numstr = fName + " Result"; //title and name of the
84 GetResult()->SetName(numstr.Data());
85 GetResult()->SetTitle(numstr.Data());
90 void AliHBTMonitorFunction::
91 Rename(const Char_t * name, const Char_t * title)
93 //renames and retitle the function and histograms
98 TString numstrn = fName + " Result"; //name of the
101 TString numstrt = fTitle + " Result"; //title of the
105 GetResult()->SetName(numstrn.Data());
106 GetResult()->SetTitle(numstrt.Data());
110 /******************************************************************/
111 /******************************************************************/
112 /******************************************************************/
113 ClassImp( AliHBTMonOneParticleFctn ) //z.ch.
114 /******************************************************************/
115 /******************************************************************/
116 ClassImp( AliHBTMonTwoParticleFctn ) //z.ch.
117 /******************************************************************/
118 /******************************************************************/
119 /******************************************************************/
120 ClassImp( AliHBTMonOneParticleFctn1D )
121 AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D()
126 AliHBTMonOneParticleFctn1D::
127 AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
129 TString numstr = fName + " Result"; //title and name of the
132 fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
135 AliHBTMonOneParticleFctn1D::
136 AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
137 Int_t nbins, Double_t maxXval, Double_t minXval)
138 :AliHBTMonOneParticleFctn(name,title)
140 TString numstr = fName + " Result"; //title and name of the
143 fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
145 /******************************************************************/
146 AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
150 /******************************************************************/
152 void AliHBTMonOneParticleFctn1D::Process(AliHBTParticle* particle)
155 particle = CheckParticle(particle);
156 if(particle) fResult->Fill(GetValue(particle));
158 /******************************************************************/
159 /******************************************************************/
161 ClassImp( AliHBTMonOneParticleFctn2D )
163 AliHBTMonOneParticleFctn2D::
164 AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
165 Int_t nYbins, Double_t maxYval, Double_t minYval)
168 TString numstr = fName + " Result"; //title and name of the
171 fResult = new TH2D(numstr.Data(),numstr.Data(),
172 nXbins,minXval,maxXval,
173 nYbins,minYval,maxYval);
177 AliHBTMonOneParticleFctn2D::~AliHBTMonOneParticleFctn2D()
181 void AliHBTMonOneParticleFctn2D::Process(AliHBTParticle* particle)
183 particle = CheckParticle(particle);
187 GetValues(particle,x,y);
192 /******************************************************************/
193 /******************************************************************/
194 /******************************************************************/
196 ClassImp( AliHBTMonOneParticleFctn3D)
198 AliHBTMonOneParticleFctn3D::
199 AliHBTMonOneParticleFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval,
200 Int_t nYbins, Double_t maxYval, Double_t minYval,
201 Int_t nZbins, Double_t maxZval, Double_t minZval)
204 TString numstr = fName + " Result"; //title and name of the
207 fResult = new TH3D(numstr.Data(),numstr.Data(),
208 nXbins,minXval,maxXval,
209 nYbins,minYval,maxYval,
210 nZbins,minZval,maxZval);
213 /******************************************************************/
215 AliHBTMonOneParticleFctn3D::~AliHBTMonOneParticleFctn3D()
219 /******************************************************************/
222 /******************************************************************/
223 /******************************************************************/
224 /******************************************************************/
225 ClassImp( AliHBTMonTwoParticleFctn1D)
227 AliHBTMonTwoParticleFctn1D::
228 AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
230 TString numstr = fName + " Result"; //title and name of the
233 fResult = new TH1D(numstr.Data(),numstr.Data(),
234 nbins,minval,maxval);
238 AliHBTMonTwoParticleFctn1D::
239 AliHBTMonTwoParticleFctn1D(const Char_t* name, const Char_t* title,
240 Int_t nbins, Double_t maxval, Double_t minval)
241 :AliHBTMonTwoParticleFctn(name,title)
243 TString numstr = fName + " Result"; //title and name of the
246 fResult = new TH1D(numstr.Data(),numstr.Data(),
247 nbins,minval,maxval);
252 /******************************************************************/
253 AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D()
257 /******************************************************************/
258 void AliHBTMonTwoParticleFctn1D::
259 Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
261 partparticle = CheckParticle(partparticle);
262 trackparticle = CheckParticle(trackparticle);
263 if( partparticle && trackparticle)
265 Double_t x = GetValue(trackparticle,partparticle);
269 /******************************************************************/
270 /******************************************************************/
271 /******************************************************************/
272 ClassImp( AliHBTMonTwoParticleFctn2D)
275 AliHBTMonTwoParticleFctn2D::
276 AliHBTMonTwoParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
277 Int_t nYbins, Double_t maxYval, Double_t minYval)
280 TString numstr = fName + " Result"; //title and name of the
283 fResult = new TH2D(numstr.Data(),numstr.Data(),
284 nXbins,minXval,maxXval,
285 nYbins,minYval,maxYval);
288 /******************************************************************/
289 AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
293 /******************************************************************/
294 void AliHBTMonTwoParticleFctn2D::
295 Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
297 partparticle = CheckParticle(partparticle);
298 trackparticle = CheckParticle(trackparticle);
299 if( partparticle && trackparticle)
302 GetValues(trackparticle,partparticle,x,y);
306 /******************************************************************/
307 /******************************************************************/
308 /******************************************************************/
309 ClassImp(AliHBTMonTwoParticleFctn3D)
311 void AliHBTMonTwoParticleFctn3D::
312 Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
314 partparticle = CheckParticle(partparticle);
315 trackparticle = CheckParticle(trackparticle);
316 if( partparticle && trackparticle)
319 GetValues(trackparticle,partparticle,x,y,z);
320 fResult->Fill(x,y,z);
323 /******************************************************************/
324 /******************************************************************/
325 /******************************************************************/
326 /******************************************************************/