]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliCentrality.cxx
OADBContainer moved to STEERBase
[u/mrichter/AliRoot.git] / STEER / 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),
29 fCentralityFMD(0),
30 fCentralityTRK(0),
31 fCentralityTKL(0),
32 fCentralityCL0(0),
be0d4e9b 33 fCentralityCL1(0),
d15bf53f 34 fCentralityV0MvsFMD(0),
35 fCentralityTKLvsV0M(0),
36 fCentralityZEMvsZDC(0)
37{
38 /// constructor
39}
40
fba4b2e2 41AliCentrality::AliCentrality(const AliCentrality& cnt) :
a540a9d3 42 TNamed(cnt),
43 fQuality(cnt.fQuality),
d15bf53f 44 fCentralityV0M(cnt.fCentralityV0M),
45 fCentralityFMD(cnt.fCentralityFMD),
46 fCentralityTRK(cnt.fCentralityTRK),
47 fCentralityTKL(cnt.fCentralityTKL),
48 fCentralityCL0(cnt.fCentralityCL0),
be0d4e9b 49 fCentralityCL1(cnt.fCentralityCL1),
d15bf53f 50 fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
51 fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
52 fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
53{
54 /// Copy constructor
55}
56
fba4b2e2 57AliCentrality& AliCentrality::operator=(const AliCentrality& c)
d15bf53f 58{
59 /// Assignment operator
60 if (this!=&c) {
61 TNamed::operator=(c);
a540a9d3 62 fQuality = c.fQuality;
d15bf53f 63 fCentralityV0M = c.fCentralityV0M;
64 fCentralityFMD = c.fCentralityFMD;
65 fCentralityTRK = c.fCentralityTRK;
66 fCentralityTKL = c.fCentralityTKL;
67 fCentralityCL0 = c.fCentralityCL0;
be0d4e9b 68 fCentralityCL1 = c.fCentralityCL1;
d15bf53f 69 fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
70 fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
71 fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
72 }
73
74 return *this;
75}
76
fba4b2e2 77AliCentrality::~AliCentrality()
d15bf53f 78{
79 /// destructor
80}
81
aa7e002c 82Int_t AliCentrality::GetQuality() const
a540a9d3 83{
84 return fQuality;
85}
86
aa7e002c 87Float_t AliCentrality::GetCentralityPercentile(const char *x) const
a540a9d3 88{
aa7e002c 89// Return the centrality percentile
a540a9d3 90 if (fQuality == 0) {
91 TString method = x;
92 if(method.CompareTo("V0M")==0) return fCentralityV0M;
93 if(method.CompareTo("FMD")==0) return fCentralityFMD;
94 if(method.CompareTo("TRK")==0) return fCentralityTRK;
95 if(method.CompareTo("TKL")==0) return fCentralityTKL;
96 if(method.CompareTo("CL0")==0) return fCentralityCL0;
97 if(method.CompareTo("CL1")==0) return fCentralityCL1;
98 if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
99 if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
fe92f402 100 if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
a540a9d3 101 return -1;
102 } else {
103 return -1;
104 }
105}
106
aa7e002c 107Int_t AliCentrality::GetCentralityClass10(const char *x) const
a540a9d3 108{
aa7e002c 109// Return the centrality class
a540a9d3 110 if (fQuality == 0) {
111 TString method = x;
112 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0);
113 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0);
114 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0);
115 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0);
116 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0);
117 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 10.0);
118 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
119 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
fe92f402 120 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
a540a9d3 121 return -1;
122 } else {
123 return -1;
124 }
125}
126
aa7e002c 127Int_t AliCentrality::GetCentralityClass5(const char *x) const
a540a9d3 128{
aa7e002c 129// Return the centrality class
a540a9d3 130 if (fQuality == 0) {
131 TString method = x;
132 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0);
133 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0);
134 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0);
135 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0);
136 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0);
137 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 5.0);
138 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
139 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
fe92f402 140 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
a540a9d3 141 return -1;
142 } else {
143 return -1;
144 }
145}
146
147
aa7e002c 148Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x) const
a540a9d3 149{
aa7e002c 150// True if event is inside a given class
a540a9d3 151 if (fQuality == 0) {
152 TString method = x;
153 if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
154 if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
155 if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
156 if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
157 if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
158 if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
159 if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
160 if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
161 if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
162 else return kFALSE;
163 } else {
067ce65d 164 return kFALSE;
a540a9d3 165 }
166}
167
aa7e002c 168Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
d15bf53f 169{
aa7e002c 170// Return the centrality percentile
d15bf53f 171 TString method = x;
172 if(method.CompareTo("V0M")==0) return fCentralityV0M;
173 if(method.CompareTo("FMD")==0) return fCentralityFMD;
174 if(method.CompareTo("TRK")==0) return fCentralityTRK;
175 if(method.CompareTo("TKL")==0) return fCentralityTKL;
176 if(method.CompareTo("CL0")==0) return fCentralityCL0;
be0d4e9b 177 if(method.CompareTo("CL1")==0) return fCentralityCL1;
d15bf53f 178 if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
179 if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
fe92f402 180 if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
d15bf53f 181 return -1;
182}
183
aa7e002c 184Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
d15bf53f 185{
aa7e002c 186// Return the centrality class
d15bf53f 187 TString method = x;
188 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0);
189 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0);
190 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0);
191 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0);
192 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0);
be0d4e9b 193 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 10.0);
d15bf53f 194 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
195 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
fe92f402 196 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
d15bf53f 197 return -1;
198}
199
aa7e002c 200Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
d15bf53f 201{
aa7e002c 202// Return the centrality class
a540a9d3 203 TString method = x;
d15bf53f 204 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0);
205 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0);
206 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0);
207 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0);
208 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0);
be0d4e9b 209 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 5.0);
d15bf53f 210 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
211 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
fe92f402 212 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
d15bf53f 213 return -1;
a540a9d3 214}
d15bf53f 215
aa7e002c 216Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x) const
d15bf53f 217{
aa7e002c 218// True if event inside given centrality class
d15bf53f 219 TString method = x;
220 if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
221 if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
222 if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
223 if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
224 if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
be0d4e9b 225 if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
d15bf53f 226 if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
227 if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
228 if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
229 else return kFALSE;
a540a9d3 230}
d15bf53f 231
93d96ff5 232void AliCentrality::Reset()
233{
234// Reset.
235
236 fQuality = 999;
237 fCentralityV0M = 0;
238 fCentralityFMD = 0;
239 fCentralityTRK = 0;
240 fCentralityTKL = 0;
241 fCentralityCL0 = 0;
242 fCentralityCL1 = 0;
243 fCentralityV0MvsFMD = 0;
244 fCentralityTKLvsV0M = 0;
245 fCentralityZEMvsZDC = 0;
246}