]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEERBase/AliCentrality.cxx
Updates for the splines of LHC12a/b pass1.
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliCentrality.cxx
CommitLineData
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 24ClassImp(AliCentrality)
d15bf53f 25
fba4b2e2 26AliCentrality::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 45AliCentrality::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 65AliCentrality& 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 89AliCentrality::~AliCentrality()
d15bf53f 90{
91 /// destructor
92}
93
aa7e002c 94Int_t AliCentrality::GetQuality() const
a540a9d3 95{
96 return fQuality;
97}
98
aa7e002c 99Float_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 123Int_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 147Int_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 172Bool_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 196Float_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 216Int_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 236Int_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 256Bool_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 276void 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}