5#ifndef INDETREADOUTGEOMETRY_STRIPANNULUSDESIGN_H
6#define INDETREADOUTGEOMETRY_STRIPANNULUSDESIGN_H
31#include "CLHEP/Geometry/Vector3D.h"
32#include "CLHEP/Geometry/Transform3D.h"
54 const double &stripStart,
55 const double &stripEnd);
70 double &phiDist)
const;
79 std::pair<SiLocalPosition, SiLocalPosition>
endsOfStrip(
108 std::vector<SiCellId> &neighbours)
const;
123 double width()
const;
199 throw std::runtime_error(
"Call to phiMeasureSegment, DEPRECATED, not implemented.");
206 throw std::runtime_error(
207 "Call to distanceToDetectorEdge which is Deprecated and not yet implemented");
double thickness() const
Method which returns thickness of the silicon wafer.
int readoutSide() const
ReadoutSide.
SCT_ModuleSideDesign(const double thickness, const bool phiSymmetric, const bool etaSymmetric, const bool depthSymmetric, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, int readoutSide)
Constructor with parameters: local axis corresponding to eta direction local axis corresponding to ph...
Identifier for the strip or pixel cell.
int phiIndex() const
Get phi index. Equivalent to strip().
Class to handle the position of the centre and the width of a diode or a cluster of diodes Version 1....
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
Identifier for the strip or pixel readout cell.
double phiPitch() const
Pitch in phi direction.
SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
std::unique_ptr< Trk::RectangleBounds > m_bounds
double deadAreaLength() const
give length of dead area
bool nearBondGap(const SiLocalPosition &, double) const
Test if near bond gap within tolerances, only relevant for SCT.
StripAnnulusDesign & operator=(const StripAnnulusDesign &design)
double stripPitch() const
give the strip pitch (For Forward returns pitch at center)
double m_stripStartRadius
HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &position) const
Helper method for stereo angle computation, DEPRECATED.
double minWidth() const
Method to calculate minimum width of a module.
double pitch(const SiCellId &cellId) const
SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position
bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=false) const
check if the position is in active area
double maxWidth() const
Method to calculate maximum width of a module.
StripAnnulusDesign(const StripAnnulusDesign &design)
const Trk::SurfaceBounds & bounds() const
Element boundary.
SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
DEPRECATED: Unused (2014)
double deadAreaUpperBoundary() const
DEPRECATED for StripAnnulusDesign; no dead area.
bool swapHitPhiReadoutDirection() const
Return true if hit local direction is the same as readout direction.
SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
diode id -> readout id
bool swapHitEtaReadoutDirection() const
SiCellId cellIdInRange(const SiCellId &) const
Check if cell is in range.
double stripLength(const SiCellId &cellId) const
double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as ...
double width() const
Method to calculate average width of a module.
Amg::Vector3D sensorCenter() const
Return the centre of a sensor in the local reference frame.
StripAnnulusDesign(const SiDetectorDesign::Axis &stripDirection, const SiDetectorDesign::Axis &thicknessDirection, const double &thickness, const int &readoutSide, const InDetDD::CarrierType &carrier, const int &nStrips, const double &pitch, const double &stripStart, const double &stripEnd)
SiLocalPosition positionFromStrip(const SiCellId &cellId) const
double deadAreaLowerBoundary() const
give lower boundary of dead area
std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
Give end points of the strip that covers the given position.
double length() const
Method to calculate length of a module.
SiDiodesParameters parameters(const SiCellId &cellId) const
Return strip width, centre, length etc. Hard to find if this is used or not.
static const Amg::Transform3D SiHitToGeoModel()
void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cel...
~StripAnnulusDesign()=default
Bounds for a rectangular, planar surface.
Abstract base class for surface bounds to be specified.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.