![]() |
ATLAS Offline Software
|
Implementation to make a (tracking) volume alignable. More...
#include <VolumePlacement.h>
Classes | |
| class | VolumeGeoPositioning |
| Auxiliary class to store the aligned transforms of the volume and of the associated portals. More... | |
Public Types | |
| using | AlignableNode_t = GeoIntrusivePtr<GeoAlignableTransform> |
| Abrivation of an alignable GeoTransform. | |
| using | Parent_t |
| Abrivation of the parent input types that are connected to the alignment system --> A direct alignable transform --> A detector element base following the alignment --> Another alignable volume element. | |
Public Member Functions | |
| VolumePlacement (const DetectorType detType, const AlignableNode_t parentNode, const std::optional< Amg::Transform3D > &addShift=std::nullopt) | |
| Constructor taking an Alignable transform from the geometry tree. | |
| VolumePlacement (const IDetectorElement &parentElement, const std::optional< Amg::Transform3D > &addShift=std::nullopt) | |
| Constructor taking the reference to a Detector element. | |
| VolumePlacement (const VolumePlacement &parentPlacement, const std::optional< Amg::Transform3D > &addShift=std::nullopt) | |
| Constructor taking the reference to another placement The life time of the object must be ensured to exceed the Placement's lifetime. | |
| void | addChild (std::unique_ptr< VolumePlacement > &&child) |
| Add a child volume placement to this placement. | |
| void | connectCenterSurface (std::shared_ptr< Acts::RegularSurface > surface) |
| Connect an external surface and place it into the volume center. | |
| DetectorType | detectorType () const override final |
| unsigned | storeAlignedTransforms (DetectorAlignStore &store) const override final |
| void | makePortalsAlignable (const Acts::GeometryContext &gctx, const std::vector< std::shared_ptr< Acts::RegularSurface > > &portalsToAlign) override final |
| const Acts::Transform3 & | localToGlobalTransform (const Acts::GeometryContext &gctx) const override final |
| const Amg::Transform3D & | localToGlobalTransform (const GeometryContext &gctx) const |
| const Acts::Transform3 & | globalToLocalTransform (const Acts::GeometryContext &gctx) const override final |
| const Amg::Transform3D & | globalToLocalTransform (const GeometryContext &gctx) const |
| const Acts::Transform3 & | portalLocalToGlobal (const Acts::GeometryContext &gctx, const std::size_t portalIdx) const override final |
Private Member Functions | |
| Amg::Transform3D | localToGlobalTransform (const DetectorAlignStore *store) const |
| Constructs the local -> global transform of the volume. | |
Private Attributes | |
| Parent_t | m_parent {} |
| Parent element which is following the alignment. | |
| GeoIntrusivePtr< GeoTransform > | m_refShift {} |
| Additional shift on top of the parent position. | |
| std::unique_ptr< VolumeGeoPositioning > | m_locToGlobCache {} |
| Cache to handle the local -> global transform of the volume. | |
| std::unique_ptr< VolumeGeoPositioning > | m_globToLocCache {} |
| Cache to handle the global -> local transform of the volume. | |
| std::vector< std::unique_ptr< VolumeGeoPositioning > > | m_portalCaches {} |
| Cache to handle the local -> global transforms of the associated portals. | |
| std::vector< std::shared_ptr< VolumePlacement > > | m_children {} |
| Children spawning from this VolumePlacement. | |
| std::shared_ptr< Acts::detail::PortalPlacement > | m_surfacePlacement {} |
| Pipe the local -> global transform to a surface. | |
Implementation to make a (tracking) volume alignable.
The placement is coupled to the alignment system either via a reference IDetectorElement, an alignable node in the geometry tree or another VolumePlacement.
Definition at line 23 of file VolumePlacement.h.
| using ActsTrk::VolumePlacement::AlignableNode_t = GeoIntrusivePtr<GeoAlignableTransform> |
Abrivation of an alignable GeoTransform.
Definition at line 26 of file VolumePlacement.h.
Abrivation of the parent input types that are connected to the alignment system --> A direct alignable transform --> A detector element base following the alignment --> Another alignable volume element.
Definition at line 32 of file VolumePlacement.h.
|
explicit |
Constructor taking an Alignable transform from the geometry tree.
| detType | Detectortype of the alignment store into which the transforms are written |
| parentNode | Pointer to the alignable transform |
| addShift | Additional optional shift to be applied on top of the alignable reference |
Definition at line 39 of file VolumePlacement.cxx.
|
explicit |
Constructor taking the reference to a Detector element.
The life time of the detector element must be ensured to exceed the Placement's lifetime
| parentElement | The detector element which alignment the volume is following |
| addShift | Additional optional shift to be applied on top of the alignable reference |
Definition at line 55 of file VolumePlacement.cxx.
|
explicit |
Constructor taking the reference to another placement The life time of the object must be ensured to exceed the Placement's lifetime.
| parentPlacement | The parent placement moving according to the alignment |
| addShift | Additional optional shift to be applied on top of the alignable reference |
Definition at line 69 of file VolumePlacement.cxx.
| void ActsTrk::VolumePlacement::addChild | ( | std::unique_ptr< VolumePlacement > && | child | ) |
Add a child volume placement to this placement.
The object takes ownership and fills the alignment cache
| child | The child to be appended |
Definition at line 50 of file VolumePlacement.cxx.
| void ActsTrk::VolumePlacement::connectCenterSurface | ( | std::shared_ptr< Acts::RegularSurface > | surface | ) |
Connect an external surface and place it into the volume center.
| surface | pointer to the surface that is connected to the placement |
Definition at line 123 of file VolumePlacement.cxx.
|
finaloverridevirtual |
Implements ActsTrk::IVolumePlacement.
Definition at line 131 of file VolumePlacement.cxx.
|
finaloverride |
Definition at line 107 of file VolumePlacement.cxx.
| const Amg::Transform3D & ActsTrk::VolumePlacement::globalToLocalTransform | ( | const GeometryContext & | gctx | ) | const |
Definition at line 114 of file VolumePlacement.cxx.
|
finaloverride |
Definition at line 91 of file VolumePlacement.cxx.
|
private |
Constructs the local -> global transform of the volume.
The request is forwarded to the parent and an optional shift is applied on top
| store | From which the alignment information is grepped and to which the final transform is written |
Definition at line 144 of file VolumePlacement.cxx.
| const Amg::Transform3D & ActsTrk::VolumePlacement::localToGlobalTransform | ( | const GeometryContext & | gctx | ) | const |
Definition at line 104 of file VolumePlacement.cxx.
|
finaloverride |
Definition at line 83 of file VolumePlacement.cxx.
|
finaloverride |
Definition at line 118 of file VolumePlacement.cxx.
|
finaloverridevirtual |
Implements ActsTrk::IVolumePlacement.
Definition at line 157 of file VolumePlacement.cxx.
|
private |
Children spawning from this VolumePlacement.
Definition at line 128 of file VolumePlacement.h.
|
private |
Cache to handle the global -> local transform of the volume.
Definition at line 124 of file VolumePlacement.h.
|
private |
Cache to handle the local -> global transform of the volume.
Definition at line 122 of file VolumePlacement.h.
|
private |
Parent element which is following the alignment.
Definition at line 118 of file VolumePlacement.h.
|
private |
Cache to handle the local -> global transforms of the associated portals.
Definition at line 126 of file VolumePlacement.h.
|
private |
Additional shift on top of the parent position.
Definition at line 120 of file VolumePlacement.h.
|
private |
Pipe the local -> global transform to a surface.
Definition at line 130 of file VolumePlacement.h.