![]() |
ATLAS Offline Software
|
Base class for the SCT module side design, extended by the Forward and Barrel module design. More...
#include <SCT_ModuleSideDesign.h>
Public Member Functions | |
| SCT_ModuleSideDesign (const double thickness, const bool phiSymmetric, const bool etaSymmetric, const bool depthSymmetric, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, int readoutSide) | |
| 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 crystals within module side number of diodes within crystal number of cells within module side index of diode connected to cell with index 0. | |
| SCT_ModuleSideDesign (const double thickness, const bool phiSymmetric, const bool etaSymmetric, const bool depthSymmetric, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, int readoutSide, const SiDetectorDesign::Axis stripDirection, const SiDetectorDesign::Axis thicknessDirection) | |
| Constructor with parameters with access to enum Axis: local axis corresponding to eta direction local axis corresponding to phi direction local axis corresponding to depth direction thickness of silicon sensor number of crystals within module side number of diodes within crystal number of cells within module side index of diode connected to cell with index 0. | |
| virtual | ~SCT_ModuleSideDesign ()=default |
| Destructor: | |
| virtual int | numberOfConnectedCells (const SiReadoutCellId &readoutId) const override |
| readout id -> id of connected diodes Not particularly useful for the SCT but implemented to keep a uniform interface. | |
| virtual SiCellId | connectedCell (const SiReadoutCellId &readoutId, int number) const override |
| readout id -> id of connected diodes. | |
| virtual SiCellId | gangedCell (const SiCellId &cellId) const override |
| If cell is ganged return the other cell, otherwise return an invalid id. | |
| virtual SiReadoutCellId | readoutIdOfCell (const SiCellId &cellId) const override |
| diode id -> readout id | |
| virtual SiReadoutCellId | readoutIdOfPosition (const SiLocalPosition &localPos) const override |
| position -> id | |
| virtual SiLocalPosition | localPositionOfCell (const SiCellId &cellId) const override=0 |
| id -> position | |
| virtual SiLocalPosition | localPositionOfCluster (const SiCellId &cellId, int cluserSize) const=0 |
| virtual SiCellId | cellIdInRange (const SiCellId &cellId) const override |
| Check if cell is in range. | |
| virtual void | neighboursOfCell (const SiCellId &cellId, std::vector< SiCellId > &neighbours) const override |
| 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. | |
| virtual bool | inActiveArea (const SiLocalPosition &chargePos, bool checkBondGap=true) const=0 |
| check if the position is in active area | |
| virtual double | scaledDistanceToNearestDiode (const SiLocalPosition &chargePos) const=0 |
| give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as it is called for every surface charge in the SCT_SurfaceChargesGenerator | |
| virtual double | stripPitch (const SiLocalPosition &chargePos) const=0 |
| give the strip pitch (dependence on position needed for forward) | |
| virtual double | stripPitch () const=0 |
| give the strip pitch (For Forward returns pitch at center) | |
| virtual std::pair< SiLocalPosition, SiLocalPosition > | endsOfStrip (const SiLocalPosition &position) const override=0 |
| give the ends of strips | |
| virtual SiLocalPosition | positionFromStrip (const int stripNumber) const |
| gives position of strip center ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId & cellId) or rawLocalPositionOfCell method in SiDetectorElement. | |
| virtual double | deadAreaLength () const=0 |
| give length of dead area | |
| virtual double | deadAreaUpperBoundary () const=0 |
| give upper boundary of dead area | |
| virtual double | deadAreaLowerBoundary () const=0 |
| give lower boundary of dead area | |
| int | crystals () const |
| number of crystals within module side: | |
| int | diodes () const |
| number of strips within crystal: | |
| virtual int | diodesInRow (const int row) const |
| int | cells () const |
| number of readout stips within module side: | |
| int | shift () const |
| number of edge strips before first readout strip. | |
| virtual bool | swapHitPhiReadoutDirection () const override |
| Return true if hit local direction is the same as readout direction. | |
| virtual bool | swapHitEtaReadoutDirection () const override |
| virtual int | row (int stripId1Dim) const |
| virtual int | strip (int stripId1Dim) const |
| virtual int | strip1Dim (int strip, int row) const override |
| only relevant for SCT. | |
| void | setMother (SCT_ModuleSideDesign *mother) |
| const SCT_ModuleSideDesign * | getMother () const |
| const std::map< int, const SCT_ModuleSideDesign * > & | getChildren () const |
| void | addChildDesign (int index, const SCT_ModuleSideDesign *element) |
| virtual std::pair< int, int > | getStripRow (SiCellId id) const |
| Get the strip and row number of the cell. | |
| virtual SiIntersect | inDetector (const SiLocalPosition &localPosition, double phiTol, double etaTol) const override |
| Test if point is in the active part of the detector with specified tolerances. | |
Protected Attributes | |
| SCT_ReadoutScheme | m_scheme |
| InDetDD::DetectorType | m_detectorType {Undefined} |
Private Member Functions | |
| SCT_ModuleSideDesign () | |
| SCT_ModuleSideDesign (const SCT_ModuleSideDesign &design) | |
| SCT_ModuleSideDesign & | operator= (const SCT_ModuleSideDesign &design) |
Private Attributes | |
| bool | m_swapStripReadout |
| const SCT_ModuleSideDesign * | m_motherDesign {nullptr} |
| std::map< int, const SCT_ModuleSideDesign * > | m_childDesigns |
Base class for the SCT module side design, extended by the Forward and Barrel module design.
Definition at line 40 of file SCT_ModuleSideDesign.h.
| InDetDD::SCT_ModuleSideDesign::SCT_ModuleSideDesign | ( | const double | thickness, |
| const bool | phiSymmetric, | ||
| const bool | etaSymmetric, | ||
| const bool | depthSymmetric, | ||
| const int | crystals, | ||
| const int | diodes, | ||
| const int | cells, | ||
| const int | shift, | ||
| const bool | swapStripReadout, | ||
| InDetDD::CarrierType | carrierType, | ||
| int | readoutSide ) |
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 crystals within module side number of diodes within crystal number of cells within module side index of diode connected to cell with index 0.
Definition at line 33 of file SCT_ModuleSideDesign.cxx.
| InDetDD::SCT_ModuleSideDesign::SCT_ModuleSideDesign | ( | const double | thickness, |
| const bool | phiSymmetric, | ||
| const bool | etaSymmetric, | ||
| const bool | depthSymmetric, | ||
| const int | crystals, | ||
| const int | diodes, | ||
| const int | cells, | ||
| const int | shift, | ||
| const bool | swapStripReadout, | ||
| InDetDD::CarrierType | carrierType, | ||
| int | readoutSide, | ||
| const SiDetectorDesign::Axis | stripDirection, | ||
| const SiDetectorDesign::Axis | thicknessDirection ) |
Constructor with parameters with access to enum Axis: local axis corresponding to eta direction local axis corresponding to phi direction local axis corresponding to depth direction thickness of silicon sensor number of crystals within module side number of diodes within crystal number of cells within module side index of diode connected to cell with index 0.
Definition at line 49 of file SCT_ModuleSideDesign.cxx.
|
private |
|
private |
|
virtualdefault |
Destructor:
|
inline |
Definition at line 292 of file SCT_ModuleSideDesign.h.
|
overridevirtual |
Check if cell is in range.
Check if cell is in range. Returns the original cellId if it is in range, otherwise it.
Returns the original cellId if it is in range, otherwise it returns an invalid id.
Implements InDetDD::DetectorDesign.
Definition at line 101 of file SCT_ModuleSideDesign.cxx.
|
inline |
number of readout stips within module side:
Definition at line 228 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtual |
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 241 of file SCT_ModuleSideDesign.h.
|
inline |
number of crystals within module side:
Definition at line 216 of file SCT_ModuleSideDesign.h.
|
pure virtual |
give length of dead area
|
pure virtual |
give lower boundary of dead area
|
pure virtual |
give upper boundary of dead area
|
inline |
number of strips within crystal:
Definition at line 220 of file SCT_ModuleSideDesign.h.
|
inlinevirtual |
Definition at line 224 of file SCT_ModuleSideDesign.h.
|
overridepure virtual |
give the ends of strips
Implements InDetDD::SiDetectorDesign.
|
inlineoverridevirtual |
If cell is ganged return the other cell, otherwise return an invalid id.
Not particularly useful for the SCT but implemented to keep a uniform interface. For SCT always returns an invalid id.
Implements InDetDD::SiDetectorDesign.
Definition at line 246 of file SCT_ModuleSideDesign.h.
|
inline |
Definition at line 287 of file SCT_ModuleSideDesign.h.
|
inline |
Definition at line 283 of file SCT_ModuleSideDesign.h.
|
virtual |
Get the strip and row number of the cell.
Can be used as auto [strip, row] = getStripRow(cellId); For SCT sensors, return 0 as there should only be one row; derived versions for ITk strip implement specializations
| cellId | The SiCellId |
Definition at line 127 of file SCT_ModuleSideDesign.cxx.
|
pure virtual |
check if the position is in active area
|
overridevirtual |
Test if point is in the active part of the detector with specified tolerances.
Reimplemented from InDetDD::DetectorDesign.
Definition at line 131 of file SCT_ModuleSideDesign.cxx.
|
overridepure virtual |
id -> position
|
pure virtual |
|
overridevirtual |
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 70 of file SCT_ModuleSideDesign.cxx.
|
inlineoverridevirtual |
readout id -> id of connected diodes Not particularly useful for the SCT but implemented to keep a uniform interface.
Implements InDetDD::DetectorDesign.
Definition at line 236 of file SCT_ModuleSideDesign.h.
|
private |
|
virtual |
gives position of strip center ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId & cellId) or rawLocalPositionOfCell method in SiDetectorElement.
DEPRECATED
Definition at line 95 of file SCT_ModuleSideDesign.cxx.
|
inlineoverridevirtual |
diode id -> readout id
Implements InDetDD::DetectorDesign.
Definition at line 251 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtual |
position -> id
Implements InDetDD::DetectorDesign.
Definition at line 256 of file SCT_ModuleSideDesign.h.
|
inlinevirtual |
Definition at line 271 of file SCT_ModuleSideDesign.h.
|
pure virtual |
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as it is called for every surface charge in the SCT_SurfaceChargesGenerator
| void InDetDD::SCT_ModuleSideDesign::setMother | ( | SCT_ModuleSideDesign * | mother | ) |
Definition at line 109 of file SCT_ModuleSideDesign.cxx.
|
inline |
number of edge strips before first readout strip.
Definition at line 232 of file SCT_ModuleSideDesign.h.
|
inlinevirtual |
Definition at line 275 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtual |
only relevant for SCT.
Return strip1Dim(int strip, int row) if SCT; otherwise -1
Reimplemented from InDetDD::SiDetectorDesign.
Definition at line 279 of file SCT_ModuleSideDesign.h.
|
pure virtual |
give the strip pitch (For Forward returns pitch at center)
|
pure virtual |
give the strip pitch (dependence on position needed for forward)
|
inlineoverridevirtual |
Implements InDetDD::DetectorDesign.
Definition at line 267 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtual |
Return true if hit local direction is the same as readout direction.
Implements InDetDD::DetectorDesign.
Definition at line 263 of file SCT_ModuleSideDesign.h.
|
private |
Definition at line 210 of file SCT_ModuleSideDesign.h.
|
protected |
Definition at line 197 of file SCT_ModuleSideDesign.h.
|
private |
Definition at line 208 of file SCT_ModuleSideDesign.h.
|
protected |
Definition at line 196 of file SCT_ModuleSideDesign.h.
|
private |
Definition at line 204 of file SCT_ModuleSideDesign.h.