 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONREADOUTGEOMETRYR4_SPECTROMETERSECTOR_H
5 #define MUONREADOUTGEOMETRYR4_SPECTROMETERSECTOR_H
12 #include <Acts/Geometry/TrapezoidVolumeBounds.hpp>
21 class SpectrometerSector;
51 using enum Acts::TrapezoidVolumeBounds::BoundValues;
52 using BoundPtr_t = std::shared_ptr<const Acts::TrapezoidVolumeBounds>;
87 double width(
const double y0)
const {
88 const double tanPhiHalf = 0.5*(
m_bounds->get(eHalfLengthXposY) -
m_bounds->get(eHalfLengthXnegY))
90 return m_bounds->get(eHalfLengthXnegY) + tanPhiHalf * (y0 -
minY());
111 std::shared_ptr<Acts::TrapezoidVolumeBounds>
bounds{};
152 double halfY()
const;
154 double halfZ()
const;
161 std::shared_ptr<Acts::TrapezoidVolumeBounds>
bounds()
const;
176 const SpectrometerSector&
chamber);
const BoundPtr_t & bounds() const
Returns the pointer to the associate bounds.
The TransientConstSharedPtr allows non-const access if the pointer itself is non-const but in the con...
std::shared_ptr< Acts::Volume > boundingVolume(const ActsGeometryContext &gctx) const
Returns the Acts::Volume representation of the sector.
int sector() const
Returns the sector of the MS-sector.
std::shared_ptr< const Acts::TrapezoidVolumeBounds > BoundPtr_t
int8_t side() const
Returns the side of the MS-sector 1 -> A side ; -1 -> C side.
const MuonReadoutElement * readoutEle() const
Returns the poter to the associate readout element
Chamber
Define chamber types and locations.
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
int stationPhi() const
: Returns the station phi of the sector
Amg::Vector3D m_origin
Origin vector of the readout element inside the spectrometer frame.
const MuonReadoutElement * m_reEle
Associated readout element.
const ChamberSet & chambers() const
Returns the associated chambers with this sector.
Chamber::ReadoutSet readoutEles() const
Returns the list of all associated readout elements.
const Amg::Vector3D & location() const
Returns the location.
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
double halfXShort() const
Short extend of the chamber in the x-direction at negative Y.
chamberLocation(chamberLocation &&other)=default
Move constructor.
SpectrometerSector(const SpectrometerSector &other)=delete
Delete the copy constructor and copy assignment.
double minY() const
Returns the minimum y covered by the chamber location.
double halfZ() const
Thickness of the chamber in the z-direction.
std::string identString() const
Returns a string encoding the chamber index & the sector of the MS sector.
double halfY() const
Extend of the chamber in the y-direction.
chamberLocation(const Amg::Vector3D &origin, const MuonReadoutElement *reEle, BoundPtr_t bounds)
Standard constructor taking the position of the readout element inside the sector frame,...
Muon::MuonStationIndex::ChIndex chamberIndex() const
Returns the chamber index scheme.
double halfXLong() const
Long-extend of the chamber in the x-direction at positive Y.
chamberLocation(const chamberLocation &other)=default
Copy constructor.
double maxY() const
Returns the maximum u covered by the chamber location.
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
const std::vector< chamberLocation > & chamberLocations() const
returns the list of all MDT chambers in the sector for fast navigation
bool barrel() const
Returns whether the sector is placed in the barrel.
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &gctx) const
Returns the global -> local transformation from the ATLAS global.
Eigen::Affine3d Transform3D
std::vector< const MuonReadoutElement * > ReadoutSet
Define the list of read out elements of the chamber.
chamberLocation & operator=(chamberLocation &&other)=default
Move assignment.
Include the GeoPrimitives which need to be put first.
SpectrometerSector(defineArgs &&args)
Standard constructor taking the defining parameters.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the IdHelpeSvc.
double width(const double y0) const
Calculate the strip / tube length at a given position in the y-z plane.
Amg::Transform3D locToGlobTrf
Transformation to the chamber volume.
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds
Surrouding box chamber bounds.
chamberLocation & operator=(const chamberLocation &other)=default
Copy assignment.
ChamberSet chambers
List of readout elements in the chamber.
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds() const
Returns the volume bounds.
Eigen::Matrix< double, 3, 1 > Vector3D
const defineArgs & parameters() const
Returns the reference to the defining parameters of the sector.
std::vector< ChamberPtr > ChamberSet
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &gctx) const
Returns the local -> global tarnsformation from the sector.
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
bool insideYZ(const Amg::Vector3D &pos) const
Returns whether the external position is inside the boundaries in the y-z plane.
ChIndex
enum to classify the different chamber layers in the muon spectrometer
std::vector< chamberLocation > detectorLocs
double maxZ() const
Returns the maximum u covered by the chamber location.
: Helper struct for fast approximate navigation.
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
BoundPtr_t m_bounds
Pointer to the associated bounds.
SpectrometerSector & operator=(const SpectrometerSector &other)=delete
RpcReadoutElement::defineArgs defineArgs
bool operator<(const SpectrometerSector &other) const
double minZ() const
Returns the minimum y covered by the chamber location.