121 const std::vector<TCS::TOBArray *> & output,
126 if( input.size() == 4) {
147 std::vector<u_int> jet_pt(6,0), tau_pt(4,0), mu_pt(4,0), met_pt(1,0);
148 std::vector<int> jet_eta(6,0), tau_eta(4,0), mu_eta(4,0);
149 std::vector<int> jet_phi(6,0), tau_phi(4,0), mu_phi(4,0), met_phi(1,0);
151 bool highEtVeto =
false;
153 for (u_int i = 0; i<(*jets).size() && i<6; ++i) {
155 jet_pt[i] = (*jets)[i].Et();
156 jet_eta[i] = (*jets)[i].eta();
157 jet_phi[i] = (*jets)[i].phi();
164 for (u_int i = 0; i < (*taus).size() && i<4; ++i) {
166 tau_pt[i] = (*taus)[i].Et();
167 tau_eta[i] = (*taus)[i].eta();
168 tau_phi[i] = (*taus)[i].phi();
172 for (u_int i = 0; i < (*mus).size() && i<4; ++i) {
174 mu_pt[i] = (*mus)[i].Et();
175 mu_eta[i] = (*mus)[i].eta();
176 mu_phi[i] = (*mus)[i].phi();
180 for (u_int i = 0; i < (*met).size() && i<1; ++i) {
182 met_pt[i] = (*met)[i].Et();
183 met_phi[i] = (*met)[i].phi();
188 ARTEMIS2A::ArtemisNetwork AD_Network( jet_pt[0], jet_eta[0], jet_phi[0],
189 jet_pt[1], jet_eta[1], jet_phi[1],
190 jet_pt[2], jet_eta[2], jet_phi[2],
191 jet_pt[3], jet_eta[3], jet_phi[3],
192 jet_pt[4], jet_eta[4], jet_phi[4],
193 jet_pt[5], jet_eta[5], jet_phi[5],
194 tau_pt[0], tau_eta[0], tau_phi[0],
195 tau_pt[1], tau_eta[1], tau_phi[1],
196 tau_pt[2], tau_eta[2], tau_phi[2],
197 tau_pt[3], tau_eta[3], tau_phi[3],
198 mu_pt [0], mu_eta [0], mu_phi [0],
199 mu_pt [1], mu_eta [1], mu_phi [1],
200 mu_pt [2], mu_eta [2], mu_phi [2],
201 mu_pt [3], mu_eta [3], mu_phi [3],
202 met_pt[0], met_phi[0] );
204 std::vector<int64_t> anomScoreInt64Vec = AD_Network.getAnomalyScoreInt64Vec();
207 int64_t anomScoreInt64 = 0;
208 anomScoreInt64 = ((anomScoreInt64Vec.at(0) * anomScoreInt64Vec.at(0)) >> 10)
209 +((anomScoreInt64Vec.at(1) * anomScoreInt64Vec.at(1)) >> 10)
210 +((anomScoreInt64Vec.at(2) * anomScoreInt64Vec.at(2)) >> 10)
211 +((anomScoreInt64Vec.at(3) * anomScoreInt64Vec.at(3)) >> 10)
212 - anomScoreInt64Vec.at(4) - anomScoreInt64Vec.at(5) - anomScoreInt64Vec.at(6) - anomScoreInt64Vec.at(7);
219 if ( anomScoreInt64 >
threshold && !highEtVeto ) {
222 for ( u_int j = 0; j<6 && j<(*jets).size(); ++j ) output[i]->push_back((*jets)[j]);
223 for ( u_int j = 0; j<4 && j<(*taus).size(); ++j ) output[i]->push_back((*
taus)[j]);
224 for ( u_int j = 0; j<4 && j<(*mus).size() ; ++j ) output[i]->push_back((*mus) [j]);
225 output[i]->push_back((*
met)[0]);
227 output[i]->setAmbiguityFlag(hasAmbiguousInputs);
235 TRG_MSG_DEBUG(
"Decision for bit" << i <<
": " << (accept?
"pass":
"fail") <<
" anomaly score = " << anomScoreInt64 << std::endl);
238 TCS_EXCEPTION(
"ARTEMIS_2A alg must have 4 inputs, but got " << input.size());