|
ATLAS Offline Software
|
Go to the documentation of this file.
12 #ifndef PIXELREADOUTGEOMETRY_PIXELMODULEDESIGN_H
13 #define PIXELREADOUTGEOMETRY_PIXELMODULEDESIGN_H
36 class PixelDiodeMatrix;
72 const int circuitsPerColumn,
73 const int circuitsPerRow,
74 const int cellColumnsPerCircuit,
75 const int cellRowsPerCircuit,
76 const int diodeColumnsPerCircuit,
77 const int diodeRowsPerCircuit,
78 std::shared_ptr<const PixelDiodeMatrix>
matrix,
90 const int circuitsPerColumn,
91 const int circuitsPerRow,
92 const int cellColumnsPerCircuit,
93 const int cellRowsPerCircuit,
94 const int diodeColumnsPerCircuit,
95 const int diodeRowsPerCircuit,
96 std::shared_ptr<const PixelDiodeMatrix>
matrix,
113 double & etaDist,
double & phiDist)
const;
152 std::vector<SiCellId> &neighbours)
const;
191 virtual double length()
const;
194 virtual double width()
const;
228 virtual bool is3D()
const;
368 std::vector<SiCellId> &neighbours)
const
408 #endif // READOUTGEOMETRYBASE_PIXELMODULEDESIGN_H
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
int rowsPerCircuit() const
number of cell rows per circuit:
int columns() const
number of cell columns per module:
bool depthSymmetric() const
double thickness() const
Method which returns thickness of the silicon wafer.
bool etaSymmetric() const
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...
virtual double width() const
Method to calculate average width of a module.
double widthFromRowRange(const int rowMin, const int rowMax) const
Method to calculate phi width from a row range.
CachedUniquePtrT< const T > CachedUniquePtr
std::string debugStringRepr() const
Debug representation.
int columns() const
Number of cell columns per 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...
int rows() const
Number of cell rows per module:
virtual SiCellId cellIdInRange(const SiCellId &cellId) const
Check if cell is in range.
virtual SiCellId connectedCell(const SiReadoutCellId &readoutId, int number) const
readout id -> id of connected diodes.
double sensorRightRow() const
int readoutSide() const
ReadoutSide.
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
bool const RAWDATA *ch2 const
int numberOfCircuitsPerColumn() const
number of circuits per column:
virtual bool swapHitPhiReadoutDirection() const
Return true if hit local direction is the same as readout direction.
virtual double etaPitch() const
Pitch in eta direction.
int columnsPerCircuit() const
number of cell columns per circuit:
virtual const Trk::SurfaceBounds & bounds() const
Element boundary.
virtual double length() const
Method to calculate length of a module.
int numberOfCircuitsPerRow() const
number of circuits per row:
SiLocalPosition positionFromColumnRow(const int column, const int row) const
Given row and column index of a diode, return position of diode center ALTERNATIVE/PREFERED way is to...
std::string debugStringRepr() const
Debug string representation.
virtual double phiPitch() const
Pitch in phi direction.
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances Only relevant for SCT.
double widthFromColumnRange(const int colMin, const int colMax) const
Method to calculate eta width from a column range.
double rightColumn() const
InDetDD::DetectorType m_detectorType
int numberOfCircuitsPerColumn() const
Number of circuits per column:
int numberOfCircuits() const
Total number of circuits:
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Cached unique_ptr with atomic update.
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
virtual bool swapHitEtaReadoutDirection() const
virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition &localPos) const
position -> id
CxxUtils::CachedUniquePtr< Trk::RectangleBounds > m_bounds
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &) const
Helper method for stereo angle computation.
int numberOfDiodes() const
Total number of diodes:
Ensure that the ATLAS eigen extensions are properly loaded.
int numberOfCircuitsPerRow() const
Number of circuits per row:
virtual int numberOfConnectedCells(const SiReadoutCellId &readoutId) const
readout id -> id of connected diodes
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...
PixelReadoutTechnology getReadoutTechnology() const
double leftColumn() const
virtual SiCellId gangedCell(const SiCellId &cellId) const
If cell is ganged return the other cell, otherwise return an invalid id.
virtual bool is3D() const
int rowsPerCircuit() const
Number of cell rows per circuit:
PixelReadoutScheme m_readoutScheme
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
bool phiSymmetric() const
void setGeneralLayout()
Indicate that it is a more complex layout where cells are not lined up with each other.
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...
int rows() const
number of cell rows per module:
void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const
Get the neighbouring PixelDiodes of a given PixelDiode: Cell for which the neighbours must be found L...
double sensorRightColumn() const
virtual ~PixelModuleDesign()=default
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
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 SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
diode id -> readout id
double sensorLeftRow() const
virtual double minWidth() const
Method to calculate minimum width of a module.
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
Special method for SCT (irrelevant here):
int numberOfCircuits() const
total number of circuits:
virtual double maxWidth() const
Method to calculate maximum width of a module.
int columnsPerCircuit() const
Number of cell columns per circuit:
virtual DetectorType type() const final
Type of element.
double sensorLeftColumn() const
Global sensor size: