]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/scripts/AliESDCentrality.C
MB fix for 2.76 TeV
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / scripts / AliESDCentrality.C
1 //-*- Mode: C++ -*-
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                               */
7
8 //*****************************************************
9 //   Class AliCentralitySelectionTask
10 //   author: Alberica Toia
11 //*****************************************************
12
13 #include "TNamed.h"
14
15 class AliESDCentrality : public TNamed
16 {
17  public:
18
19   AliESDCentrality();  /// constructor
20   ~AliESDCentrality();  /// destructor
21   AliESDCentrality(const AliESDCentrality& cnt); /// copy constructor
22   AliESDCentrality& operator=(const AliESDCentrality& cnt);   /// assignment operator
23
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;}
33
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);
39
40  private:
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
49
50   ClassDef(AliESDCentrality, 2)
51 };
52
53 inline
54 AliESDCentrality::AliESDCentrality() : TNamed("ESDCentrality", "Centrality"),
55   fCentralityV0M(0),
56   fCentralityFMD(0),
57   fCentralityTRK(0),
58   fCentralityTKL(0),
59   fCentralityCL0(0),
60   fCentralityV0MvsFMD(0),
61   fCentralityTKLvsV0M(0),
62   fCentralityZEMvsZDC(0)
63 {
64   /// constructor
65 }
66
67 inline
68 AliESDCentrality::AliESDCentrality(const AliESDCentrality& cnt) : 
69   TNamed(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)
78 {
79   /// Copy constructor
80 }
81
82 inline
83 AliESDCentrality& AliESDCentrality::operator=(const AliESDCentrality& c)
84 {
85   /// Assignment operator
86   if (this!=&c) {
87     TNamed::operator=(c);
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;
96   }
97
98   return *this;
99 }
100
101 inline
102 AliESDCentrality::~AliESDCentrality()
103 {
104   /// destructor
105 }
106
107 inline
108 Float_t AliESDCentrality::GetCentralityPercentile(const char *x)
109 {
110   TString method = 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;
119   return -1;
120 }
121
122 inline
123 Int_t AliESDCentrality::GetCentralityClass10(const char *x)
124 {
125   TString method = 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);
134   return -1;
135 }
136
137 Int_t AliESDCentrality::GetCentralityClass5(const char *x)
138 {
139  TString method = 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);
148   return -1;
149 }
150
151 inline
152 Bool_t AliESDCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x)
153 {
154   TString method = 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;
163   else return kFALSE;
164 }
165
166
167
168
169 #endif //ALIESDCENTRALITY_H