![]() |
![]() |
#include <L1Trigger/GlobalCaloTrigger/src/L1GctLut.h>
Public Member Functions | |
uint16_t | lutValue (const uint16_t lutAddress) const |
Access the look-up table contents for a given Address. | |
template<int KAddressBits, int KDataBits> | |
int | operator!= (const L1GctLut< KAddressBits, KDataBits > &rhsLut) const |
Inequality check between look-up tables. | |
template<int KAddressBits, int KDataBits> | |
int | operator== (const L1GctLut< KAddressBits, KDataBits > &rhsLut) const |
Equality check between look-up tables. | |
uint16_t | operator[] (const uint16_t lutAddress) const |
Access the look-up table contents for a given Address. | |
void | setTerse () |
bool | setupOk () |
void | setVerbose () |
control output messages | |
virtual | ~L1GctLut () |
Static Public Attributes | |
static const uint16_t | MAX_ADDRESS_BITMASK = (1 << NAddressBits) - 1 |
static const uint16_t | MAX_DATA_BITMASK = (1 << NDataBits) - 1 |
Protected Member Functions | |
template<int KAddressBits, int KDataBits> | |
bool | equalityCheck (const L1GctLut< KAddressBits, KDataBits > &c) const |
L1GctLut () | |
virtual uint16_t | value (const uint16_t lutAddress) const =0 |
Protected Attributes | |
bool | m_setupOk |
bool | m_verbose |
Private Member Functions | |
std::string | printHeader () const |
std::string | printLine (const int add) const |
Static Private Attributes | |
static const int | printWidth = 16 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const L1GctLut< NAddressBits, NDataBits > &lut) |
Overload << operator. |
Definition at line 21 of file L1GctLut.h.
bool L1GctLut< NAddressBits, NDataBits >::equalityCheck | ( | const L1GctLut< KAddressBits, KDataBits > & | c | ) | const [inline, protected] |
Definition at line 115 of file L1GctLut.h.
References L1GctLut< NAddressBits, NDataBits >::lutValue(), edm::match(), and L1GctLut< NAddressBits, NDataBits >::MAX_ADDRESS_BITMASK.
Referenced by L1GctLut< L1GctHfLutSetup::kHfEtSumBits, L1GctHfLutSetup::kHfOutputBits >::operator!=(), and L1GctLut< L1GctHfLutSetup::kHfEtSumBits, L1GctHfLutSetup::kHfOutputBits >::operator==().
00116 { 00117 if (KAddressBits==NAddressBits && KDataBits==NDataBits) { 00118 bool match=true; 00119 for (uint16_t address=0; address<=MAX_ADDRESS_BITMASK; address++) { 00120 if (this->lutValue(address)!=rhsLut.lutValue(address)) { match = false; break; } 00121 } 00122 return match; 00123 } else { 00124 return false; 00125 } 00126 }
uint16_t L1GctLut< NAddressBits, NDataBits >::lutValue | ( | const uint16_t | lutAddress | ) | const [inline] |
Access the look-up table contents for a given Address.
Definition at line 105 of file L1GctLut.h.
References data, L1GctLut< NAddressBits, NDataBits >::m_setupOk, L1GctLut< NAddressBits, NDataBits >::MAX_ADDRESS_BITMASK, L1GctLut< NAddressBits, NDataBits >::MAX_DATA_BITMASK, and L1GctLut< NAddressBits, NDataBits >::value().
Referenced by L1GctLut< NAddressBits, NDataBits >::equalityCheck(), L1GctLut< L1GctHfLutSetup::kHfEtSumBits, L1GctHfLutSetup::kHfOutputBits >::operator[](), and L1GctLut< NAddressBits, NDataBits >::printLine().
00106 { 00107 if (!m_setupOk) return (uint16_t) 0; 00108 uint16_t address=(lutAddress & MAX_ADDRESS_BITMASK); 00109 uint16_t data=(value(address) & MAX_DATA_BITMASK); 00110 return data; 00111 }
int L1GctLut< NAddressBits, NDataBits >::operator!= | ( | const L1GctLut< KAddressBits, KDataBits > & | rhsLut | ) | const [inline] |
Inequality check between look-up tables.
Definition at line 61 of file L1GctLut.h.
00061 { return !equalityCheck(rhsLut); }
int L1GctLut< NAddressBits, NDataBits >::operator== | ( | const L1GctLut< KAddressBits, KDataBits > & | rhsLut | ) | const [inline] |
Equality check between look-up tables.
Definition at line 57 of file L1GctLut.h.
00057 { return equalityCheck(rhsLut); }
uint16_t L1GctLut< NAddressBits, NDataBits >::operator[] | ( | const uint16_t | lutAddress | ) | const [inline] |
Access the look-up table contents for a given Address.
Definition at line 53 of file L1GctLut.h.
00053 { return lutValue(lutAddress); }
std::string L1GctLut< NAddressBits, NDataBits >::printHeader | ( | ) | const [inline, private] |
Definition at line 129 of file L1GctLut.h.
References a, lat::endl(), L1GctLut< NAddressBits, NDataBits >::MAX_ADDRESS_BITMASK, L1GctLut< NAddressBits, NDataBits >::printWidth, and ss.
00130 { 00131 std::stringstream ss; 00132 ss << std::hex << std::showbase; 00133 ss << std::setw(8) << "|"; 00134 for (int a=0; ((a<printWidth) && (a<=MAX_ADDRESS_BITMASK)); ++a) { 00135 ss << std::setw(7) << a; 00136 } 00137 ss << std::endl; 00138 ss << std::setfill('-') << std::setw(8) << "+"; 00139 for (int a=0; ((a<printWidth) && (a<=MAX_ADDRESS_BITMASK)); ++a) { 00140 ss << std::setw(7) << "-"; 00141 } 00142 ss << std::endl; 00143 00144 return ss.str(); 00145 }
std::string L1GctLut< NAddressBits, NDataBits >::printLine | ( | const int | add | ) | const [inline, private] |
Definition at line 148 of file L1GctLut.h.
References a, c, lat::endl(), L1GctLut< NAddressBits, NDataBits >::lutValue(), L1GctLut< NAddressBits, NDataBits >::MAX_ADDRESS_BITMASK, L1GctLut< NAddressBits, NDataBits >::printWidth, and ss.
00149 { 00150 std::stringstream ss; 00151 ss << std::hex << std::showbase; 00152 int a=add; 00153 ss << std::setw(7) << a << "|"; 00154 for (int c=0; ((c<printWidth) && (a<=MAX_ADDRESS_BITMASK)); ++c) { 00155 uint16_t address = static_cast<uint16_t>(a++); 00156 ss << std::setw(7) << lutValue(address); 00157 } 00158 ss << std::endl; 00159 00160 return ss.str(); 00161 }
void L1GctLut< NAddressBits, NDataBits >::setTerse | ( | ) | [inline] |
Definition at line 67 of file L1GctLut.h.
Referenced by L1GctJetCounter::setTerse().
00067 { m_verbose = false; }
bool L1GctLut< NAddressBits, NDataBits >::setupOk | ( | ) | [inline] |
Definition at line 63 of file L1GctLut.h.
Referenced by L1GctJetCounter::setupOk().
00063 { return m_setupOk; }
void L1GctLut< NAddressBits, NDataBits >::setVerbose | ( | ) | [inline] |
control output messages
Definition at line 66 of file L1GctLut.h.
Referenced by L1GctJetCounter::setVerbose().
00066 { m_verbose = true; }
virtual uint16_t L1GctLut< NAddressBits, NDataBits >::value | ( | const uint16_t | lutAddress | ) | const [protected, pure virtual] |
Implemented in L1GctHfBitCountsLut, L1GctHfEtSumsLut, L1GctJetCounterLut, and L1GctJetEtCalibrationLut.
Referenced by L1GctLut< NAddressBits, NDataBits >::lutValue().
std::ostream& operator<< | ( | std::ostream & | os, | |
const L1GctLut< NAddressBits, NDataBits > & | lut | |||
) | [friend] |
Overload << operator.
Definition at line 30 of file L1GctLut.h.
00031 { 00032 //---------------------------------------------------------------------------------------- 00033 // Define the code here for the friend template function to get around 00034 // compiler/linker problems when instantiating the template class. 00035 // See https://www.parashift.com/c++-faq-lite/templates.html#faq-35.16 00036 static const int maxAddress=L1GctLut<NAddressBits, NDataBits>::MAX_ADDRESS_BITMASK; 00037 static const int width=L1GctLut<NAddressBits, NDataBits>::printWidth; 00038 00039 os << lut.printHeader(); 00040 00041 for (int a=0; a<=maxAddress; a += width) { 00042 os << lut.printLine(a); 00043 } 00044 return os; 00045 // End of friend function definition 00046 //---------------------------------------------------------------------------------------- 00047 }
bool L1GctLut< NAddressBits, NDataBits >::m_setupOk [protected] |
Definition at line 78 of file L1GctLut.h.
Referenced by L1GctLut< NAddressBits, NDataBits >::lutValue(), and L1GctLut< L1GctHfLutSetup::kHfEtSumBits, L1GctHfLutSetup::kHfOutputBits >::setupOk().
bool L1GctLut< NAddressBits, NDataBits >::m_verbose [protected] |
Definition at line 79 of file L1GctLut.h.
Referenced by L1GctLut< L1GctHfLutSetup::kHfEtSumBits, L1GctHfLutSetup::kHfOutputBits >::setTerse(), and L1GctLut< L1GctHfLutSetup::kHfEtSumBits, L1GctHfLutSetup::kHfOutputBits >::setVerbose().
const uint16_t L1GctLut< NAddressBits, NDataBits >::MAX_ADDRESS_BITMASK = (1 << NAddressBits) - 1 [inline, static] |
Definition at line 24 of file L1GctLut.h.
Referenced by L1GctLut< NAddressBits, NDataBits >::equalityCheck(), L1GctLut< NAddressBits, NDataBits >::lutValue(), L1GctLut< NAddressBits, NDataBits >::printHeader(), and L1GctLut< NAddressBits, NDataBits >::printLine().
const uint16_t L1GctLut< NAddressBits, NDataBits >::MAX_DATA_BITMASK = (1 << NDataBits) - 1 [inline, static] |
Definition at line 25 of file L1GctLut.h.
Referenced by L1GctLut< NAddressBits, NDataBits >::lutValue().
const int L1GctLut< NAddressBits, NDataBits >::printWidth = 16 [inline, static, private] |
Definition at line 84 of file L1GctLut.h.
Referenced by L1GctLut< NAddressBits, NDataBits >::printHeader(), and L1GctLut< NAddressBits, NDataBits >::printLine().