24#define LOG std::cout << name() << ": "
97 const std::vector<TCS::TOBArray *> & output,
101 return process(input,output,decision);
106 const std::vector<TCS::TOBArray *> & output,
110 if(input.size()!=2) {
111 TCS_EXCEPTION(
"RatioMatch alg must have exactly 2 input lists, but got " << input.size());
118 output[i]->setAmbiguityFlag(hasAmbiguousTruncation);
121 unsigned int deltaR2 = 999;
124 tob1 != input[0]->end() && distance(input[0]->begin(), tob1) <
p_NumberLeading1;
132 tob2 != input[1]->end() && distance(input[1]->begin(), tob2) <
p_NumberLeading2;
143 if (((*tob1)->eta() != (*tob2)->eta()) || ((*tob1)->phi() != (*tob2)->phi()) )
continue;
154 TRG_MSG_DEBUG(
"Decision " << i <<
": " << (accept?
"pass":
"fail") <<
" deltaR2 = " << deltaR2 );
#define REGISTER_ALG_TCS(CLASS)
#define TCS_EXCEPTION(MSG)
const Parameter & parameter(const std::string ¶meterName) 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)
parType_t p_NumberLeading1
RatioMatch(const std::string &name)
virtual StatusCode process(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)
virtual StatusCode initialize()
parType_t p_NumberLeading2
virtual StatusCode processBitCorrect(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decison)
const std::string process
bool isAmbiguousTruncation(TCS::TOBArray const *tobs, size_t pos, unsigned minEt=0)