ATLAS Offline Software
Loading...
Searching...
No Matches
TrkToActsConvertorAlg.cxx
Go to the documentation of this file.
1/*
2Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include "Acts/EventData/VectorTrackContainer.hpp"
14
22
24 const EventContext& ctx) const {
25
26 ATH_MSG_VERBOSE("About to create trackContainer");
27 Acts::VectorTrackContainer trackBackend;
28 Acts::VectorMultiTrajectory trackStateBackend;
29 ActsTrk::MutableTrackContainer tc( std::move(trackBackend),
30 std::move(trackStateBackend) );
31
32 ATH_MSG_VERBOSE("Loop over track collections");
33 for (auto handle : m_trackCollectionKeys.makeHandles(ctx)) {
34 ATH_CHECK(handle.isValid());
35 ATH_MSG_VERBOSE("Got back " << handle->size() << " tracks from "<< handle.key());
36
37 m_ATLASConverterTool->convertTrkToActsContainer(ctx, *handle, tc);
38 ATH_MSG_VERBOSE("multiTraj has " << tc.trackStateContainer().size() << " states");
39 }
40
41 Acts::ConstVectorTrackContainer ctrackBackend( std::move(tc.container()) );
42 Acts::ConstVectorMultiTrajectory ctrackStateBackend( std::move(tc.trackStateContainer()) );
43 std::unique_ptr< ActsTrk::TrackContainer > constTrackContainer = std::make_unique< ActsTrk::TrackContainer >( std::move(ctrackBackend),
44 std::move(ctrackStateBackend) );
45
46 auto trackContainerHandle = SG::makeHandle(m_trackContainerKey, ctx);
47 ATH_MSG_VERBOSE("Saving " << constTrackContainer->size() << " tracks to "<< trackContainerHandle.key());
48 ATH_CHECK(trackContainerHandle.record(std::move(constTrackContainer)));
49 return StatusCode::SUCCESS;
50}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
static Double_t tc
virtual StatusCode initialize() override
virtual StatusCode execute(const EventContext &ctx) const override
ActsTrk::MutableTrackContainerHandlesHelper m_trackContainerBackendsHelper
SG::ReadHandleKeyArray< TrackCollection > m_trackCollectionKeys
SG::WriteHandleKey< ActsTrk::TrackContainer > m_trackContainerKey
ToolHandle< ITrackConverterTool > m_ATLASConverterTool
std::string prefixFromTrackContainerName(const std::string &tracks)
Parse TrackContainer name to get the prefix for backends The name has to contain XYZTracks,...
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())