127 {
128
129
130 std::unique_ptr<ActsTrk::MultiTrajectory> constMtj =
131 moveToConst(std::move(
tc.trackStateContainer()), evtContext);
132
134 if (constMtjHandle.record(std::move(constMtj)).isFailure()) {
135 throw std::runtime_error(
136 "MutableTrackContainerHandlesHelper::moveToConst, can't record "
137 "ConstMultiTrajectory");
138 }
139
140 auto trackSurfacesAux = std::make_unique<xAOD::TrackSurfaceAuxContainer>();
141 tc.container().encodeSurfaces(trackSurfacesAux.get(), geoContext);
142
143 auto interfaceTrackSummaryContainer =
145 tc.container().m_mutableTrackBackendAux.get());
147
149 trackSurfacesAux.get());
151
152 auto constTrackSummary = std::make_unique<ActsTrk::TrackSummaryContainer>(
154 evtContext));
155 constTrackSummary->restoreDecorations();
156 constTrackSummary->fillFrom(
tc.container());
157
159 if (constTrackSummaryHandle.record(std::move(constTrackSummary))
160 .isFailure()) {
161 throw std::runtime_error(
162 "MutableTrackContainerHandlesHelper::moveToConst, can't record "
163 "TrackSummary");
164 }
165 auto constTrack = std::make_unique<ActsTrk::PersistentTrackContainer>(
167 evtContext),
168 DataLink<ActsTrk::MultiTrajectory>(
m_mtjKey.key(), evtContext));
169 return constTrack;
170}
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