9#ifndef HGTD_READOUTGEOMETRY_HGTD_MODULEDESIGN_H
10#define HGTD_READOUTGEOMETRY_HGTD_MODULEDESIGN_H
67 const int circuitsPerColumn,
68 const int circuitsPerRow,
69 const int cellColumnsPerCircuit,
70 const int cellRowsPerCircuit,
71 const int diodeColumnsPerCircuit,
72 const int diodeRowsPerCircuit,
73 std::shared_ptr<const PixelDiodeMatrix> matrix,
90 double & etaDist,
double & phiDist)
const;
117 virtual double length()
const;
120 virtual double width()
const;
188 const std::vector<int> &connections);
215 const std::vector<int> &connections)
281 std::vector<SiCellId> &neighbours)
const
283 return m_diodeMap.neighboursOfCell(cellId, neighbours);
289 return m_diodeMap.intersectionLength(diode1, diode2);
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.
double sensorRightRow() const
virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition &localPos) const
position -> id
HGTD_ModuleDesign(const HGTD_ModuleDesign &design)
virtual double width() const
Method to calculate average width of a module.
double intersectionLength(const SiCellId &diode1, const SiCellId &diode2) const
Compute the intersection length of two diodes: return: the intersection length when the two diodes ar...
HGTD_ModuleDesign & operator=(const HGTD_ModuleDesign &design)
virtual bool swapHitPhiReadoutDirection() const
Return true if hit local direction is the same as readout direction.
double sensorLeftRow() const
virtual ~HGTD_ModuleDesign()
void addMultipleRowConnection(const int lowerRow, const std::vector< int > &connections)
Add a new multiple connection for rows: lower diode row for which the connection scheme is given vect...
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
int columnsPerCircuit() const
Number of cell columns per circuit:
virtual bool swapHitEtaReadoutDirection() const
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
int numberOfDiodes() const
Total number of diodes:
int columns() const
Number of cell columns per module:
virtual 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...
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.
HGTD_ModuleDesign(double thickness, const int circuitsPerColumn, const int circuitsPerRow, const int cellColumnsPerCircuit, const int cellRowsPerCircuit, const int diodeColumnsPerCircuit, const int diodeRowsPerCircuit, std::shared_ptr< const PixelDiodeMatrix > matrix, InDetDD::CarrierType carrierType, int readoutSide, DetectorDesign::Axis yDirection=InDetDD::DetectorDesign::xAxis, DetectorDesign::Axis depthDirection=InDetDD::DetectorDesign::zAxis)
Constructor.
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.
double sensorRightColumn() const
int numberOfCircuits() const
Total number of circuits:
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.
double sensorLeftColumn() const
Global sensor size:
int rowsPerCircuit() const
Number of cell rows per circuit:
Class used to describe the diode segmentation of a pixel module.
Class used to describe the segmentation of the pixel and allow for conversion between cell id and pos...
Class used to describe the connection scheme of a diode matrix to a set of readout circuits.
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....
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.
Bounds for a rectangular, planar surface.
Abstract base class for surface bounds to be specified.
Ensure that the ATLAS eigen extensions are properly loaded.
std::string number(const double &d, const std::string &s)