2 #ifndef ALIESDCentrality_H
3 #define ALIESDCentrality_H
4 /* This file is property of and copyright by the ALICE HLT Project *
5 * ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 //*****************************************************
9 // Class AliCentralitySelectionTask
10 // author: Alberica Toia
11 //*****************************************************
15 class AliESDCentrality : public TNamed
19 AliESDCentrality(); /// constructor
20 ~AliESDCentrality(); /// destructor
21 AliESDCentrality(const AliESDCentrality& cnt); /// copy constructor
22 AliESDCentrality& operator=(const AliESDCentrality& cnt); /// assignment operator
24 /// set centrality result
25 void SetCentralityV0M(Float_t cent) {fCentralityV0M = cent;}
26 void SetCentralityFMD(Float_t cent) {fCentralityFMD = cent;}
27 void SetCentralityTRK(Float_t cent) {fCentralityTRK = cent;}
28 void SetCentralityTKL(Float_t cent) {fCentralityTKL = cent;}
29 void SetCentralityCL0(Float_t cent) {fCentralityCL0 = cent;}
30 void SetCentralityV0MvsFMD(Float_t cent) {fCentralityV0MvsFMD = cent;}
31 void SetCentralityTKLvsV0M(Float_t cent) {fCentralityTKLvsV0M = cent;}
32 void SetCentralityZEMvsZDC(Float_t cent) {fCentralityZEMvsZDC = cent;}
34 /// get centrality result
35 Float_t GetCentralityPercentile(const char *method);
36 Int_t GetCentralityClass10(const char *method);
37 Int_t GetCentralityClass5(const char *method);
38 Bool_t IsEventInCentralityClass(Float_t a, Float_t b, const char *method);
41 Float_t fCentralityV0M; // Centrality from V0
42 Float_t fCentralityFMD; // Centrality from FMD
43 Float_t fCentralityTRK; // Centrality from tracks
44 Float_t fCentralityTKL; // Centrality from tracklets
45 Float_t fCentralityCL0; // Centrality from Clusters in layer 0
46 Float_t fCentralityV0MvsFMD; // Centrality from V0 vs FMD
47 Float_t fCentralityTKLvsV0M; // Centrality from tracklets vs V0
48 Float_t fCentralityZEMvsZDC; // Centrality from ZEM vs ZDC
50 ClassDef(AliESDCentrality, 2)
54 AliESDCentrality::AliESDCentrality() : TNamed("ESDCentrality", "Centrality"),
60 fCentralityV0MvsFMD(0),
61 fCentralityTKLvsV0M(0),
62 fCentralityZEMvsZDC(0)
68 AliESDCentrality::AliESDCentrality(const AliESDCentrality& cnt) :
70 fCentralityV0M(cnt.fCentralityV0M),
71 fCentralityFMD(cnt.fCentralityFMD),
72 fCentralityTRK(cnt.fCentralityTRK),
73 fCentralityTKL(cnt.fCentralityTKL),
74 fCentralityCL0(cnt.fCentralityCL0),
75 fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
76 fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
77 fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
83 AliESDCentrality& AliESDCentrality::operator=(const AliESDCentrality& c)
85 /// Assignment operator
88 fCentralityV0M = c.fCentralityV0M;
89 fCentralityFMD = c.fCentralityFMD;
90 fCentralityTRK = c.fCentralityTRK;
91 fCentralityTKL = c.fCentralityTKL;
92 fCentralityCL0 = c.fCentralityCL0;
93 fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
94 fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
95 fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
102 AliESDCentrality::~AliESDCentrality()
108 Float_t AliESDCentrality::GetCentralityPercentile(const char *x)
111 if(method.CompareTo("V0M")==0) return fCentralityV0M;
112 if(method.CompareTo("FMD")==0) return fCentralityFMD;
113 if(method.CompareTo("TRK")==0) return fCentralityTRK;
114 if(method.CompareTo("TKL")==0) return fCentralityTKL;
115 if(method.CompareTo("CL0")==0) return fCentralityCL0;
116 if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
117 if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
118 if(method.CompareTo("ZENvsZDC")==0) return fCentralityZEMvsZDC;
123 Int_t AliESDCentrality::GetCentralityClass10(const char *x)
126 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0);
127 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0);
128 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0);
129 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0);
130 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0);
131 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
132 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
133 if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
137 Int_t AliESDCentrality::GetCentralityClass5(const char *x)
140 if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0);
141 if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0);
142 if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0);
143 if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0);
144 if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0);
145 if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
146 if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
147 if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
152 Bool_t AliESDCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x)
155 if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
156 if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
157 if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
158 if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
159 if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
160 if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
161 if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
162 if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
169 #endif //ALIESDCENTRALITY_H