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