]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZEROCalibData.h
New light yields following the results from the first HI run in 2011, some aging...
[u/mrichter/AliRoot.git] / VZERO / AliVZEROCalibData.h
index d119522a5cf4f7fcd111c71dd745e314dcfc8527..38472de4ad926a60d5f338c0c25c8a6d5ca0b6de 100644 (file)
@@ -42,8 +42,7 @@ class AliVZEROCalibData: public TNamed {
   Bool_t   IsChannelDead(Int_t channel)        const {return fDeadChannel[channel];}
   Bool_t*  GetDeadMap()   const {return (bool*)fDeadChannel;} 
    
-  Float_t  GetGain(Int_t channel)      const {return fGain[channel];}
-  Float_t* GetGain()   const {return (float*)fGain;}  
+  Float_t  GetGain(Int_t channel);
   Float_t  GetTimeOffset(Int_t channel)        const {return fTimeOffset[channel];}
   Float_t* GetTimeOffset()   const {return (float*)fTimeOffset;}
   Float_t  GetTimeGain(Int_t channel)  const {return fTimeGain[channel];}
@@ -82,9 +81,7 @@ class AliVZEROCalibData: public TNamed {
   void     SetDeadChannel(Bool_t val, Int_t channel) {fDeadChannel[channel]=val;}
   void     SetDeadMap(const Bool_t* deadMap);  
    
-  void            SetGain(Float_t val, Int_t channel) {fGain[channel]=val;}
-  void            SetGain(const Float_t* Gain);  
-  void     SetTimeOffset(Float_t val, Int_t channel);
+  void     SetTimeOffset(Float_t val, Int_t board, Int_t channel);
   void     SetTimeOffset(const Float_t* TimeOffset);
   void     SetTimeGain(Float_t val, Int_t channel) {fTimeGain[channel]=val;}
   void     SetTimeGain(const Float_t* TimeGain);
@@ -104,12 +101,27 @@ class AliVZEROCalibData: public TNamed {
   void     SetRollOver(UInt_t *offsets);
   void     SetRollOver(UInt_t offset, Int_t board);
 
-  void     SetDiscriThr(Float_t thr, Int_t channel);
+  void     SetDiscriThr(Float_t thr, Int_t board, Int_t channel);
   void     SetDiscriThr(const Float_t* thresholds);
 
-  Float_t  GetMIPperADC(Int_t channel) const;
+  Float_t  GetMIPperADC(Int_t channel);
+  Float_t  GetHV(Int_t channel, Float_t adcPerMip);
+
+  static Int_t GetOfflineChannelNumber(Int_t board, Int_t channel);
+  static Int_t GetBoardNumber(Int_t channel);
+  static Int_t GetFEEChannelNumber(Int_t channel);
+
+  Float_t  GetLightYields(Int_t channel);
+
+  Float_t *GetPMGainsA() const { return fPMGainsA; }
+  Float_t *GetPMGainsB() const { return fPMGainsB; }
+
+  Float_t  GetCalibDiscriThr(Int_t channel, Bool_t scaled);
 
  protected:
+  void     InitLightYields();
+  void     InitPMGains();
+
   Float_t  fPedestal[128];     // Mean pedestal values
   Float_t  fSigma[128];        // Sigmas of pedestal peaks
   Float_t  fADCmean[128];      // ADC mean values
@@ -117,7 +129,6 @@ class AliVZEROCalibData: public TNamed {
   Float_t  fMeanHV[64];        // Mean PMT HV needed to compute MIP value
   Float_t  fWidthHV[64];       // Width of the PMT HV
   
-  Float_t  fGain[128];        // Gain factor used in digitization only  
   Float_t  fTimeOffset[64];    // Time offsets of the TDC
   Float_t  fTimeGain[64];      // Gain factors of the TDC
   Bool_t   fDeadChannel[64];   // List of dead channels
@@ -131,7 +142,11 @@ class AliVZEROCalibData: public TNamed {
 
   Float_t  fDiscriThr[64];     // Discriminator thresholds
 
-  ClassDef(AliVZEROCalibData,6)    // VZERO Calibration data
+  Float_t *fLightYields;       //! Light Yields channel by channel (read from separate OCDB entry)
+  Float_t *fPMGainsA;          //! PM gain factors channel by channel (read from separate OCDB entry)
+  Float_t *fPMGainsB;          //! PM gain factors channel by channel (read from separate OCDB entry)
+
+  ClassDef(AliVZEROCalibData,8)    // VZERO Calibration data
 };
 
 #endif