36 Axis thicknessDirection):
45 if (stripDirection == thicknessDirection) {
46 throw std::runtime_error(
47 "ERROR: DetectorDesign called with phi and thickness directions equal");
73 "SiDetectorDesign: WARNING! Attempt to allow swapping of xPhi axis direction ignored."
82 "SiDetectorDesign: WARNING! Attempt to allow swapping of xEta axis direction ignored."
91 "SiDetectorDesign: WARNING! Attempt to allow swapping of xDepth axis direction ignored."
107 double phiTol,
double etaTol)
const {
115 if (phiDist < -phiTol || etaDist < -etaTol) {
120 if (phiDist > phiTol && etaDist > etaTol) {
131 return Amg::Transform3D::Identity();
virtual DetectorShape shape() const
Shape of element.
virtual DetectorType type() const
Type of element.
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const =0
Returns distance to nearest detector active edge +ve = inside -ve = outside.
bool m_readoutSidePosDepth
void setSymmetry(bool phiSymmetric, bool etaSymmetric, bool depthSymmetric)
Override default symmetries to prevent swapping of axes.
virtual const Amg::Transform3D moduleShift() const
bool depthSymmetric() const
double thickness() const
Method which returns thickness of the silicon wafer.
virtual Amg::Vector3D sensorCenter() const
Return the centre of a sensor in the local reference frame.
bool etaSymmetric() const
bool phiSymmetric() const
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
int readoutSide() const
ReadoutSide.
InDetDD::CarrierType m_carrierType
virtual SiIntersect inDetector(const SiLocalPosition &localPosition, double phiTol, double etaTol) const
Test if point is in the active part of the detector with specified tolerances.
class to run intersection tests
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D