File indexing completed on 2024-04-06 12:20:49
0001 #include "L1Trigger/L1TMuon/interface/MicroGMTRelativeIsolationCheckLUT.h"
0002
0003 l1t::MicroGMTRelativeIsolationCheckLUT::MicroGMTRelativeIsolationCheckLUT(const std::string& fname)
0004 : MicroGMTLUT(), m_energySumInWidth(5), m_ptInWidth(9) {
0005 m_totalInWidth = m_ptInWidth + m_energySumInWidth;
0006 m_outWidth = 1;
0007
0008 m_energySumMask = (1 << m_energySumInWidth) - 1;
0009 m_ptMask = ((1 << m_ptInWidth) - 1) << m_energySumInWidth;
0010 if (fname != std::string("")) {
0011 load(fname);
0012 }
0013 m_inputs.push_back(MicroGMTConfiguration::PT);
0014 m_inputs.push_back(MicroGMTConfiguration::ENERGYSUM);
0015 }
0016
0017 l1t::MicroGMTRelativeIsolationCheckLUT::MicroGMTRelativeIsolationCheckLUT(l1t::LUT* lut)
0018 : MicroGMTLUT(lut), m_energySumInWidth(5), m_ptInWidth(9) {
0019 m_totalInWidth = m_ptInWidth + m_energySumInWidth;
0020 m_outWidth = 1;
0021
0022 m_energySumMask = (1 << m_energySumInWidth) - 1;
0023 m_ptMask = ((1 << m_ptInWidth) - 1) << m_energySumInWidth;
0024
0025 m_inputs.push_back(MicroGMTConfiguration::PT);
0026 m_inputs.push_back(MicroGMTConfiguration::ENERGYSUM);
0027
0028 m_initialized = true;
0029 }
0030
0031 int l1t::MicroGMTRelativeIsolationCheckLUT::lookup(int energySum, int pt) const {
0032
0033 return lookupPacked(hashInput(checkedInput(energySum, m_energySumInWidth), checkedInput(pt, m_ptInWidth)));
0034 }
0035
0036 int l1t::MicroGMTRelativeIsolationCheckLUT::hashInput(int energySum, int pT) const {
0037 int result = 0;
0038 result += energySum << m_ptInWidth;
0039 result += pT;
0040 return result;
0041 }
0042
0043 void l1t::MicroGMTRelativeIsolationCheckLUT::unHashInput(int input, int& energySum, int& pt) const {
0044 energySum = input & m_energySumMask;
0045 pt = (input & m_ptMask) >> m_energySumInWidth;
0046 }