]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTMonitorFunction.h
Just something left from v2...now clean
[u/mrichter/AliRoot.git] / HBTAN / AliHBTMonitorFunction.h
CommitLineData
20527eee 1#ifndef ALIHBTMONITORFUNCTION_H
2#define ALIHBTMONITORFUNCTION_H
37b09b91 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
89c60e9f 8//__________________________________________________________________
9////////////////////////////////////////////////////////////////////
10//
20527eee 11// class AliHBTMonitorFunction
12//
13// class AliHBTMonOneParticleFctn
14// class AliHBTMonTwoParticleFctn
15//
16// class AliHBTMonOneParticleFctn1D
17// class AliHBTMonOneParticleFctn2D
18// class AliHBTMonOneParticleFctn3D
19//
20// class AliHBTMonTwoParticleFctn1D
21// class AliHBTMonTwoParticleFctn2D
22// class AliHBTMonTwoParticleFctn3D
23//
24// Base Classes for monitoring functions
25// author: chajecki@if.pw.edu.pl
26//
89c60e9f 27/******************************************************************/
28/*
29Base classes for monitor functions
30
31 monitor function
32 / \
33 / \
34 / \
35 / \
36 / \
37 / \
38 / \
39 one particle two particle
40 / | \ / | \
41 / | \ / | \
42 1D 2D 3D 1D 2D 3D
43
44Zbigniew.Chajecki@cern.ch
45
46*/
20527eee 47///////////////////////////////////////////////////////////////////////
a57afe91 48
78d7c6d3 49#include "AliAODParticleCut.h"
a57afe91 50
37b09b91 51#include <TMath.h>
b98bda8e 52#include <TH2.h>
53#include <TH3.h>
a57afe91 54
78d7c6d3 55class AliVAODParticle;
a57afe91 56
57class AliHBTMonitorFunction: public TNamed
58//Abstract base class for HBT functions
59{
b98bda8e 60 public:
61 AliHBTMonitorFunction();
62 AliHBTMonitorFunction(const char* name,const char* title);
89c60e9f 63 AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/);
b98bda8e 64 virtual ~AliHBTMonitorFunction();
a57afe91 65
34914285 66 AliHBTMonitorFunction& operator=(const AliHBTMonitorFunction& /*in*/);
89c60e9f 67
68
b98bda8e 69 virtual TH1* GetResult() = 0;
604034d8 70
3c1edb34 71 Int_t Write(const char* /*x1*/ = "",Int_t /*x2*/ = 0, Int_t /*x3*/ = 0);
72 Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
d289329c 73 virtual void Init();
90520373 74 virtual const char* Name(){return GetName();}
b98bda8e 75 void Rename(const Char_t * name);
76 void Rename(const Char_t * name, const Char_t * title);
77
78d7c6d3 78 void SetParticleCut(AliAODParticleCut* cut);
b98bda8e 79
78d7c6d3 80 virtual AliVAODParticle* CheckParticle(AliVAODParticle* particle) const;
b98bda8e 81
82 protected:
78d7c6d3 83 AliAODParticleCut* fParticleCut;//Particle cut
b98bda8e 84
89c60e9f 85 private:
b98bda8e 86 ClassDef(AliHBTMonitorFunction,1)
87};
88/******************************************************************/
a57afe91 89/******************************************************************/
78d7c6d3 90inline AliVAODParticle* AliHBTMonitorFunction::CheckParticle(AliVAODParticle* particle) const
a57afe91 91{
92 //check if particle meets the cut criteria
cea0a066 93 if(fParticleCut->Rejected(particle)) //if the particle is BAD
89c60e9f 94 {
95 return 0x0;//it is BAD as well - so return
96 }
a57afe91 97 return particle;
98}
99
100/******************************************************************/
b98bda8e 101/******************************************************************/
102/******************************************************************/
103
a57afe91 104class AliHBTMonOneParticleFctn: public AliHBTMonitorFunction
105{
b98bda8e 106 public:
107 AliHBTMonOneParticleFctn(){}
108 AliHBTMonOneParticleFctn(const Char_t *name, const Char_t *title):AliHBTMonitorFunction(name,title){}
20527eee 109 AliHBTMonOneParticleFctn(const AliHBTMonOneParticleFctn& in):AliHBTMonitorFunction(in){MayNotUse("Cpy Ctor");}
b98bda8e 110 virtual ~AliHBTMonOneParticleFctn(){}
a57afe91 111
34914285 112 AliHBTMonOneParticleFctn& operator=(const AliHBTMonOneParticleFctn& /*in*/){MayNotUse("operator=");return *this;}
20527eee 113
78d7c6d3 114 virtual void Process(AliVAODParticle* particle) = 0;
a57afe91 115
b98bda8e 116 protected:
89c60e9f 117 private:
b98bda8e 118 ClassDef(AliHBTMonOneParticleFctn,1)
a57afe91 119
120};
121/******************************************************************/
122class AliHBTMonOneParticleFctn1D: public AliHBTMonOneParticleFctn
123{
124 public:
125 AliHBTMonOneParticleFctn1D();
126 AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval);
127 AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
b98bda8e 128 Int_t nbins = 100, Double_t maxXval = 1.4, Double_t minXval = 0.0);
20527eee 129 AliHBTMonOneParticleFctn1D(const AliHBTMonOneParticleFctn1D& in):
130 AliHBTMonOneParticleFctn(in),fResult(0x0){MayNotUse("Cpy Ctor");}
131
a57afe91 132 virtual ~AliHBTMonOneParticleFctn1D();
133
34914285 134 AliHBTMonOneParticleFctn1D& operator=(const AliHBTMonOneParticleFctn1D& /*in*/){MayNotUse("operator=");return *this;}
a22a56ec 135 TH1* GetResult(){return this->fResult;}
a57afe91 136
78d7c6d3 137 void Process(AliVAODParticle* particle);
a57afe91 138
139 protected:
78d7c6d3 140 virtual Double_t GetValue(AliVAODParticle* particle) const = 0;
89c60e9f 141 TH1D* fResult;//histogram to be filled
89c60e9f 142 private:
a57afe91 143 ClassDef(AliHBTMonOneParticleFctn1D,2)
144};
b98bda8e 145/******************************************************************/
146
a57afe91 147class AliHBTMonOneParticleFctn2D: public AliHBTMonOneParticleFctn
148{
149 public:
150 AliHBTMonOneParticleFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 151 Int_t nYbins = 200, Double_t maxYval = 1.5, Double_t minYval =-0.1);
20527eee 152 AliHBTMonOneParticleFctn2D(const AliHBTMonOneParticleFctn2D& in):
153 AliHBTMonOneParticleFctn(in),fResult(0x0){MayNotUse("Cpy Ctor");}
8961c985 154 virtual ~AliHBTMonOneParticleFctn2D();
a57afe91 155
34914285 156 AliHBTMonOneParticleFctn2D& operator=(const AliHBTMonOneParticleFctn2D& /*in*/){MayNotUse("operator=");return *this;}
a22a56ec 157 TH1* GetResult(){return this->fResult;}
a57afe91 158
78d7c6d3 159 void Process(AliVAODParticle* particle);
b98bda8e 160
a57afe91 161 protected:
78d7c6d3 162 virtual void GetValues(AliVAODParticle* particle, Double_t&, Double_t&) const = 0;
a57afe91 163
89c60e9f 164 TH2D* fResult;//histogram to be filled
a57afe91 165
89c60e9f 166 private:
a57afe91 167 ClassDef(AliHBTMonOneParticleFctn2D,1)
168};
604034d8 169/******************************************************************/
b98bda8e 170/******************************************************************/
171/******************************************************************/
172
a57afe91 173class AliHBTMonOneParticleFctn3D: public AliHBTMonOneParticleFctn
174{
175 public:
176 AliHBTMonOneParticleFctn3D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 177 Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15,
178 Int_t nZbins = 200, Double_t maxZval = .15, Double_t minZval =-0.15);
20527eee 179 AliHBTMonOneParticleFctn3D(const AliHBTMonOneParticleFctn3D& in):
180 AliHBTMonOneParticleFctn(in),fResult(0x0){MayNotUse("Cpy Ctor");}
a57afe91 181
182 virtual ~AliHBTMonOneParticleFctn3D();
183
34914285 184 AliHBTMonOneParticleFctn3D& operator=(const AliHBTMonOneParticleFctn3D& /*in*/){MayNotUse("operator=");return *this;}
a22a56ec 185 TH1* GetResult(){return this->fResult;}
a57afe91 186
187 protected:
89c60e9f 188 TH3D* fResult;//histogram to be filled
a57afe91 189
89c60e9f 190 private:
a57afe91 191 ClassDef(AliHBTMonOneParticleFctn3D,1)
192};
b98bda8e 193/******************************************************************/
a57afe91 194/******************************************************************/
195class AliHBTMonTwoParticleFctn: public AliHBTMonitorFunction
196{
b98bda8e 197 public:
198 AliHBTMonTwoParticleFctn(){};
199 AliHBTMonTwoParticleFctn(const Char_t *name, const Char_t *title):AliHBTMonitorFunction(name,title){}
20527eee 200 AliHBTMonTwoParticleFctn(const AliHBTMonTwoParticleFctn& in):AliHBTMonitorFunction(in){MayNotUse("Cpy Ctor");}
b98bda8e 201 virtual ~AliHBTMonTwoParticleFctn(){};
34914285 202 AliHBTMonTwoParticleFctn& operator=(const AliHBTMonTwoParticleFctn& /*in*/){MayNotUse("operator=");return *this;}
b98bda8e 203
204 virtual void
78d7c6d3 205 Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle) = 0;
b98bda8e 206
207 protected:
89c60e9f 208 private:
b98bda8e 209 ClassDef(AliHBTMonTwoParticleFctn,1)
a57afe91 210
211};
604034d8 212/******************************************************************/
b98bda8e 213
a57afe91 214class AliHBTMonTwoParticleFctn1D: public AliHBTMonTwoParticleFctn
215{
216 public:
217 AliHBTMonTwoParticleFctn1D(Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
89c60e9f 218 AliHBTMonTwoParticleFctn1D(const char* name,const char* title,
b98bda8e 219 Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
20527eee 220 AliHBTMonTwoParticleFctn1D(const AliHBTMonTwoParticleFctn1D& in):
221 AliHBTMonTwoParticleFctn(in),fResult(0x0){MayNotUse("Cpy Ctor");}
8961c985 222 virtual ~AliHBTMonTwoParticleFctn1D();
a57afe91 223
34914285 224 AliHBTMonTwoParticleFctn1D& operator=(const AliHBTMonTwoParticleFctn1D& /*in*/){MayNotUse("operator=");return *this;}
a22a56ec 225 TH1* GetResult(){return this->fResult;}
a57afe91 226
78d7c6d3 227 void Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle);
a57afe91 228
229 protected:
78d7c6d3 230 virtual Double_t GetValue(AliVAODParticle* trackparticle, AliVAODParticle* partparticle) const = 0;
a57afe91 231
89c60e9f 232 TH1D* fResult;//histogram to be filled
a57afe91 233
89c60e9f 234 private:
a57afe91 235 ClassDef(AliHBTMonTwoParticleFctn1D,1)
236};
237/******************************************************************/
238class AliHBTMonTwoParticleFctn2D: public AliHBTMonTwoParticleFctn
239{
240 public:
241 AliHBTMonTwoParticleFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 242 Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15);
20527eee 243 AliHBTMonTwoParticleFctn2D(const AliHBTMonTwoParticleFctn2D& in):
244 AliHBTMonTwoParticleFctn(in),fResult(0x0){MayNotUse("Cpy Ctor");}
a57afe91 245 virtual ~AliHBTMonTwoParticleFctn2D();
246
34914285 247 AliHBTMonTwoParticleFctn2D& operator=(const AliHBTMonTwoParticleFctn2D& /*in*/){MayNotUse("operator=");return *this;}
a22a56ec 248 TH1* GetResult(){return this->fResult;}
a57afe91 249
78d7c6d3 250 void Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle);
a57afe91 251
252 protected:
78d7c6d3 253 virtual void GetValues(AliVAODParticle*,AliVAODParticle*, Double_t&, Double_t&) const = 0;
a57afe91 254
89c60e9f 255 TH2D* fResult;//histogram to be filled
a57afe91 256
89c60e9f 257 private:
a57afe91 258 ClassDef(AliHBTMonTwoParticleFctn2D,1)
259};
260
b98bda8e 261
a57afe91 262/******************************************************************/
263class AliHBTMonTwoParticleFctn3D: public AliHBTMonTwoParticleFctn
264{
265 public:
4c57c771 266 AliHBTMonTwoParticleFctn3D(Int_t /*nXbins = 200*/, Double_t /*maxXval = 1.5*/, Double_t /*minXval = 0.0*/,
267 Int_t /*nYbins = 200*/, Double_t /*maxYval = .15*/, Double_t /*minYval =-0.15*/,
4b1c9620 268 Int_t /*nZbins = 200*/, Double_t /*maxZval = .15*/, Double_t /*minZval =-0.15*/) :
269 fResult(0) {}
20527eee 270 AliHBTMonTwoParticleFctn3D(const AliHBTMonTwoParticleFctn3D& in):
271 AliHBTMonTwoParticleFctn(in),fResult(0x0){MayNotUse("Cpy Ctor");}
a57afe91 272 virtual ~AliHBTMonTwoParticleFctn3D(){}
273
34914285 274 AliHBTMonTwoParticleFctn3D& operator=(const AliHBTMonTwoParticleFctn3D& /*in*/){MayNotUse("operator=");return *this;}
a22a56ec 275 TH1* GetResult(){return this->fResult;}
a57afe91 276
78d7c6d3 277 void Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle);
e4f2b1da 278
a57afe91 279 protected:
78d7c6d3 280 virtual void GetValues(AliVAODParticle*,AliVAODParticle*, Double_t&, Double_t&,Double_t&) const = 0;
a57afe91 281
89c60e9f 282 TH3D* fResult; //histogram to be filled
a57afe91 283
89c60e9f 284 private:
a57afe91 285 ClassDef(AliHBTMonTwoParticleFctn3D,1)
286};
287
b98bda8e 288/******************************************************************/
289/******************************************************************/
290/******************************************************************/
291/******************************************************************/
292
a57afe91 293#endif