![]() |
ATLAS Offline Software
|
#include <BoundsExpander.h>
Public Types | |
| using | VolumeAligner_t = std::function<Acts::Transform3(const Acts::GeometryContext& tgContext)> |
| Abrivation of the transform getter. | |
Public Member Functions | |
| BoundsExpander ()=default | |
| Default constructor. | |
| BoundsExpander (const Acts::Transform3 &toVolume, std::unique_ptr< const Acts::Logger > loggerObj=nullptr) | |
| Constructor with a transform from the global -> local frame of the volume. | |
| void | expand (const Acts::GeometryContext &tgContext, const MuonGMR4::Chamber &chamber) |
| Expand the bounds from a chamber. | |
| void | expand (const Acts::GeometryContext &tgContext, const MuonGMR4::SpectrometerSector §or) |
| Expand the bounds from a sector. | |
| void | expand (const Acts::GeometryContext &tgContext, const MuonGMR4::MuonReadoutElement &readoutElement, Acts::VolumeBoundFactory &boundFactory) |
| Expand the bounds from a readout element. | |
| virtual void | expand (const Acts::GeometryContext &tgContext, const Acts::Volume &volume)=0 |
| Expand the bound definition from a generic volume. | |
| virtual std::shared_ptr< Acts::VolumeBounds > | makeBounds (Acts::VolumeBoundFactory &boundFactory)=0 |
| Make the final bounds after all volumes are passed via the expand method. | |
| 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::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. | |
| static std::shared_ptr< Acts::VolumeBounds > | makeBounds (const MuonGMR4::MuonReadoutElement &readoutElement, Acts::VolumeBoundFactory &boundFactory) |
| Crate volume bounds that enclose the readout element from the central localToGlobalTransform. | |
Private Attributes | |
| 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. | |
Definition at line 38 of file BoundsExpander.h.
| using MuonGMR4::BoundsExpander::VolumeAligner_t = std::function<Acts::Transform3(const Acts::GeometryContext& tgContext)> |
Abrivation of the transform getter.
Definition at line 62 of file BoundsExpander.h.
|
explicitdefault |
Default constructor.
|
explicit |
Constructor with a transform from the global -> local frame of the volume.
| toVolume | The Transform to the volume |
| loggerObj | The logger instance |
Definition at line 25 of file BoundsExpander.cxx.
| const Acts::Transform3 & MuonGMR4::BoundsExpander::boxMidPoint | ( | ) | const |
Returns the transform from the nominal volume center to the middle point to all seen vertices.
Definition at line 42 of file BoundsExpander.cxx.
|
static |
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.
|
static |
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.
|
pure virtual |
Expand the bound definition from a generic volume.
| tgContext | The geometry context to align the volume in space |
| volume | The volume of interest |
Implemented in MuonGMR4::CylinderBoundsExpander, and MuonGMR4::TrapezoidBoundsExpander.
| void MuonGMR4::BoundsExpander::expand | ( | const Acts::GeometryContext & | tgContext, |
| const MuonGMR4::Chamber & | chamber ) |
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 |
Definition at line 32 of file BoundsExpander.cxx.
| void MuonGMR4::BoundsExpander::expand | ( | const Acts::GeometryContext & | tgContext, |
| const MuonGMR4::MuonReadoutElement & | readoutElement, | ||
| Acts::VolumeBoundFactory & | boundFactory ) |
Expand the bounds from a readout element.
| tgContext | The geometry context to align the readout element in space |
| readoutElement | The readout element of interest |
| boundFactory | To create the temporary volume bounds enclosing the readout element |
Definition at line 81 of file BoundsExpander.cxx.
| void MuonGMR4::BoundsExpander::expand | ( | const Acts::GeometryContext & | tgContext, |
| const MuonGMR4::SpectrometerSector & | sector ) |
Expand the bounds from a sector.
| tgContext | The goemetry contex to position the sector in space |
| sector | Reference to the sector from which the vertices are extracted |
Definition at line 38 of file BoundsExpander.cxx.
| const Acts::Logger & MuonGMR4::BoundsExpander::logger | ( | ) | const |
|
pure virtual |
Make the final bounds after all volumes are passed via the expand method.
| boundFactory | The factory object used to create the final bounds |
Implemented in MuonGMR4::CylinderBoundsExpander, and MuonGMR4::TrapezoidBoundsExpander.
|
static |
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 |
Definition at line 46 of file BoundsExpander.cxx.
| std::unique_ptr< Acts::TrackingVolume > MuonGMR4::BoundsExpander::makeEnvelope | ( | Acts::VolumeBoundFactory & | factory, |
| std::string_view | volName ) |
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.
| std::span< const double > MuonGMR4::BoundsExpander::maxima | ( | ) | const |
Returns the triplet of the maximum coordinates from the ensemble of all seen vertices.
Definition at line 111 of file BoundsExpander.cxx.
| std::span< const double > MuonGMR4::BoundsExpander::minima | ( | ) | const |
Returns the triplet of the minimum coordinates from the ensemble of all seen vertices.
Definition at line 108 of file BoundsExpander.cxx.
| void MuonGMR4::BoundsExpander::reCenter | ( | std::span< const Amg::Vector3D > | vertices | ) |
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.
| Acts::Transform3 MuonGMR4::BoundsExpander::toVertexCenter | ( | ) | const |
Returns the transform from the ATLAS frame to the center of all seen vertices.
Definition at line 88 of file BoundsExpander.cxx.
|
private |
Maximum value seen by the recenter method.
Definition at line 132 of file BoundsExpander.h.
|
private |
Minimum value seen by the recenter method.
Definition at line 134 of file BoundsExpander.h.
|
private |
Definition at line 125 of file BoundsExpander.h.
|
private |
Extra shift to center all the vertices.
Definition at line 130 of file BoundsExpander.h.
|
private |
External method to go from ATLAS to the reference frame.
Definition at line 128 of file BoundsExpander.h.