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_*/