added ZNA and V0 equalized
[u/mrichter/AliRoot.git] / OADB / AliOADBCentrality.h
1 #ifndef AliOADBCentrality_H\r
2 #define AliOADBCentrality_H\r
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *\r
4  * See cxx source for full Copyright notice                               */\r
5 \r
6 /* $Id$ */\r
7 \r
8 //-------------------------------------------------------------------------\r
9 //     OADB class for run dependent centrality scaling factors and \r
10 //     data for centrality determination\r
11 //     Author: Andreas Morsch, CERN\r
12 //-------------------------------------------------------------------------\r
13 \r
14 #include <TNamed.h>\r
15 #include <TList.h>\r
16 #include <TH1F.h>\r
17 #include <TH2F.h>\r
18 \r
19 \r
20 class AliOADBCentrality : public TNamed {\r
21 \r
22  public :\r
23   AliOADBCentrality();\r
24   AliOADBCentrality(char* name);\r
25   virtual ~AliOADBCentrality();\r
26   Float_t V0MScaleFactor()   const  {return fV0MScaleFactor;}\r
27   Float_t SPDScaleFactor()   const  {return fSPDScaleFactor;}\r
28   Float_t TPCScaleFactor()   const  {return fTPCScaleFactor;}\r
29   Float_t V0MScaleFactorMC() const  {return fV0MScaleFactorMC;}\r
30 \r
31   Float_t V0MSPDOutlierPar0()      const  {return fV0MSPDOutlierPar0      ;}\r
32   Float_t V0MSPDOutlierPar1()      const  {return fV0MSPDOutlierPar1      ;}\r
33   Float_t V0MTPCOutlierPar0()      const  {return fV0MTPCOutlierPar0      ;}\r
34   Float_t V0MTPCOutlierPar1()      const  {return fV0MTPCOutlierPar1      ;}\r
35 \r
36   Float_t V0MSPDSigmaOutlierPar0() const  {return fV0MSPDSigmaOutlierPar0 ;}\r
37   Float_t V0MSPDSigmaOutlierPar1() const  {return fV0MSPDSigmaOutlierPar1 ;}\r
38   Float_t V0MSPDSigmaOutlierPar2() const  {return fV0MSPDSigmaOutlierPar2 ;}\r
39   Float_t V0MTPCSigmaOutlierPar0() const  {return fV0MTPCSigmaOutlierPar0 ;}\r
40   Float_t V0MTPCSigmaOutlierPar1() const  {return fV0MTPCSigmaOutlierPar1 ;}\r
41   Float_t V0MTPCSigmaOutlierPar2() const  {return fV0MTPCSigmaOutlierPar2 ;}\r
42 \r
43   Float_t V0MZDCOutlierPar0()      const  {return fV0MZDCOutlierPar0      ;}\r
44   Float_t V0MZDCOutlierPar1()      const  {return fV0MZDCOutlierPar1      ;}\r
45   Float_t V0MZDCEcalOutlierPar0()  const  {return fV0MZDCEcalOutlierPar0  ;}\r
46   Float_t V0MZDCEcalOutlierPar1()  const  {return fV0MZDCEcalOutlierPar1  ;}\r
47 \r
48   Float_t ZVCut()       const {return fZVCut;}\r
49   Float_t OutliersCut() const {return fOutliersCut;}\r
50   Bool_t UseScaling()   const {return fUseScaling;}\r
51   Bool_t UseCleaning()  const {return fUseCleaning;}\r
52 \r
53   TH1F*   V0hist()         const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0M_percentile")));}\r
54   TH1F*   V0Ahist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A_percentile")));}\r
55   TH1F*   V0Chist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0C_percentile")));}\r
56   TH1F*   V0Eqhist()       const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEq_percentile")));}\r
57   TH1F*   V0AEqhist()      const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEq_percentile")));}\r
58   TH1F*   V0CEqhist()      const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEq_percentile")));}\r
59   TH1F*   TPChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRK_percentile")));}\r
60   TH1F*   CNDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCND_percentile")));}\r
61   TH1F*   SPDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1_percentile")));}\r
62   TH1F*   FMDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMD_percentile")));}\r
63   TH1F*   ZNAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNA_percentile")));}\r
64   TH1F*   ZNChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNC_percentile")));}\r
65   TH2F*   ZEMvsZDChist()   const  {return ((TH2F*) (Hists2D()->FindObject("fHOutMultZEMvsZDC")));}\r
66 \r
67   TH1F*   NPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPA_percentile")));}\r
68   TH1F*   NPAhistDPM()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPADPM_percentile")));}\r
69 \r
70   TH1F*   V0histtrue()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Mtrue_percentile")));}\r
71   TH1F*   V0Ahisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Atrue_percentile")));}\r
72   TH1F*   V0Chisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Ctrue_percentile")));}\r
73   TH1F*   V0Eqhisttrue()   const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEqtrue_percentile")));}\r
74   TH1F*   V0AEqhisttrue()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEqtrue_percentile")));}\r
75   TH1F*   V0CEqhisttrue()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEqtrue_percentile")));}\r
76   TH1F*   TPChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrue_percentile")));}\r
77   TH1F*   CNDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrue_percentile")));}\r
78   TH1F*   SPDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1true_percentile")));}\r
79   TH1F*   FMDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrue_percentile")));}\r
80   TH1F*   ZNAhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrue_percentile")));}\r
81   TH1F*   ZNChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrue_percentile")));}\r
82 \r
83   TH1F*   V0histtrueDPM()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MtrueDPM_percentile")));}\r
84   TH1F*   V0AhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AtrueDPM_percentile")));}\r
85   TH1F*   V0ChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CtrueDPM_percentile")));}\r
86   TH1F*   V0EqhisttrueDPM()   const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEqtrueDPM_percentile")));}\r
87   TH1F*   V0AEqhisttrueDPM()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEqtrueDPM_percentile")));}\r
88   TH1F*   V0CEqhisttrueDPM()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEqtrueDPM_percentile")));}\r
89   TH1F*   TPChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrueDPM_percentile")));}\r
90   TH1F*   CNDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrueDPM_percentile")));}\r
91   TH1F*   SPDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1trueDPM_percentile")));}\r
92   TH1F*   FMDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrueDPM_percentile")));}\r
93   TH1F*   ZNAhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrueDPM_percentile")));}\r
94   TH1F*   ZNChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrueDPM_percentile")));}\r
95 \r
96   TList*  Hists1D()        const  {return f1DHistos;}\r
97   TList*  Hists2D()        const  {return f2DHistos;}\r
98 \r
99   void    SetScaleFactors(Float_t v0m, Float_t spd, Float_t tpc, Float_t v0mMC)\r
100   {fV0MScaleFactor = v0m; fSPDScaleFactor = spd; fTPCScaleFactor = tpc; fV0MScaleFactorMC = v0mMC;}\r
101   \r
102   void    SetOutlierV0MSPDFactors(Float_t a1, Float_t a2, Float_t a3, Float_t a4, Float_t a5)\r
103   {fV0MSPDOutlierPar0=a1;fV0MSPDOutlierPar1=a2;fV0MSPDSigmaOutlierPar0=a3;fV0MSPDSigmaOutlierPar1=a4;fV0MSPDSigmaOutlierPar2=a5;}\r
104   \r
105   void    SetOutlierV0MTPCFactors(Float_t a1, Float_t a2, Float_t a3, Float_t a4, Float_t a5)\r
106   {fV0MTPCOutlierPar0=a1;fV0MTPCOutlierPar1=a2;fV0MTPCSigmaOutlierPar0=a3;fV0MTPCSigmaOutlierPar1=a4;fV0MTPCSigmaOutlierPar2=a5;}\r
107 \r
108   void    SetOutlierV0MZDCFactors(Float_t a1, Float_t a2)\r
109   {fV0MZDCOutlierPar0=a1;fV0MZDCOutlierPar1=a2;}\r
110   \r
111   void    SetOutlierV0MZDCEcalFactors(Float_t a1, Float_t a2)\r
112   {fV0MZDCEcalOutlierPar0=a1;fV0MZDCEcalOutlierPar1=a2;}\r
113   \r
114   void    SetHistReferences(TList* l1, TList* l2)\r
115   {f1DHistos = l1; f2DHistos = l2;}\r
116 \r
117   void SetZVCut(Float_t z)\r
118   {fZVCut=z;}\r
119 \r
120   void SetOutliersCut(Float_t o)\r
121   {fOutliersCut=o;}\r
122 \r
123   void SetUseScaling(Bool_t x)\r
124   {fUseScaling=x;}\r
125 \r
126   void SetUseCleaning(Bool_t x)\r
127   {fUseCleaning=x;}\r
128 \r
129 \r
130  private:\r
131   AliOADBCentrality(const AliOADBCentrality& cont); \r
132   AliOADBCentrality& operator=(const AliOADBCentrality& cont);\r
133 \r
134  private:\r
135   Float_t fV0MScaleFactor;     // V0  scale factor\r
136   Float_t fSPDScaleFactor;     // SPD scale factor\r
137   Float_t fTPCScaleFactor;     // TPC scale factor\r
138   Float_t fV0MScaleFactorMC;   // V0  scale factor for MC\r
139 \r
140   Float_t fV0MSPDOutlierPar0;  // V0-SPD outlier parameterisation Par0\r
141   Float_t fV0MSPDOutlierPar1;  // Par1\r
142   Float_t fV0MTPCOutlierPar0;  // Par2\r
143   Float_t fV0MTPCOutlierPar1;  // Par3\r
144 \r
145   Float_t fV0MSPDSigmaOutlierPar0; // V0-SPD Sigma outlier parameterisation Par0\r
146   Float_t fV0MSPDSigmaOutlierPar1; // Par1\r
147   Float_t fV0MSPDSigmaOutlierPar2; // Par2\r
148   Float_t fV0MTPCSigmaOutlierPar0; // Par3\r
149   Float_t fV0MTPCSigmaOutlierPar1; // Par4\r
150   Float_t fV0MTPCSigmaOutlierPar2; // Par5\r
151 \r
152   Float_t fV0MZDCOutlierPar0;     // V0-ZDC outlier parameterisation Par0\r
153   Float_t fV0MZDCOutlierPar1;     // Par1\r
154   Float_t fV0MZDCEcalOutlierPar0; // Par2\r
155   Float_t fV0MZDCEcalOutlierPar1; // Par3\r
156 \r
157   Float_t fZVCut;                 // zV-cut\r
158   Float_t fOutliersCut;           // outlier cuts\r
159   Bool_t fUseScaling;             // Flag for scaling\r
160   Bool_t fUseCleaning;            // Flag for cleaning\r
161 \r
162   TList*    f1DHistos; // Reference to list of 1D Centrality histos \r
163   TList*    f2DHistos; // Reference to list of 2D Centrality histos\r
164   ClassDef(AliOADBCentrality, 3);\r
165 };\r
166 \r
167 #endif\r