d6b473b850c5c9f95744b43d45ed3020b2a9f1ab
[u/mrichter/AliRoot.git] / STEER / AliESDCentrality.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 AliCentralitySelectionTask
18 //   author: Alberica Toia
19 //*****************************************************
20 /// A container for the centrality stored in the ESD.
21  
22 #include "AliESDCentrality.h"
23
24 ClassImp(AliESDCentrality)
25
26 AliESDCentrality::AliESDCentrality() : TNamed("ESDCentrality", "Centrality"),
27   fCentralityV0M(0),
28   fCentralityFMD(0),
29   fCentralityTRK(0),
30   fCentralityTKL(0),
31   fCentralityCL0(0),
32   fCentralityV0MvsFMD(0),
33   fCentralityTKLvsV0M(0),
34   fCentralityZEMvsZDC(0)
35 {
36   /// constructor
37 }
38
39 AliESDCentrality::AliESDCentrality(const AliESDCentrality& cnt) : 
40   TNamed(cnt), 
41   fCentralityV0M(cnt.fCentralityV0M),
42   fCentralityFMD(cnt.fCentralityFMD),
43   fCentralityTRK(cnt.fCentralityTRK),
44   fCentralityTKL(cnt.fCentralityTKL),
45   fCentralityCL0(cnt.fCentralityCL0),
46   fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
47   fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
48   fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
49 {
50   /// Copy constructor
51 }
52
53 AliESDCentrality& AliESDCentrality::operator=(const AliESDCentrality& c)
54 {
55   /// Assignment operator
56   if (this!=&c) {
57     TNamed::operator=(c);
58     fCentralityV0M = c.fCentralityV0M;
59     fCentralityFMD = c.fCentralityFMD;
60     fCentralityTRK = c.fCentralityTRK;
61     fCentralityTKL = c.fCentralityTKL;
62     fCentralityCL0 = c.fCentralityCL0;
63     fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
64     fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
65     fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
66   }
67
68   return *this;
69 }
70
71 AliESDCentrality::~AliESDCentrality()
72 {
73   /// destructor
74 }
75
76 Float_t AliESDCentrality::GetCentralityPercentile(const char *x)
77 {
78   TString method = x;
79   if(method.CompareTo("V0M")==0)      return fCentralityV0M;
80   if(method.CompareTo("FMD")==0)      return fCentralityFMD;
81   if(method.CompareTo("TRK")==0)      return fCentralityTRK;
82   if(method.CompareTo("TKL")==0)      return fCentralityTKL;
83   if(method.CompareTo("CL0")==0)      return fCentralityCL0;
84   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
85   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
86   if(method.CompareTo("ZENvsZDC")==0) return fCentralityZEMvsZDC;
87   return -1;
88 }
89
90 Int_t AliESDCentrality::GetCentralityClass10(const char *x)
91 {
92   TString method = x;
93   if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
94   if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
95   if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
96   if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
97   if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
98   if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
99   if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
100   if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
101   return -1;
102 }
103
104 Int_t AliESDCentrality::GetCentralityClass5(const char *x)
105 {
106  TString method = x;
107   if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
108   if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
109   if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
110   if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
111   if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
112   if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
113   if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
114   if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
115   return -1;
116 }
117
118 Bool_t AliESDCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x)
119 {
120   TString method = x;
121   if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
122   if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
123   if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
124   if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
125   if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
126   if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
127   if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
128   if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
129   else return kFALSE;
130 }
131
132
133