25 #define LOG std::cout << "TCS::DisambiguationDRIncl2: "
53 p_NumberLeading1 = parameter(
"InputWidth1").value();
54 p_NumberLeading2 = parameter(
"InputWidth2").value();
55 if(parameter(
"MaxTob1").
value() > 0) p_NumberLeading1 = parameter(
"MaxTob1").value();
56 if(parameter(
"MaxTob2").
value() > 0) p_NumberLeading2 = parameter(
"MaxTob2").value();
61 for(
unsigned int i=0;
i<numberOutputBits(); ++
i) {
62 p_MinET1[
i] = parameter(
"MinET1",
i).value();
63 p_MinET2[
i] = parameter(
"MinET2",
i).value();
65 p_DRCutMin[
i] = parameter(
"DisambDRSqrMin",
i).value();
66 p_DRCutMax[
i] = parameter(
"DisambDRSqrMax",
i).value();
87 const std::vector<TCS::TOBArray *> & output,
92 if( input.size() == 2) {
96 tob1 != input[0]->end() &&
distance(input[0]->
begin(), tob1) < p_NumberLeading1;
102 tob2 != input[1]->end() &&
distance(input[1]->
begin(), tob2) < p_NumberLeading2;
105 unsigned int deltaR2Cut = calcDeltaR2BW( *tob1, *tob2 );
106 for(
unsigned int i=0;
i<numberOutputBits(); ++
i) {
108 if(
parType_t((*tob1)->Et()) <= p_MinET1[
i])
continue;
109 if(
parType_t((*tob2)->Et()) <= p_MinET2[
i])
continue;
110 accept = deltaR2Cut > p_DRCutMin[
i] && deltaR2Cut <= p_DRCutMax[
i] ;
116 TRG_MSG_DEBUG(
"Decision " <<
i <<
": " << (
accept?
"pass":
"fail") <<
" deltaR = " << deltaR2Cut );
126 for (
unsigned int i=0;
i < numberOutputBits(); ++
i) {
129 output[
i]->setAmbiguityFlag(hasAmbiguousInputs);
134 TCS_EXCEPTION(
"DisambiguationDRIncl2 alg must have 2 inputs, but got " << input.size());
143 const std::vector<TCS::TOBArray *> & output,
148 if( input.size() == 2) {
152 tob1 != input[0]->end() &&
distance(input[0]->
begin(), tob1) < p_NumberLeading1;
156 tob2 != input[1]->end() &&
distance(input[1]->
begin(), tob2) < p_NumberLeading2;
159 unsigned int deltaR2Cut = calcDeltaR2( *tob1, *tob2 );
160 for(
unsigned int i=0;
i<numberOutputBits(); ++
i) {
162 if(
parType_t((*tob1)->Et()) <= p_MinET1[
i])
continue;
163 if(
parType_t((*tob2)->Et()) <= p_MinET2[
i])
continue;
164 accept = deltaR2Cut > p_DRCutMin[
i] && deltaR2Cut <= p_DRCutMax[
i] ;
169 TRG_MSG_DEBUG(
"Decision " <<
i <<
": " << (
accept?
"pass":
"fail") <<
" deltaR = " << deltaR2Cut );
174 TCS_EXCEPTION(
"DisambiguationDRIncl2 alg must have 2 inputs, but got " << input.size());