|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef INDETREADOUTGEOMETRY_SIDETECTORELEMENT_H
10 #define INDETREADOUTGEOMETRY_SIDETECTORELEMENT_H
118 const GeoVFullPhysVol* geophysvol,
220 const std::vector<const Trk::Surface*>&
surfaces()
const;
515 #endif // INDETREADOUTGEOMETRY_SIDETECTORELEMENT_H
SiCellId gangedCell(const SiCellId &cellId) const
If cell is ganged return the id of the other cell which shares the readout for this cell,...
SiDetectorElement & operator=(const SiDetectorElement &)=delete
Don't allow assignment operator.
Ensure that the extensions for the Vector3D are properly loaded.
Amg::Transform3D localToModuleTransform() const
Transformation from local element to module frame.
void setOtherSide(const SiDetectorElement *element)
For SCT only.
const SiDetectorElement * m_prevInEta
void setPrevInEta(const SiDetectorElement *element)
Eigen::Matrix< double, 2, 1 > Vector2D
const std::vector< const Trk::Surface * > & surfaces() const
Returns the full list of surfaces associated to this detector element.
Amg::Transform3D localToModuleFrame(const Amg::Transform3D &localTransform) const
Take a transform of the local element frame and return its equivalent in the module frame.
void setPrevInPhi(const SiDetectorElement *element)
void setNextInEta(const SiDetectorElement *element)
SiDetectorElement(const SiDetectorElement &)=delete
Don't allow copy constructor.
bool const RAWDATA *ch2 const
CxxUtils::CachedValue< std::vector< const Trk::Surface * > > m_surfaces
SiDetectorElement()=delete
Don't allow no-argument constructor.
CxxUtils::CachedValue< bool > m_isStereo
bool swapEtaReadoutDirection() const
For eta_index (only relevant for pixel) (inline)
void commonConstructor()
Common code for constructors.
double sinTilt() const
Compute sin(tilt angle) at a given position: at center.
const SiDetectorDesign * m_siDesign
double phiPitch() const
Pitch (inline methods)
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
const SiDetectorElement * prevInEta() const
virtual ~SiDetectorElement()
Destructor.
const Amg::Transform3D & moduleTransform() const
Module to global frame transform.
bool isModuleFrame() const
Check if the element and module frame are the same.
virtual Trk::DetectorElemType detectorType() const override final
TrkDetElementBase interface detectorType.
virtual void updateCache() const override final
Recalculate cached values.
bool swapPhiReadoutDirection() const
Determine if readout direction between online and offline needs swapping.
const SiDetectorElement * nextInPhi() const
virtual Identifier identifierFromCellId(const SiCellId &cellId) const override final
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie s...
Eigen::Affine3d Transform3D
const SiDetectorElement * m_nextInPhi
bool msgLvl(MSG::Level lvl) const
Declaring the Method providing Verbosity Level (inline)
bool isInnermostPixelLayer() const
const SiDetectorElement * prevInPhi() const
double sinStereo() const
Compute sin(stereo angle) at a given position: at center.
std::pair< Amg::Vector3D, Amg::Vector3D > endsOfStrip(const Amg::Vector2D &position) const
Special method for SCT to retrieve the two ends of a "strip" Returned coordinates are in global frame...
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
Cached value with atomic update.
SiDetectorElement(SiDetectorElement &&)=delete
Don't allow move constructor.
const SiDetectorElement * otherSide() const
Useful for SCT only.
Amg::Transform3D defModuleTransform() const
Default module to global frame transform, ie with no misalignment.
Eigen::Matrix< double, 3, 1 > Vector3D
const SiDetectorElement * m_otherSide
void setNextInPhi(const SiDetectorElement *element)
const SiDetectorElement * nextInEta() const
SiDetectorElement & operator=(SiDetectorElement &&)=delete
Don't allow move assignment operator.
HepGeom::Point3D< double > globalPosition(const HepGeom::Point3D< double > &localPos) const
transform a reconstruction local position into a global position (inline):
double sinStereoLocal(const Amg::Vector2D &localPos) const
Angle of strip in local frame with respect to the etaAxis.
const SiDetectorElement * m_prevInPhi
const SiDetectorElement * m_nextInEta
virtual double get_rz() const override final
InDetDD::CarrierType carrierType() const
carrier type for readout.
double sinStereoImpl() const
Private implementation method with no lock at center.
bool nearBondGap(const Amg::Vector2D &localPosition, double etaTol) const
Test if near bond gap within tolerances.
Amg::Vector2D localPosition(const HepGeom::Point3D< double > &globalPosition) const
transform a global position into a 2D local position (reconstruction frame) (inline)
bool determineStereo() const
Find isStereo.
bool isStereo() const
Check if it is the stereo side (useful for SCT)
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
bool isNextToInnermostPixelLayer() const
MsgStream & msg(MSG::Level lvl) const
Declaring the Message method for further use (inline)