34 {
36
37
38
39 auto in =
41 ctx);
43
44 ATH_MSG_DEBUG(
"read in " << (*in).size() <<
" neighborhoods");
45
46 SG::WriteHandle<eEmEg1BDTTOBContainer> h_BDTResult(
m_BDTResultKey, ctx);
47 CHECK(h_BDTResult.record(std::make_unique<eEmEg1BDTTOBContainer>()));
48
49 for (const auto nbhdTOB : *in) {
51 if (c_phi.empty()) {continue;}
53
55 ap_int<10>* c_input = &
input[0];
56
58
59
60 bdt.decision_function(c_input, scores);
61 if (msgLevel() <= MSG::DEBUG) {
64 for (
const auto& i : input) {
ss <<
i <<
' ';}
66 }
67
68 if (msgLevel() <= MSG::DEBUG) {
70 ss <<
"C BDT output: ";
71 for (
const auto& i : scores) {
ss <<
i <<
' ';}
73 }
74
75
76 std::bitset<eEmEg1BDTTOB::s_eGamma1BDT_width>
result;
77 for (
int i=0;
i<scores[0].length();
i++){
79 }
80
81 h_BDTResult->push_back(std::make_unique<IOBitwise::eEmEg1BDTTOB>(*nbhdTOB, result));
82
83 }
84 return StatusCode::SUCCESS;
85 }
constexpr int fn_classes(int n_classes)
static const BDT::BDT< n_trees, n_classes, input_arr_t, score_t, threshold_t > bdt
static const int n_features
ap_fixed< 10, 5 > score_t
static const int n_classes
static std::vector< ap_int< 10 > > digitize10(const std::vector< double > &v)