00001 #ifndef L1GCTHFETSUMSLUT_H_ 00002 #define L1GCTHFETSUMSLUT_H_ 00003 00004 #include "CondFormats/L1TObjects/interface/L1GctHfLutSetup.h" 00005 00006 #include "L1Trigger/GlobalCaloTrigger/src/L1GctLut.h" 00007 00008 #include <vector> 00009 00021 class L1GctHfEtSumsLut : public L1GctLut<L1GctHfLutSetup::kHfEtSumBits, 00022 L1GctHfLutSetup::kHfOutputBits> 00023 00024 { 00025 public: 00026 00027 // Definitions. 00028 static const int NAddress, NData; 00029 00031 L1GctHfEtSumsLut(const L1GctHfLutSetup::hfLutType& type, const L1GctHfLutSetup* const fn); 00033 L1GctHfEtSumsLut(const L1GctHfLutSetup::hfLutType& type); 00035 L1GctHfEtSumsLut(); 00037 L1GctHfEtSumsLut(const L1GctHfEtSumsLut& lut); 00039 virtual ~L1GctHfEtSumsLut(); 00040 00042 L1GctHfEtSumsLut operator= (const L1GctHfEtSumsLut& lut); 00043 00045 friend std::ostream& operator << (std::ostream& os, const L1GctHfEtSumsLut& lut); 00046 00048 void setFunction(const L1GctHfLutSetup* const fn) { if (fn != 0) { m_lutFunction = fn; m_setupOk = true; } } 00049 00051 L1GctHfLutSetup::hfLutType lutType() const { return m_lutType; } 00052 00054 const L1GctHfLutSetup* lutFunction() const { return m_lutFunction; } 00055 00056 protected: 00057 00058 00059 virtual uint16_t value (const uint16_t lutAddress) const; 00060 00061 private: 00062 00063 const L1GctHfLutSetup* m_lutFunction; 00064 L1GctHfLutSetup::hfLutType m_lutType; 00065 00066 }; 00067 00068 00069 std::ostream& operator << (std::ostream& os, const L1GctHfEtSumsLut& lut); 00070 00071 #endif /*L1GCTHFETSUMSLUT_H_*/