![]() |
ATLAS Offline Software
|
Auxiliary class to construct cylinder volume bounds from subvolumes the ranges of the bounds are expanded using the vertices of the subvolume. More...
#include <CylinderBoundsExpander.h>
Public Types | |
| using | VolumeAligner_t = std::function<Acts::Transform3(const Acts::GeometryContext& tgContext)> |
| Abrivation of the transform getter. | |
Public Member Functions | |
| CylinderBoundsExpander (std::unique_ptr< const Acts::Logger > loggerObj=nullptr) | |
| Constructor with an optional logger instance. | |
| virtual void | expand (const Acts::GeometryContext &tgContext, const Acts::Volume &volume) override |
| Expand the bounds from a chamber. | |
| virtual std::shared_ptr< Acts::VolumeBounds > | makeBounds (Acts::VolumeBoundFactory &factory) override final |
| Crate volume bounds that enclose the readout element from the central localToGlobalTransform. | |
| void | setMargin (const double extraR, const double extraZ) |
| Assign an extra margin to the constructed bounds. | |
| double | rMin () const |
| Minimum seen radius. | |
| double & | rMin () |
| Minimum seen radius (non-const). | |
| double | rMax () const |
| Maximum seen radius. | |
| double & | rMax () |
| Maximum seen radius (non-const). | |
| double | zMin () const |
| Minimum seen longitudinal displacement. | |
| double & | zMin () |
| Minimum seen longitudinal displacement (non-const). | |
| double | zMax () const |
| Maximum seen longitudinal displacement. | |
| double & | zMax () |
| Maximum seen longitudinal displacement (non-const). | |
| void | expand (const Acts::GeometryContext &tgContext, const MuonGMR4::Chamber &chamber) |
| Use the expand overloads w.r.t. | |
| void | expand (const Acts::GeometryContext &tgContext, const MuonGMR4::SpectrometerSector §or) |
| Use the expand overloads w.r.t. | |
| void | expand (const Acts::GeometryContext &tgContext, const MuonGMR4::MuonReadoutElement &readoutElement, Acts::VolumeBoundFactory &boundFactory) |
| Use the expand overloads w.r.t. | |
| std::unique_ptr< Acts::TrackingVolume > | makeEnvelope (Acts::VolumeBoundFactory &factory, std::string_view volName) |
| Creates an empty tracking volume. | |
| Acts::Transform3 | toVertexCenter () const |
| Returns the transform from the ATLAS frame to the center of all seen vertices. | |
| const Acts::Transform3 & | boxMidPoint () const |
| Returns the transform from the nominal volume center to the middle point to all seen vertices. | |
| void | reCenter (std::span< const Amg::Vector3D > vertices) |
| Update the center point from a list of global vertices. | |
| std::span< const double > | minima () const |
| Returns the triplet of the minimum coordinates from the ensemble of all seen vertices. | |
| std::span< const double > | maxima () const |
| Returns the triplet of the maximum coordinates from the ensemble of all seen vertices. | |
| const Acts::Logger & | logger () const |
| Returns the ACTS logegr object. | |
Static Public Member Functions | |
| static std::shared_ptr< Acts::VolumeBounds > | makeBounds (const MuonGMR4::MuonReadoutElement &readoutElement, Acts::VolumeBoundFactory &boundFactory) |
| Use the makeBounds overload for the readout element. | |
| static std::vector< Amg::Vector3D > | cornerPoints (const Acts::GeometryContext &tgContext, const Acts::Volume &volume, const std::size_t nSegments=3) |
| Returns the vertices from a volume. | |
| static std::vector< Amg::Vector3D > | cornerPoints (const Acts::GeometryContext &tgContext, const Acts::Surface &surface, const std::size_t nSegments=3) |
| Returns the vertices from a surface. | |
Private Attributes | |
| double | m_rMin {2.*Acts::UnitConstants::km} |
| Minimum r of any shown vertex. | |
| double | m_rMax {-2.*Acts::UnitConstants::km} |
| Maximum r of any shown vertex. | |
| double | m_zMin {m_rMin} |
| Minimum z of any shown vertex. | |
| double | m_zMax {m_rMax} |
| Maximum z of any shown vertex. | |
| double | m_extraR {0.1} |
| Extra margin to be applied in R. | |
| double | m_extraZ {0.1} |
| Extra margin to be applied in z. | |
| std::unique_ptr< const Acts::Logger > | m_logger |
| Acts::Transform3 | m_toVolume {Acts::Transform3::Identity()} |
| External method to go from ATLAS to the reference frame. | |
| Acts::Transform3 | m_shiftTrf {Acts::Transform3::Identity()} |
| Extra shift to center all the vertices. | |
| std::array< double, 3 > | m_locMax {Acts::filledArray<double, 3>(-2.*Acts::UnitConstants::km)} |
| Maximum value seen by the recenter method. | |
| std::array< double, 3 > | m_locMin {Acts::filledArray<double, 3>(2.*Acts::UnitConstants::km)} |
| Minimum value seen by the recenter method. | |
Auxiliary class to construct cylinder volume bounds from subvolumes the ranges of the bounds are expanded using the vertices of the subvolume.
Definition at line 13 of file CylinderBoundsExpander.h.
|
inherited |
Abrivation of the transform getter.
Definition at line 62 of file BoundsExpander.h.
|
explicit |
Constructor with an optional logger instance.
Definition at line 11 of file CylinderBoundsExpander.cxx.
|
inherited |
Returns the transform from the nominal volume center to the middle point to all seen vertices.
Definition at line 42 of file BoundsExpander.cxx.
|
staticinherited |
Returns the vertices from a surface.
| tgContext | The geometry context to align the surface |
| volume | The surface from which the vertices shall be retrieved |
| nSegments | Number of segments to be generated |
Don't use the polyhedron representation for rectangles and trapezoids as we need the central point on the edge to properly constrain the radius of a surrounding cylinder
Definition at line 131 of file BoundsExpander.cxx.
|
staticinherited |
Returns the vertices from a volume.
| tgContext | The geometry context to align the volume |
| volume | The volume from which the vertices shall be retrieved |
| nSegments | Number of segments to be generated |
Definition at line 114 of file BoundsExpander.cxx.
|
overridevirtual |
Expand the bounds from a chamber.
| tgContext | The goemetry contex to position the chamber in space |
| chamber | Reference to the chamber from which the vertices are extracted |
Implements MuonGMR4::BoundsExpander.
Definition at line 17 of file CylinderBoundsExpander.cxx.
| void MuonGMR4::BoundsExpander::expand | ( | const Acts::GeometryContext & | tgContext, |
| const MuonGMR4::Chamber & | chamber ) |
Use the expand overloads w.r.t.
chamber, sector
Definition at line 74 of file BoundsExpander.cxx.
| void MuonGMR4::BoundsExpander::expand | ( | const Acts::GeometryContext & | tgContext, |
| const MuonGMR4::MuonReadoutElement & | readoutElement, | ||
| Acts::VolumeBoundFactory & | boundFactory ) |
Use the expand overloads w.r.t.
chamber, sector
Definition at line 86 of file BoundsExpander.cxx.
| void MuonGMR4::BoundsExpander::expand | ( | const Acts::GeometryContext & | tgContext, |
| const MuonGMR4::SpectrometerSector & | sector ) |
Use the expand overloads w.r.t.
chamber, sector
Definition at line 79 of file BoundsExpander.cxx.
|
inherited |
Returns the ACTS logegr object.
Definition at line 36 of file BoundsExpander.cxx.
|
finaloverridevirtual |
Crate volume bounds that enclose the readout element from the central localToGlobalTransform.
| readoutElement | The readout element of interest |
| boundFactory | The factory used to create the bounds |
Implements MuonGMR4::BoundsExpander.
Definition at line 31 of file CylinderBoundsExpander.cxx.
|
static |
Use the makeBounds overload for the readout element.
Definition at line 59 of file BoundsExpander.cxx.
|
inherited |
Creates an empty tracking volume.
The volume will be positioned at the vertex center
| factory | The bound factory to create the bounds |
| volName | The name of the tracking volume |
Definition at line 190 of file BoundsExpander.cxx.
|
inherited |
Returns the triplet of the maximum coordinates from the ensemble of all seen vertices.
Definition at line 111 of file BoundsExpander.cxx.
|
inherited |
Returns the triplet of the minimum coordinates from the ensemble of all seen vertices.
Definition at line 108 of file BoundsExpander.cxx.
|
inherited |
Update the center point from a list of global vertices.
| vertices | List of vertices expressed in th ATLAS frame |
Definition at line 91 of file BoundsExpander.cxx.
| double & MuonGMR4::CylinderBoundsExpander::rMax | ( | ) |
| double MuonGMR4::CylinderBoundsExpander::rMax | ( | ) | const |
| double & MuonGMR4::CylinderBoundsExpander::rMin | ( | ) |
| double MuonGMR4::CylinderBoundsExpander::rMin | ( | ) | const |
Assign an extra margin to the constructed bounds.
| extraR | Extra margin in radial direction |
| extraZ | Extra margin in longitudinal direction |
Definition at line 13 of file CylinderBoundsExpander.cxx.
|
inherited |
Returns the transform from the ATLAS frame to the center of all seen vertices.
Definition at line 88 of file BoundsExpander.cxx.
| double & MuonGMR4::CylinderBoundsExpander::zMax | ( | ) |
Maximum seen longitudinal displacement (non-const).
Definition at line 47 of file CylinderBoundsExpander.cxx.
| double MuonGMR4::CylinderBoundsExpander::zMax | ( | ) | const |
| double & MuonGMR4::CylinderBoundsExpander::zMin | ( | ) |
Minimum seen longitudinal displacement (non-const).
Definition at line 45 of file CylinderBoundsExpander.cxx.
| double MuonGMR4::CylinderBoundsExpander::zMin | ( | ) | const |
|
private |
|
private |
|
privateinherited |
Maximum value seen by the recenter method.
Definition at line 132 of file BoundsExpander.h.
|
privateinherited |
Minimum value seen by the recenter method.
Definition at line 134 of file BoundsExpander.h.
|
privateinherited |
Definition at line 125 of file BoundsExpander.h.
|
private |
Maximum r of any shown vertex.
Definition at line 51 of file CylinderBoundsExpander.h.
|
private |
Minimum r of any shown vertex.
Definition at line 49 of file CylinderBoundsExpander.h.
|
privateinherited |
Extra shift to center all the vertices.
Definition at line 130 of file BoundsExpander.h.
|
privateinherited |
External method to go from ATLAS to the reference frame.
Definition at line 128 of file BoundsExpander.h.
|
private |
|
private |