ATLAS Offline Software
SpectrometerSector.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONREADOUTGEOMETRYR4_SPECTROMETERSECTOR_H
5 #define MUONREADOUTGEOMETRYR4_SPECTROMETERSECTOR_H
6 
7 #ifndef SIMULATIONBASE
8 
12 
13 #include <set>
14 
15 namespace Acts {
16  class TrapezoidVolumeBounds;
17  class Volume;
18 }
19 namespace MuonGMR4{
20  class SpectrometerSector;
21  class Chamber;
22 }
23 
24 namespace MuonGMR4 {
41  public:
43  using ChamberSet = std::vector<ChamberPtr>;
44 
49  double yLeft{0.}; // left edge
50  double yRight{0.}; // right edge
51  double zBottom{0.}; // bottom edge
52  double zTop{0.}; // top edge
54  };
55 
56  struct defineArgs{
60  std::shared_ptr<Acts::TrapezoidVolumeBounds> bounds{};
62  Amg::Transform3D locToGlobTrf{Amg::Transform3D::Identity()};
63 
64  std::vector<chamberLocation> chamberLocs{};
65  };
66 
72 
73  bool operator<(const SpectrometerSector& other) const;
74 
76  std::string identString() const;
78  const Muon::IMuonIdHelperSvc* idHelperSvc() const;
82  int stationPhi() const;
84  int sector() const;
86  int8_t side() const;
88  bool barrel() const;
95  const ChamberSet& chambers() const;
97  double halfXLong() const;
99  double halfXShort() const;
101  double halfY() const;
103  double halfZ() const;
105  const defineArgs& parameters() const;
108  std::shared_ptr<Acts::Volume> boundingVolume(const ActsGeometryContext& gctx) const;
110  std::shared_ptr<Acts::TrapezoidVolumeBounds> bounds() const;
114  const std::vector<chamberLocation> & chamberLocations() const;
115 
116 
117  private:
119  };
120 
121  std::ostream& operator<<(std::ostream& ostr,
123 
124  std::ostream& operator<<(std::ostream& ostr,
125  const SpectrometerSector& chamber);
126 
127 }
128 
129 
130 #endif
131 #endif
GeoModel::TransientConstSharedPtr
The TransientConstSharedPtr allows non-const access if the pointer itself is non-const but in the con...
Definition: TransientConstSharedPtr.h:13
MuonGMR4::SpectrometerSector::boundingVolume
std::shared_ptr< Acts::Volume > boundingVolume(const ActsGeometryContext &gctx) const
Returns the Acts::Volume representation of the sector.
Definition: SpectrometerSector.cxx:63
MuonGMR4::SpectrometerSector::sector
int sector() const
Returns the sector of the MS-sector.
Definition: SpectrometerSector.cxx:43
MuonGMR4::RpcReadoutElement::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:46
MuonGMR4::SpectrometerSector::side
int8_t side() const
Returns the side of the MS-sector 1 -> A side ; -1 -> C side.
Definition: SpectrometerSector.cxx:36
xAOD::L2MuonParameters::Chamber
Chamber
Define chamber types and locations.
Definition: TrigMuonDefs.h:15
MuonGMR4::SpectrometerSector
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
Definition: SpectrometerSector.h:40
MuonGMR4::SpectrometerSector::stationPhi
int stationPhi() const
: Returns the station phi of the sector
Definition: SpectrometerSector.cxx:42
ActsTrk::DetectorType
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
Definition: GeometryDefs.h:17
MuonGMR4::SpectrometerSector::chamberLocation::yLeft
double yLeft
Definition: SpectrometerSector.h:49
calibdata.chamber
chamber
Definition: calibdata.py:32
MuonGMR4::SpectrometerSector::chambers
const ChamberSet & chambers() const
Returns the associated chambers with this sector.
Definition: SpectrometerSector.cxx:50
MuonGMR4::SpectrometerSector::m_args
defineArgs m_args
Definition: SpectrometerSector.h:118
MuonGMR4::SpectrometerSector::readoutEles
Chamber::ReadoutSet readoutEles() const
Returns the list of all associated readout elements.
Definition: SpectrometerSector.cxx:69
ActsTrk::DetectorType::UnDefined
@ UnDefined
Small Thing Gap chambers (NSW)
MuonGMR4::SpectrometerSector::defineArgs
Definition: SpectrometerSector.h:56
MuonGMR4::SpectrometerSector::chamberLocation::zTop
double zTop
Definition: SpectrometerSector.h:52
MuonGMR4::SpectrometerSector::halfXShort
double halfXShort() const
Short extend of the chamber in the x-direction at negative Y.
Definition: SpectrometerSector.cxx:58
MuonGMR4::SpectrometerSector::SpectrometerSector
SpectrometerSector(const SpectrometerSector &other)=delete
Delete the copy constructor and copy assignment.
MuonGMR4::SpectrometerSector::halfZ
double halfZ() const
Thickness of the chamber in the z-direction.
Definition: SpectrometerSector.cxx:60
MuonGMR4::SpectrometerSector::identString
std::string identString() const
Returns a string encoding the chamber index & the sector of the MS sector.
Definition: SpectrometerSector.cxx:45
MuonGMR4::SpectrometerSector::chamberLocation::type
ActsTrk::DetectorType type
Definition: SpectrometerSector.h:53
MuonGMR4::SpectrometerSector::halfY
double halfY() const
Extend of the chamber in the y-direction.
Definition: SpectrometerSector.cxx:59
MuonGMR4::SpectrometerSector::chamberIndex
Muon::MuonStationIndex::ChIndex chamberIndex() const
Returns the chamber index scheme.
Definition: SpectrometerSector.cxx:41
MuonGMR4::SpectrometerSector::halfXLong
double halfXLong() const
Long-extend of the chamber in the x-direction at positive Y.
Definition: SpectrometerSector.cxx:57
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:20
Acts
Definition: ChamberAssembleTool.h:18
MuonGMR4::SpectrometerSector::chamberLocations
const std::vector< chamberLocation > & chamberLocations() const
returns the list of all MDT chambers in the sector for fast navigation
Definition: SpectrometerSector.cxx:76
MuonGMR4::SpectrometerSector::barrel
bool barrel() const
Returns whether the sector is placed in the barrel.
Definition: SpectrometerSector.cxx:44
MuonGMR4::SpectrometerSector::globalToLocalTrans
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &gctx) const
Returns the global -> local transformation from the ATLAS global.
Definition: SpectrometerSector.cxx:54
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGMR4::Chamber::ReadoutSet
std::vector< const MuonReadoutElement * > ReadoutSet
Define the list of read out elements of the chamber.
Definition: Chamber.h:25
GeometryDefs.h
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonGMR4::SpectrometerSector::SpectrometerSector
SpectrometerSector(defineArgs &&args)
Standard constructor taking the defining parameters.
Definition: SpectrometerSector.cxx:17
MuonGMR4::SpectrometerSector::defineArgs::chamberLocs
std::vector< chamberLocation > chamberLocs
Definition: SpectrometerSector.h:64
MuonGMR4::SpectrometerSector::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the IdHelpeSvc.
Definition: SpectrometerSector.cxx:40
MuonGMR4::SpectrometerSector::defineArgs::locToGlobTrf
Amg::Transform3D locToGlobTrf
Transformation to the chamber volume.
Definition: SpectrometerSector.h:62
MuonGMR4::SpectrometerSector::defineArgs::bounds
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds
Surrouding box chamber bounds.
Definition: SpectrometerSector.h:60
MuonGMR4::SpectrometerSector::defineArgs::chambers
ChamberSet chambers
List of readout elements in the chamber.
Definition: SpectrometerSector.h:58
MuonGMR4::SpectrometerSector::bounds
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds() const
Returns the volume bounds.
Definition: SpectrometerSector.cxx:66
Chamber.h
MuonGMR4::SpectrometerSector::parameters
const defineArgs & parameters() const
Returns the reference to the defining parameters of the sector.
Definition: SpectrometerSector.cxx:39
MuonGMR4::SpectrometerSector::ChamberSet
std::vector< ChamberPtr > ChamberSet
Definition: SpectrometerSector.h:43
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MuonGMR4::SpectrometerSector::localToGlobalTrans
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &gctx) const
Returns the local -> global tarnsformation from the sector.
Definition: SpectrometerSector.cxx:51
Muon::IMuonIdHelperSvc
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Definition: IMuonIdHelperSvc.h:27
Muon::MuonStationIndex::ChIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
Definition: MuonStationIndex.h:15
MuonGMR4::SpectrometerSector::chamberLocation::yRight
double yRight
Definition: SpectrometerSector.h:50
MuonGMR4::SpectrometerSector::chamberLocation::zBottom
double zBottom
Definition: SpectrometerSector.h:51
MuonGMR4::SpectrometerSector::chamberLocation
: Helper struct for fast approximate navigation.
Definition: SpectrometerSector.h:48
MuonReadoutElement.h
MuonGMR4::operator<<
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
Definition: Chamber.cxx:14
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
MuonGMR4::SpectrometerSector::operator=
SpectrometerSector & operator=(const SpectrometerSector &other)=delete
MuonGMR4::defineArgs
RpcReadoutElement::defineArgs defineArgs
Definition: RpcReadoutGeomTool.cxx:37
MuonGMR4::SpectrometerSector::operator<
bool operator<(const SpectrometerSector &other) const
Definition: SpectrometerSector.cxx:24