]>
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"), |
a540a9d3 | 27 | fQuality(0), |
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 | 41 | AliCentrality::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 | 57 | AliCentrality& 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 | 77 | AliCentrality::~AliCentrality() |
d15bf53f | 78 | { |
79 | /// destructor | |
80 | } | |
81 | ||
aa7e002c | 82 | Int_t AliCentrality::GetQuality() const |
a540a9d3 | 83 | { |
84 | return fQuality; | |
85 | } | |
86 | ||
aa7e002c | 87 | Float_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 | 107 | Int_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 | 127 | Int_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 | 148 | Bool_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 | 168 | Float_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 | 184 | Int_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 | 200 | Int_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 | 216 | Bool_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 | |
232 |