ATLAS Offline Software
|
#include <StripAnnulusDesign.h>
Public Types | |
enum | Axis { xAxis =0, yAxis, zAxis } |
Public Member Functions | |
StripAnnulusDesign (const SiDetectorDesign::Axis &stripDirection, const SiDetectorDesign::Axis &thicknessDirection, const double &thickness, const int &readoutSide, const InDetDD::CarrierType &carrier, const int &nStrips, const double &pitch, const double &stripStart, const double &stripEnd) | |
~StripAnnulusDesign ()=default | |
Amg::Vector3D | sensorCenter () const |
Return the centre of a sensor in the local reference frame. More... | |
StripAnnulusDesign (const StripAnnulusDesign &design) | |
StripAnnulusDesign & | operator= (const StripAnnulusDesign &design) |
void | distanceToDetectorEdge (const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const |
DEPRECATED: Unused (2014) More... | |
bool | inActiveArea (const SiLocalPosition &chargePos, bool checkBondGap=false) const |
check if the position is in active area More... | |
const Trk::SurfaceBounds & | bounds () const |
Element boundary. More... | |
std::pair< SiLocalPosition, SiLocalPosition > | endsOfStrip (const SiLocalPosition &position) const |
Give end points of the strip that covers the given position. More... | |
double | stripPitch (const SiLocalPosition &localPosition) const |
give the strip pitch (dependence on position needed for forward) More... | |
double | stripPitch () const |
give the strip pitch (For Forward returns pitch at center) More... | |
double | phiPitch (const SiLocalPosition &localPosition) const |
Pitch in phi direction. More... | |
double | phiPitch () const |
Pitch in phi direction. More... | |
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... | |
SiDiodesParameters | parameters (const SiCellId &cellId) const |
Return strip width, centre, length etc. Hard to find if this is used or not. More... | |
SiLocalPosition | localPositionOfCell (const SiCellId &cellId) const |
id -> position More... | |
SiLocalPosition | localPositionOfCluster (const SiCellId &cellId, int clusterSize) const |
SiCellId | cellIdOfPosition (const SiLocalPosition &localPos) const |
position -> id More... | |
SiLocalPosition | positionFromStrip (const SiCellId &cellId) const |
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... | |
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... | |
SiCellId | cellIdInRange (const SiCellId &) const |
Check if cell is in range. More... | |
SiReadoutCellId | readoutIdOfCell (const SiCellId &cellId) const |
diode id -> readout id More... | |
HepGeom::Vector3D< double > | phiMeasureSegment (const SiLocalPosition &position) const |
Helper method for stereo angle computation, DEPRECATED. More... | |
double | length () const |
Method to calculate length of a module. More... | |
double | width () const |
Method to calculate average width of a module. More... | |
double | minWidth () const |
Method to calculate minimum width of a module. More... | |
double | maxWidth () const |
Method to calculate maximum width of a module. More... | |
double | etaPitch () const |
bool | swapHitPhiReadoutDirection () const |
Return true if hit local direction is the same as readout direction. More... | |
bool | swapHitEtaReadoutDirection () const |
bool | nearBondGap (const SiLocalPosition &, double) const |
Test if near bond gap within tolerances, only relevant for SCT. More... | |
double | pitch (const SiCellId &cellId) const |
double | stripLength (const SiCellId &cellId) const |
double | deadAreaUpperBoundary () const |
DEPRECATED for StripAnnulusDesign; no dead area. More... | |
double | deadAreaLowerBoundary () const |
give lower boundary of dead area More... | |
double | deadAreaLength () const |
give length of dead area 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 | readoutIdOfPosition (const SiLocalPosition &localPos) const override |
position -> id 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 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 double | sinStripAngleReco (double phiCoord, double etaCoord) const |
Give strip angle in the reco 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 DetectorShape | shape () const |
Shape of element. More... | |
virtual DetectorType | type () const |
Type of element. More... | |
virtual const Amg::Transform3D | moduleShift () const |
Static Public Member Functions | |
static const Amg::Transform3D | SiHitToGeoModel () |
Protected Attributes | |
SCT_ReadoutScheme | m_scheme |
InDetDD::DetectorType | m_detectorType {Undefined} |
Private Attributes | |
int | m_nStrips |
double | m_pitch |
double | m_stripStartRadius |
double | m_stripEndRadius |
std::unique_ptr< Trk::RectangleBounds > | 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 |
Definition at line 45 of file StripAnnulusDesign.h.
|
inherited |
Enumerator | |
---|---|
xAxis | |
yAxis | |
zAxis |
Definition at line 59 of file DetectorDesign.h.
InDetDD::StripAnnulusDesign::StripAnnulusDesign | ( | const SiDetectorDesign::Axis & | stripDirection, |
const SiDetectorDesign::Axis & | thicknessDirection, | ||
const double & | thickness, | ||
const int & | readoutSide, | ||
const InDetDD::CarrierType & | carrier, | ||
const int & | nStrips, | ||
const double & | pitch, | ||
const double & | stripStart, | ||
const double & | stripEnd | ||
) |
Definition at line 15 of file StripAnnulusDesign.cxx.
|
default |
InDetDD::StripAnnulusDesign::StripAnnulusDesign | ( | const StripAnnulusDesign & | design | ) |
|
inlineinherited |
Definition at line 292 of file SCT_ModuleSideDesign.h.
|
virtual |
Element boundary.
Implements InDetDD::DetectorDesign.
Definition at line 65 of file StripAnnulusDesign.cxx.
|
inlineinherited |
Return carrier type (ie electrons or holes)
Definition at line 275 of file DetectorDesign.h.
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.
Reimplemented from InDetDD::SCT_ModuleSideDesign.
Definition at line 161 of file StripAnnulusDesign.cxx.
|
virtual |
position -> id
Implements InDetDD::DetectorDesign.
Definition at line 70 of file StripAnnulusDesign.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 219 of file StripAnnulusDesign.h.
|
virtual |
give lower boundary of dead area
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 215 of file StripAnnulusDesign.h.
|
virtual |
DEPRECATED for StripAnnulusDesign; no dead area.
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 211 of file StripAnnulusDesign.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.
|
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 |
DEPRECATED: Unused (2014)
Implements InDetDD::DetectorDesign.
Definition at line 203 of file StripAnnulusDesign.h.
|
virtual |
Give end points of the strip that covers the given position.
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 108 of file StripAnnulusDesign.cxx.
|
inlineinherited |
local axis corresponding to eta direction:
Definition at line 259 of file DetectorDesign.h.
|
virtual |
Implements InDetDD::DetectorDesign.
Definition at line 189 of file StripAnnulusDesign.cxx.
|
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 124 of file StripAnnulusDesign.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 173 of file StripAnnulusDesign.cxx.
|
virtual |
id -> position
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 79 of file StripAnnulusDesign.cxx.
|
virtual |
|
virtual |
Method to calculate maximum width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 185 of file StripAnnulusDesign.cxx.
|
virtual |
Method to calculate minimum width of a module.
Implements InDetDD::DetectorDesign.
Definition at line 181 of file StripAnnulusDesign.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.
Implements InDetDD::SiDetectorDesign.
Definition at line 187 of file StripAnnulusDesign.h.
|
virtual |
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.
Reimplemented from InDetDD::SCT_ModuleSideDesign.
Definition at line 44 of file StripAnnulusDesign.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.
StripAnnulusDesign& InDetDD::StripAnnulusDesign::operator= | ( | const StripAnnulusDesign & | design | ) |
|
virtual |
Return strip width, centre, length etc. Hard to find if this is used or not.
Implements InDetDD::DetectorDesign.
Definition at line 142 of file StripAnnulusDesign.cxx.
|
inlineinherited |
local axis corresponding to phi direction:
Definition at line 263 of file DetectorDesign.h.
|
virtual |
Helper method for stereo angle computation, DEPRECATED.
Implements InDetDD::SiDetectorDesign.
Definition at line 197 of file StripAnnulusDesign.h.
|
inlinevirtual |
Pitch in phi direction.
Implements InDetDD::DetectorDesign.
Definition at line 183 of file StripAnnulusDesign.h.
|
inlinevirtual |
Pitch in phi direction.
Implements InDetDD::DetectorDesign.
Definition at line 179 of file StripAnnulusDesign.h.
|
inlineinherited |
Definition at line 279 of file DetectorDesign.h.
|
virtual |
gives position of strip center ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId & cellId) or rawLocalPositionOfCell method in SiDetectorElement.
DEPRECATED
Reimplemented from InDetDD::SCT_ModuleSideDesign.
Definition at line 152 of file StripAnnulusDesign.cxx.
SiLocalPosition InDetDD::StripAnnulusDesign::positionFromStrip | ( | const SiCellId & | cellId | ) | const |
Definition at line 147 of file StripAnnulusDesign.cxx.
|
inlinevirtual |
diode id -> readout id
Reimplemented from InDetDD::SCT_ModuleSideDesign.
Definition at line 192 of file StripAnnulusDesign.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 133 of file StripAnnulusDesign.cxx.
|
virtual |
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 from InDetDD::DetectorDesign.
Definition at line 39 of file StripAnnulusDesign.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.
|
virtualinherited |
Shape of element.
Reimplemented in InDetDD::StripStereoAnnulusDesign, and InDetDD::SCT_ForwardModuleSideDesign.
Definition at line 96 of file DetectorDesign.cxx.
|
inlineinherited |
number of edge strips before first readout strip.
Definition at line 232 of file SCT_ModuleSideDesign.h.
|
static |
Definition at line 193 of file StripAnnulusDesign.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 |
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.
|
inlinevirtual |
give the strip pitch (For Forward returns pitch at center)
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 175 of file StripAnnulusDesign.h.
|
inlinevirtual |
give the strip pitch (dependence on position needed for forward)
Implements InDetDD::SCT_ModuleSideDesign.
Definition at line 171 of file StripAnnulusDesign.h.
|
virtual |
Reimplemented from InDetDD::SCT_ModuleSideDesign.
Definition at line 227 of file StripAnnulusDesign.h.
|
virtual |
Return true if hit local direction is the same as readout direction.
Reimplemented from InDetDD::SCT_ModuleSideDesign.
Definition at line 223 of file StripAnnulusDesign.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 177 of file StripAnnulusDesign.cxx.
|
private |
Definition at line 161 of file StripAnnulusDesign.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.
|
privateinherited |
Definition at line 208 of file SCT_ModuleSideDesign.h.
|
private |
Definition at line 157 of file StripAnnulusDesign.h.
|
privateinherited |
Definition at line 237 of file DetectorDesign.h.
|
privateinherited |
Definition at line 242 of file DetectorDesign.h.
|
private |
Definition at line 158 of file StripAnnulusDesign.h.
|
privateinherited |
Definition at line 246 of file DetectorDesign.h.
|
protectedinherited |
Definition at line 196 of file SCT_ModuleSideDesign.h.
|
private |
Definition at line 160 of file StripAnnulusDesign.h.
|
private |
Definition at line 159 of file StripAnnulusDesign.h.
|
privateinherited |
Definition at line 204 of file SCT_ModuleSideDesign.h.
|
privateinherited |
Definition at line 239 of file DetectorDesign.h.