72 weightWords[weightIndex] =
parameter(
"weights"+std::to_string(weightIndex)).value();
84 unsigned rawValue = ( weightWords[startBit/32] >> (startBit%32) ) & weightMask;
86 if (nOverflowBits > 0) {
111 const std::vector<TCS::TOBArray *> & ,
121 if(input.size()!=2) {
122 TCS_EXCEPTION(
"KalmanMETCorrection alg must have exactly two input list (jets and MET list), but got " << input.size());
126 int64_t metXY[2] {
met.Ex(),
met.Ey()};
127 int64_t jetSumXY[2] {0, 0};
129 tob != input[1]->end() && distance( input[1]->begin(), tob) <
p_NumberLeading2;
131 if( (*tob)->Et() <=
p_MinEt )
continue;
132 unsigned tobEta = abs((*tob)->eta());
146 unsigned tobPhi = (*tob)->phi();
158 uint64_t kfmetSq = kfmetXY[0] * kfmetXY[0] + kfmetXY[1] * kfmetXY[1];
170 const std::vector<TCS::TOBArray *> & output,
#define REGISTER_ALG_TCS(CLASS)
#define TCS_EXCEPTION(MSG)
const Parameter & parameter(const std::string ¶meterName) const
bool isLegacyTopo() const
const std::string & name() const
void defineParameter(const std::string &name, TCS::parType_t value)
data_t::const_iterator const_iterator
void setNumberOutputBits(unsigned int numberOutputBits)
DecisionAlg(const std::string &name)
unsigned int numberOutputBits() const
void setBit(unsigned int index, bool value)
KalmanMETCorrection(const std::string &name)
virtual StatusCode process(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)
virtual ~KalmanMETCorrection()
int p_correctionLut[KFMET::nEtaBins][KFMET::nLogEtBins]
virtual StatusCode processBitCorrect(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)
parType_t p_NumberLeading2
virtual StatusCode initialize()
constexpr size_t lookupEtaBinFallback
const std::map< unsigned, size_t > lookupEtaBin
constexpr unsigned nEtaBins
constexpr unsigned correctionBitWidth
constexpr int jetEtBinOffset
constexpr unsigned nLogEtBins
constexpr unsigned correctionDecimalBitWidth
constexpr size_t nWeightWords
int toSigned(unsigned bits, unsigned length)
static const std::vector< int > CosInt
static const std::vector< int > SinInt