ATLAS Offline Software
|
#include <SiDetectorElement.h>
Public Member Functions | |
SiDetectorElement (const Identifier &id, const SiDetectorDesign *design, const GeoVFullPhysVol *geophysvol, const SiCommonItems *commonItems, const GeoAlignmentStore *geoAlignStore=nullptr) | |
Constructor with parameters. More... | |
virtual | ~SiDetectorElement () |
Destructor. More... | |
SiDetectorElement ()=delete | |
Don't allow no-argument constructor. More... | |
SiDetectorElement (const SiDetectorElement &)=delete | |
Don't allow copy constructor. More... | |
SiDetectorElement & | operator= (const SiDetectorElement &)=delete |
Don't allow assignment operator. More... | |
SiDetectorElement (SiDetectorElement &&)=delete | |
Don't allow move constructor. More... | |
SiDetectorElement & | operator= (SiDetectorElement &&)=delete |
Don't allow move assignment operator. More... | |
std::string | detectorTypeString () const |
Returns a string of the Detector element type. More... | |
Cache handling | |
Methods to handle invalidating and updating caches. The cached values include values that are affected by alignment | |
void | invalidate () |
Signal that cached values are no longer valid. More... | |
void | setCache () |
Set/calculate cache values (inline) More... | |
Common items | |
Inline method | |
const SiCommonItems * | getCommonItems () const |
Identification | |
Methods to identify the element and identifier manipulation. | |
virtual Identifier | identify () const override final |
identifier of this detector element (inline) More... | |
virtual IdentifierHash | identifyHash () const override final |
identifier hash (inline) More... | |
const AtlasDetectorID * | getIdHelper () const |
Returns the id helper (inline) More... | |
Surface | |
Trk::Surface & | surface () |
Element Surface. More... | |
virtual const Trk::Surface & | surface () const override final |
Return surface associated with this detector element. More... | |
virtual const Trk::Surface & | surface (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
Transformation | |
const GeoTrf::Transform3D & | transformHit () const |
Local (simulation/hit frame) to global transform. More... | |
const HepGeom::Transform3D & | transformCLHEP () const |
Local (reconstruction frame) to global transform. More... | |
virtual const Amg::Transform3D & | transform () const override final |
Return local to global transform. More... | |
virtual const Amg::Transform3D & | transform (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
const HepGeom::Transform3D | defTransformCLHEP () const |
Default Local (reconstruction frame) to global transform ie with no misalignment. More... | |
const Amg::Transform3D | defTransform () const |
const HepGeom::Transform3D | recoToHitTransform () const |
Transform to go from local reconstruction frame to local hit frame. More... | |
Orientation | |
double | hitDepthDirection () const |
Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition). More... | |
double | hitPhiDirection () const |
See previous method. More... | |
double | hitEtaDirection () const |
See previous method. More... | |
const HepGeom::Vector3D< double > & | phiAxisCLHEP () const |
To determine if readout direction between online and offline needs swapping, see methods swapPhiReadoutDirection() and swapEtaReadoutDirection() below in "Readout Cell id" section. More... | |
const Amg::Vector3D & | phiAxis () const |
const HepGeom::Vector3D< double > & | etaAxisCLHEP () const |
Get reconstruction local eta axes in global frame. More... | |
const Amg::Vector3D & | etaAxis () const |
virtual const Amg::Vector3D & | normal () const override final |
Get reconstruction local normal axes in global frame. More... | |
virtual const Amg::Vector3D & | normal (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
Element Extent | |
Inline methods to get extent of element in r,phi and z. | |
double | rMin () const |
double | rMax () const |
double | zMin () const |
double | zMax () const |
double | phiMin () const |
double | phiMax () const |
void | getEtaPhiRegion (double deltaZ, double &etaMin, double &etaMax, double &phiMin, double &phiMax, double &rz) const |
Method for building up region of interest table. More... | |
Intersection Tests | |
SiIntersect | inDetector (const Amg::Vector2D &localPosition, double phiTol, double etaTol) const |
Test that it is in the active region. More... | |
SiIntersect | inDetector (const Amg::Vector3D &globalPosition, double phiTol, double etaTol) const |
Navigation setters | |
Non-const methods. These are inline methods and set neighbours. | |
void | setNextInEta (const SiDetectorElement *element) |
void | setPrevInEta (const SiDetectorElement *element) |
void | setNextInPhi (const SiDetectorElement *element) |
void | setPrevInPhi (const SiDetectorElement *element) |
void | setOtherSide (const SiDetectorElement *element) |
For SCT only. More... | |
Navigation | |
Inline methods to access neighbours. | |
const SiDetectorElement * | nextInEta () const |
const SiDetectorElement * | prevInEta () const |
const SiDetectorElement * | nextInPhi () const |
const SiDetectorElement * | prevInPhi () const |
const SiDetectorElement * | otherSide () const |
Useful for SCT only. More... | |
Identification | |
Methods to identify the element and identifier manipulation. | |
bool | isPixel () const |
bool | isSCT () const |
bool | isPLR () const |
bool | isDBM () const |
bool | isBarrel () const |
bool | isEndcap () const |
bool | isBlayer () const |
bool | isInnermostPixelLayer () const |
bool | isNextToInnermostPixelLayer () const |
virtual Identifier | identifierFromCellId (const SiCellId &cellId) const override final |
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie strip number or pixel eta_index,phi_index) More... | |
virtual SiCellId | cellIdFromIdentifier (const Identifier &identifier) const override final |
SiCellId from Identifier. More... | |
Surface | |
const std::vector< const Trk::Surface * > & | surfaces () const |
Returns the full list of surfaces associated to this detector element. More... | |
Module Frame | |
Methods to help work with the module frame. This is mainly of of use in the SCT where the module frame can in general be different from the element frame. It is actully defined as the frame of one of the sides (currently the axial side), but using these methods one does not need to make any assumptions about what the actual frame is. In the following methods the local element frame is the local reconstruction frame of this element. | |
const Amg::Transform3D & | moduleTransform () const |
Module to global frame transform. More... | |
Amg::Transform3D | defModuleTransform () const |
Default module to global frame transform, ie with no misalignment. More... | |
Amg::Transform3D | localToModuleFrame (const Amg::Transform3D &localTransform) const |
Take a transform of the local element frame and return its equivalent in the module frame. More... | |
Amg::Transform3D | localToModuleTransform () const |
Transformation from local element to module frame. More... | |
bool | isModuleFrame () const |
Check if the element and module frame are the same. More... | |
Element Extent | |
Methods to get extent of element in r,phi and z. | |
virtual double | get_rz () const override final |
Angle | |
double | sinTilt () const |
Compute sin(tilt angle) at a given position: at center. More... | |
double | sinTilt (const Amg::Vector2D &localPos) const |
at given local position More... | |
double | sinTilt (const Amg::Vector3D &globalPosition) const |
at given global position More... | |
double | sinStereo () const |
Compute sin(stereo angle) at a given position: at center. More... | |
double | sinStereo (const Amg::Vector2D &localPos) const |
at given local position More... | |
double | sinStereo (const Amg::Vector3D &globalPosition) const |
at given global position More... | |
double | sinStereoLocal (const Amg::Vector2D &localPos) const |
Angle of strip in local frame with respect to the etaAxis. More... | |
double | sinStereoLocal (const Amg::Vector3D &globalPos) const |
See previous method. More... | |
bool | isStereo () const |
Check if it is the stereo side (useful for SCT) More... | |
Design methods | |
virtual const SiDetectorDesign & | design () const override final |
access to the local description (inline): More... | |
double | phiPitch () const |
Pitch (inline methods) More... | |
double | phiPitch (const Amg::Vector2D &localPosition) const |
Useful for SCT Forward. More... | |
InDetDD::CarrierType | carrierType () const |
carrier type for readout. More... | |
bool | swapPhiReadoutDirection () const |
Determine if readout direction between online and offline needs swapping. More... | |
bool | swapEtaReadoutDirection () const |
For eta_index (only relevant for pixel) (inline) More... | |
Intersection Tests | |
bool | nearBondGap (const Amg::Vector2D &localPosition, double etaTol) const |
Test if near bond gap within tolerances. More... | |
bool | nearBondGap (const Amg::Vector3D &globalPosition, double etaTol) const |
SiCellId | gangedCell (const SiCellId &cellId) const |
If cell is ganged return the id of the other cell which shares the readout for this cell, otherwise return an invalid id. More... | |
Miscellaneous | |
std::pair< Amg::Vector3D, Amg::Vector3D > | endsOfStrip (const Amg::Vector2D &position) const |
Special method for SCT to retrieve the two ends of a "strip" Returned coordinates are in global frame. More... | |
virtual Trk::DetectorElemType | detectorType () const override final |
TrkDetElementBase interface detectorType. More... | |
Cache handling | |
Methods to handle invalidating and updating caches. The cached values include values that are affected by alignment | |
void | invalidate () |
Signal that cached values are no longer valid. More... | |
void | setCache () |
Set/calculate cache values (inline) More... | |
Common items | |
Inline method | |
const SiCommonItems * | getCommonItems () const |
Identification | |
Methods to identify the element and identifier manipulation. | |
virtual Identifier | identify () const override final |
identifier of this detector element (inline) More... | |
virtual IdentifierHash | identifyHash () const override final |
identifier hash (inline) More... | |
const AtlasDetectorID * | getIdHelper () const |
Returns the id helper (inline) More... | |
Surface | |
Trk::Surface & | surface () |
Element Surface. More... | |
virtual const Trk::Surface & | surface () const override final |
Return surface associated with this detector element. More... | |
virtual const Trk::Surface & | surface (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
Transformation | |
const GeoTrf::Transform3D & | transformHit () const |
Local (simulation/hit frame) to global transform. More... | |
const HepGeom::Transform3D & | transformCLHEP () const |
Local (reconstruction frame) to global transform. More... | |
virtual const Amg::Transform3D & | transform () const override final |
Return local to global transform. More... | |
virtual const Amg::Transform3D & | transform (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
const HepGeom::Transform3D | defTransformCLHEP () const |
Default Local (reconstruction frame) to global transform ie with no misalignment. More... | |
const Amg::Transform3D | defTransform () const |
const HepGeom::Transform3D | recoToHitTransform () const |
Transform to go from local reconstruction frame to local hit frame. More... | |
Orientation | |
double | hitDepthDirection () const |
Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition). More... | |
double | hitPhiDirection () const |
See previous method. More... | |
double | hitEtaDirection () const |
See previous method. More... | |
const HepGeom::Vector3D< double > & | phiAxisCLHEP () const |
To determine if readout direction between online and offline needs swapping, see methods swapPhiReadoutDirection() and swapEtaReadoutDirection() below in "Readout Cell id" section. More... | |
const Amg::Vector3D & | phiAxis () const |
const HepGeom::Vector3D< double > & | etaAxisCLHEP () const |
Get reconstruction local eta axes in global frame. More... | |
const Amg::Vector3D & | etaAxis () const |
virtual const Amg::Vector3D & | normal () const override final |
Get reconstruction local normal axes in global frame. More... | |
virtual const Amg::Vector3D & | normal (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
Position | |
virtual const Amg::Vector3D & | center () const override final |
Center in global coordinates. More... | |
virtual const Amg::Vector3D & | center (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
HepGeom::Point3D< double > | globalPositionHit (const HepGeom::Point3D< double > &simulationLocalPos) const |
transform a hit local position into a global position (inline): More... | |
Amg::Vector3D | globalPositionHit (const Amg::Vector3D &simulationLocalPos) const |
HepGeom::Point3D< double > | globalPosition (const HepGeom::Point3D< double > &localPos) const |
transform a reconstruction local position into a global position (inline): More... | |
Amg::Vector3D | globalPosition (const Amg::Vector3D &localPos) const |
Amg::Vector3D | globalPosition (const Amg::Vector2D &localPos) const |
as in previous method but for 2D local position (inline) More... | |
Amg::Vector2D | hitLocalToLocal (double xEta, double xPhi) const |
Simulation/Hit local frame to reconstruction local frame. More... | |
HepGeom::Point3D< double > | hitLocalToLocal3D (const HepGeom::Point3D< double > &hitPosition) const |
Same as previuos method but 3D. More... | |
Amg::Vector2D | localPosition (const HepGeom::Point3D< double > &globalPosition) const |
transform a global position into a 2D local position (reconstruction frame) (inline) More... | |
Amg::Vector2D | localPosition (const Amg::Vector3D &globalPosition) const |
Element Extent | |
Inline methods to get extent of element in r,phi and z. | |
double | rMin () const |
double | rMax () const |
double | zMin () const |
double | zMax () const |
double | phiMin () const |
double | phiMax () const |
void | getEtaPhiRegion (double deltaZ, double &etaMin, double &etaMax, double &phiMin, double &phiMax, double &rz) const |
Method for building up region of interest table. More... | |
Design methods | |
virtual const Trk::SurfaceBounds & | bounds () const override final |
Return the boundaries of the element. More... | |
virtual const Trk::SurfaceBounds & | bounds (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
double | width () const |
Methods from design (inline) More... | |
double | minWidth () const |
Min width. More... | |
double | maxWidth () const |
Max width. More... | |
double | length () const |
Length in eta direction (z - barrel, r - endcap) More... | |
double | thickness () const |
double | etaPitch () const |
Pitch (inline methods) More... | |
Intersection Tests | |
SiIntersect | inDetector (const Amg::Vector2D &localPosition, double phiTol, double etaTol) const |
Test that it is in the active region. More... | |
SiIntersect | inDetector (const Amg::Vector3D &globalPosition, double phiTol, double etaTol) const |
Readout cell id | |
Cell id's are the strip number in SCT and phi_index,eta_index in the pixel as defined in the offline identifier. Their direction runs in the distPhi, distEta direction in the Reconstruction local frame. For methods taking a SiCellId (basically phi,eta index for pixel or strip for SCT) you can do the following fro example:
| |
Identifier | identifierOfPosition (const Amg::Vector2D &localPos) const |
Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift) More... | |
SiCellId | cellIdOfPosition (const Amg::Vector2D &localPos) const |
As in previous method but returns SiCellId. More... | |
Amg::Vector2D | rawLocalPositionOfCell (const SiCellId &cellId) const |
Returns position (center) of cell. More... | |
Amg::Vector2D | rawLocalPositionOfCell (const Identifier &id) const |
As above. More... | |
int | numberOfConnectedCells (const SiCellId cellId) const |
Test if readout cell has more than one diode associated with it. More... | |
SiCellId | connectedCell (const SiCellId cellId, int number) const |
Get the cell ids sharing the readout for this cell. More... | |
bool | depthDirection () const |
Return information on orientation. More... | |
bool | etaDirection () const |
bool | phiDirection () const |
double | depthAngle () const |
double | etaAngle () const |
double | phiAngle () const |
Cache handling | |
Methods to handle invalidating and updating caches. The cached values include values that are affected by alignment | |
void | invalidate () |
Signal that cached values are no longer valid. More... | |
void | setCache () |
Set/calculate cache values (inline) More... | |
Common items | |
Inline method | |
const SiCommonItems * | getCommonItems () const |
Surface | |
Trk::Surface & | surface () |
Element Surface. More... | |
virtual const Trk::Surface & | surface () const override final |
Return surface associated with this detector element. More... | |
virtual const Trk::Surface & | surface (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
Transformation | |
const GeoTrf::Transform3D & | transformHit () const |
Local (simulation/hit frame) to global transform. More... | |
const HepGeom::Transform3D & | transformCLHEP () const |
Local (reconstruction frame) to global transform. More... | |
virtual const Amg::Transform3D & | transform () const override final |
Return local to global transform. More... | |
virtual const Amg::Transform3D & | transform (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
const HepGeom::Transform3D | defTransformCLHEP () const |
Default Local (reconstruction frame) to global transform ie with no misalignment. More... | |
const Amg::Transform3D | defTransform () const |
const HepGeom::Transform3D | recoToHitTransform () const |
Transform to go from local reconstruction frame to local hit frame. More... | |
Orientation | |
double | hitDepthDirection () const |
Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition). More... | |
double | hitPhiDirection () const |
See previous method. More... | |
double | hitEtaDirection () const |
See previous method. More... | |
const HepGeom::Vector3D< double > & | phiAxisCLHEP () const |
To determine if readout direction between online and offline needs swapping, see methods swapPhiReadoutDirection() and swapEtaReadoutDirection() below in "Readout Cell id" section. More... | |
const Amg::Vector3D & | phiAxis () const |
const HepGeom::Vector3D< double > & | etaAxisCLHEP () const |
Get reconstruction local eta axes in global frame. More... | |
const Amg::Vector3D & | etaAxis () const |
virtual const Amg::Vector3D & | normal () const override final |
Get reconstruction local normal axes in global frame. More... | |
virtual const Amg::Vector3D & | normal (const Identifier &) const override final |
TrkDetElementBase interface (inline) More... | |
Intersection Tests | |
SiIntersect | inDetector (const Amg::Vector2D &localPosition, double phiTol, double etaTol) const |
Test that it is in the active region. More... | |
SiIntersect | inDetector (const Amg::Vector3D &globalPosition, double phiTol, double etaTol) const |
Protected Attributes | |
Variables set by constructor | |
Protected data: | |
Identifier | m_id {} |
identifier of this detector element More... | |
const DetectorDesign * | m_design {nullptr} |
local description of this detector element More... | |
const SiCommonItems * | m_commonItems {nullptr} |
std::unique_ptr< Trk::Surface > | m_surface |
const GeoAlignmentStore * | m_geoAlignStore {} |
DetectorDesign::Axis | m_hitEta |
Axes. More... | |
DetectorDesign::Axis | m_hitPhi |
DetectorDesign::Axis | m_hitDepth |
Variables set by commonConstructor | |
IdentifierHash | m_idHash {} |
hash id of this detector element More... | |
Variables set by updateCache and not invalidated. | |
Directions of axes. These are true if the hit/simulation and reconstruction local frames are in the same direction and false if they are opposite. | |
CxxUtils::CachedValue< AxisDir > | m_axisDir |
Variables set by updateCache | |
CxxUtils::CachedValue< CachedVals > | m_cache |
Cache vector of surfaces. | |
CxxUtils::CachedValue< std::vector< const Trk::Surface * > > | m_surfaces |
Variables set by constructor | |
const SiDetectorDesign * | m_siDesign |
Variables set by commonConstructor | |
bool | m_isPixel {false} |
bool | m_isSCT {false} |
bool | m_isPLR {false} |
bool | m_isDBM {false} |
bool | m_isBarrel {false} |
Variables set by individual setter methods | |
const SiDetectorElement * | m_nextInEta {nullptr} |
const SiDetectorElement * | m_prevInEta {nullptr} |
const SiDetectorElement * | m_nextInPhi {nullptr} |
const SiDetectorElement * | m_prevInPhi {nullptr} |
const SiDetectorElement * | m_otherSide {nullptr} |
Variables set by constructor | |
Protected data: | |
Identifier | m_id {} |
identifier of this detector element More... | |
const DetectorDesign * | m_design {nullptr} |
local description of this detector element More... | |
const SiCommonItems * | m_commonItems {nullptr} |
std::unique_ptr< Trk::Surface > | m_surface |
const GeoAlignmentStore * | m_geoAlignStore {} |
DetectorDesign::Axis | m_hitEta |
Axes. More... | |
DetectorDesign::Axis | m_hitPhi |
DetectorDesign::Axis | m_hitDepth |
Variables set by commonConstructor | |
IdentifierHash | m_idHash {} |
hash id of this detector element More... | |
Variables set by updateCache and not invalidated. | |
Directions of axes. These are true if the hit/simulation and reconstruction local frames are in the same direction and false if they are opposite. | |
CxxUtils::CachedValue< AxisDir > | m_axisDir |
Variables set by updateCache | |
CxxUtils::CachedValue< CachedVals > | m_cache |
Variables set by constructor | |
Protected data: | |
Identifier | m_id {} |
identifier of this detector element More... | |
const DetectorDesign * | m_design {nullptr} |
local description of this detector element More... | |
const SiCommonItems * | m_commonItems {nullptr} |
std::unique_ptr< Trk::Surface > | m_surface |
const GeoAlignmentStore * | m_geoAlignStore {} |
DetectorDesign::Axis | m_hitEta |
Axes. More... | |
DetectorDesign::Axis | m_hitPhi |
DetectorDesign::Axis | m_hitDepth |
Variables set by commonConstructor | |
IdentifierHash | m_idHash {} |
hash id of this detector element More... | |
Variables set by updateCache and not invalidated. | |
Directions of axes. These are true if the hit/simulation and reconstruction local frames are in the same direction and false if they are opposite. | |
CxxUtils::CachedValue< AxisDir > | m_axisDir |
Variables set by updateCache | |
CxxUtils::CachedValue< CachedVals > | m_cache |
Private Member Functions | |
Private Methods | |
Do not use locks. | |
void | commonConstructor () |
Common code for constructors. More... | |
virtual void | updateCache () const override final |
Recalculate cached values. More... | |
bool | determineStereo () const |
Find isStereo. More... | |
double | sinStereoImpl () const |
Private implementation method with no lock at center. More... | |
double | sinStereoImpl (const Amg::Vector3D &globalPosition) const |
Private implementation method with no lock at given global position. More... | |
Private Methods | |
Do not use locks. | |
void | getExtent (CachedVals &cache) const |
Calculate extent in r,z and phi. More... | |
void | getCorners (HepGeom::Point3D< double > *corners) const |
Return the four corners of an element in local coordinates. More... | |
void | getEtaPhiPoint (const HepGeom::Point3D< double > &point, double deltaZ, double &etaMin, double &etaMax, double &phi) const |
Get eta and phi coresponding to a point in local coordinates. More... | |
Cache result of determineStereo(). | |
CxxUtils::CachedValue< bool > | m_isStereo |
MsgStream & | msg (MSG::Level lvl) const |
Declaring the Message method for further use (inline) More... | |
bool | msgLvl (MSG::Level lvl) const |
Declaring the Method providing Verbosity Level (inline) More... | |
Class to hold geometrical description of a silicon detector element. A detector element is a module in the pixels and one side of a module in the SCT. This class is shared between the Pixel and SCT detector since there is a lot of commonality. It inherits frm ReadoutGeometryBase/SolidStateDetectorElement, which is also used for HGTD
The following coordinate frames are used in these elements.
Directions of these correspond to the physical wafer. Consequently hitDepth and hitPhi axes go in different directions depending on the orientation of the module. The readout side is determined from design()->readoutSide().
The directions of the axes are defined as
Methods are grouped into the the following categories
The private methods of this class do not have locks.
The method updateCache of is of particular interest as it set all cache values.
The const methods call updateCache() when they need to perform lazy initialization
So as concurrent const operations are valid
The non-const methods can set the state of the cache or the cache itself (invalidate/setCache methods etc)
Note: Synchronisation of creating SiDetElements for different events and accessing for each events can be done via write/read handles or similar EventContext aware framework machinery.
Definition at line 109 of file SiDetectorElement.h.
InDetDD::SiDetectorElement::SiDetectorElement | ( | const Identifier & | id, |
const SiDetectorDesign * | design, | ||
const GeoVFullPhysVol * | geophysvol, | ||
const SiCommonItems * | commonItems, | ||
const GeoAlignmentStore * | geoAlignStore = nullptr |
||
) |
|
virtualdefault |
Destructor.
|
delete |
Don't allow no-argument constructor.
|
delete |
Don't allow copy constructor.
|
delete |
Don't allow move constructor.
|
finaloverridevirtualinherited |
Return the boundaries of the element.
Implements Trk::TrkDetElementBase.
Definition at line 198 of file SolidStateDetectorElementBase.cxx.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
InDetDD::CarrierType InDetDD::SiDetectorElement::carrierType | ( | ) | const |
carrier type for readout.
ie holes for SCT and electrons for pixels. inline
|
finaloverridevirtual |
SiCellId from Identifier.
Implements InDetDD::SolidStateDetectorElementBase.
Definition at line 120 of file SiDetectorElement.cxx.
|
inherited |
As in previous method but returns SiCellId.
Definition at line 224 of file SolidStateDetectorElementBase.cxx.
|
finaloverridevirtualinherited |
Center in global coordinates.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
private |
Common code for constructors.
Definition at line 349 of file SiDetectorElement.cxx.
|
inherited |
Get the cell ids sharing the readout for this cell.
number = 0 will return the primary readout cell id.
Definition at line 250 of file SolidStateDetectorElementBase.cxx.
Amg::Transform3D InDetDD::SiDetectorElement::defModuleTransform | ( | ) | const |
Default module to global frame transform, ie with no misalignment.
The module frame is defined to be the local reconstruction frame of the axial layer in the SCT. For the pixel it is the same as the element.
Definition at line 179 of file SiDetectorElement.cxx.
|
inherited |
Definition at line 60 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Default Local (reconstruction frame) to global transform ie with no misalignment.
Definition at line 50 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
Return information on orientation.
|
finaloverridevirtual |
access to the local description (inline):
Reimplemented from InDetDD::SolidStateDetectorElementBase.
|
finaloverridevirtual |
TrkDetElementBase interface detectorType.
Reimplemented from InDetDD::SolidStateDetectorElementBase.
|
inherited |
|
private |
std::pair< Amg::Vector3D, Amg::Vector3D > InDetDD::SiDetectorElement::endsOfStrip | ( | const Amg::Vector2D & | position | ) | const |
Special method for SCT to retrieve the two ends of a "strip" Returned coordinates are in global frame.
Definition at line 339 of file SiDetectorElement.cxx.
|
inherited |
|
inherited |
Definition at line 88 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Get reconstruction local eta axes in global frame.
In direction of increasing z in the barrel and increasing r in the endcap.
Definition at line 81 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
Pitch (inline methods)
NOTE: phiPitch is ambiguous for the Forward SCT where it varies along the strip.
etaPitch is ambiguous for the pixel which has long pixels between FE chips.
For these cases:
phiPitch: For SCT Forward returns pitch at center.
etaPitch: For pixel returns average pitch. (Active_length/number_of_cells)
All return pitch in distance units.
If cell is ganged return the id of the other cell which shares the readout for this cell, otherwise return an invalid id.
This is a more convenient (and slightly faster) alternative than using the above two methods. Only relevant for pixel. For SCT always returns an invalid ID. (inline)
|
finaloverridevirtual |
Implements InDetDD::SolidStateDetectorElementBase.
Definition at line 309 of file SiDetectorElement.cxx.
|
inherited |
|
privateinherited |
Return the four corners of an element in local coordinates.
Pass it an array of length 4. This function is used by getEtaPhiRegion()
Definition at line 551 of file SolidStateDetectorElementBase.cxx.
|
privateinherited |
Get eta and phi coresponding to a point in local coordinates.
Requires as input the vertex spread. Returns etaMin, etaMax, and phi. This function is used by getEtaPhiRegion()
Definition at line 589 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Method for building up region of interest table.
Get eta/phi extent for the element. Returns min/max eta and phi and r (for barrel) or z (for endcap) Takes as input the vertex spread in z (-deltaZ to +deltaZ)
Definition at line 140 of file SolidStateDetectorElementBase.cxx.
|
privateinherited |
Calculate extent in r,z and phi.
The values are cached and there are rMin(), rMax etc methods. It is only used from updateCache
Definition at line 483 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Returns the id helper (inline)
|
inherited |
as in previous method but for 2D local position (inline)
|
inherited |
|
inherited |
transform a reconstruction local position into a global position (inline):
|
inherited |
|
inherited |
transform a hit local position into a global position (inline):
|
inherited |
Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition).
Returns +/-1. inline
|
inherited |
See previous method.
inline
|
inherited |
Simulation/Hit local frame to reconstruction local frame.
2D. TODO: Will change order of parameters at some point.
Definition at line 95 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
See previous method.
inline
|
finaloverridevirtual |
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie strip number or pixel eta_index,phi_index)
Implements InDetDD::SolidStateDetectorElementBase.
Definition at line 89 of file SiDetectorElement.cxx.
|
inherited |
Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift)
Definition at line 217 of file SolidStateDetectorElementBase.cxx.
|
finaloverridevirtualinherited |
identifier of this detector element (inline)
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
identifier hash (inline)
Implements Trk::TrkDetElementBase.
|
inherited |
Test that it is in the active region.
Intersect has 3 states bool SiIntersect::in() const // definitely in
bool SiIntersect::out() const // definitely out
bool SiIntersect::nearBoundary() const // near a boundary within the tolerances
bool SiIntersect::mayIntersect() const // in() OR nearBoundary()
Definition at line 204 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Definition at line 211 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Signal that cached values are no longer valid.
Invalidate general cache (inline)
bool InDetDD::SiDetectorElement::isBarrel | ( | ) | const |
bool InDetDD::SiDetectorElement::isBlayer | ( | ) | const |
Definition at line 53 of file SiDetectorElement.cxx.
bool InDetDD::SiDetectorElement::isDBM | ( | ) | const |
bool InDetDD::SiDetectorElement::isEndcap | ( | ) | const |
bool InDetDD::SiDetectorElement::isInnermostPixelLayer | ( | ) | const |
Definition at line 65 of file SiDetectorElement.cxx.
bool InDetDD::SiDetectorElement::isModuleFrame | ( | ) | const |
Check if the element and module frame are the same.
Definition at line 212 of file SiDetectorElement.cxx.
bool InDetDD::SiDetectorElement::isNextToInnermostPixelLayer | ( | ) | const |
Definition at line 77 of file SiDetectorElement.cxx.
bool InDetDD::SiDetectorElement::isPixel | ( | ) | const |
bool InDetDD::SiDetectorElement::isPLR | ( | ) | const |
bool InDetDD::SiDetectorElement::isSCT | ( | ) | const |
bool InDetDD::SiDetectorElement::isStereo | ( | ) | const |
Check if it is the stereo side (useful for SCT)
Definition at line 300 of file SiDetectorElement.cxx.
|
inherited |
Length in eta direction (z - barrel, r - endcap)
|
inherited |
|
inherited |
transform a global position into a 2D local position (reconstruction frame) (inline)
Amg::Transform3D InDetDD::SiDetectorElement::localToModuleFrame | ( | const Amg::Transform3D & | localTransform | ) | const |
Take a transform of the local element frame and return its equivalent in the module frame.
Definition at line 192 of file SiDetectorElement.cxx.
Amg::Transform3D InDetDD::SiDetectorElement::localToModuleTransform | ( | ) | const |
Transformation from local element to module frame.
This can be used to take a local position in the element frame and transform it to a position in the module frame. If one is already in the module frame it will return the Identity transform.
Definition at line 202 of file SiDetectorElement.cxx.
|
inherited |
Max width.
Needed for the SCT endcap.
|
inherited |
Min width.
Needed for the SCT endcap.
const Amg::Transform3D & InDetDD::SiDetectorElement::moduleTransform | ( | ) | const |
Module to global frame transform.
Includes misalignment. The module frame is defined to be the local reconstruction frame of the axial layer in the SCT. For the pixel it is the same as the element.
Definition at line 173 of file SiDetectorElement.cxx.
|
protected |
Declaring the Message method for further use (inline)
|
protected |
Declaring the Method providing Verbosity Level (inline)
bool InDetDD::SiDetectorElement::nearBondGap | ( | const Amg::Vector2D & | localPosition, |
double | etaTol | ||
) | const |
bool InDetDD::SiDetectorElement::nearBondGap | ( | const Amg::Vector3D & | globalPosition, |
double | etaTol | ||
) | const |
Definition at line 330 of file SiDetectorElement.cxx.
const SiDetectorElement* InDetDD::SiDetectorElement::nextInEta | ( | ) | const |
const SiDetectorElement* InDetDD::SiDetectorElement::nextInPhi | ( | ) | const |
|
finaloverridevirtualinherited |
Get reconstruction local normal axes in global frame.
Choosen to give right-handed coordinate frame.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
inherited |
Test if readout cell has more than one diode associated with it.
Number of cells sharing the same readout as this cell. ie generally 1 except for ganged pixels which will be 2.
Definition at line 243 of file SolidStateDetectorElementBase.cxx.
|
delete |
Don't allow assignment operator.
|
delete |
Don't allow move assignment operator.
const SiDetectorElement* InDetDD::SiDetectorElement::otherSide | ( | ) | const |
Useful for SCT only.
|
inherited |
|
inherited |
Definition at line 74 of file SolidStateDetectorElementBase.cxx.
|
inherited |
To determine if readout direction between online and offline needs swapping, see methods swapPhiReadoutDirection() and swapEtaReadoutDirection() below in "Readout Cell id" section.
Orientation. Directions.
Get reconstruction local phi axes in global frame. In same direction as increasing phi and identifier phi_index/strip.
Definition at line 67 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
|
inherited |
double InDetDD::SiDetectorElement::phiPitch | ( | ) | const |
Pitch (inline methods)
NOTE: phiPitch is ambiguous for the Forward SCT where it varies along the strip.
etaPitch is ambiguous for the pixel which has long pixels between FE chips.
For these cases:
phiPitch: For SCT Forward returns pitch at center.
etaPitch: For pixel returns average pitch. (Active_length/number_of_cells)
All return pitch in distance units.
double InDetDD::SiDetectorElement::phiPitch | ( | const Amg::Vector2D & | localPosition | ) | const |
Useful for SCT Forward.
const SiDetectorElement* InDetDD::SiDetectorElement::prevInEta | ( | ) | const |
const SiDetectorElement* InDetDD::SiDetectorElement::prevInPhi | ( | ) | const |
|
inherited |
|
inherited |
Returns position (center) of cell.
These are the raw positions NOT corrected for the Lorentz shift
Definition at line 230 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Transform to go from local reconstruction frame to local hit frame.
Definition at line 607 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
|
inherited |
Set/calculate cache values (inline)
void InDetDD::SiDetectorElement::setNextInEta | ( | const SiDetectorElement * | element | ) |
void InDetDD::SiDetectorElement::setNextInPhi | ( | const SiDetectorElement * | element | ) |
void InDetDD::SiDetectorElement::setOtherSide | ( | const SiDetectorElement * | element | ) |
For SCT only.
void InDetDD::SiDetectorElement::setPrevInEta | ( | const SiDetectorElement * | element | ) |
void InDetDD::SiDetectorElement::setPrevInPhi | ( | const SiDetectorElement * | element | ) |
double InDetDD::SiDetectorElement::sinStereo | ( | ) | const |
Compute sin(stereo angle) at a given position: at center.
Definition at line 269 of file SiDetectorElement.cxx.
double InDetDD::SiDetectorElement::sinStereo | ( | const Amg::Vector2D & | localPos | ) | const |
at given local position
Definition at line 275 of file SiDetectorElement.cxx.
double InDetDD::SiDetectorElement::sinStereo | ( | const Amg::Vector3D & | globalPosition | ) | const |
at given global position
Definition at line 282 of file SiDetectorElement.cxx.
|
private |
Private implementation method with no lock at center.
Definition at line 439 of file SiDetectorElement.cxx.
|
private |
Private implementation method with no lock at given global position.
Definition at line 497 of file SiDetectorElement.cxx.
double InDetDD::SiDetectorElement::sinStereoLocal | ( | const Amg::Vector2D & | localPos | ) | const |
Angle of strip in local frame with respect to the etaAxis.
Zero for all elements except trapezoidal detectors (ie SCT forward modules).
Definition at line 288 of file SiDetectorElement.cxx.
double InDetDD::SiDetectorElement::sinStereoLocal | ( | const Amg::Vector3D & | globalPos | ) | const |
See previous method.
Definition at line 294 of file SiDetectorElement.cxx.
double InDetDD::SiDetectorElement::sinTilt | ( | ) | const |
Compute sin(tilt angle) at a given position: at center.
Definition at line 223 of file SiDetectorElement.cxx.
double InDetDD::SiDetectorElement::sinTilt | ( | const Amg::Vector2D & | localPos | ) | const |
double InDetDD::SiDetectorElement::sinTilt | ( | const Amg::Vector3D & | globalPosition | ) | const |
|
inherited |
Element Surface.
|
finaloverridevirtualinherited |
Return surface associated with this detector element.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
const std::vector< const Trk::Surface * > & InDetDD::SiDetectorElement::surfaces | ( | ) | const |
Returns the full list of surfaces associated to this detector element.
Definition at line 157 of file SiDetectorElement.cxx.
bool InDetDD::SiDetectorElement::swapEtaReadoutDirection | ( | ) | const |
For eta_index (only relevant for pixel) (inline)
bool InDetDD::SiDetectorElement::swapPhiReadoutDirection | ( | ) | const |
Determine if readout direction between online and offline needs swapping.
Returns true if online and offline numbers run in opposite directions. For strip/phi_index (inline)
|
inherited |
|
finaloverridevirtualinherited |
Return local to global transform.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
inherited |
Local (reconstruction frame) to global transform.
Definition at line 43 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Local (simulation/hit frame) to global transform.
|
finaloverrideprivatevirtual |
Recalculate cached values.
Reimplemented from InDetDD::SolidStateDetectorElementBase.
Definition at line 402 of file SiDetectorElement.cxx.
|
inherited |
Methods from design (inline)
Width in phi direction. For the SCT endcap it returns the average width.
|
inherited |
|
inherited |
|
protectedinherited |
Definition at line 681 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 708 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 630 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
local description of this detector element
Definition at line 628 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 632 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 639 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Axes.
Definition at line 637 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 638 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
identifier of this detector element
Definition at line 623 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
hash id of this detector element
Definition at line 649 of file SolidStateDetectorElementBase.h.
|
protected |
Definition at line 474 of file SiDetectorElement.h.
|
protected |
Definition at line 473 of file SiDetectorElement.h.
|
protected |
Definition at line 470 of file SiDetectorElement.h.
|
protected |
Definition at line 472 of file SiDetectorElement.h.
|
protected |
Definition at line 471 of file SiDetectorElement.h.
|
protected |
Definition at line 492 of file SiDetectorElement.h.
|
protected |
Definition at line 481 of file SiDetectorElement.h.
|
protected |
Definition at line 483 of file SiDetectorElement.h.
|
protected |
Definition at line 485 of file SiDetectorElement.h.
|
protected |
Definition at line 482 of file SiDetectorElement.h.
|
protected |
Definition at line 484 of file SiDetectorElement.h.
|
protected |
Definition at line 463 of file SiDetectorElement.h.
|
protectedinherited |
Definition at line 631 of file SolidStateDetectorElementBase.h.
|
protected |
Definition at line 456 of file SiDetectorElement.h.