8#include <Acts/Geometry/TrapezoidVolumeBounds.hpp>
9#include <Acts/Surfaces/PlaneSurface.hpp>
13 static std::mutex placementMutex{};
21 ostr<<
"halfY: "<<
halfY(*args.bounds)<<
" [mm], ";
22 ostr<<
"halfZ: "<<
halfZ(*args.bounds)<<
" [mm], ";
26 ostr<<chamber.identString()<<
" "<<chamber.parameters();
52 other.readoutEles().front()->identify();
57 return std::format(
"MS chamber {:}",
60 return std::format(
"MS chamber {:} station {:} eta {:02} phi {:02}",
75 return m_args.placement->detectorType();
84 return std::make_shared<Acts::Volume>(*placement,
bounds());
88 std::unique_lock guard{placementMutex};
89 placement->addChild(std::move(child));
105 return m_args.placement->localToGlobalTransform(gctx.
context());
108 return m_args.placement->globalToLocalTransform(gctx.
context());
size_t size() const
Number of registered mappings.
#define ATLAS_THREAD_SAFE
Acts::GeometryContext context() const
Implementation to make a (tracking) volume alignable.
Chamber represent the volume enclosing a muon station.
const SpectrometerSector * m_parent
std::string identString() const
Define a string of the chamber used for debugging.
const Acts::PlaneSurface & surface() const
Returns the surface associated with the chamber.
void addPlacement(std::unique_ptr< ActsTrk::VolumePlacement > &&placement) const
Adds a volume placement to the Chamber's memory management.
const Amg::Transform3D & globalToLocalTransform(const ActsTrk::GeometryContext &gctx) const
Returns the global -> local transformation.
int stationEta() const
Returns the station eta of the chamber.
const Amg::Transform3D & localToGlobalTransform(const ActsTrk::GeometryContext &gctx) const
Returns the transformation chamber frame -> global transformation.
const ReadoutSet & readoutEles() const
Returns the list of contained readout elements.
double halfXLong() const
Long-extend of the chamber in the x-direction at positive Y.
bool operator<(const Chamber &other) const
Comparison operator for set ordering.
Chamber(defineArgs &&args)
Standard constructor taking the defineArgs.
void setParent(const SpectrometerSector *parent)
Sets the connection to the MS sector enclosing the chamber.
const SpectrometerSector * parent() const
Returns the pointer to the MS sector enclosing the chamber.
double halfY() const
Extend of the chamber in the y-direction.
ActsTrk::DetectorType detectorType() const
Returns the first readout elements detectorType (sorted by techIdx).
int sector() const
Returns the MS sector of the chamber.
Muon::MuonStationIndex::ChIndex chamberIndex() const
Returns the chamber index.
int stationPhi() const
Returns the station phi of the chamber.
int stationName() const
Returns an integer representing the stationName.
const defineArgs & parameters() const
Returns the reference to the defining parameters of the chamber.
std::vector< const MuonReadoutElement * > ReadoutSet
Define the list of read out elements of the chamber.
std::shared_ptr< Acts::Volume > boundingVolume() const
Returns the Acts::Volume representation of the chamber.
bool barrel() const
Returns whether the chamber is placed in the barrel.
double halfXShort() const
Short extend of the chamber in the x-direction at negative Y.
int8_t side() const
Returns the side of the chamber.
double halfZ() const
Thickness of the chamber in the z-direction.
std::shared_ptr< Acts::VolumeBounds > bounds() const
Returns the volume bounds.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns a pointer to the idHelperSvc.
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
virtual int sector(const Identifier &id) const =0
return sector number 1-16, odd=large, even=small
virtual bool isEndcap(const Identifier &id) const =0
returns whether this is an endcap Identifier or not
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
@ Mm
Maybe not needed in the migration.
Eigen::Affine3d Transform3D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
double halfY(const Acts::VolumeBounds &bounds)
Returns the half-Y length for the parsed volume bounds (Trapezoid/ Cuboid).
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
double halfZ(const Acts::VolumeBounds &bounds)
Returns the half-Z length for the parsed volume bounds (Trapezoid/ Cuboid).
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).
ChIndex
enum to classify the different chamber layers in the muon spectrometer