240 float* ptr =
nullptr;
241 const float*
start =
nullptr;
248 const auto& tag_info_features =
features.tag_info_features;
249 *ptr = tag_info_features.jetNTracks;
251 *(++ptr) = tag_info_features.jetNSecondaryVertices;
253 *(++ptr) = tag_info_features.tau1_trackEtaRel_0;
254 *(++ptr) = tag_info_features.tau1_trackEtaRel_1;
256 *(++ptr) = tag_info_features.tau1_trackEtaRel_2;
257 *(++ptr) = tag_info_features.tau2_trackEtaRel_0;
258 *(++ptr) = tag_info_features.tau2_trackEtaRel_1;
259 *(++ptr) = tag_info_features.tau2_trackEtaRel_2;
260 *(++ptr) = tag_info_features.tau1_flightDistance2dSig;
261 *(++ptr) = tag_info_features.tau2_flightDistance2dSig;
263 *(++ptr) = tag_info_features.tau1_vertexDeltaR;
264 *(++ptr) = tag_info_features.tau1_vertexEnergyRatio;
266 *(++ptr) = tag_info_features.tau2_vertexEnergyRatio;
267 *(++ptr) = tag_info_features.tau1_vertexMass;
268 *(++ptr) = tag_info_features.tau2_vertexMass;
269 *(++ptr) = tag_info_features.trackSip2dSigAboveBottom_0;
270 *(++ptr) = tag_info_features.trackSip2dSigAboveBottom_1;
271 *(++ptr) = tag_info_features.trackSip2dSigAboveCharm;
272 *(++ptr) = tag_info_features.trackSip3dSig_0;
273 *(++ptr) = tag_info_features.tau1_trackSip3dSig_0;
274 *(++ptr) = tag_info_features.tau1_trackSip3dSig_1;
275 *(++ptr) = tag_info_features.trackSip3dSig_1;
276 *(++ptr) = tag_info_features.tau2_trackSip3dSig_0;
277 *(++ptr) = tag_info_features.tau2_trackSip3dSig_1;
278 *(++ptr) = tag_info_features.trackSip3dSig_2;
279 *(++ptr) = tag_info_features.trackSip3dSig_3;
280 *(++ptr) = tag_info_features.z_ratio;
287 for (std::size_t c_pf_n = 0; c_pf_n < max_c_pf_n; c_pf_n++) {
288 const auto& c_pf_features =
features.c_pf_features.at(c_pf_n);
291 *ptr = c_pf_features.btagPf_trackEtaRel;
293 *(++ptr) = c_pf_features.btagPf_trackPtRatio;
294 *(++ptr) = c_pf_features.btagPf_trackPParRatio;
295 *(++ptr) = c_pf_features.btagPf_trackSip2dVal;
296 *(++ptr) = c_pf_features.btagPf_trackSip2dSig;
297 *(++ptr) = c_pf_features.btagPf_trackSip3dVal;
298 *(++ptr) = c_pf_features.btagPf_trackSip3dSig;
299 *(++ptr) = c_pf_features.btagPf_trackJetDistVal;
301 *(++ptr) = c_pf_features.btagPf_trackJetDistVal;
302 *(++ptr) = c_pf_features.btagPf_trackPParRatio;
303 *(++ptr) = c_pf_features.btagPf_trackPtRatio;
304 *(++ptr) = c_pf_features.btagPf_trackSip2dSig;
305 *(++ptr) = c_pf_features.btagPf_trackSip2dVal;
306 *(++ptr) = c_pf_features.btagPf_trackSip3dSig;
307 *(++ptr) = c_pf_features.btagPf_trackSip3dVal;
308 *(++ptr) = c_pf_features.deltaR;
309 *(++ptr) = c_pf_features.drminsv;
310 *(++ptr) = c_pf_features.drsubjet1;
311 *(++ptr) = c_pf_features.drsubjet2;
312 *(++ptr) = c_pf_features.dxy;
313 *(++ptr) = c_pf_features.dxysig;
314 *(++ptr) = c_pf_features.dz;
315 *(++ptr) = c_pf_features.dzsig;
316 *(++ptr) = c_pf_features.erel;
317 *(++ptr) = c_pf_features.etarel;
318 *(++ptr) = c_pf_features.chi2;
319 *(++ptr) = c_pf_features.ptrel_noclip;
320 *(++ptr) = c_pf_features.quality;
330 for (std::size_t n_pf_n = 0; n_pf_n < max_n_pf_n; n_pf_n++) {
331 const auto& n_pf_features =
features.n_pf_features.at(n_pf_n);
334 *ptr = n_pf_features.deltaR_noclip;
335 *(++ptr) = n_pf_features.drminsv;
336 *(++ptr) = n_pf_features.drsubjet1;
337 *(++ptr) = n_pf_features.drsubjet2;
338 *(++ptr) = n_pf_features.erel;
339 *(++ptr) = n_pf_features.hadFrac;
340 *(++ptr) = n_pf_features.ptrel_noclip;
341 *(++ptr) = n_pf_features.puppiw;
348 offset = i_jet * input_sizes_[
kVertices];
349 for (std::size_t sv_n = 0; sv_n < max_sv_n; sv_n++) {
350 const auto& sv_features =
features.sv_features.at(sv_n);
354 *ptr = sv_features.d3d;
355 *(++ptr) = sv_features.d3dsig;
357 *ptr = sv_features.costhetasvpv;
358 *(++ptr) = sv_features.deltaR;
359 *(++ptr) = sv_features.dxysig;
360 *(++ptr) = sv_features.mass;
361 *(++ptr) = sv_features.ntracks;
362 *(++ptr) = sv_features.pt;
363 *(++ptr) = sv_features.ptrel;
const Features & features() const