8#include <GaudiKernel/SystemOfUnits.h>
12# include "Acts/Surfaces/TrapezoidBounds.hpp"
13# include "Acts/Surfaces/Surface.hpp"
23 ostr<<
"chamber dimensions --- ";
24 ostr<<
"thickness: "<<
pars.halfThickness<<
" ";
25 ostr<<
"height: "<<
pars.halfHeight<<
" ";
26 ostr<<
"shortWidth: "<<
pars.halfWidthShort<<
" ";
27 ostr<<
"longWidth: "<<
pars.halfWidthLong<<
" --- ";
41 bool hasSensor{
false};
42 for (std::size_t s = 0; s <
m_pars.sensorLayouts.size(); ++s) {
44 if (!layPtr)
continue;
45 if (layPtr->hash() != s) {
46 ATH_MSG_FATAL(
"Layer "<<(*layPtr)<<
" has an unexpected hash "<<s);
47 return StatusCode::FAILURE;
55 m_pars.sensorLayouts[
static_cast<unsigned>(layHash)] = layPtr;
61 const double rotAngle =
isStrip(layPtr->hash()) ? 0. : 90.*Gaudi::Units::deg;
67 <<
" isStrip: "<<
isStrip(layPtr->hash())<<
" hash: "<<s);
72 return StatusCode::FAILURE;
76 m_pars.layerBounds->makeBounds<Acts::TrapezoidBounds>(
m_pars.halfWidthShort,
79 m_pars.layerBounds.reset();
85 return StatusCode::SUCCESS;
95 return Amg::Vector3D::Zero();
Scalar mag() const
mag method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
This is a "hash" representation of an Identifier.
Amg::Vector3D center(const ActsTrk::GeometryContext &ctx) const
Returns the detector center (Which is the same as the detector center of the first measurement layer)
const Amg::Transform3D & localToGlobalTrans(const ActsTrk::GeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
StatusCode planeSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< const Acts::PlanarBounds > pBounds)
Identifier identify() const override final
Return the athena identifier.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
StatusCode createGeoTransform()
StatusCode insertTransform(const IdentifierHash &hash)
Inserts a transfomration for caching.
MuonReadoutElement(const defineArgs &args)
static IdentifierHash geoTransformHash()
Returns the hash that is associated with the surface cache holding the transformation that is placing...
double halfWidth() const
Returns the half height of the strip panel.
double shortHalfHeight() const
Returns the shorter half height of the panel.
double longHalfHeight() const
Returns the longer half height of the panel.
const StripLayerPtr & sensorLayout(const IdentifierHash &hash) const
Returns the pointer to the strip layer associated with the gas gap.
StatusCode initElement() override final
Element initialization.
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
TgcReadoutElement(defineArgs &&args)
Amg::Vector3D channelPosition(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the center of the measurement channel eta measurement: wire gang center phi measurement: stri...
const parameterBook & getParameters() const
static bool isStrip(const IdentifierHash &measHash)
Unpacks whether the measurement hash is a strip.
static unsigned channelNumber(const IdentifierHash &measHash)
Unpacks the channel number from the measurement hash.
static unsigned gasGapNumber(const IdentifierHash &measHash)
Unpacks the gas gap number from the measurement hash.
static IdentifierHash constructHash(unsigned measCh, unsigned gasGap, const bool isStrip)
Constructs the Hash out of the Identifier fields (channel, gasGap, isStrip)
double m_gasThickness
Distance between 2 gas gaps (Z - direction)
virtual ~TgcReadoutElement()
IdentifierHash layerHash(const Identifier &measId) const override final
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
GeoModel::TransientConstSharedPtr< StripLayer > StripLayerPtr
MmReadoutElement::parameterBook parameterBook
Set of parameters to describe a Tgc chamber.