File indexing completed on 2025-10-17 07:59:31
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "ActsExamples/Io/EDM4hep/EDM4hepTrackOutputConverter.hpp"
0010
0011 #include "ActsExamples/EventData/Track.hpp"
0012 #include "ActsExamples/Io/EDM4hep/EDM4hepUtil.hpp"
0013 #include "ActsPlugins/EDM4hep/EDM4hepUtil.hpp"
0014
0015 #include <stdexcept>
0016
0017 #include <edm4hep/TrackCollection.h>
0018 #include <podio/Frame.h>
0019
0020 namespace ActsExamples {
0021
0022 EDM4hepTrackOutputConverter::EDM4hepTrackOutputConverter(
0023 const Config& config, Acts::Logging::Level level)
0024 : EDM4hepOutputConverter("EDM4hepTrackOutputConverter", level),
0025 m_cfg(config) {
0026 m_inputTracks.initialize(m_cfg.inputTracks);
0027 m_outputTracks.initialize(m_cfg.outputTracks);
0028 }
0029
0030 ActsExamples::ProcessCode EDM4hepTrackOutputConverter::execute(
0031 const AlgorithmContext& context) const {
0032 edm4hep::TrackCollection trackCollection;
0033
0034 const auto& tracks = m_inputTracks(context);
0035
0036 for (const auto& from : tracks) {
0037 auto to = trackCollection.create();
0038 ActsPlugins::EDM4hepUtil::writeTrack(context.geoContext, from, to,
0039 m_cfg.Bz);
0040 }
0041
0042 m_outputTracks(context, std::move(trackCollection));
0043
0044 return ProcessCode::SUCCESS;
0045 }
0046
0047 std::vector<std::string> EDM4hepTrackOutputConverter::collections() const {
0048 return {m_cfg.outputTracks};
0049 }
0050
0051 }