ATLAS Offline Software
|
#include <PixelModuleDesign.h>
Public Types | |
enum | Axis { xAxis =0, yAxis, zAxis } |
Public Member Functions | |
PixelModuleDesign (const 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=-1, bool is3D=false, InDetDD::DetectorType detectorType=InDetDD::Undefined) | |
Constructor with parameters: local axis corresponding to eta direction local axis corresponding to phi direction local axis corresponding to depth direction thickness of silicon sensor number of circuits in one circuit column number of circuits in one circuit row number of cell columns per circuit number of cell rows per circuit number of diode columns connected to one circuit number of diode rows connected to one circuit. More... | |
virtual | ~PixelModuleDesign ()=default |
virtual void | distanceToDetectorEdge (const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const |
Returns distance to nearest detector active edge +ve = inside -ve = outside. More... | |
virtual SiDiodesParameters | parameters (const SiCellId &cellId) const |
readout or diode id -> position, size More... | |
virtual SiLocalPosition | localPositionOfCell (const SiCellId &cellId) const |
readout or diode id -> position. More... | |
virtual int | numberOfConnectedCells (const SiReadoutCellId &readoutId) const |
readout id -> id of connected diodes More... | |
virtual SiCellId | connectedCell (const SiReadoutCellId &readoutId, int number) const |
readout id -> id of connected diodes. More... | |
virtual SiCellId | gangedCell (const SiCellId &cellId) const |
If cell is ganged return the other cell, otherwise return an invalid id. More... | |
virtual SiReadoutCellId | readoutIdOfCell (const SiCellId &cellId) const |
diode id -> readout id More... | |
virtual SiReadoutCellId | readoutIdOfPosition (const SiLocalPosition &localPos) const |
position -> id More... | |
virtual SiCellId | cellIdOfPosition (const SiLocalPosition &localPos) const |
position -> id More... | |
virtual SiCellId | cellIdInRange (const SiCellId &cellId) const |
Check if cell is in range. More... | |
virtual HepGeom::Vector3D< double > | phiMeasureSegment (const SiLocalPosition &) const |
Helper method for stereo angle computation. More... | |
virtual std::pair< SiLocalPosition, SiLocalPosition > | endsOfStrip (const SiLocalPosition &position) const |
Special method for SCT (irrelevant here): More... | |
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 use localPositionOfCell(const SiCellId & cellId) or rawLocalPositionOfCell method in SiDetectorElement. More... | |
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 cells which are neighbours of the given one. More... | |
double | intersectionLength (const SiCellId &diode1, const SiCellId &diode2) const |
Compute the intersection length of two diodes: return: the intersection length when the two diodes are projected on one of the two axis, or 0 in case of no intersection or problem input: the two diodes for which the intersection length is computed. More... | |
double | sensorLeftColumn () const |
Global sensor size: More... | |
double | sensorRightColumn () const |
double | sensorLeftRow () const |
double | sensorRightRow () const |
int | numberOfDiodes () const |
Total number of diodes: More... | |
int | numberOfCircuits () const |
Total number of circuits: More... | |
int | numberOfCircuitsPerColumn () const |
Number of circuits per column: More... | |
int | numberOfCircuitsPerRow () const |
Number of circuits per row: More... | |
int | columnsPerCircuit () const |
Number of cell columns per circuit: More... | |
int | rowsPerCircuit () const |
Number of cell rows per circuit: More... | |
int | columns () const |
Number of cell columns per module: More... | |
int | rows () const |
Number of cell rows per module: More... | |
virtual double | length () const |
Method to calculate length of a module. More... | |
virtual double | width () const |
Method to calculate average width of a module. More... | |
virtual double | minWidth () const |
Method to calculate minimum width of a module. More... | |
virtual double | maxWidth () const |
Method to calculate maximum width of a module. More... | |
virtual double | phiPitch () const |
Pitch in phi direction. More... | |
virtual double | phiPitch (const SiLocalPosition &localPosition) const |
Pitch in phi direction. More... | |
virtual double | etaPitch () const |
Pitch in eta direction. More... | |
double | widthFromColumnRange (const int colMin, const int colMax) const |
Method to calculate eta width from a column range. More... | |
double | widthFromRowRange (const int rowMin, const int rowMax) const |
Method to calculate phi width from a row range. More... | |
virtual bool | nearBondGap (const SiLocalPosition &localPosition, double etaTol) const |
Test if near bond gap within tolerances Only relevant for SCT. More... | |
virtual bool | swapHitPhiReadoutDirection () const |
Return true if hit local direction is the same as readout direction. More... | |
virtual bool | swapHitEtaReadoutDirection () const |
virtual const Trk::SurfaceBounds & | bounds () const |
Element boundary. More... | |
virtual bool | is3D () const |
PixelReadoutTechnology | getReadoutTechnology () const |
virtual DetectorType | type () const final |
Type of element. More... | |
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 vector containing, for each diode, the readout cell row number to which the corresponding diode is connected. More... | |
void | setGeneralLayout () |
Indicate that it is a more complex layout where cells are not lined up with each other. More... | |
std::string | debugStringRepr () const |
Debug string representation. More... | |
virtual double | sinStripAngleReco (double phiCoord, double etaCoord) const |
Give strip angle in the reco frame. More... | |
virtual int | strip1Dim (int strip, int row) const |
only relevant for SCT. More... | |
virtual Amg::Vector3D | sensorCenter () const |
Return the centre of a sensor in the local reference frame. More... | |
virtual SiIntersect | inDetector (const SiLocalPosition &localPosition, double phiTol, double etaTol) const |
Test if point is in the active part of the detector with specified tolerances. More... | |
void | setSymmetry (bool phiSymmetric, bool etaSymmetric, bool depthSymmetric) |
Override default symmetries to prevent swapping of axes. More... | |
Axis | etaAxis () const |
local axis corresponding to eta direction: More... | |
Axis | phiAxis () const |
local axis corresponding to phi direction: More... | |
Axis | depthAxis () const |
local axis corresponding to depth direction: More... | |
double | thickness () const |
Method which returns thickness of the silicon wafer. More... | |
InDetDD::CarrierType | carrierType () const |
Return carrier type (ie electrons or holes) More... | |
bool | phiSymmetric () const |
bool | etaSymmetric () const |
bool | depthSymmetric () const |
int | readoutSide () const |
ReadoutSide. More... | |
virtual DetectorShape | shape () const |
Shape of element. More... | |
virtual const Amg::Transform3D | moduleShift () const |
Private Member Functions | |
PixelModuleDesign () | |
PixelModuleDesign (const PixelModuleDesign &design) | |
PixelModuleDesign & | operator= (const PixelModuleDesign &design) |
Private Attributes | |
PixelDiodeMap | m_diodeMap |
PixelReadoutScheme | m_readoutScheme |
CxxUtils::CachedUniquePtr< Trk::RectangleBounds > | m_bounds |
bool | m_is3D |
InDetDD::DetectorType | m_detectorType |
Axis | m_etaAxis |
Axis | m_phiAxis |
Axis | m_depthAxis |
double | m_thickness |
InDetDD::CarrierType | m_carrierType |
bool | m_phiSymmetric |
bool | m_etaSymmetric |
bool | m_depthSymmetric |
bool | m_readoutSidePosDepth |
Class used to describe the design of a module (diode segmentation and readout scheme)
Definition at line 48 of file PixelModuleDesign.h.
|
inherited |
Enumerator | |
---|---|
xAxis | |
yAxis | |
zAxis |
Definition at line 59 of file DetectorDesign.h.
InDetDD::PixelModuleDesign::PixelModuleDesign | ( | const 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 = -1 , |
||
bool | is3D = false , |
||
InDetDD::DetectorType | detectorType = InDetDD::Undefined |
||
) |
Constructor with parameters: local axis corresponding to eta direction local axis corresponding to phi direction local axis corresponding to depth direction thickness of silicon sensor number of circuits in one circuit column number of circuits in one circuit row number of cell columns per circuit number of cell rows per circuit number of diode columns connected to one circuit number of diode rows connected to one circuit.
Definition at line 30 of file PixelModuleDesign.cxx.
|
virtualdefault |
|
private |
|
private |
|
inline |
Add a new multiple connection for rows: lower diode row for which the connection scheme is given vector containing, for each diode, the readout cell row number to which the corresponding diode is connected.
Definition at line 266 of file PixelModuleDesign.h.
|
virtual |
Element boundary.
Implements InDetDD::DetectorDesign.
Definition at line 226 of file PixelModuleDesign.cxx.
|
inlineinherited |
Return carrier type (ie electrons or holes)
Definition at line 275 of file DetectorDesign.h.
Check if cell is in range.
Returns the original cellId if it is in range, otherwise it returns an invalid id.
Implements InDetDD::DetectorDesign.
Definition at line 242 of file PixelModuleDesign.cxx.
|
virtual |
position -> id
Implements InDetDD::DetectorDesign.
Definition at line 179 of file PixelModuleDesign.cxx.
|
inline |
Number of cell columns per module:
Definition at line 322 of file PixelModuleDesign.h.
|
inline |
Number of cell columns per circuit:
Definition at line 312 of file PixelModuleDesign.h.
|
virtual |
readout id -> id of connected diodes.
parameter number = 0 will refer to the primary diode and in general the cell number will be the same. NB. SiCellId cellId = connectedCell(readoutId, 0) will in general be equivalent to SiCellId cellId = readoutId
Implements InDetDD::DetectorDesign.
Definition at line 191 of file PixelModuleDesign.cxx.
|
inline |
Debug string representation.
Definition at line 383 of file PixelModuleDesign.h.
|
inlineinherited |
local axis corresponding to depth direction:
Definition at line 267 of file DetectorDesign.h.
|
inlineinherited |
Definition at line 287 of file DetectorDesign.h.
|
virtual |
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Implements InDetDD::DetectorDesign.
Definition at line 61 of file PixelModuleDesign.cxx.
|
virtual |
Special method for SCT (irrelevant here):
Implements InDetDD::SiDetectorDesign.
Definition at line 100 of file PixelModuleDesign.cxx.
|
inlineinherited |
local axis corresponding to eta direction:
Definition at line 259 of file DetectorDesign.h.
|
virtual |
Pitch in eta direction.
Implements InDetDD::DetectorDesign.
Definition at line 173 of file PixelModuleDesign.cxx.
|
inlineinherited |
Definition at line 283 of file DetectorDesign.h.
If cell is ganged return the other cell, otherwise return an invalid id.
Implements InDetDD::SiDetectorDesign.
Definition at line 197 of file PixelModuleDesign.cxx.
|
inline |
Definition at line 368 of file PixelModuleDesign.h.
|
virtualinherited |
Test if point is in the active part of the detector with specified tolerances.
Reimplemented in InDetDD::SCT_ModuleSideDesign.
Definition at line 106 of file DetectorDesign.cxx.
|
inline |
Compute the intersection length of two diodes: return: the intersection length when the two diodes are projected on one of the two axis, or 0 in case of no intersection or problem input: the two diodes for which the intersection length is computed.
Definition at line 355 of file PixelModuleDesign.h.
|
inlinevirtual |
Definition at line 363 of file PixelModuleDesign.h.
|
virtual |
Method to calculate length of a module.
Implements InDetDD::DetectorDesign.
Definition at line 107 of file PixelModuleDesign.cxx.
|
virtual |
readout or diode id -> position.
Implements InDetDD::DetectorDesign.
Definition at line 85 of file PixelModuleDesign.cxx.
|
virtual |
Method to calculate maximum width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 125 of file PixelModuleDesign.cxx.
|
virtual |
Method to calculate minimum width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 119 of file PixelModuleDesign.cxx.
|
virtualinherited |
Reimplemented in InDetDD::StripBoxDesign.
Definition at line 130 of file DetectorDesign.cxx.
|
inlinevirtual |
Test if near bond gap within tolerances Only relevant for SCT.
Always returns false for pixels.
Implements InDetDD::SiDetectorDesign.
Definition at line 332 of file PixelModuleDesign.h.
|
inlinevirtual |
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cells which are neighbours of the given one.
Implements InDetDD::DetectorDesign.
Definition at line 349 of file PixelModuleDesign.h.
|
inline |
Total number of circuits:
Definition at line 297 of file PixelModuleDesign.h.
|
inline |
Number of circuits per column:
Definition at line 302 of file PixelModuleDesign.h.
|
inline |
Number of circuits per row:
Definition at line 307 of file PixelModuleDesign.h.
|
virtual |
readout id -> id of connected diodes
Implements InDetDD::DetectorDesign.
Definition at line 185 of file PixelModuleDesign.cxx.
|
inline |
Total number of diodes:
Definition at line 292 of file PixelModuleDesign.h.
|
private |
|
virtual |
readout or diode id -> position, size
Implements InDetDD::DetectorDesign.
Definition at line 80 of file PixelModuleDesign.cxx.
|
inlineinherited |
local axis corresponding to phi direction:
Definition at line 263 of file DetectorDesign.h.
|
virtual |
Helper method for stereo angle computation.
Implements InDetDD::SiDetectorDesign.
Definition at line 92 of file PixelModuleDesign.cxx.
|
virtual |
Pitch in phi direction.
Implements InDetDD::DetectorDesign.
Definition at line 157 of file PixelModuleDesign.cxx.
|
virtual |
Pitch in phi direction.
Implements InDetDD::DetectorDesign.
Definition at line 165 of file PixelModuleDesign.cxx.
|
inlineinherited |
Definition at line 279 of file DetectorDesign.h.
SiLocalPosition InDetDD::PixelModuleDesign::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 use localPositionOfCell(const SiCellId & cellId) or rawLocalPositionOfCell method in SiDetectorElement.
DEPRECATED
Definition at line 219 of file PixelModuleDesign.cxx.
|
virtual |
diode id -> readout id
Implements InDetDD::DetectorDesign.
Definition at line 203 of file PixelModuleDesign.cxx.
|
virtual |
position -> id
Implements InDetDD::DetectorDesign.
Definition at line 210 of file PixelModuleDesign.cxx.
|
inlineinherited |
ReadoutSide.
+1 = postive depth side, -1 = negative depth side.
Definition at line 291 of file DetectorDesign.h.
|
inline |
Number of cell rows per module:
Definition at line 327 of file PixelModuleDesign.h.
|
inline |
Number of cell rows per circuit:
Definition at line 317 of file PixelModuleDesign.h.
|
virtualinherited |
Return the centre of a sensor in the local reference frame.
For most designs, this is the origin of the local reference frame. For StripStereoAnnulusDesign, this is not the case (coordinate origin is "on the beamline")
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::StripAnnulusDesign.
Definition at line 60 of file DetectorDesign.cxx.
|
inline |
Global sensor size:
Definition at line 272 of file PixelModuleDesign.h.
|
inline |
Definition at line 282 of file PixelModuleDesign.h.
|
inline |
Definition at line 277 of file PixelModuleDesign.h.
|
inline |
Definition at line 287 of file PixelModuleDesign.h.
void InDetDD::PixelModuleDesign::setGeneralLayout | ( | ) |
Indicate that it is a more complex layout where cells are not lined up with each other.
Eg bricking. Probably never will be needed.
Definition at line 236 of file PixelModuleDesign.cxx.
|
inherited |
Override default symmetries to prevent swapping of axes.
NB. Flags can be changed from true to false but not false to true.
Definition at line 65 of file DetectorDesign.cxx.
|
virtualinherited |
Shape of element.
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::SCT_ForwardModuleSideDesign.
Definition at line 96 of file DetectorDesign.cxx.
|
inlinevirtualinherited |
Give strip angle in the reco frame.
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::SCT_ForwardModuleSideDesign.
Definition at line 132 of file SiDetectorDesign.h.
|
inlinevirtualinherited |
only relevant for SCT.
Return strip1Dim(int strip, int row) if SCT; otherwise -1
Reimplemented in InDetDD::SCT_ModuleSideDesign, InDetDD::StripStereoAnnulusDesign, and InDetDD::StripBoxDesign.
Definition at line 136 of file SiDetectorDesign.h.
|
inlinevirtual |
Implements InDetDD::DetectorDesign.
Definition at line 343 of file PixelModuleDesign.h.
|
inlinevirtual |
Return true if hit local direction is the same as readout direction.
Implements InDetDD::DetectorDesign.
Definition at line 338 of file PixelModuleDesign.h.
|
inlineinherited |
Method which returns thickness of the silicon wafer.
Definition at line 271 of file DetectorDesign.h.
|
finalvirtual |
Type of element.
Reimplemented from InDetDD::DetectorDesign.
Definition at line 247 of file PixelModuleDesign.cxx.
|
virtual |
Method to calculate average width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 113 of file PixelModuleDesign.cxx.
double InDetDD::PixelModuleDesign::widthFromColumnRange | ( | const int | colMin, |
const int | colMax | ||
) | const |
Method to calculate eta width from a column range.
Definition at line 132 of file PixelModuleDesign.cxx.
Method to calculate phi width from a row range.
Definition at line 144 of file PixelModuleDesign.cxx.
|
private |
Definition at line 256 of file PixelModuleDesign.h.
|
privateinherited |
Definition at line 240 of file DetectorDesign.h.
|
privateinherited |
Definition at line 238 of file DetectorDesign.h.
|
privateinherited |
Definition at line 244 of file DetectorDesign.h.
|
private |
Definition at line 258 of file PixelModuleDesign.h.
|
private |
Definition at line 254 of file PixelModuleDesign.h.
|
privateinherited |
Definition at line 236 of file DetectorDesign.h.
|
privateinherited |
Definition at line 243 of file DetectorDesign.h.
|
private |
Definition at line 257 of file PixelModuleDesign.h.
|
privateinherited |
Definition at line 237 of file DetectorDesign.h.
|
privateinherited |
Definition at line 242 of file DetectorDesign.h.
|
private |
Definition at line 255 of file PixelModuleDesign.h.
|
privateinherited |
Definition at line 246 of file DetectorDesign.h.
|
privateinherited |
Definition at line 239 of file DetectorDesign.h.