Adding HPTDC parameters that are to be used in MC (hits->digits). The preprocessor...
[u/mrichter/AliRoot.git] / VZERO / AliVZEROCalibData.h
1 #ifndef ALIVZEROCALIBDATA_H
2 #define ALIVZEROCALIBDATA_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////
8 //                                            // 
9 //  class for VZERO calibration               //
10 //                                            //
11 ////////////////////////////////////////////////
12
13 #include "TNamed.h"
14
15 class AliVZERODataDCS;
16
17 class AliVZEROCalibData: public TNamed {
18
19  public:
20   enum { kNCIUBoards = 8 };
21   
22   AliVZEROCalibData();
23   AliVZEROCalibData(const char* name);
24   AliVZEROCalibData(const AliVZEROCalibData &calibda);
25   AliVZEROCalibData& operator= (const AliVZEROCalibData &calibda);
26   virtual ~AliVZEROCalibData();
27   void Reset();
28   void FillDCSData(AliVZERODataDCS * data);
29
30   Float_t  GetPedestal(Int_t channel)   const {return fPedestal[channel];}
31   Float_t* GetPedestal()   const {return (float*)fPedestal;}
32   Float_t  GetSigma(Int_t channel)   const {return fSigma[channel];}
33   Float_t* GetSigma()   const {return (float*)fSigma;}
34   Float_t  GetADCmean(Int_t channel)    const {return fADCmean[channel];}
35   Float_t* GetADCmean()   const {return (float*)fADCmean;}
36   Float_t  GetADCsigma(Int_t channel)   const {return fADCsigma[channel];}
37   Float_t* GetADCsigma()   const {return (float*)fADCsigma;}
38   Float_t  GetMeanHV(Int_t channel)     const {return fMeanHV[channel];}
39   Float_t* GetMeanHV()   const {return (float*)fMeanHV;} 
40   Float_t  GetWidthHV(Int_t channel)    const {return fWidthHV[channel];}
41   Float_t* GetWidthHV()   const {return (float*)fWidthHV;}
42   Bool_t   IsChannelDead(Int_t channel) const {return fDeadChannel[channel];}
43   Bool_t*  GetDeadMap()   const {return (bool*)fDeadChannel;} 
44    
45   Float_t  GetGain(Int_t channel)       const {return fGain[channel];}
46   Float_t* GetGain()   const {return (float*)fGain;}  
47   Float_t  GetTimeOffset(Int_t channel) const {return fTimeOffset[channel];}
48   Float_t* GetTimeOffset()   const {return (float*)fTimeOffset;}
49   Float_t  GetTimeGain(Int_t channel)   const {return fTimeGain[channel];}
50   Float_t* GetTimeGain()   const {return (float*)fTimeGain;}
51
52   Float_t* GetTimeResolution() const {return (Float_t*) fTimeResolution;};
53   Float_t  GetTimeResolution(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fTimeResolution[board]:0);};
54
55   Float_t* GetWidthResolution() const {return (Float_t*) fWidthResolution;};
56   Float_t  GetWidthResolution(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fWidthResolution[board]:0);};
57
58   const UInt_t*  GetMatchWindow() const { return fMatchWindow; }
59   UInt_t   GetMatchWindow(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fMatchWindow[board]:0); }
60   const UInt_t*  GetSearchWindow() const { return fSearchWindow; }
61   UInt_t   GetSearchWindow(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fSearchWindow[board]:0); }
62   const UInt_t*  GetTriggerCountOffset() const { return fTriggerCountOffset; }
63   UInt_t   GetTriggerCountOffset(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fTriggerCountOffset[board]:0); }
64   const UInt_t*  GetRollOver() const { return fRollOver; }
65   UInt_t   GetRollOver(Int_t board) const { return ((board>=0 && board<kNCIUBoards)?fRollOver[board]:0); }
66     
67   void     SetPedestal(Float_t val, Int_t channel) {fPedestal[channel]=val;}
68   void     SetPedestal(const Float_t* Pedestal);
69   void     SetSigma(Float_t val, Int_t channel) {fSigma[channel]=val;}
70   void     SetSigma(const Float_t* Sigma);
71   void     SetADCmean(Float_t val, Int_t channel) {fADCmean[channel]=val;}
72   void     SetADCmean(const Float_t* ADCmean);  
73   void     SetADCsigma(Float_t val, Int_t channel) {fADCsigma[channel]=val;}
74   void     SetADCsigma(const Float_t* ADCsigma);
75   void     SetMeanHV(Float_t val, Int_t channel) {fMeanHV[channel]=val;}
76   void     SetMeanHV(const Float_t* MeanHV);  
77   void     SetWidthHV(Float_t val, Int_t channel) {fWidthHV[channel]=val;}
78   void     SetWidthHV(const Float_t* WidthHV); 
79   void     SetDeadChannel(Bool_t val, Int_t channel) {fDeadChannel[channel]=val;}
80   void     SetDeadMap(const Bool_t* deadMap);  
81    
82   void     SetGain(Float_t val, Int_t channel) {fGain[channel]=val;}
83   void     SetGain(const Float_t* Gain);  
84   void     SetTimeOffset(Float_t val, Int_t channel) {fTimeOffset[channel]=val;}
85   void     SetTimeOffset(const Float_t* TimeOffset);
86   void     SetTimeGain(Float_t val, Int_t channel) {fTimeGain[channel]=val;}
87   void     SetTimeGain(const Float_t* TimeGain);
88   
89   void     SetParameter(TString name, Int_t val);
90   void     SetTimeResolution(UShort_t *resols);
91   void     SetTimeResolution(UShort_t resol, Int_t board);
92   void     SetWidthResolution(UShort_t *resols);
93   void     SetWidthResolution(UShort_t resol, Int_t board);
94
95   void     SetMatchWindow(UInt_t *windows);
96   void     SetMatchWindow(UInt_t window, Int_t board);
97   void     SetSearchWindow(UInt_t *windows);
98   void     SetSearchWindow(UInt_t window, Int_t board);
99   void     SetTriggerCountOffset(UInt_t *offsets);
100   void     SetTriggerCountOffset(UInt_t offset, Int_t board);
101   void     SetRollOver(UInt_t *offsets);
102   void     SetRollOver(UInt_t offset, Int_t board);
103
104   Float_t  GetMIPperADC(Int_t channel) const;
105
106  protected:
107   Float_t  fPedestal[128];     // Mean pedestal values
108   Float_t  fSigma[128];        // Sigmas of pedestal peaks
109   Float_t  fADCmean[128];      // ADC mean values
110   Float_t  fADCsigma[128];     // ADC sigma values
111   Float_t  fMeanHV[64];        // Mean PMT HV needed to compute MIP value
112   Float_t  fWidthHV[64];       // Width of the PMT HV
113   
114   Float_t  fGain[128];         // Gain factor used in digitization only  
115   Float_t  fTimeOffset[64];    // Time offsets of the TDC
116   Float_t  fTimeGain[64];      // Gain factors of the TDC
117   Bool_t   fDeadChannel[64];   // List of dead channels
118   Float_t  fTimeResolution[kNCIUBoards]; // Time Resolution of the TDC (ns / channel)
119   Float_t  fWidthResolution[kNCIUBoards]; // Time Width Resolution of the TDC (ns / channel)
120
121   UInt_t   fMatchWindow[kNCIUBoards]; // HPTDC matching window (25ns units)
122   UInt_t   fSearchWindow[kNCIUBoards];// HPTDC search window (25ns units)
123   UInt_t   fTriggerCountOffset[kNCIUBoards]; // HPTDC trigger count offset (25ns units)
124   UInt_t   fRollOver[kNCIUBoards]; // HPTDC roll-over (25ns units)
125
126   ClassDef(AliVZEROCalibData,5)    // VZERO Calibration data
127 };
128
129 #endif