24 const std::vector<l1t::CaloEmCand> & EMCands,
25 const std::vector<l1t::Tau> * taus,
28 std::vector<l1t::Tau> *isoTaus =
new std::vector<l1t::Tau>();
29 for(std::vector<l1t::Tau>::const_iterator itTau = taus->begin();
30 itTau != taus->end(); ++itTau){
31 if( !itTau->hwIso() )
continue;
32 isoTaus->push_back( *itTau );
39 if(isoTaus->size()>0) {
40 isoPtMax= (*isoTaus).at(0).hwPt();
41 if (isoTaus->size()>1) diIsoPtMax = (*isoTaus).at(1).hwPt();
42 if (isoTaus->size()>2) triIsoPtMax = (*isoTaus).at(2).hwPt();
43 if (isoTaus->size()>3) quadIsoPtMax= (*isoTaus).at(3).hwPt();
54 unsigned int MAX_LUT_ADDRESS = params_->tauEtToHFRingEtLUT()->maxSize()-1;
55 unsigned int lutAddress = isoPtMax;
56 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
57 rankIso=params_->tauEtToHFRingEtLUT()->data(lutAddress);
59 lutAddress = diIsoPtMax;
60 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
61 rankDiIso=params_->tauEtToHFRingEtLUT()->data(lutAddress);
63 lutAddress = triIsoPtMax;
64 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
65 rankTriIso=params_->tauEtToHFRingEtLUT()->data(lutAddress);
67 lutAddress = quadIsoPtMax;
68 if (lutAddress > MAX_LUT_ADDRESS) lutAddress = MAX_LUT_ADDRESS;
69 rankQuadIso=params_->tauEtToHFRingEtLUT()->data(lutAddress);
72 double etIso = params_->jetScale().et( isoPtMax );
73 double etDiIso = params_->jetScale().et( diIsoPtMax );
74 double etTriIso = params_->jetScale().et( triIsoPtMax );
75 double etQuadIso = params_->jetScale().et( quadIsoPtMax );
76 rankIso = params_->HfRingScale().rank( etIso );
77 rankDiIso = params_->HfRingScale().rank( etDiIso );
78 rankTriIso = params_->HfRingScale().rank( etTriIso );
79 rankQuadIso = params_->HfRingScale().rank( etQuadIso );
89 uint16_t raw = s.
raw();
98 std::cout <<
"HF Ring Sums (Isolated Taus)" << std::endl;
99 std::cout << bitset<12>(spares->
hwPt()).
to_string() << std::endl;
std::string to_string(const T &t)
virtual ~Stage1Layer2DiTauAlgorithm()
virtual void processEvent(const std::vector< l1t::CaloRegion > ®ions, const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::Tau > *taus, l1t::CaloSpare *spare)
Stage1Layer2DiTauAlgorithm(CaloParamsHelper *params)
void setEtSum(unsigned i, uint16_t et)
set a sum
uint16_t raw() const
get the raw data