]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliCentrality.cxx
Reset of centrality object.
[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(999),
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() const
83 {
84   return fQuality;
85 }
86
87 Float_t AliCentrality::GetCentralityPercentile(const char *x) const
88 {
89 // Return the centrality percentile
90   if (fQuality == 0) {
91     TString method = x;
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;
101     return -1;
102   } else {
103     return -1;
104   }
105 }
106
107 Int_t AliCentrality::GetCentralityClass10(const char *x) const
108 {
109 // Return the centrality class
110   if (fQuality == 0) {
111     TString method = x;
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);
121     return -1;
122   } else {
123     return -1;
124   }
125 }
126
127 Int_t AliCentrality::GetCentralityClass5(const char *x) const
128 {
129 // Return the centrality class
130   if (fQuality == 0) {
131     TString method = x;
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);
141     return -1;
142   } else {
143     return -1;
144   }
145 }
146
147
148 Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x) const
149 {
150 // True if event is inside a given class
151   if (fQuality == 0) {
152     TString method = x;
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;
162     else return kFALSE;
163   } else {
164     return kFALSE;
165   }
166 }
167
168 Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
169 {
170 // Return the centrality percentile
171   TString method = x;
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;
181   return -1;
182 }
183
184 Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
185 {
186 // Return the centrality class
187   TString method = x;
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);
197   return -1;
198 }
199
200 Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
201 {
202 // Return the centrality class
203   TString method = x;
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);
213   return -1;
214
215
216 Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, const char *x) const
217 {
218 // True if event inside given centrality class
219   TString method = x;
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;
229   else return kFALSE;
230
231
232 void AliCentrality::Reset()
233 {
234 // Reset.
235
236   fQuality            =  999;
237   fCentralityV0M      =  0;
238   fCentralityFMD      =  0;
239   fCentralityTRK      =  0;
240   fCentralityTKL      =  0;
241   fCentralityCL0      =  0;
242   fCentralityCL1      =  0;
243   fCentralityV0MvsFMD =  0;
244   fCentralityTKLvsV0M =  0;
245   fCentralityZEMvsZDC =  0;
246 }