14 const int circuitsPerColumn,
15 const int circuitsPerRow,
16 const int cellColumnsPerCircuit,
17 const int cellRowsPerCircuit,
18 const int diodeColumnsPerCircuit,
19 const int diodeRowsPerCircuit,
20 std::shared_ptr<const PixelDiodeMatrix> matrix,
33 cellColumnsPerCircuit,cellRowsPerCircuit,
34 diodeColumnsPerCircuit,diodeRowsPerCircuit)
47 double & etaDist,
double & phiDist)
const
51 double xEta = abs(localPosition.
xEta());
52 double xPhi = abs(localPosition.
xPhi());
54 double xEtaEdge = 0.5*
length();
55 double xPhiEdge = 0.5*
width();
58 etaDist = xEtaEdge - xEta;
61 phiDist = xPhiEdge - xPhi;
96 return std::abs(maxEta-minEta);
107 return std::abs(maxPhi-minPhi);
147 return m_diodeMap.parameters(cellId).centre();
175 return m_diodeMap.cellIdOfPosition(localPosition);
DetectorDesign(double thickness, bool phiSymmetric, bool etaSymmetric, bool depthSymmetric, InDetDD::CarrierType carrierType, int readoutSide)
Constructor.
double thickness() const
Method which returns thickness of the silicon wafer.
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
int readoutSide() const
ReadoutSide.
virtual SiCellId connectedCell(const SiReadoutCellId &readoutId, int number) const
readout id -> id of connected diodes.
virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition &localPos) const
position -> id
virtual double width() const
Method to calculate average width of a module.
virtual ~HGTD_ModuleDesign()
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
int rows() const
Number of cell rows per module:
virtual SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
diode id -> readout id
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
int columns() const
Number of cell columns per module:
virtual const Trk::SurfaceBounds & bounds() const
Element boundary.
PixelReadoutScheme m_readoutScheme
double widthFromColumnRange(const int colMin, const int colMax) const
Method to calculate eta width from a column range.
virtual double etaPitch() const
Pitch in eta direction.
Trk::RectangleBounds m_bounds
double widthFromRowRange(const int rowMin, const int rowMax) const
Method to calculate phi width from a row range.
virtual double phiPitch() const
Pitch in phi direction.
virtual double maxWidth() const
Method to calculate maximum width of a module.
virtual double length() const
Method to calculate length of a module.
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
virtual double minWidth() const
Method to calculate minimum width of a module.
virtual SiCellId cellIdInRange(const SiCellId &cellId) const
Check if cell is in range.
virtual int numberOfConnectedCells(const SiReadoutCellId &readoutId) const
readout id -> id of connected diodes
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Identifier for the strip or pixel cell.
Class to handle the position of the centre and the width of a diode or a cluster of diodes Version 1....
double xEtaMin() const
boundaries of the diodes:
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
double xPhi() const
position along phi direction:
double xEta() const
position along eta direction:
Identifier for the strip or pixel readout cell.
Bounds for a rectangular, planar surface.
Abstract base class for surface bounds to be specified.
std::string number(const double &d, const std::string &s)