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