10#include <GaudiKernel/SystemOfUnits.h>
14# include "Acts/Surfaces/Surface.hpp"
15# include "Acts/Surfaces/TrapezoidBounds.hpp"
23 ostr<<
"chamber shortWidth/longWidth/length [mm]: "<<(2.*pars.halfShortWidth)<<
"/";
24 ostr<<(2.*pars.halfLongWidth)<<
"/"<<(2.*pars.halfHeight)<<std::endl;
39 if (
m_pars.layers.empty()) {
41 return StatusCode::FAILURE;
45 m_pars.layerBounds->makeBounds<Acts::TrapezoidBounds>(
m_pars.halfShortWidth,
48 90.*Gaudi::Units::deg)));
50 for (
unsigned int layer = 0; layer <
m_pars.layers.size(); ++layer) {
52 if (
m_pars.layers[layer]->hash() != layHash) {
54 return StatusCode::FAILURE;
68 m_pars.layerBounds.reset();
70 return StatusCode::SUCCESS;
78#if defined(FLATTEN) && defined(__GNUC__)
88 if (
static_cast<unsigned int>(lHash) <
m_pars.layers.size()) {
91 ATH_MSG_WARNING(__FILE__<<
":"<<__LINE__<<
" The layer hash "<<
static_cast<unsigned int>(lHash)
92 <<
" is out of range. Maximum range "<<
m_pars.layers.size());
93 return Amg::Vector3D::Zero();
97#if defined(FLATTEN) && defined(__GNUC__)
107 if (
static_cast<unsigned int>(lHash) <
m_pars.layers.size()) {
110 ATH_MSG_WARNING(__FILE__<<
":"<<__LINE__<<
" The layer hash "<<
static_cast<unsigned int>(lHash)
111 <<
" is out of range. Maximum range "<<
m_pars.layers.size());
112 return Amg::Vector3D::Zero();
115#if defined(FLATTEN) && defined(__GNUC__)
125 if (
static_cast<unsigned int>(lHash) <
m_pars.layers.size()) {
128 ATH_MSG_WARNING(__FILE__<<
":"<<__LINE__<<
" The layer hash "<<
static_cast<unsigned int>(lHash)
129 <<
" is out of range. Maximum range "<<
m_pars.layers.size());
130 return Amg::Vector3D::Zero();
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
This is a "hash" representation of an Identifier.
const StripLayer & stripLayer(const Identifier &measId) const
StatusCode initElement() override final
Element initialization.
MmReadoutElement(defineArgs &&args)
const parameterBook & getParameters() const
static unsigned int stripNumber(const IdentifierHash &measHash)
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
IdentifierHash layerHash(const Identifier &measId) const override final
Amg::Vector3D leftStripEdge(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge.
Amg::Vector3D stripPosition(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
Amg::Vector3D rightStripEdge(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge.
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 stereoAngle() const
Returns the value of the stereo angle.
double shortHalfHeight() const
Returns the shorter half height of the panel.
double longHalfHeight() const
Returns the longer half height of the panel.
Amg::Vector3D localStripRightEdge(unsigned int stripNum, bool phiView=false) const
Returns the position of the right strip edge at (negative y in the strip design description) in the l...
Amg::Vector3D localStripPosition(unsigned int stripum, bool phiView=false) const
Returns the position of the strip centre expressed in the frame of the local readout plane.
const Amg::Transform3D & toOrigin() const
Returns the transformation to go from the strip layer center to the origin of the Strip chamber.
Amg::Vector3D localStripLeftEdge(unsigned int stripNum, bool phiView=false) const
Returns the position of the strip edge at (positive y in the strip design description) in the local c...
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)
MmReadoutElement::parameterBook parameterBook
Set of parameters to describe a RPC chamber.