63 void process(const Input& input, const Output& output) const final {
64 const auto [tracks, track_states, tracks_acts] = input;
65 auto [propagated_tracks] = output;
68 auto trackStateContainer = std::make_shared<Acts::ConstVectorMultiTrajectory>(*track_states);
69 auto trackContainer = std::make_shared<Acts::ConstVectorTrackContainer>(*tracks_acts);
70 ActsExamples::ConstTrackContainer constTracks(trackContainer, trackStateContainer);
73 for (
const auto& track : constTracks) {
74 auto this_propagated_track = propagated_tracks->create();
75 if (tracks->size() == constTracks.size()) {
76 trace(
"track segment connected to track {}", i);
77 this_propagated_track.setTrack((*tracks)[i]);
79 for (
auto& surf : m_target_surfaces) {
81 propagate(tracks->size() == constTracks.size() ? (*tracks)[i] : edm4eic::Track{}, track,
85 prop_point->surface = surf->geometryId().layer();
86 prop_point->system = surf->geometryId().extra();
87 this_propagated_track.addToPoints(*prop_point);