]>
Commit | Line | Data |
---|---|---|
d15bf53f | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | //***************************************************** | |
a540a9d3 | 17 | // Class AliCentrality |
d15bf53f | 18 | // author: Alberica Toia |
19 | //***************************************************** | |
fba4b2e2 | 20 | /// A container for the centrality stored in AOD in ESD |
d15bf53f | 21 | |
fba4b2e2 | 22 | #include "AliCentrality.h" |
d15bf53f | 23 | |
fba4b2e2 | 24 | ClassImp(AliCentrality) |
d15bf53f | 25 | |
fba4b2e2 | 26 | AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"), |
93d96ff5 | 27 | fQuality(999), |
d15bf53f | 28 | fCentralityV0M(0), |
13e74ee2 | 29 | fCentralityV0A(0), |
30 | fCentralityV0C(0), | |
d15bf53f | 31 | fCentralityFMD(0), |
32 | fCentralityTRK(0), | |
33 | fCentralityTKL(0), | |
34 | fCentralityCL0(0), | |
be0d4e9b | 35 | fCentralityCL1(0), |
13e74ee2 | 36 | fCentralityCND(0), |
8432b617 | 37 | fCentralityNPA(0), |
d15bf53f | 38 | fCentralityV0MvsFMD(0), |
39 | fCentralityTKLvsV0M(0), | |
40 | fCentralityZEMvsZDC(0) | |
41 | { | |
42 | /// constructor | |
43 | } | |
44 | ||
fba4b2e2 | 45 | AliCentrality::AliCentrality(const AliCentrality& cnt) : |
a540a9d3 | 46 | TNamed(cnt), |
47 | fQuality(cnt.fQuality), | |
d15bf53f | 48 | fCentralityV0M(cnt.fCentralityV0M), |
13e74ee2 | 49 | fCentralityV0A(cnt.fCentralityV0A), |
50 | fCentralityV0C(cnt.fCentralityV0C), | |
d15bf53f | 51 | fCentralityFMD(cnt.fCentralityFMD), |
52 | fCentralityTRK(cnt.fCentralityTRK), | |
53 | fCentralityTKL(cnt.fCentralityTKL), | |
54 | fCentralityCL0(cnt.fCentralityCL0), | |
be0d4e9b | 55 | fCentralityCL1(cnt.fCentralityCL1), |
13e74ee2 | 56 | fCentralityCND(cnt.fCentralityCND), |
8432b617 | 57 | fCentralityNPA(cnt.fCentralityNPA), |
d15bf53f | 58 | fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD), |
59 | fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M), | |
60 | fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC) | |
61 | { | |
62 | /// Copy constructor | |
63 | } | |
64 | ||
fba4b2e2 | 65 | AliCentrality& AliCentrality::operator=(const AliCentrality& c) |
d15bf53f | 66 | { |
67 | /// Assignment operator | |
68 | if (this!=&c) { | |
69 | TNamed::operator=(c); | |
a540a9d3 | 70 | fQuality = c.fQuality; |
d15bf53f | 71 | fCentralityV0M = c.fCentralityV0M; |
13e74ee2 | 72 | fCentralityV0A = c.fCentralityV0A; |
73 | fCentralityV0C = c.fCentralityV0C; | |
d15bf53f | 74 | fCentralityFMD = c.fCentralityFMD; |
75 | fCentralityTRK = c.fCentralityTRK; | |
76 | fCentralityTKL = c.fCentralityTKL; | |
77 | fCentralityCL0 = c.fCentralityCL0; | |
be0d4e9b | 78 | fCentralityCL1 = c.fCentralityCL1; |
13e74ee2 | 79 | fCentralityCND = c.fCentralityCND; |
8432b617 | 80 | fCentralityNPA = c.fCentralityNPA; |
d15bf53f | 81 | fCentralityV0MvsFMD = c.fCentralityV0MvsFMD; |
82 | fCentralityTKLvsV0M = c.fCentralityTKLvsV0M; | |
83 | fCentralityZEMvsZDC = c.fCentralityZEMvsZDC; | |
84 | } | |
85 | ||
86 | return *this; | |
87 | } | |
88 | ||
fba4b2e2 | 89 | AliCentrality::~AliCentrality() |
d15bf53f | 90 | { |
91 | /// destructor | |
92 | } | |
93 | ||
aa7e002c | 94 | Int_t AliCentrality::GetQuality() const |
a540a9d3 | 95 | { |
96 | return fQuality; | |
97 | } | |
98 | ||
aa7e002c | 99 | Float_t AliCentrality::GetCentralityPercentile(const char *x) const |
a540a9d3 | 100 | { |
aa7e002c | 101 | // Return the centrality percentile |
a540a9d3 | 102 | if (fQuality == 0) { |
103 | TString method = x; | |
104 | if(method.CompareTo("V0M")==0) return fCentralityV0M; | |
13e74ee2 | 105 | if(method.CompareTo("V0A")==0) return fCentralityV0A; |
106 | if(method.CompareTo("V0C")==0) return fCentralityV0C; | |
a540a9d3 | 107 | if(method.CompareTo("FMD")==0) return fCentralityFMD; |
108 | if(method.CompareTo("TRK")==0) return fCentralityTRK; | |
109 | if(method.CompareTo("TKL")==0) return fCentralityTKL; | |
110 | if(method.CompareTo("CL0")==0) return fCentralityCL0; | |
111 | if(method.CompareTo("CL1")==0) return fCentralityCL1; | |
13e74ee2 | 112 | if(method.CompareTo("CND")==0) return fCentralityCND; |
8432b617 | 113 | if(method.CompareTo("NPA")==0) return fCentralityNPA; |
a540a9d3 | 114 | if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD; |
115 | if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M; | |
fe92f402 | 116 | if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC; |
a540a9d3 | 117 | return -1; |
118 | } else { | |
119 | return -1; | |
120 | } | |
121 | } | |
122 | ||
aa7e002c | 123 | Int_t AliCentrality::GetCentralityClass10(const char *x) const |
a540a9d3 | 124 | { |
aa7e002c | 125 | // Return the centrality class |
a540a9d3 | 126 | if (fQuality == 0) { |
127 | TString method = x; | |
128 | if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0); | |
13e74ee2 | 129 | if(method.CompareTo("V0A")==0) return (Int_t) (fCentralityV0A / 10.0); |
130 | if(method.CompareTo("V0C")==0) return (Int_t) (fCentralityV0C / 10.0); | |
a540a9d3 | 131 | if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0); |
132 | if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0); | |
133 | if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0); | |
134 | if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0); | |
135 | if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 10.0); | |
13e74ee2 | 136 | if(method.CompareTo("CND")==0) return (Int_t) (fCentralityCND / 10.0); |
8432b617 | 137 | if(method.CompareTo("NPA")==0) return (Int_t) (fCentralityNPA / 10.0); |
a540a9d3 | 138 | if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0); |
139 | if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0); | |
fe92f402 | 140 | if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0); |
a540a9d3 | 141 | return -1; |
142 | } else { | |
143 | return -1; | |
144 | } | |
145 | } | |
146 | ||
aa7e002c | 147 | Int_t AliCentrality::GetCentralityClass5(const char *x) const |
a540a9d3 | 148 | { |
aa7e002c | 149 | // Return the centrality class |
a540a9d3 | 150 | if (fQuality == 0) { |
151 | TString method = x; | |
152 | if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0); | |
13e74ee2 | 153 | if(method.CompareTo("V0A")==0) return (Int_t) (fCentralityV0A / 5.0); |
154 | if(method.CompareTo("V0C")==0) return (Int_t) (fCentralityV0C / 5.0); | |
a540a9d3 | 155 | if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0); |
156 | if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0); | |
157 | if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0); | |
158 | if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0); | |
159 | if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 5.0); | |
13e74ee2 | 160 | if(method.CompareTo("CND")==0) return (Int_t) (fCentralityCND / 5.0); |
8432b617 | 161 | if(method.CompareTo("NPA")==0) return (Int_t) (fCentralityNPA / 5.0); |
a540a9d3 | 162 | if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0); |
163 | if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0); | |
fe92f402 | 164 | if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0); |
a540a9d3 | 165 | return -1; |
166 | } else { | |
167 | return -1; | |
168 | } | |
169 | } | |
170 | ||
171 | ||
aa7e002c | 172 | Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x) const |
a540a9d3 | 173 | { |
aa7e002c | 174 | // True if event is inside a given class |
a540a9d3 | 175 | if (fQuality == 0) { |
176 | TString method = x; | |
177 | if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE; | |
13e74ee2 | 178 | if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE; |
179 | if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE; | |
a540a9d3 | 180 | if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE; |
181 | if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE; | |
182 | if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE; | |
183 | if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE; | |
184 | if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE; | |
13e74ee2 | 185 | if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE; |
8432b617 | 186 | if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE; |
a540a9d3 | 187 | if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE; |
188 | if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE; | |
189 | if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE; | |
190 | else return kFALSE; | |
191 | } else { | |
067ce65d | 192 | return kFALSE; |
a540a9d3 | 193 | } |
194 | } | |
195 | ||
aa7e002c | 196 | Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const |
d15bf53f | 197 | { |
aa7e002c | 198 | // Return the centrality percentile |
d15bf53f | 199 | TString method = x; |
200 | if(method.CompareTo("V0M")==0) return fCentralityV0M; | |
13e74ee2 | 201 | if(method.CompareTo("V0A")==0) return fCentralityV0A; |
202 | if(method.CompareTo("V0C")==0) return fCentralityV0C; | |
d15bf53f | 203 | if(method.CompareTo("FMD")==0) return fCentralityFMD; |
204 | if(method.CompareTo("TRK")==0) return fCentralityTRK; | |
205 | if(method.CompareTo("TKL")==0) return fCentralityTKL; | |
206 | if(method.CompareTo("CL0")==0) return fCentralityCL0; | |
be0d4e9b | 207 | if(method.CompareTo("CL1")==0) return fCentralityCL1; |
13e74ee2 | 208 | if(method.CompareTo("CND")==0) return fCentralityCND; |
8432b617 | 209 | if(method.CompareTo("NPA")==0) return fCentralityNPA; |
d15bf53f | 210 | if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD; |
211 | if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M; | |
fe92f402 | 212 | if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC; |
d15bf53f | 213 | return -1; |
214 | } | |
215 | ||
aa7e002c | 216 | Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const |
d15bf53f | 217 | { |
aa7e002c | 218 | // Return the centrality class |
d15bf53f | 219 | TString method = x; |
220 | if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0); | |
13e74ee2 | 221 | if(method.CompareTo("V0A")==0) return (Int_t) (fCentralityV0A / 10.0); |
222 | if(method.CompareTo("V0C")==0) return (Int_t) (fCentralityV0C / 10.0); | |
d15bf53f | 223 | if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0); |
224 | if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0); | |
225 | if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0); | |
226 | if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0); | |
be0d4e9b | 227 | if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 10.0); |
13e74ee2 | 228 | if(method.CompareTo("CND")==0) return (Int_t) (fCentralityCND / 10.0); |
8432b617 | 229 | if(method.CompareTo("NPA")==0) return (Int_t) (fCentralityNPA / 10.0); |
d15bf53f | 230 | if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0); |
231 | if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0); | |
fe92f402 | 232 | if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0); |
d15bf53f | 233 | return -1; |
234 | } | |
235 | ||
aa7e002c | 236 | Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const |
d15bf53f | 237 | { |
aa7e002c | 238 | // Return the centrality class |
a540a9d3 | 239 | TString method = x; |
d15bf53f | 240 | if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0); |
13e74ee2 | 241 | if(method.CompareTo("V0A")==0) return (Int_t) (fCentralityV0A / 5.0); |
242 | if(method.CompareTo("V0C")==0) return (Int_t) (fCentralityV0C / 5.0); | |
d15bf53f | 243 | if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0); |
244 | if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0); | |
245 | if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0); | |
246 | if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0); | |
be0d4e9b | 247 | if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 5.0); |
13e74ee2 | 248 | if(method.CompareTo("CND")==0) return (Int_t) (fCentralityCND / 5.0); |
8432b617 | 249 | if(method.CompareTo("NPA")==0) return (Int_t) (fCentralityNPA / 5.0); |
d15bf53f | 250 | if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0); |
251 | if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0); | |
fe92f402 | 252 | if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0); |
d15bf53f | 253 | return -1; |
a540a9d3 | 254 | } |
d15bf53f | 255 | |
aa7e002c | 256 | Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x) const |
d15bf53f | 257 | { |
aa7e002c | 258 | // True if event inside given centrality class |
d15bf53f | 259 | TString method = x; |
260 | if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE; | |
13e74ee2 | 261 | if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE; |
262 | if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE; | |
d15bf53f | 263 | if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE; |
264 | if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE; | |
265 | if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE; | |
266 | if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE; | |
be0d4e9b | 267 | if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE; |
13e74ee2 | 268 | if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE; |
8432b617 | 269 | if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE; |
d15bf53f | 270 | if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE; |
271 | if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE; | |
272 | if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE; | |
273 | else return kFALSE; | |
a540a9d3 | 274 | } |
d15bf53f | 275 | |
93d96ff5 | 276 | void AliCentrality::Reset() |
277 | { | |
278 | // Reset. | |
279 | ||
280 | fQuality = 999; | |
281 | fCentralityV0M = 0; | |
13e74ee2 | 282 | fCentralityV0A = 0; |
283 | fCentralityV0C = 0; | |
93d96ff5 | 284 | fCentralityFMD = 0; |
285 | fCentralityTRK = 0; | |
286 | fCentralityTKL = 0; | |
287 | fCentralityCL0 = 0; | |
288 | fCentralityCL1 = 0; | |
13e74ee2 | 289 | fCentralityCND = 0; |
8432b617 | 290 | fCentralityNPA = 0; |
93d96ff5 | 291 | fCentralityV0MvsFMD = 0; |
292 | fCentralityTKLvsV0M = 0; | |
293 | fCentralityZEMvsZDC = 0; | |
294 | } |