21 const std::vector<l1t::CaloEmCand> & EMCands,
22 const std::vector<l1t::Tau> *
taus,
25 std::vector<l1t::Tau> isoTaus;
26 for(std::vector<l1t::Tau>::const_iterator itTau = taus->begin();
27 itTau != taus->end(); ++itTau){
28 if( !itTau->hwIso() )
continue;
29 isoTaus.push_back( *itTau );
36 if(!isoTaus.empty()) {
37 isoPtMax= isoTaus[0].hwPt();
38 if (isoTaus.size()>1) diIsoPtMax = isoTaus[1].hwPt();
39 if (isoTaus.size()>2) triIsoPtMax = isoTaus[2].hwPt();
40 if (isoTaus.size()>3) quadIsoPtMax= isoTaus[3].hwPt();
52 unsigned int lutAddress = isoPtMax;
53 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
56 lutAddress = diIsoPtMax;
57 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
60 lutAddress = triIsoPtMax;
61 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
64 lutAddress = quadIsoPtMax;
65 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
86 uint16_t raw = s.
raw();
void processEvent(const std::vector< l1t::CaloRegion > ®ions, const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::Tau > *taus, l1t::CaloSpare *spare) override
L1CaloEtScale jetScale() const
unsigned int maxSize() const
L1CaloEtScale HfRingScale() const
double et(const uint16_t rank) const
convert from rank to physically meaningful quantity
uint16_t rank(const uint16_t linear) const
convert from linear Et scale to rank scale
void setEtSum(unsigned i, uint16_t et)
set a sum
Stage1Layer2DiTauAlgorithm(CaloParamsHelper const *params)
l1t::LUT const * tauEtToHFRingEtLUT() const
uint16_t raw() const
get the raw data
int data(unsigned int address) const
CaloParamsHelper const * params_