ATLAS Offline Software
Loading...
Searching...
No Matches
MuonGMR4::SpectrometerSector::chamberLocation Struct Reference

: Helper struct for fast approximate navigation. More...

#include <SpectrometerSector.h>

Collaboration diagram for MuonGMR4::SpectrometerSector::chamberLocation:

Public Types

using BoundPtr_t = std::shared_ptr<const Acts::VolumeBounds>

Public Member Functions

 chamberLocation (const Amg::Vector3D &origin, const MuonReadoutElement *reEle, BoundPtr_t bounds)
 Standard constructor taking the position of the readout element inside the sector frame, the pointer to the readout element itself and the volume bounds enclosing the element volume.
 chamberLocation (const chamberLocation &other)=default
 Copy constructor.
 chamberLocation (chamberLocation &&other)=default
 Move constructor.
chamberLocationoperator= (const chamberLocation &other)=default
 Copy assignment.
chamberLocationoperator= (chamberLocation &&other)=default
 Move assignment.
bool insideYZ (const Amg::Vector3D &pos) const
 Returns whether the external position is inside the boundaries in the y-z plane.
double minY () const
 Returns the minimum y covered by the chamber location.
double maxY () const
 Returns the maximum u covered by the chamber location.
double minZ () const
 Returns the minimum y covered by the chamber location.
double maxZ () const
 Returns the maximum u covered by the chamber location.
double width (const double y0) const
 Calculate the strip / tube length at a given position in the y-z plane.
const MuonReadoutElementreadoutEle () const
 Returns the poter to the associate readout element.
const BoundPtr_tbounds () const
 Returns the pointer to the associate bounds.
const Amg::Vector3Dlocation () const
 Returns the location.

Private Attributes

Amg::Vector3D m_origin {Amg::Vector3D::Zero()}
 Origin vector of the readout element inside the spectrometer frame.
const MuonReadoutElementm_reEle {nullptr}
 Associated readout element.
BoundPtr_t m_bounds {}
 Pointer to the associated bounds.

Detailed Description

: Helper struct for fast approximate navigation.

Maps regions instrumented by chambers in the y-z frame. Used in pattern recognition.

Definition at line 48 of file SpectrometerSector.h.

Member Typedef Documentation

◆ BoundPtr_t

using MuonGMR4::SpectrometerSector::chamberLocation::BoundPtr_t = std::shared_ptr<const Acts::VolumeBounds>

Definition at line 50 of file SpectrometerSector.h.

Constructor & Destructor Documentation

◆ chamberLocation() [1/3]

MuonGMR4::SpectrometerSector::chamberLocation::chamberLocation ( const Amg::Vector3D & origin,
const MuonReadoutElement * reEle,
BoundPtr_t bounds )
inline

Standard constructor taking the position of the readout element inside the sector frame, the pointer to the readout element itself and the volume bounds enclosing the element volume.

Parameters
originPosition of the readout element centre expressed in the chamber frame
reElePointer to the readout element of interest
boundsPointer to the bounds of interest.

Definition at line 57 of file SpectrometerSector.h.

59 :
60 m_origin{origin}, m_reEle{reEle}, m_bounds{std::move(bounds)}{}
BoundPtr_t m_bounds
Pointer to the associated bounds.
Amg::Vector3D m_origin
Origin vector of the readout element inside the spectrometer frame.
const BoundPtr_t & bounds() const
Returns the pointer to the associate bounds.
const MuonReadoutElement * m_reEle
Associated readout element.

◆ chamberLocation() [2/3]

MuonGMR4::SpectrometerSector::chamberLocation::chamberLocation ( const chamberLocation & other)
default

Copy constructor.

◆ chamberLocation() [3/3]

MuonGMR4::SpectrometerSector::chamberLocation::chamberLocation ( chamberLocation && other)
default

Move constructor.

Member Function Documentation

◆ bounds()

const BoundPtr_t & MuonGMR4::SpectrometerSector::chamberLocation::bounds ( ) const
inline

Returns the pointer to the associate bounds.

Definition at line 92 of file SpectrometerSector.h.

92{ return m_bounds; }

◆ insideYZ()

bool MuonGMR4::SpectrometerSector::chamberLocation::insideYZ ( const Amg::Vector3D & pos) const
inline

Returns whether the external position is inside the boundaries in the y-z plane.

Parameters
posPosition to check

Definition at line 72 of file SpectrometerSector.h.

