da798899f62d3f410b2e75005601d49c78f1ea53
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliCentrality.cxx
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 //*****************************************************
17 //   Class AliCentrality
18 //   author: Alberica Toia
19 //*****************************************************
20 /// A container for the centrality stored in AOD in ESD
21  
22 #include "AliCentrality.h"
23
24 ClassImp(AliCentrality)
25
26 AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
27   fQuality(999),
28   fCentralityV0M(0),
29   fCentralityV0A(0),
30   fCentralityV0C(0),
31   fCentralityFMD(0),
32   fCentralityTRK(0),
33   fCentralityTKL(0),
34   fCentralityCL0(0),
35   fCentralityCL1(0),
36   fCentralityCND(0),
37   fCentralityZNA(0),
38   fCentralityNPA(0),
39   fCentralityV0MvsFMD(0),
40   fCentralityTKLvsV0M(0),
41   fCentralityZEMvsZDC(0),
42   fCentralityV0Mtrue(0),
43   fCentralityV0Atrue(0),
44   fCentralityV0Ctrue(0),
45   fCentralityFMDtrue(0),
46   fCentralityTRKtrue(0),
47   fCentralityTKLtrue(0),
48   fCentralityCL0true(0),
49   fCentralityCL1true(0),
50   fCentralityCNDtrue(0),
51   fCentralityZNAtrue(0)
52 {
53   /// constructor
54 }
55
56 AliCentrality::AliCentrality(const AliCentrality& cnt) : 
57   TNamed(cnt),
58   fQuality(cnt.fQuality), 
59   fCentralityV0M(cnt.fCentralityV0M),
60   fCentralityV0A(cnt.fCentralityV0A),
61   fCentralityV0C(cnt.fCentralityV0C),
62   fCentralityFMD(cnt.fCentralityFMD),
63   fCentralityTRK(cnt.fCentralityTRK),
64   fCentralityTKL(cnt.fCentralityTKL),
65   fCentralityCL0(cnt.fCentralityCL0),
66   fCentralityCL1(cnt.fCentralityCL1),
67   fCentralityCND(cnt.fCentralityCND),
68   fCentralityZNA(cnt.fCentralityZNA),
69   fCentralityNPA(cnt.fCentralityNPA),
70   fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
71   fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
72   fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC),
73   fCentralityV0Mtrue(cnt.fCentralityV0Mtrue),
74   fCentralityV0Atrue(cnt.fCentralityV0Atrue),
75   fCentralityV0Ctrue(cnt.fCentralityV0Ctrue),
76   fCentralityFMDtrue(cnt.fCentralityFMDtrue),
77   fCentralityTRKtrue(cnt.fCentralityTRKtrue),
78   fCentralityTKLtrue(cnt.fCentralityTKLtrue),
79   fCentralityCL0true(cnt.fCentralityCL0true),
80   fCentralityCL1true(cnt.fCentralityCL1true),
81   fCentralityCNDtrue(cnt.fCentralityCNDtrue),
82   fCentralityZNAtrue(cnt.fCentralityZNAtrue)
83 {
84   /// Copy constructor
85 }
86
87 AliCentrality& AliCentrality::operator=(const AliCentrality& c)
88 {
89   /// Assignment operator
90   if (this!=&c) {
91     TNamed::operator=(c);
92     fQuality = c.fQuality;
93     fCentralityV0M = c.fCentralityV0M;
94     fCentralityV0A = c.fCentralityV0A;
95     fCentralityV0C = c.fCentralityV0C;
96     fCentralityFMD = c.fCentralityFMD;
97     fCentralityTRK = c.fCentralityTRK;
98     fCentralityTKL = c.fCentralityTKL;
99     fCentralityCL0 = c.fCentralityCL0;
100     fCentralityCL1 = c.fCentralityCL1;
101     fCentralityCND = c.fCentralityCND;
102     fCentralityZNA = c.fCentralityZNA;
103     fCentralityNPA = c.fCentralityNPA;
104     fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
105     fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
106     fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
107     fCentralityV0Mtrue = c.fCentralityV0Mtrue;
108     fCentralityV0Atrue = c.fCentralityV0Atrue;
109     fCentralityV0Ctrue = c.fCentralityV0Ctrue;
110     fCentralityFMDtrue = c.fCentralityFMDtrue;
111     fCentralityTRKtrue = c.fCentralityTRKtrue;
112     fCentralityTKLtrue = c.fCentralityTKLtrue;
113     fCentralityCL0true = c.fCentralityCL0true;
114     fCentralityCL1true = c.fCentralityCL1true;
115     fCentralityCNDtrue = c.fCentralityCNDtrue;
116     fCentralityZNAtrue = c.fCentralityZNAtrue;
117   }
118
119   return *this;
120 }
121
122 AliCentrality::~AliCentrality()
123 {
124   /// destructor
125 }
126
127 Int_t AliCentrality::GetQuality() const
128 {
129   return fQuality;
130 }
131
132 Float_t AliCentrality::GetCentralityPercentile(const char *x) const
133 {
134 // Return the centrality percentile
135   if (fQuality == 0) {
136     TString method = x;
137     if(method.CompareTo("V0M")==0)      return fCentralityV0M;
138     if(method.CompareTo("V0A")==0)      return fCentralityV0A;
139     if(method.CompareTo("V0C")==0)      return fCentralityV0C;
140     if(method.CompareTo("FMD")==0)      return fCentralityFMD;
141     if(method.CompareTo("TRK")==0)      return fCentralityTRK;
142     if(method.CompareTo("TKL")==0)      return fCentralityTKL;
143     if(method.CompareTo("CL0")==0)      return fCentralityCL0;
144     if(method.CompareTo("CL1")==0)      return fCentralityCL1;
145     if(method.CompareTo("CND")==0)      return fCentralityCND;
146     if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
147     if(method.CompareTo("NPA")==0)      return fCentralityNPA;
148     if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
149     if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
150     if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
151     if(method.CompareTo("V0Mtrue")==0)      return fCentralityV0Mtrue;
152     if(method.CompareTo("V0Atrue")==0)      return fCentralityV0Atrue;
153     if(method.CompareTo("V0Ctrue")==0)      return fCentralityV0Ctrue;
154     if(method.CompareTo("FMDtrue")==0)      return fCentralityFMDtrue;
155     if(method.CompareTo("TRKtrue")==0)      return fCentralityTRKtrue;
156     if(method.CompareTo("TKLtrue")==0)      return fCentralityTKLtrue;
157     if(method.CompareTo("CL0true")==0)      return fCentralityCL0true;
158     if(method.CompareTo("CL1true")==0)      return fCentralityCL1true;
159     if(method.CompareTo("CNDtrue")==0)      return fCentralityCNDtrue;
160     if(method.CompareTo("ZNAtrue")==0)      return fCentralityZNAtrue;
161     return -1;
162   } else {
163     return -1;
164   }
165 }
166
167 Int_t AliCentrality::GetCentralityClass10(const char *x) const
168 {
169 // Return the centrality class
170   if (fQuality == 0) {
171     TString method = x;
172     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
173     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
174     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
175     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
176     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
177     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
178     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
179     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
180     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
181     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
182     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
183     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
184     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
185     if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
186     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
187     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
188     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
189     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
190     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
191     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
192     if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 10.0);
193     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
194     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
195     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
196     return -1;
197   } else {
198     return -1;
199   }
200 }
201
202 Int_t AliCentrality::GetCentralityClass5(const char *x) const
203 {
204 // Return the centrality class
205   if (fQuality == 0) {
206     TString method = x;
207     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
208     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
209     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
210     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
211     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
212     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
213     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
214     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
215     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
216     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
217     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
218     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
219     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
220     if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
221     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 5.0);
222     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
223     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
224     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
225     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
226     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
227     if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 5.0);
228     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
229     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
230     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
231     return -1;
232   } else {
233     return -1;
234   }
235 }
236
237
238 Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x) const
239 {
240 // True if event is inside a given class
241   if (fQuality == 0) {
242     TString method = x;
243     if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
244     if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
245     if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
246     if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
247     if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
248     if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
249     if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
250     if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
251     if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
252     if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
253     if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
254     if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
255     if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
256     if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
257     if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
258     if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
259     if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
260     if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
261     if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
262     if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
263     if ((method.CompareTo("CL0true")==0) && (fCentralityCL0true >=a && fCentralityCL0true < b)) return kTRUE;
264     if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
265     if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
266     if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
267     else return kFALSE;
268   } else {
269     return kFALSE;
270   }
271 }
272
273 Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
274 {
275 // Return the centrality percentile
276   TString method = x;
277   if(method.CompareTo("V0M")==0)      return fCentralityV0M;
278   if(method.CompareTo("V0A")==0)      return fCentralityV0A;
279   if(method.CompareTo("V0C")==0)      return fCentralityV0C;
280   if(method.CompareTo("FMD")==0)      return fCentralityFMD;
281   if(method.CompareTo("TRK")==0)      return fCentralityTRK;
282   if(method.CompareTo("TKL")==0)      return fCentralityTKL;
283   if(method.CompareTo("CL0")==0)      return fCentralityCL0;
284   if(method.CompareTo("CL1")==0)      return fCentralityCL1;
285   if(method.CompareTo("CND")==0)      return fCentralityCND;
286   if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
287   if(method.CompareTo("NPA")==0)      return fCentralityNPA;
288   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
289   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
290   if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
291   if(method.CompareTo("V0Mtrue")==0)  return fCentralityV0Mtrue;
292   if(method.CompareTo("V0Atrue")==0)  return fCentralityV0Atrue;
293   if(method.CompareTo("V0Ctrue")==0)  return fCentralityV0Ctrue;
294   if(method.CompareTo("FMDtrue")==0)  return fCentralityFMDtrue;
295   if(method.CompareTo("TRKtrue")==0)  return fCentralityTRKtrue;
296   if(method.CompareTo("TKLtrue")==0)  return fCentralityTKLtrue;
297   if(method.CompareTo("CL0true")==0)  return fCentralityCL0true;
298   if(method.CompareTo("CL1true")==0)  return fCentralityCL1true;
299   if(method.CompareTo("CNDtrue")==0)  return fCentralityCNDtrue;
300   if(method.CompareTo("ZNAtrue")==0)  return fCentralityZNAtrue;
301   return -1;
302 }
303
304 Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
305 {
306 // Return the centrality class
307   TString method = x;
308   if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
309   if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
310   if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
311   if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
312   if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
313   if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
314   if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
315   if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
316   if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
317   if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
318   if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
319   if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
320   if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
321   if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
322   if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
323   if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
324   if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
325   if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
326   if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
327   if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
328   if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 10.0);
329   if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
330   if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
331   if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
332   return -1;
333 }
334
335 Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
336 {
337 // Return the centrality class
338   TString method = x;
339   if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
340   if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
341   if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
342   if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
343   if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
344   if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
345   if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
346   if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
347   if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
348   if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
349   if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
350   if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
351   if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
352   if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
353   if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0M / 5.0);
354   if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
355   if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
356   if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
357   if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
358   if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
359   if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 5.0);
360   if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
361   if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
362   if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
363   return -1;
364
365
366 Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x) const
367 {
368 // True if event inside given centrality class
369   TString method = x;
370   if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
371   if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
372   if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
373   if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
374   if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
375   if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
376   if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
377   if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
378   if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
379   if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
380   if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
381   if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
382   if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
383   if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
384   if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
385   if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
386   if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
387   if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
388   if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
389   if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
390   if ((method.CompareTo("CL0true")==0) && (fCentralityCL0true >=a && fCentralityCL0true < b)) return kTRUE;
391   if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
392   if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
393   if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
394   else return kFALSE;
395
396
397 void AliCentrality::Reset()
398 {
399 // Reset.
400
401   fQuality            =  999;
402   fCentralityV0M      =  0;
403   fCentralityV0A      =  0;
404   fCentralityV0C      =  0;
405   fCentralityFMD      =  0;
406   fCentralityTRK      =  0;
407   fCentralityTKL      =  0;
408   fCentralityCL0      =  0;
409   fCentralityCL1      =  0;
410   fCentralityCND      =  0;
411   fCentralityZNA      =  0;
412   fCentralityNPA      =  0;
413   fCentralityV0MvsFMD =  0;
414   fCentralityTKLvsV0M =  0;
415   fCentralityZEMvsZDC =  0;
416   fCentralityV0Mtrue  =  0;
417   fCentralityV0Atrue  =  0;
418   fCentralityV0Ctrue  =  0;
419   fCentralityFMDtrue  =  0;
420   fCentralityTRKtrue  =  0;
421   fCentralityTKLtrue  =  0;
422   fCentralityCL0true  =  0;
423   fCentralityCL1true  =  0;
424   fCentralityCNDtrue  =  0;
425   fCentralityZNAtrue  =  0;
426 }