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"
13
21
23 const EventContext& ctx) const {
24
25 ATH_MSG_VERBOSE("About to create trackContainer");
26 Acts::VectorTrackContainer trackBackend;
27 Acts::VectorMultiTrajectory trackStateBackend;
28 ActsTrk::MutableTrackContainer tc( std::move(trackBackend),
29 std::move(trackStateBackend) );
30
31 ATH_MSG_VERBOSE("Loop over track collections");
32 for (auto handle : m_trackCollectionKeys.makeHandles(ctx)) {
33 ATH_CHECK(handle.isValid());
34 ATH_MSG_VERBOSE("Got back " << handle->size() << " tracks from "<< handle.key());
35
36 m_ATLASConverterTool->convertTrkToActsContainer(ctx, *handle, tc);
37 ATH_MSG_VERBOSE("multiTraj has " << tc.trackStateContainer().size() << " states");
38 }
39
40 Acts::ConstVectorTrackContainer ctrackBackend( std::move(tc.container()) );
41 Acts::ConstVectorMultiTrajectory ctrackStateBackend( std::move(tc.trackStateContainer()) );
42 std::unique_ptr< ActsTrk::TrackContainer > constTrackContainer = std::make_unique< ActsTrk::TrackContainer >( std::move(ctrackBackend),
43 std::move(ctrackStateBackend) );
44
45 auto trackContainerHandle = SG::makeHandle(m_trackContainerKey, ctx);
46 ATH_MSG_VERBOSE("Saving " << constTrackContainer->size() << " tracks to "<< trackContainerHandle.key());
47 ATH_CHECK(trackContainerHandle.record(std::move(constTrackContainer)));
48 return StatusCode::SUCCESS;
49}
#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())