72 {
73 return minY() <= pos.y() && maxY() >= pos.y() &&
74 minZ() <= pos.z() && maxZ() >= pos.z();
75 }
double minZ() const
Returns the minimum y covered by the chamber location.
double maxY() const
Returns the maximum u covered by the chamber location.
double maxZ() const
Returns the maximum u covered by the chamber location.
double minY() const
Returns the minimum y covered by the chamber location.

◆ location()

const Amg::Vector3D & MuonGMR4::SpectrometerSector::chamberLocation::location ( ) const
inline

Returns the location.

Definition at line 94 of file SpectrometerSector.h.

94{ return m_origin; }

◆ maxY()

double MuonGMR4::SpectrometerSector::chamberLocation::maxY ( ) const
inline

Returns the maximum u covered by the chamber location.

Definition at line 79 of file SpectrometerSector.h.

79{ return m_origin.y() + MuonGMR4::halfY(*m_bounds); }
double halfY(const Acts::VolumeBounds &bounds)
Returns the half-Y length for the parsed volume bounds (Trapezoid/ Cuboid)

◆ maxZ()

double MuonGMR4::SpectrometerSector::chamberLocation::maxZ ( ) const
inline

Returns the maximum u covered by the chamber location.

Definition at line 83 of file SpectrometerSector.h.

83{ return m_origin.z() + MuonGMR4::halfZ(*m_bounds); }
double halfZ(const Acts::VolumeBounds &bounds)
Returns the half-Z length for the parsed volume bounds (Trapezoid/ Cuboid)

◆ minY()

double MuonGMR4::SpectrometerSector::chamberLocation::minY ( ) const
inline

Returns the minimum y covered by the chamber location.

Definition at line 77 of file SpectrometerSector.h.

77{ return m_origin.y() - MuonGMR4::halfY(*m_bounds); }

◆ minZ()

double MuonGMR4::SpectrometerSector::chamberLocation::minZ ( ) const
inline

Returns the minimum y covered by the chamber location.

Definition at line 81 of file SpectrometerSector.h.

81{ return m_origin.z() - MuonGMR4::halfZ(*m_bounds); }

◆ operator=() [1/2]

chamberLocation & MuonGMR4::SpectrometerSector::chamberLocation::operator= ( chamberLocation && other)
default

Move assignment.

◆ operator=() [2/2]

chamberLocation & MuonGMR4::SpectrometerSector::chamberLocation::operator= ( const chamberLocation & other)
default

Copy assignment.

◆ readoutEle()

const MuonReadoutElement * MuonGMR4::SpectrometerSector::chamberLocation::readoutEle ( ) const
inline

Returns the poter to the associate readout element.

Definition at line 90 of file SpectrometerSector.h.

90{ return m_reEle; }

◆ width()

double MuonGMR4::SpectrometerSector::chamberLocation::width ( const double y0) const
inline

Calculate the strip / tube length at a given position in the y-z plane.

Definition at line 85 of file SpectrometerSector.h.

85 {
86 const double tanPhiHalf = 0.5*(MuonGMR4::halfXhighY(*m_bounds)- MuonGMR4::halfXlowY(*m_bounds)) / MuonGMR4::halfZ(*m_bounds);
87 return MuonGMR4::halfXlowY(*m_bounds) + tanPhiHalf * (y0 - minY());
88 }
double halfXhighY(const Acts::VolumeBounds &bounds)
Returns the half-Y length @ posiive Y for the parsed volume bounds (Trapezoid/ Cuboid)
double halfXlowY(const Acts::VolumeBounds &bounds)
Returns the half-X length @ negative Y for the parsed volume bounds (Trapezoid/ Cuboid)

Member Data Documentation

◆ m_bounds

BoundPtr_t MuonGMR4::SpectrometerSector::chamberLocation::m_bounds {}
private

Pointer to the associated bounds.

Definition at line 101 of file SpectrometerSector.h.

101{};

◆ m_origin

Amg::Vector3D MuonGMR4::SpectrometerSector::chamberLocation::m_origin {Amg::Vector3D::Zero()}
private

Origin vector of the readout element inside the spectrometer frame.

Definition at line 97 of file SpectrometerSector.h.

97{Amg::Vector3D::Zero()};

◆ m_reEle

const MuonReadoutElement* MuonGMR4::SpectrometerSector::chamberLocation::m_reEle {nullptr}
private

Associated readout element.

Definition at line 99 of file SpectrometerSector.h.

99{nullptr};

The documentation for this struct was generated from the following file: