Return value corrected. (Carlos Perez Lara)
[u/mrichter/AliRoot.git] / STEER / 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(0),
28   fCentralityV0M(0),
29   fCentralityFMD(0),
30   fCentralityTRK(0),
31   fCentralityTKL(0),
32   fCentralityCL0(0),
33   fCentralityCL1(0),
34   fCentralityV0MvsFMD(0),
35   fCentralityTKLvsV0M(0),
36   fCentralityZEMvsZDC(0)
37 {
38   /// constructor
39 }
40
41 AliCentrality::AliCentrality(const AliCentrality& cnt) : 
42   TNamed(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)
53 {
54   /// Copy constructor
55 }
56
57 AliCentrality& AliCentrality::operator=(const AliCentrality& c)
58 {
59   /// Assignment operator
60   if (this!=&c) {
61     TNamed::operator=(c);
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;
72   }
73
74   return *this;
75 }
76
77 AliCentrality::~AliCentrality()
78 {
79   /// destructor
80 }
81
82 Int_t AliCentrality::GetQuality()
83 {
84   return fQuality;
85 }
86
87 Float_t AliCentrality::GetCentralityPercentile(const char *x)
88 {
89   if (fQuality == 0) {
90     TString method = x;
91     if(method.CompareTo("V0M")==0)      return fCentralityV0M;
92     if(method.CompareTo("FMD")==0)      return fCentralityFMD;
93     if(method.CompareTo("TRK")==0)      return fCentralityTRK;
94     if(method.CompareTo("TKL")==0)      return fCentralityTKL;
95     if(method.CompareTo("CL0")==0)      return fCentralityCL0;
96     if(method.CompareTo("CL1")==0)      return fCentralityCL1;
97     if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
98     if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
99     if(method.CompareTo("ZENvsZDC")==0) return fCentralityZEMvsZDC;
100     return -1;
101   } else {
102     return -1;
103   }
104 }
105
106 Int_t AliCentrality::GetCentralityClass10(const char *x)
107 {
108   if (fQuality == 0) {
109     TString method = x;
110     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
111     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
112     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
113     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
114     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
115     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
116     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
117     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
118     if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
119     return -1;
120   } else {
121     return -1;
122   }
123 }
124
125 Int_t AliCentrality::GetCentralityClass5(const char *x)
126 {
127   if (fQuality == 0) {
128     TString method = x;
129     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
130     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
131     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
132     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
133     if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
134     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
135     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
136     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
137     if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
138     return -1;
139   } else {
140     return -1;
141   }
142 }
143
144
145 Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x)
146 {
147   if (fQuality == 0) {
148     TString method = x;
149     if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
150     if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
151     if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
152     if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
153     if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
154     if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
155     if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
156     if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
157     if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
158     else return kFALSE;
159   } else {
160     return kFALSE;
161   }
162 }
163
164 Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x)
165 {
166   TString method = x;
167   if(method.CompareTo("V0M")==0)      return fCentralityV0M;
168   if(method.CompareTo("FMD")==0)      return fCentralityFMD;
169   if(method.CompareTo("TRK")==0)      return fCentralityTRK;
170   if(method.CompareTo("TKL")==0)      return fCentralityTKL;
171   if(method.CompareTo("CL0")==0)      return fCentralityCL0;
172   if(method.CompareTo("CL1")==0)      return fCentralityCL1;
173   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
174   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
175   if(method.CompareTo("ZENvsZDC")==0) return fCentralityZEMvsZDC;
176   return -1;
177 }
178
179 Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x)
180 {
181   TString method = x;
182   if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
183   if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
184   if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
185   if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
186   if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
187   if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
188   if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
189   if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
190   if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
191   return -1;
192 }
193
194 Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x)
195 {
196   TString method = x;
197   if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
198   if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
199   if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
200   if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
201   if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
202   if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
203   if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
204   if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
205   if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
206   return -1;
207
208
209 Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x)
210 {
211   TString method = x;
212   if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
213   if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
214   if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
215   if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
216   if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
217   if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
218   if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
219   if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
220   if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
221   else return kFALSE;
222
223
224