14 const std::string& name,
15 const IInterface* parent) :
16 base_class(
type, name, parent) {
27 return StatusCode::FAILURE;
34 return StatusCode::FAILURE;
54 }
catch (
const std::exception& e) {
57 return StatusCode::FAILURE;
66 for (ulong i =
m_n_multbits; i != 0; --i) { maxtob *= 2;}
70 return StatusCode::SUCCESS;
75 const EventContext& ctx)
const {
80 CHECK(tobs.isValid());
84 auto selected = std::make_unique<bool>(
false);
87 std::vector<bool> tob_pass(tobs->size(),
false);
90 tob_pass[tob_count] =
true;
92 tob_pass[tob_count] =
true;
102 auto count_bits = std::bitset<s_nbits_TIP>(tob_count);
109 for (; p0 != mxb; ++p0, ++p1) {
110 if (count_bits.test(p0)) {word.set(p1);}
117 std::stringstream
ss;
118 ss <<
"\nRun " << ctx <<
' ' <<
"TIP:\n" << word <<
'\n';
121 ss << tob->to_string() <<
' ' << std::boolalpha <<
" pass " << tob_pass[ind++] <<
'\n';
123 ss <<
"tob count " << tob_count <<
'\n';
125 std::ofstream out(name() +
".log", std::ios_base::app);
131 return StatusCode::SUCCESS;
135 std::stringstream
ss;
137 <<
"eEmMultAlgTool read, select, count and report number of related eEmTOBS\n"
#define CHECK(...)
Evaluate an expression and check for errors.
AlgTool that to test whether expected the TIP values generated by data supplied by eEmMultTestBench c...