113 const std::vector<TCS::TOBArray *> & output,
118 if( input.size() == 4) {
139 std::vector<u_int> jet_pt(6,0), tau_pt(4,0), mu_pt(4,0), met_pt(1,0);
140 std::vector<int> jet_eta(6,0), tau_eta(4,0), mu_eta(4,0);
141 std::vector<int> jet_phi(6,0), tau_phi(4,0), mu_phi(4,0), met_phi(1,0);
143 bool highEtVeto =
false;
145 for (u_int i = 0; i<(*jets).size() && i<6; ++i) {
148 jet_pt[i] = (*jets)[i].Et();
149 jet_eta[i] = (*jets)[i].eta();
150 jet_phi[i] = (*jets)[i].phi();
152 for (u_int i = 0; i < (*taus).size() && i<4; ++i) {
155 tau_pt[i] = (*taus)[i].Et();
156 tau_eta[i] = (*taus)[i].eta();
157 tau_phi[i] = (*taus)[i].phi();
159 for (u_int i = 0; i < (*mus).size() && i<4; ++i) {
162 mu_pt[i] = (*mus)[i].Et();
163 mu_eta[i] = (*mus)[i].eta();
164 mu_phi[i] = (*mus)[i].phi();
166 for (u_int i = 0; i < (*met).size() && i<1; ++i) {
169 met_pt[i] = (*met)[i].Et();
170 met_phi[i] = (*met)[i].phi();
174 ADVAE2A::VAENetwork AD_Network( jet_pt[0], jet_eta[0], jet_phi[0],
175 jet_pt[1], jet_eta[1], jet_phi[1],
176 jet_pt[2], jet_eta[2], jet_phi[2],
177 jet_pt[3], jet_eta[3], jet_phi[3],
178 jet_pt[4], jet_eta[4], jet_phi[4],
179 jet_pt[5], jet_eta[5], jet_phi[5],
180 tau_pt[0], tau_eta[0], tau_phi[0],
181 tau_pt[1], tau_eta[1], tau_phi[1],
182 tau_pt[2], tau_eta[2], tau_phi[2],
183 tau_pt[3], tau_eta[3], tau_phi[3],
184 mu_pt [0], mu_eta [0], mu_phi [0],
185 mu_pt [1], mu_eta [1], mu_phi [1],
186 mu_pt [2], mu_eta [2], mu_phi [2],
187 mu_pt [3], mu_eta [3], mu_phi [3],
188 met_pt[0], met_phi[0] );
189 std::vector<int64_t> anomScoreInt64Vec = AD_Network.getAnomalyScoreInt64Vec();
196 int64_t anomScoreInt64 = 0;
197 anomScoreInt64 = ( anomScoreInt64Vec.at(0)*anomScoreInt64Vec.at(0) ) +
198 ( anomScoreInt64Vec.at(1)*anomScoreInt64Vec.at(1) ) +
199 ( anomScoreInt64Vec.at(2)*anomScoreInt64Vec.at(2) );
200 if ( anomScoreInt64 >
threshold && !highEtVeto ) {
203 for ( u_int j = 0; j<6 && j<(*jets).size(); ++j ) output[i]->push_back((*jets)[j]);
204 for ( u_int j = 0; j<4 && j<(*taus).size(); ++j ) output[i]->push_back((*
taus)[j]);
205 for ( u_int j = 0; j<4 && j<(*mus).size() ; ++j ) output[i]->push_back((*mus) [j]);
206 output[i]->push_back((*
met)[0]);
208 output[i]->setAmbiguityFlag(hasAmbiguousInputs);
216 TRG_MSG_DEBUG(
"Decision for bit" << i <<
": " << (accept?
"pass":
"fail") <<
" anomaly score = " << anomScoreInt64 << std::endl);
219 TCS_EXCEPTION(
"ARTEMIS_2A alg must have 4 inputs, but got " << input.size());