25 return StatusCode::SUCCESS;
31 return StatusCode::SUCCESS;
41 declareInterface<IVertexWeightCalculator>(
this);
51 ATH_MSG_ERROR (
"HardScatterSelectionTool configured to use jet collection "<<
m_jetContKey.key()<<
", but collection is not found!");
57 std::set<const xAOD::TrackParticle*> tracks_in_jets;
59 std::vector<const xAOD::TrackParticle*> tracks_in_this_jet;
61 tracks_in_jets.insert(tracks_in_this_jet.begin(),tracks_in_this_jet.end());
63 ATH_MSG_VERBOSE(
"Collected " << tracks_in_jets.size() <<
" tracks in " << jetCont->size() <<
" jets");
65 size_t n_selected_tracks{0};
66 double total_pt{0.}, jet_only_pt{0.};
68 <<
vertex.nTrackParticles() <<
" tracks at vertex.");
69 for (
const auto& elTrackParticle :
vertex.trackParticleLinks()) {
71 if (not elTrackParticle.isValid()) {
73 "No valid link to tracks in xAOD::Vertex object. Skipping track for "
74 "signal compatibility (may be serious).");
86 increment = std::fabs(1. / perigee.parameters()[
Trk::qOverP]) *
89 total_pt += increment;
91 if(tracks_in_jets.contains(*elTrackParticle)) {
92 ATH_MSG_VERBOSE(
"Accepted track with index " << (*elTrackParticle)->index() <<
" in jet vicinity.");
94 jet_only_pt += increment;
99 <<
" towards vertex sumpt " << std::setprecision(3) << jet_only_pt <<
" (unrestricted sum: " << total_pt <<
")");