1 /**************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 //*****************************************************
17 // Class AliCentrality
18 // author: Alberica Toia
19 //*****************************************************
20 /// A container for the centrality stored in AOD in ESD
22 #include "AliCentrality.h"
24 ClassImp(AliCentrality)
26 AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
34 fCentralityV0MvsFMD(0),
35 fCentralityTKLvsV0M(0),
36 fCentralityZEMvsZDC(0)
41 AliCentrality::AliCentrality(const AliCentrality& cnt) :
43 fQuality(cnt.fQuality),
44 fCentralityV0M(cnt.fCentralityV0M),
45 fCentralityFMD(cnt.fCentralityFMD),
46 fCentralityTRK(cnt.fCentralityTRK),
47 fCentralityTKL(cnt.fCentralityTKL),
48 fCentralityCL0(cnt.fCentralityCL0),
49 fCentralityCL1(cnt.fCentralityCL1),
50 fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
51 fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
52 fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
57 AliCentrality& AliCentrality::operator=(const AliCentrality& c)
59 /// Assignment operator
62 fQuality = c.fQuality;
63 fCentralityV0M = c.fCentralityV0M;
64 fCentralityFMD = c.fCentralityFMD;
65 fCentralityTRK = c.fCentralityTRK;
66 fCentralityTKL = c.fCentralityTKL;
67 fCentralityCL0 = c.fCentralityCL0;
68 fCentralityCL1 = c.fCentralityCL1;
69 fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
70 fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
71 fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
77 AliCentrality::~AliCentrality()
82 Int_t AliCentrality::GetQuality() const
87 Float_t AliCentrality::GetCentralityPercentile(const char *x) const
89 // Return the centrality percentile
92 if(method.CompareTo("V0M")==0) return fCentralityV0M;
93 if(method.CompareTo("FMD")==0) return fCentralityFMD;
94 if(method.CompareTo("TRK")==0) return fCentralityTRK;
95 if(method.CompareTo("TKL")==0) return fCentralityTKL;
96 if(method.CompareTo("CL0")==0) return fCentralityCL0;
97 if(method.CompareTo("CL1")==0) return fCentralityCL1;
98 if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
99 if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
100 if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
107 Int_t AliCentrality::GetCentralityClass10(const char *x) const
109 // Return the centrality class
112 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0);
113 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0);
114 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0);
115 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0);
116 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0);
117 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 10.0);
118 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
119 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
120 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
127 Int_t AliCentrality::GetCentralityClass5(const char *x) const
129 // Return the centrality class
132 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0);
133 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0);
134 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0);
135 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0);
136 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0);
137 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 5.0);
138 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
139 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
140 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
148 Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x) const
150 // True if event is inside a given class
153 if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
154 if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
155 if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
156 if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
157 if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
158 if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
159 if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
160 if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
161 if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
168 Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
170 // Return the centrality percentile
172 if(method.CompareTo("V0M")==0) return fCentralityV0M;
173 if(method.CompareTo("FMD")==0) return fCentralityFMD;
174 if(method.CompareTo("TRK")==0) return fCentralityTRK;
175 if(method.CompareTo("TKL")==0) return fCentralityTKL;
176 if(method.CompareTo("CL0")==0) return fCentralityCL0;
177 if(method.CompareTo("CL1")==0) return fCentralityCL1;
178 if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
179 if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
180 if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
184 Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
186 // Return the centrality class
188 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0);
189 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0);
190 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0);
191 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0);
192 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0);
193 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 10.0);
194 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
195 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
196 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
200 Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
202 // Return the centrality class
204 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0);
205 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0);
206 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0);
207 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0);
208 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0);
209 if(method.CompareTo("CL1")==0) return (Int_t) (fCentralityCL1 / 5.0);
210 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
211 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
212 if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
216 Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x) const
218 // True if event inside given centrality class
220 if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
221 if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
222 if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
223 if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
224 if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
225 if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
226 if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
227 if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
228 if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;