b98bda8e |
1 | #include "AliHBTMonitorFunction.h" |
a57afe91 |
2 | /******************************************************************/ |
3 | /* |
4 | Base classes for monitor functions |
5 | |
6 | monitor function |
7 | / \ |
8 | / \ |
9 | / \ |
10 | / \ |
11 | / \ |
12 | / \ |
13 | / \ |
14 | one particle two particle |
15 | / | \ / | \ |
16 | / | \ / | \ |
17 | 1D 2D 3D 1D 2D 3D |
18 | |
19 | Zbigniew.Chajecki@cern.ch |
20 | |
21 | */ |
22 | /******************************************************************/ |
23 | /******************************************************************/ |
24 | |
d0c23b58 |
25 | #include <Riostream.h> |
a57afe91 |
26 | ClassImp( AliHBTMonitorFunction ) |
27 | |
28 | AliHBTMonitorFunction::AliHBTMonitorFunction() |
29 | { |
30 | fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut |
31 | } |
32 | /******************************************************************/ |
33 | AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):TNamed(name,title) |
34 | { |
35 | fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut |
36 | } |
37 | /******************************************************************/ |
38 | |
39 | AliHBTMonitorFunction::~AliHBTMonitorFunction() |
40 | { |
41 | if (fParticleCut) delete fParticleCut; |
42 | } |
43 | /******************************************************************/ |
44 | |
45 | void AliHBTMonitorFunction:: |
46 | Write() |
47 | { |
48 | if (GetResult()) GetResult()->Write(); |
49 | } |
50 | /******************************************************************/ |
51 | |
52 | /******************************************************************/ |
53 | void AliHBTMonitorFunction::SetParticleCut(AliHBTParticleCut* cut) |
54 | { |
55 | //Sets new Particle Cut. Old one is deleted |
56 | //Note that it is created new object instead of simple pointer set |
57 | //I do not want to have pointer |
58 | //to object created somewhere else |
59 | //because in that case I could not believe that |
60 | //it would always exist (sb could delete it) |
61 | //so we have always own copy |
62 | |
63 | if(!cut) |
64 | { |
65 | Error("AliHBTMonitorFunction::SetParticleCut","argument is NULL"); |
66 | return; |
67 | } |
68 | delete fParticleCut; |
69 | fParticleCut = (AliHBTParticleCut*)cut->Clone(); |
70 | |
71 | } |
72 | |
73 | /******************************************************************/ |
74 | |
75 | void AliHBTMonitorFunction:: |
76 | Rename(const Char_t * name) |
77 | { |
78 | //renames the function and histograms |
79 | SetName(name); |
80 | SetTitle(name); |
81 | |
82 | TString numstr = fName + " Result"; //title and name of the |
83 | //result histogram |
84 | GetResult()->SetName(numstr.Data()); |
85 | GetResult()->SetTitle(numstr.Data()); |
86 | |
87 | |
88 | } |
89 | |
90 | void AliHBTMonitorFunction:: |
91 | Rename(const Char_t * name, const Char_t * title) |
92 | { |
93 | //renames and retitle the function and histograms |
94 | |
95 | SetName(name); |
96 | SetTitle(title); |
97 | |
98 | TString numstrn = fName + " Result"; //name of the |
99 | //result histogram |
100 | |
101 | TString numstrt = fTitle + " Result"; //title of the |
102 | //result histogram |
103 | |
104 | |
105 | GetResult()->SetName(numstrn.Data()); |
106 | GetResult()->SetTitle(numstrt.Data()); |
107 | |
108 | } |
109 | |
110 | /******************************************************************/ |
111 | /******************************************************************/ |
112 | /******************************************************************/ |
113 | ClassImp( AliHBTMonOneParticleFctn ) //z.ch. |
114 | /******************************************************************/ |
115 | /******************************************************************/ |
116 | ClassImp( AliHBTMonTwoParticleFctn ) //z.ch. |
117 | /******************************************************************/ |
118 | /******************************************************************/ |
119 | /******************************************************************/ |
120 | ClassImp( AliHBTMonOneParticleFctn1D ) |
121 | AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D() |
122 | { |
123 | fResult = 0x0; |
124 | } |
125 | |
126 | AliHBTMonOneParticleFctn1D:: |
127 | AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval) |
128 | { |
129 | TString numstr = fName + " Result"; //title and name of the |
130 | //result histogram |
131 | |
132 | fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval); |
133 | } |
134 | |
135 | AliHBTMonOneParticleFctn1D:: |
136 | AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title, |
137 | Int_t nbins, Double_t maxXval, Double_t minXval) |
138 | :AliHBTMonOneParticleFctn(name,title) |
139 | { |
140 | TString numstr = fName + " Result"; //title and name of the |
141 | //result histogram |
142 | |
143 | fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval); |
144 | } |
145 | /******************************************************************/ |
146 | AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D() |
147 | { |
148 | delete fResult; |
149 | } |
150 | /******************************************************************/ |
151 | |
e4f2b1da |
152 | void AliHBTMonOneParticleFctn1D::Process(AliHBTParticle* particle) |
a57afe91 |
153 | { |
154 | //Fills the result |
155 | particle = CheckParticle(particle); |
156 | if(particle) fResult->Fill(GetValue(particle)); |
157 | } |
158 | /******************************************************************/ |
159 | /******************************************************************/ |
160 | |
161 | ClassImp( AliHBTMonOneParticleFctn2D ) |
162 | |
163 | AliHBTMonOneParticleFctn2D:: |
164 | AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval , |
165 | Int_t nYbins, Double_t maxYval, Double_t minYval) |
166 | |
167 | { |
168 | TString numstr = fName + " Result"; //title and name of the |
169 | //result histogram |
170 | |
171 | fResult = new TH2D(numstr.Data(),numstr.Data(), |
172 | nXbins,minXval,maxXval, |
173 | nYbins,minYval,maxYval); |
174 | |
175 | } |
176 | |
177 | AliHBTMonOneParticleFctn2D::~AliHBTMonOneParticleFctn2D() |
178 | { |
179 | delete fResult; |
180 | } |
e4f2b1da |
181 | void AliHBTMonOneParticleFctn2D::Process(AliHBTParticle* particle) |
a57afe91 |
182 | { |
183 | particle = CheckParticle(particle); |
184 | if(particle) |
185 | { |
186 | Double_t x,y; |
187 | GetValues(particle,x,y); |
188 | fResult->Fill(x,y); |
189 | } |
190 | } |
191 | |
192 | /******************************************************************/ |
193 | /******************************************************************/ |
194 | /******************************************************************/ |
195 | |
196 | ClassImp( AliHBTMonOneParticleFctn3D) |
197 | |
198 | AliHBTMonOneParticleFctn3D:: |
199 | AliHBTMonOneParticleFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval, |
200 | Int_t nYbins, Double_t maxYval, Double_t minYval, |
201 | Int_t nZbins, Double_t maxZval, Double_t minZval) |
202 | |
203 | { |
204 | TString numstr = fName + " Result"; //title and name of the |
205 | //result histogram |
206 | |
207 | fResult = new TH3D(numstr.Data(),numstr.Data(), |
208 | nXbins,minXval,maxXval, |
209 | nYbins,minYval,maxYval, |
210 | nZbins,minZval,maxZval); |
211 | |
212 | } |
213 | /******************************************************************/ |
214 | |
215 | AliHBTMonOneParticleFctn3D::~AliHBTMonOneParticleFctn3D() |
216 | { |
217 | delete fResult; |
218 | } |
219 | /******************************************************************/ |
220 | |
221 | |
222 | /******************************************************************/ |
223 | /******************************************************************/ |
224 | /******************************************************************/ |
225 | ClassImp( AliHBTMonTwoParticleFctn1D) |
226 | |
227 | AliHBTMonTwoParticleFctn1D:: |
228 | AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval) |
229 | { |
230 | TString numstr = fName + " Result"; //title and name of the |
231 | //result histogram |
232 | |
233 | fResult = new TH1D(numstr.Data(),numstr.Data(), |
234 | nbins,minval,maxval); |
235 | |
236 | } |
237 | |
238 | AliHBTMonTwoParticleFctn1D:: |
239 | AliHBTMonTwoParticleFctn1D(const Char_t* name, const Char_t* title, |
240 | Int_t nbins, Double_t maxval, Double_t minval) |
241 | :AliHBTMonTwoParticleFctn(name,title) |
242 | { |
243 | TString numstr = fName + " Result"; //title and name of the |
244 | //result histogram |
245 | |
246 | fResult = new TH1D(numstr.Data(),numstr.Data(), |
247 | nbins,minval,maxval); |
248 | |
249 | } |
250 | |
251 | |
252 | /******************************************************************/ |
253 | AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D() |
254 | { |
255 | delete fResult; |
256 | } |
257 | /******************************************************************/ |
258 | void AliHBTMonTwoParticleFctn1D:: |
e4f2b1da |
259 | Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) |
a57afe91 |
260 | { |
261 | partparticle = CheckParticle(partparticle); |
262 | trackparticle = CheckParticle(trackparticle); |
263 | if( partparticle && trackparticle) |
264 | { |
265 | Double_t x = GetValue(trackparticle,partparticle); |
266 | fResult->Fill(x); |
267 | } |
268 | } |
269 | /******************************************************************/ |
270 | /******************************************************************/ |
271 | /******************************************************************/ |
272 | ClassImp( AliHBTMonTwoParticleFctn2D) |
273 | |
274 | |
275 | AliHBTMonTwoParticleFctn2D:: |
276 | AliHBTMonTwoParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval , |
277 | Int_t nYbins, Double_t maxYval, Double_t minYval) |
278 | |
279 | { |
280 | TString numstr = fName + " Result"; //title and name of the |
281 | //result histogram |
282 | |
283 | fResult = new TH2D(numstr.Data(),numstr.Data(), |
284 | nXbins,minXval,maxXval, |
285 | nYbins,minYval,maxYval); |
286 | |
287 | } |
288 | /******************************************************************/ |
289 | AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D() |
290 | { |
291 | delete fResult; |
292 | } |
293 | /******************************************************************/ |
294 | void AliHBTMonTwoParticleFctn2D:: |
e4f2b1da |
295 | Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) |
a57afe91 |
296 | { |
297 | partparticle = CheckParticle(partparticle); |
298 | trackparticle = CheckParticle(trackparticle); |
299 | if( partparticle && trackparticle) |
300 | { |
301 | Double_t x,y; |
302 | GetValues(trackparticle,partparticle,x,y); |
303 | fResult->Fill(x,y); |
304 | } |
305 | } |
306 | /******************************************************************/ |
307 | /******************************************************************/ |
308 | /******************************************************************/ |
309 | ClassImp(AliHBTMonTwoParticleFctn3D) |
310 | |
311 | void AliHBTMonTwoParticleFctn3D:: |
e4f2b1da |
312 | Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) |
a57afe91 |
313 | { |
314 | partparticle = CheckParticle(partparticle); |
315 | trackparticle = CheckParticle(trackparticle); |
316 | if( partparticle && trackparticle) |
317 | { |
318 | Double_t x,y,z; |
319 | GetValues(trackparticle,partparticle,x,y,z); |
320 | fResult->Fill(x,y,z); |
321 | } |
322 | } |
323 | /******************************************************************/ |
324 | /******************************************************************/ |
325 | /******************************************************************/ |
326 | /******************************************************************/ |
327 | |