CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/L1Trigger/GlobalCaloTrigger/interface/L1GctJetEtCalibrationLut.h

Go to the documentation of this file.
00001 #ifndef L1GCTJETETCALIBRATIONLUT_H_
00002 #define L1GCTJETETCALIBRATIONLUT_H_
00003 
00004 #define JET_ET_CAL_LUT_ADD_BITS 11
00005 #define JET_ET_CAL_LUT_DAT_BITS 6
00006 
00007 #include "L1Trigger/GlobalCaloTrigger/src/L1GctLut.h"
00008 
00009 class L1GctJetFinderParams;
00010 class L1CaloEtScale;
00011 
00028 class L1GctJetEtCalibrationLut : public L1GctLut<JET_ET_CAL_LUT_ADD_BITS,JET_ET_CAL_LUT_DAT_BITS>
00029 {
00030  public:
00031   static const int NAddress;
00032   static const int NData;
00033   static const unsigned JET_ENERGY_BITWIDTH;   
00034 
00035   L1GctJetEtCalibrationLut();
00036   virtual ~L1GctJetEtCalibrationLut();
00037 
00038   // set components
00039   void setFunction(const L1GctJetFinderParams * const lutfn);
00040   void setOutputEtScale(const L1CaloEtScale * const scale);
00041   void setEtaBin(const unsigned eta);
00042 
00043   // get components
00044   const L1GctJetFinderParams* getFunction() const { return m_lutFunction; }
00045   const L1CaloEtScale* getOutputEtScale() const { return m_outputEtScale; }
00046   unsigned etaBin() const { return static_cast<unsigned>(m_etaBin); }
00047 
00049   friend std::ostream& operator << (std::ostream& os, const L1GctJetEtCalibrationLut& lut);
00050   
00051  protected:
00052   
00053 
00054   virtual uint16_t value (const uint16_t lutAddress) const;
00055 
00056  private:
00057 
00058   const L1GctJetFinderParams* m_lutFunction;
00059   const L1CaloEtScale * m_outputEtScale;
00060 
00061   uint8_t m_etaBin;
00062 
00063 };
00064 
00065 std::ostream& operator << (std::ostream& os, const L1GctJetEtCalibrationLut& lut);
00066 
00067 #endif /*L1GCTJETETCALIBRATIONLUT_H_*/