ATLAS Offline Software
|
#include <SCT_ForwardModuleSideDesign.h>
Public Types | |
enum | Axis { xAxis =0, yAxis, zAxis } |
Public Member Functions | |
SCT_ForwardModuleSideDesign (const double thickness, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, const double radius1, const double halfHeight1, const double radius2, const double halfHeight2, const double step, const double etaCenter, const double phiCenter, int readoutSide=-1) | |
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 r from inner crystal center to beam inner crystal half height r from outer crystal (if present) center to beam outer crystal (if present) half height strip step in angle (same for both crystals) eta coordinate of crystal center phi coordinate of crystal center. More... | |
virtual | ~SCT_ForwardModuleSideDesign ()=default |
Destructor: More... | |
double | sinStripAngleReco (double phiCoord, double etaCoord) const |
Give strip angle in the reco frame. More... | |
virtual void | distanceToDetectorEdge (const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const |
Returns distance to nearest detector active edge +ve = inside -ve = outside. More... | |
virtual bool | nearBondGap (const SiLocalPosition &localPosition, double etaTol) const |
Test if near bond gap within tolerances. More... | |
virtual bool | inActiveArea (const SiLocalPosition &chargePos, bool checkBondGap=true) const |
check if the position is in active area More... | |
virtual double | scaledDistanceToNearestDiode (const SiLocalPosition &chargePos) const |
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 More... | |
virtual double | stripPitch (const SiLocalPosition &chargePos) const |
give the strip pitch (dependence on position needed for forward) More... | |
virtual double | stripPitch () const |
give the strip pitch (For Forward returns pitch at center) More... | |
virtual SiDiodesParameters | parameters (const SiCellId &cellId) const |
readout or diode id -> position, size More... | |
virtual SiLocalPosition | localPositionOfCell (const SiCellId &cellId) const |
id -> position More... | |
virtual SiLocalPosition | localPositionOfCluster (const SiCellId &cellId, int clusterSize) const |
virtual SiCellId | cellIdOfPosition (const SiLocalPosition &localPos) const |
position -> id More... | |
virtual std::pair< SiLocalPosition, SiLocalPosition > | endsOfStrip (const SiLocalPosition &position) const |
this method returns the ends of the strip More... | |
virtual HepGeom::Vector3D< double > | phiMeasureSegment (const SiLocalPosition &position) const |
method for stereo angle computation - returns a vector parallel to the strip being hit More... | |
double | radius () const |
Nominal center radius of double wafer. 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 | deadAreaLength () const |
give length of dead area More... | |
virtual double | deadAreaUpperBoundary () const |
give upper boundary of dead area More... | |
virtual double | deadAreaLowerBoundary () const |
give lower boundary of dead area 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 | angularPitch () const |
Angular pitch. More... | |
virtual DetectorShape | shape () const |
Shape of element. More... | |
virtual const Trk::SurfaceBounds & | bounds () const |
Element boundary. More... | |
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. More... | |
virtual SiCellId | connectedCell (const SiReadoutCellId &readoutId, int number) const override |
readout id -> id of connected diodes. More... | |
virtual SiCellId | gangedCell (const SiCellId &cellId) const override |
If cell is ganged return the other cell, otherwise return an invalid id. More... | |
virtual SiReadoutCellId | readoutIdOfCell (const SiCellId &cellId) const override |
diode id -> readout id More... | |
virtual SiReadoutCellId | readoutIdOfPosition (const SiLocalPosition &localPos) const override |
position -> id More... | |
virtual SiCellId | cellIdInRange (const SiCellId &cellId) const override |
Check if cell is in range. More... | |
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. More... | |
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. More... | |
int | crystals () const |
number of crystals within module side: More... | |
int | diodes () const |
number of strips within crystal: More... | |
virtual int | diodesInRow (const int row) const |
int | cells () const |
number of readout stips within module side: More... | |
int | shift () const |
number of edge strips before first readout strip. More... | |
virtual bool | swapHitPhiReadoutDirection () const override |
Return true if hit local direction is the same as readout direction. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual Amg::Vector3D | sensorCenter () const |
Return the centre of a sensor in the local reference frame. 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 DetectorType | type () const |
Type of element. More... | |
virtual const Amg::Transform3D | moduleShift () const |
Protected Attributes | |
SCT_ReadoutScheme | m_scheme |
InDetDD::DetectorType | m_detectorType {Undefined} |
Private Member Functions | |
SCT_ForwardModuleSideDesign () | |
Forbidden default constructor. More... | |
SCT_ForwardModuleSideDesign (const SCT_ForwardModuleSideDesign &design) | |
Copy constructor: More... | |
SCT_ForwardModuleSideDesign & | operator= (const SCT_ForwardModuleSideDesign &design) |
Assignment operator: More... | |
Private Attributes | |
SCT_ForwardModuleSideGeometry | m_geometry |
geometry of module side More... | |
SCT_ForwardFrameTransformation | m_frame |
polar / cartesian frame transformation More... | |
Trk::TrapezoidBounds | m_bounds |
bool | m_swapStripReadout |
const SCT_ModuleSideDesign * | m_motherDesign {nullptr} |
std::map< int, const SCT_ModuleSideDesign * > | m_childDesigns |
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 |
Design descriptor for forward modules in the SCT, carries the bounds, and readout information.
Definition at line 39 of file SCT_ForwardModuleSideDesign.h.
|
inherited |
Enumerator | |
---|---|
xAxis | |
yAxis | |
zAxis |
Definition at line 59 of file DetectorDesign.h.
InDetDD::SCT_ForwardModuleSideDesign::SCT_ForwardModuleSideDesign | ( | const double | thickness, |
const int | crystals, | ||
const int | diodes, | ||
const int | cells, | ||
const int | shift, | ||
const bool | swapStripReadout, | ||
InDetDD::CarrierType | carrierType, | ||
const double | radius1, | ||
const double | halfHeight1, | ||
const double | radius2, | ||
const double | halfHeight2, | ||
const double | step, | ||
const double | etaCenter, | ||
const double | phiCenter, | ||
int | readoutSide = -1 |
||
) |
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 r from inner crystal center to beam inner crystal half height r from outer crystal (if present) center to beam outer crystal (if present) half height strip step in angle (same for both crystals) eta coordinate of crystal center phi coordinate of crystal center.
Definition at line 23 of file SCT_ForwardModuleSideDesign.cxx.
|
virtualdefault |
Destructor:
|
private |
Forbidden default constructor.
|
private |
Copy constructor:
|
inlineinherited |
Definition at line 292 of file SCT_ModuleSideDesign.h.
|
inline |
Angular pitch.
Definition at line 208 of file SCT_ForwardModuleSideDesign.h.
|
virtual |
Element boundary.
Implements InDetDD::DetectorDesign.
Definition at line 285 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineinherited |
Return carrier type (ie electrons or holes)
Definition at line 275 of file DetectorDesign.h.
|
overridevirtualinherited |
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.
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
Definition at line 101 of file SCT_ModuleSideDesign.cxx.
|
virtual |
position -> id
Implements InDetDD::DetectorDesign.
Definition at line 258 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineinherited |
number of readout stips within module side:
Definition at line 228 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtualinherited |
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.
|
inlineinherited |
number of crystals within module side:
Definition at line 216 of file SCT_ModuleSideDesign.h.
|
virtual |
give length of dead area
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 175 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
give lower boundary of dead area
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 185 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
give upper boundary of dead area
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 180 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineinherited |
local axis corresponding to depth direction:
Definition at line 267 of file DetectorDesign.h.
|
inlineinherited |
Definition at line 287 of file DetectorDesign.h.
|
inlineinherited |
number of strips within crystal:
Definition at line 220 of file SCT_ModuleSideDesign.h.
|
inlinevirtualinherited |
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::StripBoxDesign.
Definition at line 224 of file SCT_ModuleSideDesign.h.
|
virtual |
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Implements InDetDD::DetectorDesign.
Definition at line 66 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
this method returns the ends of the strip
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 120 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineinherited |
local axis corresponding to eta direction:
Definition at line 259 of file DetectorDesign.h.
|
inlinevirtual |
Pitch in eta direction.
Implements InDetDD::DetectorDesign.
Definition at line 202 of file SCT_ForwardModuleSideDesign.h.
|
inlineinherited |
Definition at line 283 of file DetectorDesign.h.
|
inlineoverridevirtualinherited |
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.
|
inlineinherited |
Definition at line 287 of file SCT_ModuleSideDesign.h.
|
inlineinherited |
Definition at line 283 of file SCT_ModuleSideDesign.h.
|
virtualinherited |
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 |
Reimplemented in InDetDD::StripBoxDesign, and InDetDD::StripStereoAnnulusDesign.
Definition at line 127 of file SCT_ModuleSideDesign.cxx.
|
virtual |
check if the position is in active area
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 81 of file SCT_ForwardModuleSideDesign.cxx.
|
overridevirtualinherited |
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.
|
virtual |
Method to calculate length of a module.
Implements InDetDD::DetectorDesign.
Definition at line 155 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
id -> position
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 192 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 212 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
Method to calculate maximum width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 170 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
Method to calculate minimum width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 165 of file SCT_ForwardModuleSideDesign.cxx.
|
virtualinherited |
Reimplemented in InDetDD::StripBoxDesign.
Definition at line 130 of file DetectorDesign.cxx.
|
virtual |
Test if near bond gap within tolerances.
Implements InDetDD::SiDetectorDesign.
Definition at line 75 of file SCT_ForwardModuleSideDesign.cxx.
|
overridevirtualinherited |
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.
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
Definition at line 70 of file SCT_ModuleSideDesign.cxx.
|
inlineoverridevirtualinherited |
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 |
Assignment operator:
|
virtual |
readout or diode id -> position, size
Implements InDetDD::DetectorDesign.
Definition at line 235 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineinherited |
local axis corresponding to phi direction:
Definition at line 263 of file DetectorDesign.h.
|
virtual |
method for stereo angle computation - returns a vector parallel to the strip being hit
Implements InDetDD::SiDetectorDesign.
Definition at line 143 of file SCT_ForwardModuleSideDesign.cxx.
|
inlinevirtual |
Pitch in phi direction.
Implements InDetDD::DetectorDesign.
Definition at line 196 of file SCT_ForwardModuleSideDesign.h.
|
inlinevirtual |
Pitch in phi direction.
Implements InDetDD::DetectorDesign.
Definition at line 190 of file SCT_ForwardModuleSideDesign.h.
|
inlineinherited |
Definition at line 279 of file DetectorDesign.h.
|
virtualinherited |
gives position of strip center ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId & cellId) or rawLocalPositionOfCell method in SiDetectorElement.
DEPRECATED
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
Definition at line 95 of file SCT_ModuleSideDesign.cxx.
|
inline |
Nominal center radius of double wafer.
Definition at line 184 of file SCT_ForwardModuleSideDesign.h.
|
inlineoverridevirtualinherited |
diode id -> readout id
Implements InDetDD::DetectorDesign.
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
Definition at line 251 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtualinherited |
position -> id
Implements InDetDD::DetectorDesign.
Definition at line 256 of file SCT_ModuleSideDesign.h.
|
inlineinherited |
ReadoutSide.
+1 = postive depth side, -1 = negative depth side.
Definition at line 291 of file DetectorDesign.h.
|
inlinevirtualinherited |
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::StripBoxDesign.
Definition at line 271 of file SCT_ModuleSideDesign.h.
|
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
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 91 of file SCT_ForwardModuleSideDesign.cxx.
|
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 |
Definition at line 109 of file SCT_ModuleSideDesign.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.
|
virtual |
Shape of element.
Reimplemented from InDetDD::DetectorDesign.
Definition at line 279 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineinherited |
number of edge strips before first readout strip.
Definition at line 232 of file SCT_ModuleSideDesign.h.
|
virtual |
Give strip angle in the reco frame.
Reimplemented from InDetDD::SiDetectorDesign.
Definition at line 53 of file SCT_ForwardModuleSideDesign.cxx.
|
inlinevirtualinherited |
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::StripBoxDesign.
Definition at line 275 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtualinherited |
only relevant for SCT.
Return strip1Dim(int strip, int row) if SCT; otherwise -1
Reimplemented from InDetDD::SiDetectorDesign.
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::StripBoxDesign.
Definition at line 279 of file SCT_ModuleSideDesign.h.
|
virtual |
give the strip pitch (For Forward returns pitch at center)
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 108 of file SCT_ForwardModuleSideDesign.cxx.
|
virtual |
give the strip pitch (dependence on position needed for forward)
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 99 of file SCT_ForwardModuleSideDesign.cxx.
|
inlineoverridevirtualinherited |
Implements InDetDD::DetectorDesign.
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
Definition at line 267 of file SCT_ModuleSideDesign.h.
|
inlineoverridevirtualinherited |
Return true if hit local direction is the same as readout direction.
Implements InDetDD::DetectorDesign.
Reimplemented in InDetDD::StripStereoAnnulusDesign, InDetDD::StripBoxDesign, and InDetDD::StripAnnulusDesign.
Definition at line 263 of file SCT_ModuleSideDesign.h.
|
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.
|
virtual |
Method to calculate average width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 160 of file SCT_ForwardModuleSideDesign.cxx.
|
private |
Definition at line 175 of file SCT_ForwardModuleSideDesign.h.
|
privateinherited |
Definition at line 240 of file DetectorDesign.h.
|
privateinherited |
Definition at line 210 of file SCT_ModuleSideDesign.h.
|
privateinherited |
Definition at line 238 of file DetectorDesign.h.
|
privateinherited |
Definition at line 244 of file DetectorDesign.h.
|
protectedinherited |
Definition at line 197 of file SCT_ModuleSideDesign.h.
|
privateinherited |
Definition at line 236 of file DetectorDesign.h.
|
privateinherited |
Definition at line 243 of file DetectorDesign.h.
|
private |
polar / cartesian frame transformation
Definition at line 174 of file SCT_ForwardModuleSideDesign.h.
|
private |
geometry of module side
Definition at line 173 of file SCT_ForwardModuleSideDesign.h.
|
privateinherited |
Definition at line 208 of file SCT_ModuleSideDesign.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.
|
protectedinherited |
Definition at line 196 of file SCT_ModuleSideDesign.h.
|
privateinherited |
Definition at line 204 of file SCT_ModuleSideDesign.h.
|
privateinherited |
Definition at line 239 of file DetectorDesign.h.