|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef READOUTGEOMETRYBASE_SOLIDSTATEDETECTORELEMENTBASE_H
10 #define READOUTGEOMETRYBASE_SOLIDSTATEDETECTORELEMENTBASE_H
19 #include "GeoModelKernel/GeoDefinitions.h"
20 #include "Identifier/Identifier.h"
31 #include "CLHEP/Geometry/Point3D.h"
38 class GeoVFullPhysVol;
46 class SiReadoutCellId;
141 const GeoVFullPhysVol* geophysvol,
721 #endif // INDETREADOUTGEOMETRY_SIDETECTORELEMENTBASE_H
HepGeom::Point3D< double > hitLocalToLocal3D(const HepGeom::Point3D< double > &hitPosition) const
Same as previuos method but 3D.
Identifier identifierOfPosition(const Amg::Vector2D &localPos) const
Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift)
Ensure that the extensions for the Vector3D are properly loaded.
const HepGeom::Transform3D & transformCLHEP() const
Local (reconstruction frame) to global transform.
virtual ~SolidStateDetectorElementBase()
Destructor.
SiCellId connectedCell(const SiCellId cellId, int number) const
Get the cell ids sharing the readout for this cell.
SiCellId cellIdOfPosition(const Amg::Vector2D &localPos) const
As in previous method but returns SiCellId.
const SiCommonItems * m_commonItems
void getExtent(CachedVals &cache) const
Calculate extent in r,z and phi.
void getCorners(HepGeom::Point3D< double > *corners) const
Return the four corners of an element in local coordinates.
bool depthDirection() const
Return information on orientation.
SiIntersect inDetector(const Amg::Vector2D &localPosition, double phiTol, double etaTol) const
Test that it is in the active region.
double hitEtaDirection() const
See previous method.
IdentifierHash m_idHash
hash id of this detector element
Eigen::Matrix< double, 2, 1 > Vector2D
const HepGeom::Vector3D< double > & phiAxisCLHEP() const
To determine if readout direction between online and offline needs swapping, see methods swapPhiReado...
virtual const Amg::Vector3D & center() const override final
Center in global coordinates.
const Amg::Vector3D & etaAxis() const
double hitPhiDirection() const
See previous method.
SolidStateDetectorElementBase()=delete
Don't allow no-argument constructor.
Trk::Surface & surface()
Element Surface.
const GeoAlignmentStore * m_geoAlignStore
InDetDD::CarrierType carrierType() const
carrier type for readout.
bool const RAWDATA *ch2 const
bool msgLvl(MSG::Level lvl) const
Declaring the Method providing Verbosity Level (inline)
void setCache()
Set/calculate cache values (inline)
void getEtaPhiRegion(double deltaZ, double &etaMin, double &etaMax, double &phiMin, double &phiMax, double &rz) const
Method for building up region of interest table.
double etaPitch() const
Pitch (inline methods)
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
const AtlasDetectorID * getIdHelper() const
Returns the id helper (inline)
CxxUtils::CachedValue< CachedVals > m_cache
std::unique_ptr< Trk::Surface > m_surface
double hitDepthDirection() const
Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition).
virtual Identifier identifierFromCellId(const SiCellId &cellId) const =0
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie s...
void getEtaPhiPoint(const HepGeom::Point3D< double > &point, double deltaZ, double &etaMin, double &etaMax, double &phi) const
Get eta and phi coresponding to a point in local coordinates.
const DetectorDesign * m_design
local description of this detector element
const Amg::Transform3D defTransform() const
const HepGeom::Transform3D recoToHitTransform() const
Transform to go from local reconstruction frame to local hit frame.
int numberOfConnectedCells(const SiCellId cellId) const
Test if readout cell has more than one diode associated with it.
void commonConstructor()
Common code for constructors.
virtual double get_rz() const =0
virtual const DetectorDesign & design() const
access to the local description (inline):
virtual void updateCache() const
Recalculate cached values.
Eigen::Affine3d Transform3D
Cached value with atomic update.
double width() const
Methods from design (inline)
HepGeom::Vector3D< double > m_phiAxisCLHEP
double depthAngle() const
bool m_depthDirection
Direction of depth axis.
virtual const Trk::SurfaceBounds & bounds() const override final
Return the boundaries of the element.
bool swapEtaReadoutDirection() const
For eta_index (only relevant for pixel) (inline)
virtual const Amg::Vector3D & normal() const override final
Get reconstruction local normal axes in global frame.
Amg::Vector2D hitLocalToLocal(double xEta, double xPhi) const
Simulation/Hit local frame to reconstruction local frame.
HepGeom::Vector3D< double > m_centerCLHEP
HepGeom::Point3D< double > globalPositionHit(const HepGeom::Point3D< double > &simulationLocalPos) const
transform a hit local position into a global position (inline):
HepGeom::Transform3D m_transformCLHEP
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
Cached value with atomic update.
DetectorDesign::Axis m_hitDepth
DetectorDesign::Axis m_hitEta
Axes.
MsgStream & msg(MSG::Level lvl) const
Declaring the Message method for further use (inline)
DetectorDesign::Axis m_hitPhi
bool etaDirection() const
Eigen::Matrix< double, 3, 1 > Vector3D
SolidStateDetectorElementBase & operator=(SolidStateDetectorElementBase &&)=delete
Don't allow move assignment operator.
HepGeom::Vector3D< double > m_etaAxisCLHEP
Identifier m_id
identifier of this detector element
Amg::Vector2D rawLocalPositionOfCell(const SiCellId &cellId) const
Returns position (center) of cell.
Amg::Transform3D m_transform
double minWidth() const
Min width.
HepGeom::Point3D< double > globalPosition(const HepGeom::Point3D< double > &localPos) const
transform a reconstruction local position into a global position (inline):
const HepGeom::Transform3D defTransformCLHEP() const
Default Local (reconstruction frame) to global transform ie with no misalignment.
const Amg::Vector3D & phiAxis() const
bool swapPhiReadoutDirection() const
Determine if readout direction between online and offline needs swapping.
void invalidate()
Signal that cached values are no longer valid.
virtual Trk::DetectorElemType detectorType() const override
TrkDetElementBase interface detectorType.
const HepGeom::Vector3D< double > & etaAxisCLHEP() const
Get reconstruction local eta axes in global frame.
Amg::Vector2D localPosition(const HepGeom::Point3D< double > &globalPosition) const
transform a global position into a 2D local position (reconstruction frame) (inline)
double length() const
Length in eta direction (z - barrel, r - endcap)
SolidStateDetectorElementBase(SolidStateDetectorElementBase &&)=delete
Don't allow move constructor.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
SolidStateDetectorElementBase(const SolidStateDetectorElementBase &)=delete
Don't allow copy constructor.
const SiCommonItems * getCommonItems() const
bool phiDirection() const
const GeoTrf::Transform3D & transformHit() const
Local (simulation/hit frame) to global transform.
SolidStateDetectorElementBase & operator=(const SolidStateDetectorElementBase &)=delete
Don't allow assignment operator.
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const =0
SiCellId from Identifier.
virtual Identifier identify() const override final
identifier of this detector element (inline)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
virtual const Amg::Transform3D & transform() const override final
Return local to global transform.
CxxUtils::CachedValue< AxisDir > m_axisDir
Amg::Transform3D m_transformHit
double maxWidth() const
Max width.