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