f309eb1851c2607be687a06f19a9ed526e469d3c
[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   fCentralityV0A123(0),
31   fCentralityV0C(0),
32   fCentralityV0MEq(0),
33   fCentralityV0AEq(0),
34   fCentralityV0CEq(0),
35   fCentralityFMD(0),
36   fCentralityTRK(0),
37   fCentralityTKL(0),
38   fCentralityCL0(0),
39   fCentralityCL1(0),
40   fCentralityCND(0),
41   fCentralityZNA(0),
42   fCentralityZNC(0),
43   fCentralityZPA(0),
44   fCentralityZPC(0),
45   fCentralityNPA(0),
46   fCentralityV0MvsFMD(0),
47   fCentralityTKLvsV0M(0),
48   fCentralityZEMvsZDC(0),
49   fCentralityV0Mtrue(0),
50   fCentralityV0Atrue(0),
51   fCentralityV0Ctrue(0),
52   fCentralityV0MEqtrue(0),
53   fCentralityV0AEqtrue(0),
54   fCentralityV0CEqtrue(0),
55   fCentralityFMDtrue(0),
56   fCentralityTRKtrue(0),
57   fCentralityTKLtrue(0),
58   fCentralityCL0true(0),
59   fCentralityCL1true(0),
60   fCentralityCNDtrue(0),
61   fCentralityZNAtrue(0),
62   fCentralityZNCtrue(0),
63   fCentralityZPAtrue(0),
64   fCentralityZPCtrue(0)
65 {
66   /// constructor
67 }
68
69 AliCentrality::AliCentrality(const AliCentrality& cnt) : 
70   TNamed(cnt),
71   fQuality(cnt.fQuality), 
72   fCentralityV0M(cnt.fCentralityV0M),
73   fCentralityV0A(cnt.fCentralityV0A),
74   fCentralityV0A123(cnt.fCentralityV0A123),
75   fCentralityV0C(cnt.fCentralityV0C),
76   fCentralityV0MEq(cnt.fCentralityV0MEq),
77   fCentralityV0AEq(cnt.fCentralityV0AEq),
78   fCentralityV0CEq(cnt.fCentralityV0CEq),
79   fCentralityFMD(cnt.fCentralityFMD),
80   fCentralityTRK(cnt.fCentralityTRK),
81   fCentralityTKL(cnt.fCentralityTKL),
82   fCentralityCL0(cnt.fCentralityCL0),
83   fCentralityCL1(cnt.fCentralityCL1),
84   fCentralityCND(cnt.fCentralityCND),
85   fCentralityZNA(cnt.fCentralityZNA),
86   fCentralityZNC(cnt.fCentralityZNC),
87   fCentralityZPA(cnt.fCentralityZPA),
88   fCentralityZPC(cnt.fCentralityZPC),
89   fCentralityNPA(cnt.fCentralityNPA),
90   fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
91   fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
92   fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC),
93   fCentralityV0Mtrue(cnt.fCentralityV0Mtrue),
94   fCentralityV0Atrue(cnt.fCentralityV0Atrue),
95   fCentralityV0Ctrue(cnt.fCentralityV0Ctrue),
96   fCentralityV0MEqtrue(cnt.fCentralityV0MEqtrue),
97   fCentralityV0AEqtrue(cnt.fCentralityV0AEqtrue),
98   fCentralityV0CEqtrue(cnt.fCentralityV0CEqtrue),
99   fCentralityFMDtrue(cnt.fCentralityFMDtrue),
100   fCentralityTRKtrue(cnt.fCentralityTRKtrue),
101   fCentralityTKLtrue(cnt.fCentralityTKLtrue),
102   fCentralityCL0true(cnt.fCentralityCL0true),
103   fCentralityCL1true(cnt.fCentralityCL1true),
104   fCentralityCNDtrue(cnt.fCentralityCNDtrue),
105   fCentralityZNAtrue(cnt.fCentralityZNAtrue),
106   fCentralityZNCtrue(cnt.fCentralityZNCtrue),
107   fCentralityZPAtrue(cnt.fCentralityZPAtrue),
108   fCentralityZPCtrue(cnt.fCentralityZPCtrue)
109 {
110   /// Copy constructor
111 }
112
113 AliCentrality& AliCentrality::operator=(const AliCentrality& c)
114 {
115   /// Assignment operator
116   if (this!=&c) {
117     TNamed::operator=(c);
118     fQuality = c.fQuality;
119     fCentralityV0M = c.fCentralityV0M;
120     fCentralityV0A = c.fCentralityV0A;
121     fCentralityV0A123 = c.fCentralityV0A123;
122     fCentralityV0C = c.fCentralityV0C;
123     fCentralityV0MEq = c.fCentralityV0MEq;
124     fCentralityV0AEq = c.fCentralityV0AEq;
125     fCentralityV0CEq = c.fCentralityV0CEq;
126     fCentralityFMD = c.fCentralityFMD;
127     fCentralityTRK = c.fCentralityTRK;
128     fCentralityTKL = c.fCentralityTKL;
129     fCentralityCL0 = c.fCentralityCL0;
130     fCentralityCL1 = c.fCentralityCL1;
131     fCentralityCND = c.fCentralityCND;
132     fCentralityZNA = c.fCentralityZNA;
133     fCentralityZNC = c.fCentralityZNC;
134     fCentralityZPA = c.fCentralityZPA;
135     fCentralityZPC = c.fCentralityZPC;
136     fCentralityNPA = c.fCentralityNPA;
137     fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
138     fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
139     fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
140     fCentralityV0Mtrue = c.fCentralityV0Mtrue;
141     fCentralityV0Atrue = c.fCentralityV0Atrue;
142     fCentralityV0Ctrue = c.fCentralityV0Ctrue;
143     fCentralityV0MEqtrue = c.fCentralityV0MEqtrue;
144     fCentralityV0AEqtrue = c.fCentralityV0AEqtrue;
145     fCentralityV0CEqtrue = c.fCentralityV0CEqtrue;
146     fCentralityFMDtrue = c.fCentralityFMDtrue;
147     fCentralityTRKtrue = c.fCentralityTRKtrue;
148     fCentralityTKLtrue = c.fCentralityTKLtrue;
149     fCentralityCL0true = c.fCentralityCL0true;
150     fCentralityCL1true = c.fCentralityCL1true;
151     fCentralityCNDtrue = c.fCentralityCNDtrue;
152     fCentralityZNAtrue = c.fCentralityZNAtrue;
153     fCentralityZNCtrue = c.fCentralityZNCtrue;
154     fCentralityZPAtrue = c.fCentralityZPAtrue;
155     fCentralityZPCtrue = c.fCentralityZPCtrue;
156   }
157
158   return *this;
159 }
160
161 AliCentrality::~AliCentrality()
162 {
163   /// destructor
164 }
165
166 Int_t AliCentrality::GetQuality() const
167 {
168   return fQuality;
169 }
170
171 Float_t AliCentrality::GetCentralityPercentile(const char *x) const
172 {
173 // Return the centrality percentile
174   if (fQuality == 0) {
175     TString method = x;
176     if(method.CompareTo("V0M")==0)      return fCentralityV0M;
177     if(method.CompareTo("V0A")==0)      return fCentralityV0A;
178     if(method.CompareTo("V0A123")==0)   return fCentralityV0A123;
179     if(method.CompareTo("V0C")==0)      return fCentralityV0C;
180     if(method.CompareTo("V0MEq")==0)    return fCentralityV0MEq;
181     if(method.CompareTo("V0AEq")==0)    return fCentralityV0AEq;
182     if(method.CompareTo("V0CEq")==0)    return fCentralityV0CEq;
183     if(method.CompareTo("FMD")==0)      return fCentralityFMD;
184     if(method.CompareTo("TRK")==0)      return fCentralityTRK;
185     if(method.CompareTo("TKL")==0)      return fCentralityTKL;
186     if(method.CompareTo("CL0")==0)      return fCentralityCL0;
187     if(method.CompareTo("CL1")==0)      return fCentralityCL1;
188     if(method.CompareTo("CND")==0)      return fCentralityCND;
189     if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
190     if(method.CompareTo("ZNC")==0)      return fCentralityZNC;
191     if(method.CompareTo("ZPA")==0)      return fCentralityZPA;
192     if(method.CompareTo("ZPC")==0)      return fCentralityZPC;
193     if(method.CompareTo("NPA")==0)      return fCentralityNPA;
194     if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
195     if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
196     if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
197     if(method.CompareTo("V0Mtrue")==0)      return fCentralityV0Mtrue;
198     if(method.CompareTo("V0Atrue")==0)      return fCentralityV0Atrue;
199     if(method.CompareTo("V0Ctrue")==0)      return fCentralityV0Ctrue;
200     if(method.CompareTo("V0MEqtrue")==0)    return fCentralityV0MEqtrue;
201     if(method.CompareTo("V0AEqtrue")==0)    return fCentralityV0AEqtrue;
202     if(method.CompareTo("V0CEqtrue")==0)    return fCentralityV0CEqtrue;
203     if(method.CompareTo("FMDtrue")==0)      return fCentralityFMDtrue;
204     if(method.CompareTo("TRKtrue")==0)      return fCentralityTRKtrue;
205     if(method.CompareTo("TKLtrue")==0)      return fCentralityTKLtrue;
206     if(method.CompareTo("CL0true")==0)      return fCentralityCL0true;
207     if(method.CompareTo("CL1true")==0)      return fCentralityCL1true;
208     if(method.CompareTo("CNDtrue")==0)      return fCentralityCNDtrue;
209     if(method.CompareTo("ZNAtrue")==0)      return fCentralityZNAtrue;
210     if(method.CompareTo("ZNCtrue")==0)      return fCentralityZNCtrue;
211     if(method.CompareTo("ZPAtrue")==0)      return fCentralityZPAtrue;
212     if(method.CompareTo("ZPCtrue")==0)      return fCentralityZPCtrue;
213     return -1;
214   } else {
215     return -1;
216   }
217 }
218
219 Int_t AliCentrality::GetCentralityClass10(const char *x) const
220 {
221 // Return the centrality class
222   if (fQuality == 0) {
223     TString method = x;
224     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
225     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
226     if(method.CompareTo("V0A123")==0)   return (Int_t) (fCentralityV0A123 / 10.0);
227     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
228     if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 10.0);
229     if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 10.0);
230     if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 10.0);
231     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
232     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
233     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
234     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
235     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
236     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
237     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
238     if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 10.0);
239     if(method.CompareTo("ZPA")==0)      return (Int_t) (fCentralityZPA / 10.0);
240     if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 10.0);
241     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
242     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
243     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
244     if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
245     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
246     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
247     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
248     if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 10.0);
249     if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 10.0);
250     if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 10.0);
251     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
252     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
253     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
254     if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 10.0);
255     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
256     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
257     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
258     if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 10.0);
259     if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 10.0);
260     if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 10.0);
261     return -1;
262   } else {
263     return -1;
264   }
265 }
266
267 Int_t AliCentrality::GetCentralityClass5(const char *x) const
268 {
269 // Return the centrality class
270   if (fQuality == 0) {
271     TString method = x;
272     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
273     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
274     if(method.CompareTo("V0A123")==0)   return (Int_t) (fCentralityV0A123 / 5.0);
275     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
276     if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 5.0);
277     if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 5.0);
278     if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 5.0);
279     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
280     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
281     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
282     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
283     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
284     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
285     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
286     if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 5.0);
287     if(method.CompareTo("ZPA")==0)      return (Int_t) (fCentralityZPA / 5.0);
288     if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 5.0);
289     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
290     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
291     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
292     if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
293     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 5.0);
294     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
295     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
296     if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 5.0);
297     if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 5.0);
298     if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 5.0);
299     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
300     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
301     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
302     if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 5.0);
303     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
304     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
305     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
306     if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 5.0);
307     if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 5.0);
308     if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 5.0);
309     return -1;
310   } else {
311     return -1;
312   }
313 }
314
315
316 Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x) const
317 {
318 // True if event is inside a given class
319   if (fQuality == 0) {
320     TString method = x;
321     if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
322     if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
323     if ((method.CompareTo("V0A123")==0) && (fCentralityV0A123 >=a && fCentralityV0A123 < b)) return kTRUE;
324     if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
325     if ((method.CompareTo("V0MEq")==0) && (fCentralityV0MEq >=a && fCentralityV0MEq < b)) return kTRUE;
326     if ((method.CompareTo("V0AEq")==0) && (fCentralityV0AEq >=a && fCentralityV0AEq < b)) return kTRUE;
327     if ((method.CompareTo("V0CEq")==0) && (fCentralityV0CEq >=a && fCentralityV0CEq < b)) return kTRUE;
328     if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
329     if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
330     if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
331     if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
332     if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
333     if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
334     if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
335     if ((method.CompareTo("ZNC")==0) && (fCentralityZNC >=a && fCentralityZNC < b)) return kTRUE;
336     if ((method.CompareTo("ZPA")==0) && (fCentralityZPA >=a && fCentralityZPA < b)) return kTRUE;
337     if ((method.CompareTo("ZPC")==0) && (fCentralityZPC >=a && fCentralityZPC < b)) return kTRUE;
338     if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
339     if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
340     if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
341     if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
342     if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
343     if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
344     if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
345     if ((method.CompareTo("V0MEqtrue")==0) && (fCentralityV0MEqtrue >=a && fCentralityV0MEqtrue < b)) return kTRUE;
346     if ((method.CompareTo("V0AEqtrue")==0) && (fCentralityV0AEqtrue >=a && fCentralityV0AEqtrue < b)) return kTRUE;
347     if ((method.CompareTo("V0CEqtrue")==0) && (fCentralityV0CEqtrue >=a && fCentralityV0CEqtrue < b)) return kTRUE;
348     if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
349     if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
350     if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
351     if ((method.CompareTo("CL0true")==0) && (fCentralityCL0true >=a && fCentralityCL0true < b)) return kTRUE;
352     if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
353     if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
354     if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
355     if ((method.CompareTo("ZNCtrue")==0) && (fCentralityZNCtrue >=a && fCentralityZNCtrue < b)) return kTRUE;
356     if ((method.CompareTo("ZPAtrue")==0) && (fCentralityZPAtrue >=a && fCentralityZPAtrue < b)) return kTRUE;
357     if ((method.CompareTo("ZPCtrue")==0) && (fCentralityZPCtrue >=a && fCentralityZPCtrue < b)) return kTRUE;
358     else return kFALSE;
359   } else {
360     return kFALSE;
361   }
362 }
363
364 Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
365 {
366 // Return the centrality percentile
367   TString method = x;
368   if(method.CompareTo("V0M")==0)      return fCentralityV0M;
369   if(method.CompareTo("V0A")==0)      return fCentralityV0A;
370   if(method.CompareTo("V0A123")==0)   return fCentralityV0A123;
371   if(method.CompareTo("V0C")==0)      return fCentralityV0C;
372   if(method.CompareTo("V0MEq")==0)    return fCentralityV0MEq;
373   if(method.CompareTo("V0AEq")==0)    return fCentralityV0AEq;
374   if(method.CompareTo("V0CEq")==0)    return fCentralityV0CEq;
375   if(method.CompareTo("FMD")==0)      return fCentralityFMD;
376   if(method.CompareTo("TRK")==0)      return fCentralityTRK;
377   if(method.CompareTo("TKL")==0)      return fCentralityTKL;
378   if(method.CompareTo("CL0")==0)      return fCentralityCL0;
379   if(method.CompareTo("CL1")==0)      return fCentralityCL1;
380   if(method.CompareTo("CND")==0)      return fCentralityCND;
381   if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
382   if(method.CompareTo("ZNC")==0)      return fCentralityZNC;
383   if(method.CompareTo("ZPA")==0)      return fCentralityZPA;
384   if(method.CompareTo("ZPC")==0)      return fCentralityZPC;
385   if(method.CompareTo("NPA")==0)      return fCentralityNPA;
386   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
387   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
388   if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
389   if(method.CompareTo("V0Mtrue")==0)  return fCentralityV0Mtrue;
390   if(method.CompareTo("V0Atrue")==0)  return fCentralityV0Atrue;
391   if(method.CompareTo("V0Ctrue")==0)  return fCentralityV0Ctrue;
392   if(method.CompareTo("V0MEqtrue")==0)    return fCentralityV0MEqtrue;
393   if(method.CompareTo("V0AEqtrue")==0)    return fCentralityV0AEqtrue;
394   if(method.CompareTo("V0CEqtrue")==0)    return fCentralityV0CEqtrue;
395   if(method.CompareTo("FMDtrue")==0)  return fCentralityFMDtrue;
396   if(method.CompareTo("TRKtrue")==0)  return fCentralityTRKtrue;
397   if(method.CompareTo("TKLtrue")==0)  return fCentralityTKLtrue;
398   if(method.CompareTo("CL0true")==0)  return fCentralityCL0true;
399   if(method.CompareTo("CL1true")==0)  return fCentralityCL1true;
400   if(method.CompareTo("CNDtrue")==0)  return fCentralityCNDtrue;
401   if(method.CompareTo("ZNAtrue")==0)  return fCentralityZNAtrue;
402   if(method.CompareTo("ZNCtrue")==0)  return fCentralityZNCtrue;
403   if(method.CompareTo("ZPAtrue")==0)  return fCentralityZPAtrue;
404   if(method.CompareTo("ZPCtrue")==0)  return fCentralityZPCtrue;
405   return -1;
406 }
407
408 Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
409 {
410 // Return the centrality class
411   TString method = x;
412     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
413     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
414     if(method.CompareTo("V0A123")==0)   return (Int_t) (fCentralityV0A123 / 10.0);
415     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
416     if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 10.0);
417     if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 10.0);
418     if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 10.0);
419     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
420     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
421     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
422     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
423     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
424     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
425     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
426     if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 10.0);
427     if(method.CompareTo("ZPA")==0)      return (Int_t) (fCentralityZPA / 10.0);
428     if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 10.0);
429     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
430     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
431     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
432     if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
433     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
434     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
435     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
436     if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 10.0);
437     if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 10.0);
438     if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 10.0);
439     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
440     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
441     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
442     if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 10.0);
443     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
444     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
445     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
446     if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 10.0);
447     if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 10.0);
448     if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 10.0);
449   return -1;
450 }
451
452 Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
453 {
454 // Return the centrality class
455   TString method = x;
456     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
457     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
458     if(method.CompareTo("V0A123")==0)   return (Int_t) (fCentralityV0A123 / 5.0);
459     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
460     if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 5.0);
461     if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 5.0);
462     if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 5.0);
463     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
464     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
465     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
466     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
467     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
468     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
469     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
470     if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 5.0);
471     if(method.CompareTo("ZPA")==0)      return (Int_t) (fCentralityZPA / 5.0);
472     if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 5.0);
473     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
474     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
475     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
476     if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
477     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 5.0);
478     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
479     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
480     if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 5.0);
481     if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 5.0);
482     if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 5.0);
483     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
484     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
485     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
486     if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 5.0);
487     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
488     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
489     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
490     if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 5.0);
491     if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 5.0);
492     if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 5.0);
493   return -1;
494
495
496 Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x) const
497 {
498 // True if event inside given centrality class
499   TString method = x;
500     if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
501     if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
502     if ((method.CompareTo("V0A123")==0) && (fCentralityV0A123 >=a && fCentralityV0A123 < b)) return kTRUE;
503     if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
504     if ((method.CompareTo("V0MEq")==0) && (fCentralityV0MEq >=a && fCentralityV0MEq < b)) return kTRUE;
505     if ((method.CompareTo("V0AEq")==0) && (fCentralityV0AEq >=a && fCentralityV0AEq < b)) return kTRUE;
506     if ((method.CompareTo("V0CEq")==0) && (fCentralityV0CEq >=a && fCentralityV0CEq < b)) return kTRUE;
507     if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
508     if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
509     if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
510     if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
511     if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
512     if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
513     if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
514     if ((method.CompareTo("ZNC")==0) && (fCentralityZNC >=a && fCentralityZNC < b)) return kTRUE;
515     if ((method.CompareTo("ZPA")==0) && (fCentralityZPA >=a && fCentralityZPA < b)) return kTRUE;
516     if ((method.CompareTo("ZPC")==0) && (fCentralityZPC >=a && fCentralityZPC < b)) return kTRUE;
517     if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
518     if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
519     if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
520     if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
521     if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
522     if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
523     if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
524     if ((method.CompareTo("V0MEqtrue")==0) && (fCentralityV0MEqtrue >=a && fCentralityV0MEqtrue < b)) return kTRUE;
525     if ((method.CompareTo("V0AEqtrue")==0) && (fCentralityV0AEqtrue >=a && fCentralityV0AEqtrue < b)) return kTRUE;
526     if ((method.CompareTo("V0CEqtrue")==0) && (fCentralityV0CEqtrue >=a && fCentralityV0CEqtrue < b)) return kTRUE;
527     if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
528     if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
529     if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
530     if ((method.CompareTo("CL0true")==0) && (fCentralityCL0true >=a && fCentralityCL0true < b)) return kTRUE;
531     if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
532     if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
533     if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
534     if ((method.CompareTo("ZNCtrue")==0) && (fCentralityZNCtrue >=a && fCentralityZNCtrue < b)) return kTRUE;
535     if ((method.CompareTo("ZPAtrue")==0) && (fCentralityZPAtrue >=a && fCentralityZPAtrue < b)) return kTRUE;
536     if ((method.CompareTo("ZPCtrue")==0) && (fCentralityZPCtrue >=a && fCentralityZPCtrue < b)) return kTRUE;
537   else return kFALSE;
538
539
540 void AliCentrality::Reset()
541 {
542 // Reset.
543
544   fQuality            =  999;
545   fCentralityV0M      =  0;
546   fCentralityV0A      =  0;
547   fCentralityV0A123   =  0;
548   fCentralityV0C      =  0;
549   fCentralityV0MEq    =  0;
550   fCentralityV0AEq    =  0;
551   fCentralityV0CEq    =  0;
552   fCentralityFMD      =  0;
553   fCentralityTRK      =  0;
554   fCentralityTKL      =  0;
555   fCentralityCL0      =  0;
556   fCentralityCL1      =  0;
557   fCentralityCND      =  0;
558   fCentralityZNA      =  0;
559   fCentralityZNC      =  0;
560   fCentralityZPA      =  0;
561   fCentralityZPC      =  0;
562   fCentralityNPA      =  0;
563   fCentralityV0MvsFMD =  0;
564   fCentralityTKLvsV0M =  0;
565   fCentralityZEMvsZDC =  0;
566   fCentralityV0Mtrue  =  0;
567   fCentralityV0Atrue  =  0;
568   fCentralityV0Ctrue  =  0;
569   fCentralityV0MEqtrue  =  0;
570   fCentralityV0AEqtrue  =  0;
571   fCentralityV0CEqtrue  =  0;
572   fCentralityFMDtrue  =  0;
573   fCentralityTRKtrue  =  0;
574   fCentralityTKLtrue  =  0;
575   fCentralityCL0true  =  0;
576   fCentralityCL1true  =  0;
577   fCentralityCNDtrue  =  0;
578   fCentralityZNAtrue  =  0;
579   fCentralityZNCtrue  =  0;
580   fCentralityZPAtrue  =  0;
581   fCentralityZPCtrue  =  0;
582 }