]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTMonitorFunction.cxx
Typo corrected.
[u/mrichter/AliRoot.git] / HBTAN / AliHBTMonitorFunction.cxx
CommitLineData
c7ffd78f 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18#include "AliLog.h"
b98bda8e 19#include "AliHBTMonitorFunction.h"
c7ffd78f 20
20527eee 21//__________________________________________________________________
22////////////////////////////////////////////////////////////////////
23//
24// class AliHBTMonitorFunction
25//
26// class AliHBTMonOneParticleFctn
27// class AliHBTMonTwoParticleFctn
28//
29// class AliHBTMonOneParticleFctn1D
30// class AliHBTMonOneParticleFctn2D
31// class AliHBTMonOneParticleFctn3D
32//
33// class AliHBTMonTwoParticleFctn1D
34// class AliHBTMonTwoParticleFctn2D
35// class AliHBTMonTwoParticleFctn3D
36//
37// Base Classes for monitoring functions
38// author: chajecki@if.pw.edu.pl
39//
a57afe91 40/******************************************************************/
41/*
42Base classes for monitor functions
43
44 monitor function
45 / \
46 / \
47 / \
48 / \
49 / \
50 / \
51 / \
52 one particle two particle
53 / | \ / | \
54 / | \ / | \
55 1D 2D 3D 1D 2D 3D
56
57Zbigniew.Chajecki@cern.ch
58
59*/
20527eee 60///////////////////////////////////////////////////////////////////////
61
a57afe91 62
a57afe91 63ClassImp( AliHBTMonitorFunction )
64
89c60e9f 65AliHBTMonitorFunction::AliHBTMonitorFunction():
b4fb427e 66 fParticleCut(new AliAODParticleEmptyCut())
a57afe91 67{
89c60e9f 68 //ctor
a57afe91 69}
70/******************************************************************/
89c60e9f 71AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):
72 TNamed(name,title),
b4fb427e 73 fParticleCut(new AliAODParticleEmptyCut())
a57afe91 74{
89c60e9f 75 //ctor
a57afe91 76}
77/******************************************************************/
89c60e9f 78AliHBTMonitorFunction::AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/):
79 TNamed(),
b4fb427e 80 fParticleCut(new AliAODParticleEmptyCut())
89c60e9f 81{
82 //cpy ctor
20527eee 83 // We cannot copy because it is a mess with names (histogram and functions)
89c60e9f 84 MayNotUse("AliHBTMonitorFunction(const AliHBTMonitorFunction&");
85}
86/******************************************************************/
34914285 87AliHBTMonitorFunction& AliHBTMonitorFunction::operator=(const AliHBTMonitorFunction& /*in*/)
89c60e9f 88{
20527eee 89 //assigment operator
90 // We cannot copy because it is a mess with names (histogram and functions)
89c60e9f 91 MayNotUse("operator=");
92 return *this;
93}
20527eee 94/******************************************************************/
a57afe91 95
96AliHBTMonitorFunction::~AliHBTMonitorFunction()
97 {
89c60e9f 98 //dtor
20527eee 99 delete fParticleCut;
a57afe91 100 }
101/******************************************************************/
102
3c1edb34 103Int_t AliHBTMonitorFunction::Write(const char*,Int_t, Int_t)
a57afe91 104 {
89c60e9f 105 //Writes an function to disk
a57afe91 106 if (GetResult()) GetResult()->Write();
3c1edb34 107 return 0;
a57afe91 108 }
109/******************************************************************/
110
d289329c 111void AliHBTMonitorFunction::Init()
112 {
113 //Writes an function to disk
c7ffd78f 114 AliDebug(1,"Entering");
d289329c 115
116 if (GetResult() == 0x0)
117 {
118 Warning("Init","Function has NULL result histogram!");
119 return;
120 }
121 GetResult()->Reset();
122 GetResult()->SetDirectory(0x0);
c7ffd78f 123 AliDebug(1,"Done");
d289329c 124 }
a57afe91 125/******************************************************************/
d289329c 126
78d7c6d3 127void AliHBTMonitorFunction::SetParticleCut(AliAODParticleCut* cut)
a57afe91 128{
129//Sets new Particle Cut. Old one is deleted
130//Note that it is created new object instead of simple pointer set
131//I do not want to have pointer
132//to object created somewhere else
133//because in that case I could not believe that
134//it would always exist (sb could delete it)
135//so we have always own copy
136
137 if(!cut)
138 {
139 Error("AliHBTMonitorFunction::SetParticleCut","argument is NULL");
140 return;
141 }
142 delete fParticleCut;
78d7c6d3 143 fParticleCut = (AliAODParticleCut*)cut->Clone();
a57afe91 144
145}
a57afe91 146/******************************************************************/
147
89c60e9f 148void AliHBTMonitorFunction::Rename(const Char_t * name)
a57afe91 149 {
150 //renames the function and histograms
151 SetName(name);
152 SetTitle(name);
153
154 TString numstr = fName + " Result"; //title and name of the
155 //result histogram
156 GetResult()->SetName(numstr.Data());
157 GetResult()->SetTitle(numstr.Data());
a57afe91 158 }
89c60e9f 159/******************************************************************/
a57afe91 160
89c60e9f 161void AliHBTMonitorFunction::Rename(const Char_t * name, const Char_t * title)
a57afe91 162 {
163 //renames and retitle the function and histograms
164
165 SetName(name);
166 SetTitle(title);
167
168 TString numstrn = fName + " Result"; //name of the
169 //result histogram
170
171 TString numstrt = fTitle + " Result"; //title of the
172 //result histogram
173
174
175 GetResult()->SetName(numstrn.Data());
176 GetResult()->SetTitle(numstrt.Data());
177
178 }
179
180/******************************************************************/
181/******************************************************************/
182/******************************************************************/
183ClassImp( AliHBTMonOneParticleFctn ) //z.ch.
184/******************************************************************/
185/******************************************************************/
186ClassImp( AliHBTMonTwoParticleFctn ) //z.ch.
187/******************************************************************/
188/******************************************************************/
189/******************************************************************/
190ClassImp( AliHBTMonOneParticleFctn1D )
89c60e9f 191AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D():
192 fResult(0x0)
a57afe91 193 {
89c60e9f 194 //ctor
a57afe91 195 }
89c60e9f 196/******************************************************************/
a57afe91 197
89c60e9f 198AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
a57afe91 199 {
89c60e9f 200 //ctor
a57afe91 201 TString numstr = fName + " Result"; //title and name of the
202 //result histogram
a57afe91 203 fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
bb5117ea 204 fResult->Sumw2();
a57afe91 205 }
206
89c60e9f 207AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
a57afe91 208 Int_t nbins, Double_t maxXval, Double_t minXval)
209 :AliHBTMonOneParticleFctn(name,title)
210{
89c60e9f 211 //ctor
a57afe91 212 TString numstr = fName + " Result"; //title and name of the
213 //result histogram
214
215 fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
bb5117ea 216 fResult->Sumw2();
cfa5b555 217 fResult->SetDirectory(0x0);
218
a57afe91 219}
220/******************************************************************/
221AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
222{
89c60e9f 223 //dtor
224 delete fResult;
a57afe91 225}
226/******************************************************************/
227
78d7c6d3 228void AliHBTMonOneParticleFctn1D::Process(AliVAODParticle* particle)
a57afe91 229{
230 //Fills the result
231 particle = CheckParticle(particle);
232 if(particle) fResult->Fill(GetValue(particle));
233}
234/******************************************************************/
235/******************************************************************/
236
237ClassImp( AliHBTMonOneParticleFctn2D )
238
89c60e9f 239AliHBTMonOneParticleFctn2D::AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
a57afe91 240 Int_t nYbins, Double_t maxYval, Double_t minYval)
241
242{
89c60e9f 243 //ctor
a57afe91 244 TString numstr = fName + " Result"; //title and name of the
245 //result histogram
246
247 fResult = new TH2D(numstr.Data(),numstr.Data(),
248 nXbins,minXval,maxXval,
249 nYbins,minYval,maxYval);
bb5117ea 250 fResult->Sumw2();
cfa5b555 251 fResult->SetDirectory(0x0);
a57afe91 252}
89c60e9f 253/******************************************************************/
a57afe91 254
255AliHBTMonOneParticleFctn2D::~AliHBTMonOneParticleFctn2D()
256{
89c60e9f 257 //dtor
a57afe91 258 delete fResult;
259}
78d7c6d3 260void AliHBTMonOneParticleFctn2D::Process(AliVAODParticle* particle)
a57afe91 261{
89c60e9f 262 //fills the function for one particle
a57afe91 263 particle = CheckParticle(particle);
264 if(particle)
265 {
266 Double_t x,y;
267 GetValues(particle,x,y);
268 fResult->Fill(x,y);
269 }
270}
271
272/******************************************************************/
273/******************************************************************/
274/******************************************************************/
275
276ClassImp( AliHBTMonOneParticleFctn3D)
277
278AliHBTMonOneParticleFctn3D::
279AliHBTMonOneParticleFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval,
280 Int_t nYbins, Double_t maxYval, Double_t minYval,
281 Int_t nZbins, Double_t maxZval, Double_t minZval)
282
283{
89c60e9f 284 //ctor
a57afe91 285 TString numstr = fName + " Result"; //title and name of the
286 //result histogram
287
288 fResult = new TH3D(numstr.Data(),numstr.Data(),
289 nXbins,minXval,maxXval,
290 nYbins,minYval,maxYval,
291 nZbins,minZval,maxZval);
bb5117ea 292 fResult->Sumw2();
cfa5b555 293 fResult->SetDirectory(0x0);
a57afe91 294
295}
296/******************************************************************/
297
298AliHBTMonOneParticleFctn3D::~AliHBTMonOneParticleFctn3D()
299{
89c60e9f 300 //dtor
a57afe91 301 delete fResult;
302}
303/******************************************************************/
304
305
306/******************************************************************/
307/******************************************************************/
308/******************************************************************/
309ClassImp( AliHBTMonTwoParticleFctn1D)
310
311AliHBTMonTwoParticleFctn1D::
312AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
313 {
89c60e9f 314 //ctor
a57afe91 315 TString numstr = fName + " Result"; //title and name of the
316 //result histogram
317
318 fResult = new TH1D(numstr.Data(),numstr.Data(),
319 nbins,minval,maxval);
bb5117ea 320 fResult->Sumw2();
cfa5b555 321 fResult->SetDirectory(0x0);
a57afe91 322 }
323
324AliHBTMonTwoParticleFctn1D::
325AliHBTMonTwoParticleFctn1D(const Char_t* name, const Char_t* title,
326 Int_t nbins, Double_t maxval, Double_t minval)
327 :AliHBTMonTwoParticleFctn(name,title)
328 {
89c60e9f 329 //ctor
a57afe91 330 TString numstr = fName + " Result"; //title and name of the
331 //result histogram
332
333 fResult = new TH1D(numstr.Data(),numstr.Data(),
334 nbins,minval,maxval);
bb5117ea 335 fResult->Sumw2();
cfa5b555 336 fResult->SetDirectory(0x0);
a57afe91 337 }
338
339
340/******************************************************************/
341AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D()
342{
89c60e9f 343 //dtor
a57afe91 344 delete fResult;
345}
346/******************************************************************/
347void AliHBTMonTwoParticleFctn1D::
78d7c6d3 348Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
a57afe91 349{
89c60e9f 350 //fills the function for one particle
a57afe91 351 partparticle = CheckParticle(partparticle);
352 trackparticle = CheckParticle(trackparticle);
353 if( partparticle && trackparticle)
354 {
355 Double_t x = GetValue(trackparticle,partparticle);
356 fResult->Fill(x);
357 }
358}
359/******************************************************************/
360/******************************************************************/
361/******************************************************************/
362ClassImp( AliHBTMonTwoParticleFctn2D)
363
364
365AliHBTMonTwoParticleFctn2D::
366AliHBTMonTwoParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
367 Int_t nYbins, Double_t maxYval, Double_t minYval)
368
369{
89c60e9f 370 //ctor
a57afe91 371 TString numstr = fName + " Result"; //title and name of the
372 //result histogram
373
374 fResult = new TH2D(numstr.Data(),numstr.Data(),
375 nXbins,minXval,maxXval,
376 nYbins,minYval,maxYval);
bb5117ea 377 fResult->Sumw2();
cfa5b555 378 fResult->SetDirectory(0x0);
a57afe91 379}
380/******************************************************************/
381AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
382{
89c60e9f 383 //dtor
a57afe91 384 delete fResult;
385}
386/******************************************************************/
387void AliHBTMonTwoParticleFctn2D::
78d7c6d3 388Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
a57afe91 389{
89c60e9f 390 //fills the function for one particle
a57afe91 391 partparticle = CheckParticle(partparticle);
392 trackparticle = CheckParticle(trackparticle);
393 if( partparticle && trackparticle)
394 {
395 Double_t x,y;
396 GetValues(trackparticle,partparticle,x,y);
397 fResult->Fill(x,y);
398 }
399}
400/******************************************************************/
401/******************************************************************/
402/******************************************************************/
403ClassImp(AliHBTMonTwoParticleFctn3D)
404
405void AliHBTMonTwoParticleFctn3D::
78d7c6d3 406Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
a57afe91 407{
89c60e9f 408 //fills the function for one particle
a57afe91 409 partparticle = CheckParticle(partparticle);
410 trackparticle = CheckParticle(trackparticle);
411 if( partparticle && trackparticle)
412 {
413 Double_t x,y,z;
414 GetValues(trackparticle,partparticle,x,y,z);
415 fResult->Fill(x,y,z);
416 }
417}
418/******************************************************************/
419/******************************************************************/
420/******************************************************************/
421/******************************************************************/
422