]>
Commit | Line | Data |
---|---|---|
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 | /* | |
24 | Base 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 | ||
39 | Zbigniew.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 | 49 | class AliHBTParticle; |
a57afe91 | 50 | |
51 | class 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(); |
d289329c | 66 | virtual void Init(); |
b98bda8e | 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 | 82 | inline 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 | 96 | class 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 | /******************************************************************/ | |
114 | class 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 | 139 | class 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 | 165 | class 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 | /******************************************************************/ |
187 | class 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 | 206 | class 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 | /******************************************************************/ | |
230 | class 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 | /******************************************************************/ |
255 | class 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 |