]>
Commit | Line | Data |
---|---|---|
89c60e9f | 1 | //__________________________________________________________________ |
2 | //////////////////////////////////////////////////////////////////// | |
3 | // | |
4 | /******************************************************************/ | |
5 | /* | |
6 | Base 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 | ||
21 | Zbigniew.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 | |
35 | class 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 | 66 | inline 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 | 80 | class 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 | /******************************************************************/ | |
95 | class 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 | 118 | class 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 | 141 | class 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 | /******************************************************************/ |
160 | class 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 | 177 | class 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 | /******************************************************************/ | |
198 | class 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 | /******************************************************************/ |
220 | class 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 |