Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Detector/Portal.hpp>
Public Types | |
using | DetectorVolumeUpdators = std::array< DetectorVolumeUpdator, 2u > |
The volume links forward/backward with respect to the surface normal. | |
using | AttachedDetectorVolumes = std::array< std::vector< std::shared_ptr< DetectorVolume >>, 2u > |
Public Member Functions | |
std::shared_ptr< Portal > | getSharedPtr () |
std::shared_ptr< const Portal > | getSharedPtr () const |
Portal ()=delete | |
virtual | ~Portal ()=default |
const Surface & | surface () const |
Const access to the surface representation. | |
Surface & | surface () |
Non-const access to the surface reference. | |
void | updateDetectorVolume (const GeometryContext &gctx, NavigationState &nState) const noexcept(false) |
void | assignGeometryId (const GeometryIdentifier &geometryId) |
void | fuse (std::shared_ptr< Portal > &other) noexcept(false) |
void | assignDetectorVolumeUpdator (Direction dir, DetectorVolumeUpdator dVolumeUpdator, std::vector< std::shared_ptr< DetectorVolume >> attachedVolumes) |
void | assignDetectorVolumeUpdator (DetectorVolumeUpdator dVolumeUpdator, std::vector< std::shared_ptr< DetectorVolume >> attachedVolumes) noexcept(false) |
const DetectorVolumeUpdators & | detectorVolumeUpdators () const |
AttachedDetectorVolumes & | attachedDetectorVolumes () |
Static Public Member Functions | |
static std::shared_ptr< Portal > | makeShared (std::shared_ptr< Surface > surface) |
Factory for producing memory managed instances of Portal. | |
Protected Member Functions | |
Portal (std::shared_ptr< Surface > surface) | |
Private Attributes | |
std::shared_ptr< Surface > | m_surface |
The surface representation of this portal. | |
DetectorVolumeUpdators | m_volumeUpdators |
The portal targets along/opposite the normal vector. | |
AttachedDetectorVolumes | m_attachedVolumes |
The portal attaches to the following volumes. | |
Friends | |
class | DetectorVolume |
Declare the DetectorVolume friend for portal setting. | |
A portal description between the detector volumes
It has a Surface representation for navigation and propagation and guides from one volume to the next.
The surface can carry material to allow mapping onto portal positions if required.
Definition at line 43 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 43 of file Portal.hpp
using Acts::Experimental::Portal::AttachedDetectorVolumes = std::array<std::vector<std::shared_ptr<DetectorVolume>>, 2u> |
The vector of attached volumes forward/backward, this is useful in the geometry building
Definition at line 57 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 57 of file Portal.hpp
using Acts::Experimental::Portal::DetectorVolumeUpdators = std::array<DetectorVolumeUpdator, 2u> |
The volume links forward/backward with respect to the surface normal.
Definition at line 52 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 52 of file Portal.hpp
|
protected |
Constructor from surface w/o portal links
surface | is the representing surface |
Definition at line 27 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 27 of file Portal.cpp
References m_surface, and throw_assert.
|
delete |
|
virtualdefault |
void Acts::Experimental::Portal::assignDetectorVolumeUpdator | ( | Direction | dir, |
DetectorVolumeUpdator | dVolumeUpdator, | ||
std::vector< std::shared_ptr< DetectorVolume >> | attachedVolumes | ||
) |
Update the volume link
dir | the direction of the link |
dVolumeUpdator | is the mangaged volume updator delegate |
attachedVolumes | is the list of attached volumes for book keeping |
Definition at line 96 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 96 of file Portal.cpp
References ambiguity_solver_full_chain::idx, Acts::Direction::index(), and testing::internal::move().
Referenced by Acts::Experimental::detail::PortalHelper::attachDetectorVolumesUpdator(), and Acts::Experimental::detail::PortalHelper::attachDetectorVolumeUpdator().
|
noexcept |
Update the volume link, w/o directive, i.e. it relies that there's only one remaining link to be set, throws an exception if that's not the case
dVolumeUpdator | is the mangaged volume updator delegate |
attachedVolumes | is the list of attached volumes for book keeping |
Definition at line 104 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 104 of file Portal.cpp
References ambiguity_solver_full_chain::idx, testing::internal::move(), and physmon_ckf_tracking::u.
void Acts::Experimental::Portal::assignGeometryId | ( | const GeometryIdentifier & | geometryId | ) |
Set the geometry identifier (to the underlying surface)
geometryId | the geometry identifier to be assigned |
Definition at line 65 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 65 of file Portal.cpp
Acts::Experimental::Portal::AttachedDetectorVolumes & Acts::Experimental::Portal::attachedDetectorVolumes | ( | ) |
Definition at line 51 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 51 of file Portal.cpp
const Acts::Experimental::Portal::DetectorVolumeUpdators & Acts::Experimental::Portal::detectorVolumeUpdators | ( | ) | const |
Definition at line 46 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 46 of file Portal.cpp
Referenced by Acts::Svg::PortalConverter::convert(), Acts::GeometryView3D::drawPortal(), Acts::PortalJsonConverter::toJson(), and Acts::PortalJsonConverter::toJsonDetray().
|
noexcept |
Fuse with another portal, this one is kept
other | is the portal that will be fused |
Definition at line 70 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 70 of file Portal.cpp
References Acts::Direction::Backward, Acts::Direction::Forward, Acts::Direction::index(), Acts::Direction::invert(), and testing::internal::move().
std::shared_ptr< Acts::Experimental::Portal > Acts::Experimental::Portal::getSharedPtr | ( | ) |
Retrieve a std::shared_ptr
for this surface (non-const version)
makeShared
factory since it needs access to the original reference. In C++14 this is undefined behavior (but most likely implemented as a bad_weak_ptr
exception), in C++17 it is defined as that exception. Definition at line 56 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 56 of file Portal.cpp
std::shared_ptr< const Acts::Experimental::Portal > Acts::Experimental::Portal::getSharedPtr | ( | ) | const |
Retrieve a std::shared_ptr
for this surface (const version)
makeShared
factory since it needs access to the original reference. In C++14 this is undefined behavior, but most likely implemented as a bad_weak_ptr
exception, in C++17 it is defined as that exception. Definition at line 61 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 61 of file Portal.cpp
|
static |
Factory for producing memory managed instances of Portal.
Definition at line 33 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 33 of file Portal.cpp
References testing::internal::move().
Referenced by BOOST_AUTO_TEST_CASE().
const Acts::Surface & Acts::Experimental::Portal::surface | ( | ) | const |
Const access to the surface representation.
Definition at line 37 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 37 of file Portal.cpp
Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId(), Acts::Experimental::detail::PortalHelper::attachDetectorVolumesUpdator(), Acts::Svg::PortalConverter::convert(), Acts::GeometryView3D::drawPortal(), Acts::PortalJsonConverter::toJson(), and Acts::PortalJsonConverter::toJsonDetray().
Acts::Surface & Acts::Experimental::Portal::surface | ( | ) |
Non-const access to the surface reference.
Definition at line 41 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 41 of file Portal.cpp
|
noexcept |
Update the current volume
gctx | is the Geometry context of this call |
nState | [in,out] the navigation state for the volume to be updated |
Definition at line 120 of file Portal.cpp.
View newest version in sPHENIX GitHub at line 120 of file Portal.cpp
References Acts::Experimental::NavigationState::currentVolume, Acts::Experimental::NavigationState::direction, Acts::Direction::fromScalar(), Acts::Direction::index(), Acts::Experimental::NavigationState::position, position, and writeMapConfig::surface.
Referenced by BOOST_AUTO_TEST_CASE().
|
friend |
Declare the DetectorVolume friend for portal setting.
Definition at line 60 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 60 of file Portal.hpp
|
private |
The portal attaches to the following volumes.
Definition at line 157 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 157 of file Portal.hpp
|
private |
The surface representation of this portal.
Definition at line 150 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 150 of file Portal.hpp
Referenced by Portal().
|
private |
The portal targets along/opposite the normal vector.
Definition at line 153 of file Portal.hpp.
View newest version in sPHENIX GitHub at line 153 of file Portal.hpp