|
ATLAS Offline Software
|
Go to the documentation of this file.
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,
31 m_diodeMap(std::move(
matrix)),
32 m_readoutScheme(circuitsPerColumn,circuitsPerRow,
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);
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
virtual double minWidth() const
Method to calculate minimum width of a module.
SiDiodesParameters parameters(const SiCellId &diodeId) const
Get diodes parameters (position and size):
int numberOfConnectedCells(const SiReadoutCellId &readoutId) const
number of cells connected to this readout.
Trk::RectangleBounds m_bounds
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
const SiLocalPosition & centre() const
position of the diodes centre:
virtual double maxWidth() const
Method to calculate maximum width of a module.
virtual double length() const
Method to calculate length of a module.
virtual SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
diode id -> readout id
virtual SiCellId cellIdInRange(const SiCellId &cellId) const
Check if cell is in range.
int rows() const
Number of cell rows per module:
double xPhi() const
position along phi direction:
SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
Readout id of this diode.
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
SiCellId connectedCell(const SiReadoutCellId &readoutId, unsigned int number) const
Cell ids of cell connected to this readout.
double xEta() const
position along eta direction:
int columns() const
Number of cell columns per module:
double widthFromRowRange(const int rowMin, const int rowMax) const
Method to calculate phi width from a row range.
virtual double etaPitch() const
Pitch in eta direction.
PixelReadoutScheme m_readoutScheme
virtual const Trk::SurfaceBounds & bounds() const
Element boundary.
double widthFromColumnRange(const int colMin, const int colMax) const
Method to calculate eta width from a column range.
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
virtual double phiPitch() const
Pitch in phi direction.
double xEtaMin() const
boundaries of the diodes:
virtual ~HGTD_ModuleDesign()
virtual SiCellId connectedCell(const SiReadoutCellId &readoutId, int number) const
readout id -> id of connected diodes.
virtual double width() const
Method to calculate average width of a module.
virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition &localPos) const
position -> id
SiCellId cellIdOfPosition(const Amg::Vector2D &localPosition) const
cell id for a given local position
SiCellId cellIdInRange(const SiCellId &cellId) const
Check if cellId is within range.
virtual int numberOfConnectedCells(const SiReadoutCellId &readoutId) const
readout id -> id of connected diodes