19 return StatusCode::SUCCESS;
23 return StatusCode::SUCCESS;
36 return StatusCode::FAILURE;
48 auto pv0tracks = std::make_unique<ConstDataVector<xAOD::TrackParticleContainer> >(
SG::VIEW_ELEMENTS );
52 if(
m_TVATool->isCompatible(*track, *pv) ) pv0tracks->push_back(track);
55 else ATH_MSG_DEBUG(
"No primary vertex found. Selecting no tracks.");
57 std::unique_ptr<const xAOD::TrackParticleContainer> outTracksC(pv0tracks.release()->asDataVector());
60 if(outTrackHandle.
put(std::move(outTracksC)) ==
nullptr){
62 return StatusCode::FAILURE;
66 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
StatusCode execute(const EventContext &) const override
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_outTrackKey
StatusCode finalize() override
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_inTrackKey
SG::ShallowCopyDecorDeps< xAOD::TrackParticleContainer > m_decorDeps
ToolHandle< CP::ITrackVertexAssociationTool > m_TVATool
StatusCode initialize() override
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type put(std::unique_ptr< T > data, bool returnExisting=false) const
Record an object to the store.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.