]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTMonitorFunction.h
Changes required by Coding Conventions
[u/mrichter/AliRoot.git] / HBTAN / AliHBTMonitorFunction.h
CommitLineData
89c60e9f 1//__________________________________________________________________
2////////////////////////////////////////////////////////////////////
3//
4/******************************************************************/
5/*
6Base classes for monitor functions
7
8 monitor function
9 / \
10 / \
11 / \
12 / \
13 / \
14 / \
15 / \
16 one particle two particle
17 / | \ / | \
18 / | \ / | \
19 1D 2D 3D 1D 2D 3D
20
21Zbigniew.Chajecki@cern.ch
22
23*/
b98bda8e 24
a57afe91 25#ifndef ALIMONITORFUNCTION_H
26#define ALIMONITORFUNCTION_H
27
28#include "AliHBTParticleCut.h"
29#include "AliHBTParticle.h"
30
b98bda8e 31#include <TH2.h>
32#include <TH3.h>
a57afe91 33
a57afe91 34
35class AliHBTMonitorFunction: public TNamed
36//Abstract base class for HBT functions
37{
b98bda8e 38 public:
39 AliHBTMonitorFunction();
40 AliHBTMonitorFunction(const char* name,const char* title);
89c60e9f 41 AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/);
b98bda8e 42 virtual ~AliHBTMonitorFunction();
a57afe91 43
89c60e9f 44 const AliHBTMonitorFunction& operator=(const AliHBTMonitorFunction& /*in*/);
45
46
b98bda8e 47 virtual TH1* GetResult() = 0;
604034d8 48
b98bda8e 49 virtual void Write();
50 virtual void Init(){}
51 void Rename(const Char_t * name);
52 void Rename(const Char_t * name, const Char_t * title);
53
89c60e9f 54 void SetParticleCut(AliHBTParticleCut* cut);
b98bda8e 55
89c60e9f 56 virtual AliHBTParticle* CheckParticle(AliHBTParticle* particle) const;
b98bda8e 57
58 protected:
89c60e9f 59 AliHBTParticleCut* fParticleCut;//Particle cut
b98bda8e 60
89c60e9f 61 private:
b98bda8e 62 ClassDef(AliHBTMonitorFunction,1)
63};
64/******************************************************************/
a57afe91 65/******************************************************************/
89c60e9f 66inline AliHBTParticle* AliHBTMonitorFunction::CheckParticle(AliHBTParticle* particle) const
a57afe91 67{
68 //check if particle meets the cut criteria
69 if(fParticleCut->Pass(particle)) //if the particle is BAD
89c60e9f 70 {
71 return 0x0;//it is BAD as well - so return
72 }
a57afe91 73 return particle;
74}
75
76/******************************************************************/
b98bda8e 77/******************************************************************/
78/******************************************************************/
79
a57afe91 80class AliHBTMonOneParticleFctn: public AliHBTMonitorFunction
81{
b98bda8e 82 public:
83 AliHBTMonOneParticleFctn(){}
84 AliHBTMonOneParticleFctn(const Char_t *name, const Char_t *title):AliHBTMonitorFunction(name,title){}
85 virtual ~AliHBTMonOneParticleFctn(){}
a57afe91 86
b98bda8e 87 virtual void Process(AliHBTParticle* particle) = 0;
a57afe91 88
b98bda8e 89 protected:
89c60e9f 90 private:
b98bda8e 91 ClassDef(AliHBTMonOneParticleFctn,1)
a57afe91 92
93};
94/******************************************************************/
95class AliHBTMonOneParticleFctn1D: public AliHBTMonOneParticleFctn
96{
97 public:
98 AliHBTMonOneParticleFctn1D();
99 AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval);
100 AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
b98bda8e 101 Int_t nbins = 100, Double_t maxXval = 1.4, Double_t minXval = 0.0);
a57afe91 102 virtual ~AliHBTMonOneParticleFctn1D();
103
104 TH1* GetResult(){return fResult;}
105
e4f2b1da 106 void Process(AliHBTParticle* particle);
a57afe91 107
108 protected:
109 virtual Double_t GetValue(AliHBTParticle* particle) = 0;
110
89c60e9f 111 TH1D* fResult;//histogram to be filled
a57afe91 112
89c60e9f 113 private:
a57afe91 114 ClassDef(AliHBTMonOneParticleFctn1D,2)
115};
b98bda8e 116/******************************************************************/
117
a57afe91 118class AliHBTMonOneParticleFctn2D: public AliHBTMonOneParticleFctn
119{
120 public:
121 AliHBTMonOneParticleFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 122 Int_t nYbins = 200, Double_t maxYval = 1.5, Double_t minYval =-0.1);
8961c985 123 virtual ~AliHBTMonOneParticleFctn2D();
a57afe91 124
125 TH1* GetResult(){return fResult;}
126
e4f2b1da 127 void Process(AliHBTParticle* particle);
b98bda8e 128
a57afe91 129 protected:
130 virtual void GetValues(AliHBTParticle* particle, Double_t&, Double_t&) = 0;
131
89c60e9f 132 TH2D* fResult;//histogram to be filled
a57afe91 133
89c60e9f 134 private:
a57afe91 135 ClassDef(AliHBTMonOneParticleFctn2D,1)
136};
604034d8 137/******************************************************************/
b98bda8e 138/******************************************************************/
139/******************************************************************/
140
a57afe91 141class AliHBTMonOneParticleFctn3D: public AliHBTMonOneParticleFctn
142{
143 public:
144 AliHBTMonOneParticleFctn3D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 145 Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15,
146 Int_t nZbins = 200, Double_t maxZval = .15, Double_t minZval =-0.15);
a57afe91 147
148 virtual ~AliHBTMonOneParticleFctn3D();
149
150 TH1* GetResult(){return fResult;}
151
152 protected:
89c60e9f 153 TH3D* fResult;//histogram to be filled
a57afe91 154
89c60e9f 155 private:
a57afe91 156 ClassDef(AliHBTMonOneParticleFctn3D,1)
157};
b98bda8e 158/******************************************************************/
a57afe91 159/******************************************************************/
160class AliHBTMonTwoParticleFctn: public AliHBTMonitorFunction
161{
b98bda8e 162 public:
163 AliHBTMonTwoParticleFctn(){};
164 AliHBTMonTwoParticleFctn(const Char_t *name, const Char_t *title):AliHBTMonitorFunction(name,title){}
165 virtual ~AliHBTMonTwoParticleFctn(){};
166
167 virtual void
e4f2b1da 168 Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) = 0;
b98bda8e 169
170 protected:
89c60e9f 171 private:
b98bda8e 172 ClassDef(AliHBTMonTwoParticleFctn,1)
a57afe91 173
174};
604034d8 175/******************************************************************/
b98bda8e 176
a57afe91 177class AliHBTMonTwoParticleFctn1D: public AliHBTMonTwoParticleFctn
178{
179 public:
180 AliHBTMonTwoParticleFctn1D(Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
89c60e9f 181 AliHBTMonTwoParticleFctn1D(const char* name,const char* title,
b98bda8e 182 Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
8961c985 183 virtual ~AliHBTMonTwoParticleFctn1D();
a57afe91 184
185 TH1* GetResult(){return fResult;}
186
e4f2b1da 187 void Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle);
a57afe91 188
189 protected:
190 virtual Double_t GetValue(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) = 0;
191
89c60e9f 192 TH1D* fResult;//histogram to be filled
a57afe91 193
89c60e9f 194 private:
a57afe91 195 ClassDef(AliHBTMonTwoParticleFctn1D,1)
196};
197/******************************************************************/
198class AliHBTMonTwoParticleFctn2D: public AliHBTMonTwoParticleFctn
199{
200 public:
201 AliHBTMonTwoParticleFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 202 Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15);
a57afe91 203 virtual ~AliHBTMonTwoParticleFctn2D();
204
205 TH1* GetResult(){return fResult;}
206
e4f2b1da 207 void Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle);
a57afe91 208
209 protected:
210 virtual void GetValues(AliHBTParticle*,AliHBTParticle*, Double_t&, Double_t&) = 0;
211
89c60e9f 212 TH2D* fResult;//histogram to be filled
a57afe91 213
89c60e9f 214 private:
a57afe91 215 ClassDef(AliHBTMonTwoParticleFctn2D,1)
216};
217
b98bda8e 218
a57afe91 219/******************************************************************/
220class AliHBTMonTwoParticleFctn3D: public AliHBTMonTwoParticleFctn
221{
222 public:
223 AliHBTMonTwoParticleFctn3D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
b98bda8e 224 Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15,
225 Int_t nZbins = 200, Double_t maxZval = .15, Double_t minZval =-0.15){}
a57afe91 226 virtual ~AliHBTMonTwoParticleFctn3D(){}
227
228 TH1* GetResult(){return fResult;}
229
e4f2b1da 230 void Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle);
231
a57afe91 232 protected:
233 virtual void GetValues(AliHBTParticle*,AliHBTParticle*, Double_t&, Double_t&,Double_t&) = 0;
234
89c60e9f 235 TH3D* fResult; //histogram to be filled
a57afe91 236
89c60e9f 237 private:
a57afe91 238 ClassDef(AliHBTMonTwoParticleFctn3D,1)
239};
240
b98bda8e 241/******************************************************************/
242/******************************************************************/
243/******************************************************************/
244/******************************************************************/
245
a57afe91 246#endif