22 std::vector<std::shared_ptr<Acts::Experimental::Portal>>
25 const std::shared_ptr<DetectorVolume>& dVolume) noexcept(
false) {
26 if (dVolume ==
nullptr) {
27 throw std::runtime_error(
"PortalsGenerator: no detector volume provided.");
30 auto orientedSurfaces = dBounds.orientedSurfaces(dTransform);
33 std::vector<std::shared_ptr<Portal>> portals;
34 for (
auto [
i, oSurface] :
enumerate(orientedSurfaces)) {
36 auto portal = Portal::makeShared(oSurface.first);
39 std::make_unique<const SingleDetectorVolumeImpl>(dVolume.get());
44 portal->assignDetectorVolumeUpdator(oSurface.second,
std::move(singleLink),
61 std::vector<std::shared_ptr<Acts::Experimental::Portal>>
64 const std::shared_ptr<DetectorVolume>& dVolume) noexcept(
false) {
65 if (dVolume ==
nullptr) {
66 throw std::runtime_error(
67 "generatePortalsUpdateInternals: no detector volume provided.");
71 for (
auto& vPtr : dVolume->volumePtrs()) {
72 for (
auto& pPtr : vPtr->portalPtrs()) {
75 std::make_unique<const SingleDetectorVolumeImpl>(dVolume.get());
79 pPtr->assignDetectorVolumeUpdator(
std::move(motherLink), {dVolume});