14#include "GaudiKernel/ThreadLocalContext.h"
27 const IInterface* p) :
41 return StatusCode::FAILURE;
49 return StatusCode::SUCCESS;
55 return StatusCode::SUCCESS;
61 const EventContext& ctx = Gaudi::Hive::currentContext();
67 unsigned int nTracks = tracks->size();
68 if (nTracks==0)
return StatusCode::SUCCESS;
71 std::vector<bool> mask(nTracks,
false);
87 std::size_t ntrkmax = 0;
100 float sumPt = sumPt2Handle(*vertex);
103 primary_vertex = vertex;
107 std::size_t ntp = vertex->nTrackParticles();
110 primary_vertex = vertex;
115 if (!primary_vertex) {
120 for (
const auto *
jet : *importedJets) {
121 std::vector<const xAOD::TrackParticle*> jetTracks;
123 if ( !haveJetTracks ) {
ATH_MSG_WARNING(
"Associated jet tracks not found!"); }
125 for (
auto & jetTrack : jetTracks) {
129 int index = jetTrack->index();
130 mask[
index] =
static_cast<bool>(acceptData);
136 unsigned int n_pass=0;
137 for (
unsigned int i=0; i<nTracks; ++i) {
138 if (mask[i]) ++n_pass;
144 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Handle class for reading a decoration on an object.
Handle for requesting thinning for a data object.
HIJetTrackParticleThinningTool(const std::string &t, const std::string &n, const IInterface *p)
StringProperty m_streamName
virtual StatusCode initialize() override
std::atomic< unsigned int > m_ntot
SG::ReadHandleKey< xAOD::JetContainer > m_jetKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_sumPt2Key
virtual ~HIJetTrackParticleThinningTool()
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_inDetSGKey
std::atomic< unsigned int > m_npass
Gaudi::Property< std::string > m_vertexScheme
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkSelTool
virtual StatusCode finalize() override
virtual StatusCode doThinning() const override
Handle class for reading a decoration on an object.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
void keep(size_t ndx)
Mark that index ndx in the container should be kept (not thinned away).
Handle for requesting thinning for a data object.
Vertex_v1 Vertex
Define the latest version of the vertex class.