]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AD/AliADCalibData.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / AD / AliADCalibData.h
1 #ifndef ALIADCALIBDATA_H
2 #define ALIADCALIBDATA_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include "TNamed.h"
8 #include "AliADConst.h"
9 class AliADCalibData: public TNamed {
10
11  public:
12   AliADCalibData();
13   AliADCalibData(const char* name);
14   
15   AliADCalibData(const AliADCalibData &calibda);
16   AliADCalibData& operator= (const AliADCalibData &calibda);
17   virtual ~AliADCalibData();
18   void Reset();
19
20   Float_t  GetPedestal(Int_t channel)   const {return fPedestal[channel];}
21   Float_t* GetPedestal()   const {return (float*)fPedestal;}
22   Float_t  GetSigma(Int_t channel)   const {return fSigma[channel];}
23   Float_t* GetSigma()   const {return (float*)fSigma;}
24   Float_t  GetADCmean(Int_t channel)    const {return fADCmean[channel];}
25   Float_t* GetADCmean()   const {return (float*)fADCmean;}
26   Float_t  GetADCsigma(Int_t channel)   const {return fADCsigma[channel];}
27   Float_t* GetADCsigma()   const {return (float*)fADCsigma;}
28   Float_t  GetMeanHV(Int_t channel)     const {return fMeanHV[channel];}
29   Float_t* GetMeanHV()   const {return (float*)fMeanHV;} 
30   Float_t  GetWidthHV(Int_t channel)    const {return fWidthHV[channel];}
31   Float_t* GetWidthHV()   const {return (float*)fWidthHV;}
32   Bool_t   IsChannelDead(Int_t channel) const {return fDeadChannel[channel];}
33   Bool_t*  GetDeadMap()   const {return (bool*)fDeadChannel;} 
34    
35   Float_t  GetGain(Int_t channel);
36   Float_t  GetTimeOffset(Int_t channel) const {return fTimeOffset[channel];}
37   Float_t* GetTimeOffset()   const {return (float*)fTimeOffset;}
38   Float_t  GetTimeGain(Int_t channel)   const {return fTimeGain[channel];}
39   Float_t* GetTimeGain()   const {return (float*)fTimeGain;}
40
41   Float_t* GetTimeResolution() const {return (Float_t*) fTimeResolution;};
42   Float_t  GetTimeResolution(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fTimeResolution[board]:0);};
43
44   Float_t* GetWidthResolution() const {return (Float_t*) fWidthResolution;};
45   Float_t  GetWidthResolution(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fWidthResolution[board]:0);};
46
47   const UInt_t*  GetMatchWindow() const { return fMatchWindow; }
48   UInt_t   GetMatchWindow(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fMatchWindow[board]:0); }
49   const UInt_t*  GetSearchWindow() const { return fSearchWindow; }
50   UInt_t   GetSearchWindow(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fSearchWindow[board]:0); }
51   const UInt_t*  GetTriggerCountOffset() const { return fTriggerCountOffset; }
52   UInt_t   GetTriggerCountOffset(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fTriggerCountOffset[board]:0); }
53   const UInt_t*  GetRollOver() const { return fRollOver; }
54   UInt_t   GetRollOver(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fRollOver[board]:0); }
55
56   Float_t  GetDiscriThr(Int_t channel)  const {return fDiscriThr[channel];}
57   Float_t* GetDiscriThr()   const {return (Float_t*)fDiscriThr;}
58
59   static Int_t GetBoardNumber(Int_t channel);
60   
61   Float_t  GetLightYields(Int_t channel);
62
63   Float_t *GetPMGainsA() const { return fPMGainsA; }
64   Float_t *GetPMGainsB() const { return fPMGainsB; }
65
66   Float_t  GetCalibDiscriThr(Int_t channel, Bool_t scaled);
67
68
69  protected:
70   void     InitLightYields();
71   void     InitPMGains();
72
73   Float_t  fPedestal[32];     // Mean pedestal values
74   Float_t  fSigma[32];        // Sigmas of pedestal peaks
75   Float_t  fADCmean[32];      // ADC mean values
76   Float_t  fADCsigma[32];     // ADC sigma values
77   Float_t  fMeanHV[16];        // Mean PMT HV needed to compute MIP value
78   Float_t  fWidthHV[16];       // Width of the PMT HV
79   
80   Float_t  fTimeOffset[16];    // Time offsets of the TDC
81   Float_t  fTimeGain[16];      // Gain factors of the TDC
82   Bool_t   fDeadChannel[16];   // List of dead channels
83   Float_t  fTimeResolution[kNCIUBoards]; // Time Resolution of the TDC (ns / channel)
84   Float_t  fWidthResolution[kNCIUBoards]; // Time Width Resolution of the TDC (ns / channel)
85
86   UInt_t   fMatchWindow[kNCIUBoards]; // HPTDC matching window (25ns units)
87   UInt_t   fSearchWindow[kNCIUBoards];// HPTDC search window (25ns units)
88   UInt_t   fTriggerCountOffset[kNCIUBoards]; // HPTDC trigger count offset (25ns units)
89   UInt_t   fRollOver[kNCIUBoards]; // HPTDC roll-over (25ns units)
90
91   Float_t  fDiscriThr[16];     // Discriminator thresholds
92
93   Float_t *fLightYields;       //! Light Yields channel by channel (read from separate OCDB entry)
94   Float_t *fPMGainsA;          //! PM gain factors channel by channel (read from separate OCDB entry)
95   Float_t *fPMGainsB;          //! PM gain factors channel by channel (read from separate OCDB entry)
96
97   ClassDef(AliADCalibData,1)    // AD Calibration data
98 };
99
100 #endif
101