![]() |
ATLAS Offline Software
|
#include <SiDetectorDesign.h>
Public Types | |
enum | Axis { xAxis =0, yAxis, zAxis } |
Public Member Functions | |
SiDetectorDesign (double thickness, bool phiSymmetric, bool etaSymmetric, bool depthSymmetric, InDetDD::CarrierType carrierType, int readoutSide) | |
Constructor. More... | |
SiDetectorDesign (double thickness, bool phiSymmetric, bool etaSymmetric, bool depthSymmetric, InDetDD::CarrierType carrierType, int readoutSide, SiDetectorDesign::Axis stripDirection, SiDetectorDesign::Axis depthDirection) | |
virtual | ~SiDetectorDesign () |
Destructor: More... | |
virtual double | sinStripAngleReco (double phiCoord, double etaCoord) const |
Give strip angle in the reco frame. More... | |
virtual bool | nearBondGap (const SiLocalPosition &localPosition, double etaTol) const =0 |
Test if near bond gap within tolerances, only relevant for SCT. More... | |
virtual int | strip1Dim (int strip, int row) const |
only relevant for SCT. More... | |
virtual HepGeom::Vector3D< double > | phiMeasureSegment (const SiLocalPosition &position) const =0 |
Helper method for stereo angle computation, DEPRECATED. More... | |
virtual std::pair< SiLocalPosition, SiLocalPosition > | endsOfStrip (const SiLocalPosition &position) const =0 |
Special method for SCT to retrieve the two ends of a "strip". More... | |
virtual SiCellId | gangedCell (const SiCellId &cellId) const =0 |
If cell is ganged return the id of the other cell which shares the readout for this cell, otherwise return an invalid id. 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 void | distanceToDetectorEdge (const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const =0 |
Returns distance to nearest detector active edge +ve = inside -ve = outside. More... | |
virtual DetectorShape | shape () const |
Shape of element. More... | |
virtual DetectorType | type () const |
Type of element. More... | |
virtual double | length () const =0 |
Method to calculate length of a module. More... | |
virtual double | width () const =0 |
Method to calculate average width of a module. More... | |
virtual double | minWidth () const =0 |
Method to calculate minimum width of a module. More... | |
virtual double | maxWidth () const =0 |
Method to calculate maximum width of a module. More... | |
virtual double | phiPitch () const =0 |
Pitch in phi direction. More... | |
virtual double | phiPitch (const SiLocalPosition &localPosition) const =0 |
Pitch in phi direction. More... | |
virtual double | etaPitch () const =0 |
virtual bool | swapHitPhiReadoutDirection () const =0 |
Return true if hit local direction is the same as readout direction. More... | |
virtual bool | swapHitEtaReadoutDirection () const =0 |
virtual const Trk::SurfaceBounds & | bounds () const =0 |
Element boundary. More... | |
virtual const Amg::Transform3D | moduleShift () const |
virtual SiDiodesParameters | parameters (const SiCellId &cellId) const =0 |
readout or diode id -> position, size More... | |
virtual SiLocalPosition | localPositionOfCell (const SiCellId &cellId) const =0 |
readout or diode id -> position. More... | |
virtual int | numberOfConnectedCells (const SiReadoutCellId &readoutId) const =0 |
number of connected cells. More... | |
virtual SiCellId | connectedCell (const SiReadoutCellId &readoutId, int number) const =0 |
readout id -> id of connected diodes. More... | |
virtual SiReadoutCellId | readoutIdOfCell (const SiCellId &cellId) const =0 |
diode id -> readout id NB assignment of a SiReadoutCellId to a SiCellId is allowed so you are can pass SiReadoutCellId variables to functions expecting a SiCellId. More... | |
virtual SiReadoutCellId | readoutIdOfPosition (const SiLocalPosition &localPos) const =0 |
position -> id More... | |
virtual SiCellId | cellIdOfPosition (const SiLocalPosition &localPos) const =0 |
position -> id More... | |
virtual void | neighboursOfCell (const SiCellId &cellId, std::vector< SiCellId > &neighbours) const =0 |
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... | |
virtual SiCellId | cellIdInRange (const SiCellId &cellId) const =0 |
Check if cell is in range. More... | |
Private Member Functions | |
SiDetectorDesign () | |
SiDetectorDesign (const SiDetectorDesign &design) | |
SiDetectorDesign & | operator= (const SiDetectorDesign &design) |
Private Attributes | |
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 |
Base class for the detector design classes for Pixel and SCT. These hold the local description of the detector elements which are shared by a number of detector elements. Objects are owned by SiDetectorManager.
Definition at line 50 of file SiDetectorDesign.h.
|
inherited |
Enumerator | |
---|---|
xAxis | |
yAxis | |
zAxis |
Definition at line 59 of file DetectorDesign.h.
InDetDD::SiDetectorDesign::SiDetectorDesign | ( | double | thickness, |
bool | phiSymmetric, | ||
bool | etaSymmetric, | ||
bool | depthSymmetric, | ||
InDetDD::CarrierType | carrierType, | ||
int | readoutSide | ||
) |
Constructor.
thickness | Thickness of sensor |
phiSymmetric,etaSymmetric,depthSymmetric | Flag to indicate if element is symmetric about these axes. ie for rectangular sensor they are all true, for trapezoidal sensor etaSymmetric is false. They can also be used to force element not to swap directions. |
carrierType | Carrier type that drifts to readout (ie electrons for pixels and holes for SCT) |
readoutSide | Readout side, +ve = positive Depth Side, -ve = negative Depth Side |
Definition at line 20 of file SiDetectorDesign.cxx.
InDetDD::SiDetectorDesign::SiDetectorDesign | ( | double | thickness, |
bool | phiSymmetric, | ||
bool | etaSymmetric, | ||
bool | depthSymmetric, | ||
InDetDD::CarrierType | carrierType, | ||
int | readoutSide, | ||
SiDetectorDesign::Axis | stripDirection, | ||
SiDetectorDesign::Axis | depthDirection | ||
) |
Definition at line 35 of file SiDetectorDesign.cxx.
|
virtualdefault |
Destructor:
|
private |
|
private |
|
pure virtualinherited |
|
inlineinherited |
Return carrier type (ie electrons or holes)
Definition at line 275 of file DetectorDesign.h.
|
pure virtualinherited |
Check if cell is in range.
Returns the original cellId if it is in range, otherwise it returns an invalid id.
Implemented in InDetDD::SCT_ModuleSideDesign, InDetDD::HGTD_ModuleDesign, InDetDD::PixelModuleDesign, InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
|
pure virtualinherited |
|
pure virtualinherited |
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
Implemented in InDetDD::SCT_ModuleSideDesign, InDetDD::HGTD_ModuleDesign, and InDetDD::PixelModuleDesign.
|
inlineinherited |
local axis corresponding to depth direction:
Definition at line 267 of file DetectorDesign.h.
|
inlineinherited |
Definition at line 287 of file DetectorDesign.h.
|
pure virtualinherited |
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::HGTD_ModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::StripAnnulusDesign.
|
pure virtual |
Special method for SCT to retrieve the two ends of a "strip".
Implemented in InDetDD::SCT_ModuleSideDesign, InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::StripAnnulusDesign.
|
inlineinherited |
local axis corresponding to eta direction:
Definition at line 259 of file DetectorDesign.h.
|
pure virtualinherited |
|
inlineinherited |
Definition at line 283 of file DetectorDesign.h.
|
pure virtual |
If cell is ganged return the id of the other cell which shares the readout for this cell, otherwise return an invalid id.
Implemented in InDetDD::SCT_ModuleSideDesign, and InDetDD::PixelModuleDesign.
|
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.
|
pure virtualinherited |
Method to calculate length of a module.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::StripAnnulusDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::HGTD_ModuleDesign.
|
pure virtualinherited |
readout or diode id -> position.
Implemented in InDetDD::SCT_ModuleSideDesign, InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::HGTD_ModuleDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::StripAnnulusDesign.
|
pure virtualinherited |
Method to calculate maximum width of a module.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::StripAnnulusDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::HGTD_ModuleDesign.
|
pure virtualinherited |
Method to calculate minimum width of a module.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::StripAnnulusDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::HGTD_ModuleDesign.
|
virtualinherited |
Reimplemented in InDetDD::StripBoxDesign.
Definition at line 130 of file DetectorDesign.cxx.
|
pure virtual |
Test if near bond gap within tolerances, only relevant for SCT.
Implemented in InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
|
pure virtualinherited |
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.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::SCT_ModuleSideDesign, InDetDD::StripBoxDesign, InDetDD::HGTD_ModuleDesign, InDetDD::PixelModuleDesign, and InDetDD::StripAnnulusDesign.
|
pure virtualinherited |
number of connected cells.
Generally 1 except for ganged pixels which will be 2.
Implemented in InDetDD::SCT_ModuleSideDesign, InDetDD::HGTD_ModuleDesign, and InDetDD::PixelModuleDesign.
|
private |
|
pure virtualinherited |
readout or diode id -> position, size
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::HGTD_ModuleDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::StripAnnulusDesign.
|
inlineinherited |
local axis corresponding to phi direction:
Definition at line 263 of file DetectorDesign.h.
|
pure virtual |
Helper method for stereo angle computation, DEPRECATED.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::StripAnnulusDesign, InDetDD::SCT_ForwardModuleSideDesign, InDetDD::PixelModuleDesign, and InDetDD::SCT_BarrelModuleSideDesign.
|
pure virtualinherited |
Pitch in phi direction.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, InDetDD::HGTD_ModuleDesign, and InDetDD::StripAnnulusDesign.
|
pure virtualinherited |
Pitch in phi direction.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::SCT_ForwardModuleSideDesign, InDetDD::HGTD_ModuleDesign, and InDetDD::StripAnnulusDesign.
|
inlineinherited |
Definition at line 279 of file DetectorDesign.h.
|
pure virtualinherited |
diode id -> readout id NB assignment of a SiReadoutCellId to a SiCellId is allowed so you are can pass SiReadoutCellId variables to functions expecting a SiCellId.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::SCT_ModuleSideDesign, InDetDD::HGTD_ModuleDesign, InDetDD::PixelModuleDesign, and InDetDD::StripAnnulusDesign.
|
pure virtualinherited |
position -> id
Implemented in InDetDD::SCT_ModuleSideDesign, InDetDD::HGTD_ModuleDesign, and InDetDD::PixelModuleDesign.
|
inlineinherited |
ReadoutSide.
+1 = postive depth side, -1 = negative depth side.
Definition at line 291 of file DetectorDesign.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.
|
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.
|
inlinevirtual |
Give strip angle in the reco frame.
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::SCT_ForwardModuleSideDesign.
Definition at line 132 of file SiDetectorDesign.h.
|
inlinevirtual |
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.
|
pure virtualinherited |
|
pure virtualinherited |
Return true if hit local direction is the same as readout direction.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::SCT_ModuleSideDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::HGTD_ModuleDesign, and InDetDD::StripAnnulusDesign.
|
inlineinherited |
Method which returns thickness of the silicon wafer.
Definition at line 271 of file DetectorDesign.h.
|
virtualinherited |
Type of element.
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::PixelModuleDesign.
Definition at line 101 of file DetectorDesign.cxx.
|
pure virtualinherited |
Method to calculate average width of a module.
Implemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, InDetDD::PixelModuleDesign, InDetDD::SCT_BarrelModuleSideDesign, InDetDD::StripAnnulusDesign, InDetDD::SCT_ForwardModuleSideDesign, and InDetDD::HGTD_ModuleDesign.
|
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.
|
privateinherited |
Definition at line 236 of file DetectorDesign.h.
|
privateinherited |
Definition at line 243 of file DetectorDesign.h.
|
privateinherited |
Definition at line 237 of file DetectorDesign.h.
|
privateinherited |
Definition at line 242 of file DetectorDesign.h.
|
privateinherited |
Definition at line 246 of file DetectorDesign.h.
|
privateinherited |
Definition at line 239 of file DetectorDesign.h.