10#include <GaudiKernel/SystemOfUnits.h>
14# include "Acts/Surfaces/RectangleBounds.hpp"
21 ostr<<
"chamber width/length/thickness [mm]: "<<(2.*
pars.halfWidth)<<
"/";
22 ostr<<(2.*
pars.halfLength)<<
"/"<<(2.*
pars.halfThickness)<<std::endl;
23 if (
pars.etaDesign) ostr<<
"Eta strips: "<<(*
pars.etaDesign)<<std::endl;
24 if (
pars.phiDesign) ostr<<
"Phi strips: "<<(*
pars.phiDesign)<<std::endl;
40 if (
m_pars.layers.empty()) {
42 return StatusCode::FAILURE;
46 m_pars.layerBounds->makeBounds<Acts::RectangleBounds>(
m_pars.halfWidth,
49 for (
unsigned int layer = 0; layer <
m_pars.layers.size(); ++layer) {
51 if (!
m_pars.layers[layer]) {
52 ATH_MSG_VERBOSE(
"Layer "<<layer <<
" has not sensor layout associated.");
61 m_pars.layerBounds->makeBounds<Acts::RectangleBounds>(design.
halfWidth(),
68 m_pars.layerBounds.reset();
70 return StatusCode::SUCCESS;
77#if defined(FLATTEN) && defined(__GNUC__)
89#if defined(FLATTEN) && defined(__GNUC__)
101#if defined(FLATTEN) && defined(__GNUC__)
128 return std::abs(refPoint - layout->to2D(posInStripPlane,
measuresPhi(measHeash)).
y());
Scalar mag() const
mag method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
This is a "hash" representation of an Identifier.
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...
Amg::Vector3D leftStripEdge(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the global posiition of the strip edge at positive local Y.
StatusCode initElement() override final
Element initialization.
int doubletPhi() const
Returns the doublet Phi field of the MuonReadoutElement identifier.
static bool measuresPhi(const IdentifierHash &measHash)
double distanceToEdge(const IdentifierHash &measHash, const Amg::Vector3D &posInStripPlane, const EdgeSide side) const
Returns the disance to the readout.
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
IdentifierHash layerHash(const Identifier &measId) const override final
static unsigned stripNumber(const IdentifierHash &measHash)
Amg::Vector3D rightStripEdge(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge at negative local Y.
const StripLayerPtr & sensorLayout(const IdentifierHash &measHash) const
Access to the StripLayer associated to a given measurement Hash.
static IdentifierHash createHash(const unsigned strip, const unsigned gasGap, const unsigned doubPhi, const bool measPhi)
Constructs an Identifier hash from the Identifier fields controlled by this readout element.
const parameterBook & getParameters() const
Amg::Vector3D chamberStripPos(const IdentifierHash &measHash) const
Returns the local strip position w.r.t. to the chamber origin.
Amg::Vector3D stripPosition(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
double m_gasThickness
Distance between 2 gas gaps (Radial direction)
RpcReadoutElement(defineArgs &&args)
static unsigned doubletPhiNumber(const IdentifierHash &measHash)
static unsigned gasGapNumber(const IdentifierHash &measHash)
virtual ~RpcReadoutElement()
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.
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 RPC chamber.