126 {
127
128
129 std::unique_ptr<ActsTrk::MultiTrajectory> constMtj =
130 moveToConst(std::move(
tc.trackStateContainer()), evtContext);
131
133 if (constMtjHandle.record(std::move(constMtj)).isFailure()) {
134 throw std::runtime_error(
135 "MutableTrackContainerHandlesHelper::moveToConst, can't record "
136 "ConstMultiTrajectory");
137 }
138
139 auto trackSurfacesAux = std::make_unique<xAOD::TrackSurfaceAuxContainer>();
140 tc.container().encodeSurfaces(trackSurfacesAux.get(), geoContext);
141
142 auto interfaceTrackSummaryContainer =
144 tc.container().m_mutableTrackBackendAux.get());
146
148 trackSurfacesAux.get());
150
151 auto constTrackSummary = std::make_unique<ActsTrk::TrackSummaryContainer>(
153 evtContext));
154 constTrackSummary->restoreDecorations();
155 constTrackSummary->fillFrom(
tc.container());
156
158 if (constTrackSummaryHandle.record(std::move(constTrackSummary))
159 .isFailure()) {
160 throw std::runtime_error(
161 "MutableTrackContainerHandlesHelper::moveToConst, can't record "
162 "TrackSummary");
163 }
164 auto constTrack = std::make_unique<ActsTrk::PersistentTrackContainer>(
166 evtContext),
167 DataLink<ActsTrk::MultiTrajectory>(
m_mtjKey.key(), evtContext));
168 return constTrack;
169}
std::unique_ptr< ActsTrk::PersistentTrackContainer > moveToConst(ActsTrk::MutablePersistentTrackContainer &&tc, const Acts::GeometryContext &geoContext, const EventContext &evtContext) const
produces ActsTrk::ConstTrackContainer with all backends stored in SG