![]() |
ATLAS Offline Software
|
#include <StripDesign.h>
Public Types | |
| using | CheckVector2D = std::optional<Amg::Vector2D> |
Public Member Functions | |
| StripDesign () | |
| virtual | ~StripDesign ()=default |
| double | stripPitch () const |
| Distance between two adjacent strips. | |
| double | stripWidth () const |
| Width of a strip. | |
| virtual int | numStrips () const |
| Number of strips on the panel. | |
| void | defineStripLayout (Amg::Vector2D &&posFirst, const double stripPitch, const double stripWidth, const int numStrips, const int numFirst=1) |
| Defines the layout of the strip detector by specifing the position of the first strip w.r.t. | |
| double | halfWidth () const |
| Returns the half height of the strip panel. | |
| double | shortHalfHeight () const |
| Returns the shorter half height of the panel. | |
| double | longHalfHeight () const |
| Returns the longer half height of the panel. | |
| bool | hasStereoAngle () const |
| Returns whether a stereo angle is defined. | |
| double | stereoAngle () const |
| Returns the value of the stereo angle. | |
| bool | isFlipped () const |
| Returns whether the trapezoid is flipped. | |
| void | defineTrapezoid (double HalfShortY, double HalfLongY, double HalfHeight) |
| Defines the edges of the trapezoid. | |
| void | defineTrapezoid (double HalfShortY, double HalfLongY, double HalfHeight, double sAngle) |
| Defines the edges of the trapezoid with stereo angle. | |
| void | flipTrapezoid () |
| Flips the edges of the trapezoid boundaries by 90 degrees clockwise. | |
| double | distanceToStrip (const Amg::Vector2D &pos, int strip) const |
| Returns the distance to the strip center along x. | |
| virtual int | stripNumber (const Amg::Vector2D &pos) const |
| Calculates the number of the strip whose center is closest to the given point. | |
| int | firstStripNumber () const |
| Returns the number of the first strip. | |
| CheckVector2D | leftEdge (int stripNumb) const |
| Returns the left edge of the strip (Global numbering scheme) | |
| CheckVector2D | rightEdge (int stripNumb) const |
| Returns the right edge of the strip (Global numbering scheme) | |
| CheckVector2D | center (int stripNumb) const |
| Returns the bisector of the strip (Global numbering scheme) | |
| bool | operator< (const StripDesign &other) const |
| Odering operator. | |
| virtual double | stripLength (int stripNumb) const |
| Returns length of the strip. | |
| virtual void | print (std::ostream &ostr) const |
| Dump properties to the ostr. | |
| bool | insideTrapezoid (const Amg::Vector2D &extPos) const |
| Checks whether an external point is inside the trapezoidal area. | |
| const Amg::Vector2D & | cornerBotLeft () const |
| Returns the bottom left corner of the trapezoid. | |
| const Amg::Vector2D & | cornerBotRight () const |
| Returns the bottom right corner of the trapezoid. | |
| const Amg::Vector2D & | cornerTopLeft () const |
| Returns the top left corner of the trapezoid. | |
| const Amg::Vector2D & | cornerTopRight () const |
| Returns the top right corner of the trapezoid. | |
| const Amg::Vector2D & | edgeDirBottom () const |
| Returns the unit vector pointing from the bottom left -> bottom right corner. | |
| const Amg::Vector2D & | edgeDirTop () const |
| Returns the unit vector pointing from the top left -> top right corner. | |
| const Amg::Vector2D & | edgeDirLeft () const |
| Returns the unit vector pointing from the left bottom -> left top corner. | |
| const Amg::Vector2D & | edgeDirRight () const |
| Returns the unit vector pointing from the right bottom -> right top corner. | |
| const Amg::Vector2D & | stripNormal () const |
| Vector pointing to the next strip. | |
| const Amg::Vector2D & | stripDir () const |
| Vector pointing along the strip. | |
| const Amg::Vector2D & | firstStripPos () const |
| Vector indicating the first strip position. | |
| double | lenTopEdge () const |
| Length of the the edge from top left -> top right. | |
| double | lenLeftEdge () const |
| Length of the edge from bottom left -> top left. | |
| double | lenBottomEdge () const |
| Length of the edge from bottom left -> bottom right. | |
| double | lenRightEdge () const |
| Length of the dge from bottom right -> top right. | |
| void | defineDiamond (double HalfShortY, double HalfLongY, double HalfHeight, double yCutout) |
| Defines the edges of the sTGC diamond L3 sector. | |
| double | yCutout () const |
| Returns the cutout of the diamond. | |
| bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. | |
| MsgStream & | msg () const |
| The standard message stream. | |
| MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. | |
| void | setLevel (MSG::Level lvl) |
| Change the current logging level. | |
Protected Member Functions | |
| bool | insideBoundaries (const Amg::Vector2D &pos) const |
| Checks wheather the internal point is inside hte trapezoidal area. | |
| virtual Amg::Vector2D | stripPosition (int stripNum) const |
| Calculates the position of a given strip (Local numbering scheme) | |
| virtual CheckVector2D | leftInterSect (int stripNum, bool uncapped=false) const |
| Returns the intersection of a given strip with the left or right edge of the trapezoid If uncapped is set to false and the strip is a routed strip, then the intersection onto the corresponding bottom / top edges are returned. | |
| virtual CheckVector2D | rightInterSect (int stripNum, bool uncapped=false) const |
| CheckVector2D | leftInterSect (const Amg::Vector2D &stripPos, bool uncapped=false) const |
| CheckVector2D | rightInterSect (const Amg::Vector2D &stripPos, bool uncapped=false) const |
| CheckVector2D | stripCenter (int stripNum) const |
| Returns the geometrical center of a given strip. | |
Private Member Functions | |
| void | setStereoAngle (double stereo) |
| void | resetDirCache () |
| Resets the cache of the directions. | |
| AmgSymMatrix (2) m_etaToStereo | |
| Matrix to translate from nominal -> stereo frame. | |
| AmgSymMatrix (2) m_stereoToEta | |
| Matrixt to translate from stereo -> nominal frame. | |
| void | initMessaging () const |
| Initialize our message level and MessageSvc. | |
Private Attributes | |
| int | m_channelShift {1} |
| Shift between the 0-th readout channel and the first strip described by the panel. | |
| int | m_numStrips {0} |
| Number of all strips. | |
| double | m_stripPitch {0.} |
| Distance between 2 adjacent strip centers. | |
| double | m_stripWidth {0.} |
| Width of each strip line. | |
| Amg::Vector2D | m_firstStripPos {Amg::Vector2D::Zero()} |
| First strip position. | |
| Amg::Vector2D | m_stripDir {Amg::Vector2D::UnitY()} |
| Orientiation of the strips along the panel. | |
| Amg::Vector2D | m_stripNormal {Amg::Vector2D::UnitX()} |
| Vector pointing from strip N to the next strip. | |
| bool | m_isFlipped {false} |
| Flag telling whether the trapezoid has been flipped. | |
| bool | m_hasStereo {false} |
| Flag telling whether the strip design has a stereo angle or not. | |
| double | m_stereoAngle {0.} |
| Stereo angle of the strip design. | |
| Amg::Vector2D | m_bottomLeft {Amg::Vector2D::Zero()} |
| Bottom left point of the trapezoid. | |
| Amg::Vector2D | m_topLeft {Amg::Vector2D::Zero()} |
| Top right point of the trapezoid. | |
| Amg::Vector2D | m_topRight {Amg::Vector2D::Zero()} |
| Bottom right point of the trapezoid. | |
| Amg::Vector2D | m_bottomRight {Amg::Vector2D::Zero()} |
| Bottom right point of the trapezoid. | |
| CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirTopEdge {} |
| Vector describing the top edge of the trapzoid (top left -> top right) | |
| CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirBotEdge {} |
| Vector describing the bottom edge of the trapezoid (bottom left -> bottom right) | |
| CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirLeftEdge {} |
| Vector describing the left adge of the trapezoid (bottom left -> top left) | |
| CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirRightEdge {} |
| Vector describing the right edge of the trapezoid (bottom right -> top right) | |
| double | m_lenSlopEdge {0.} |
| Length of the edge connecting the short with the long egde. | |
| double | m_shortHalfY {0.} |
| Trapezoid dimensions. | |
| double | m_longHalfY {0.} |
| double | m_halfX {0.} |
| double | m_yCutout {0.} |
| Stores the diamond cutout length from the SQLite DB file. | |
| double | m_cutLongEdge {0.} |
| Lenght of the line segment that's cut from the long edge to make the trapezoid diamond shaped. | |
| std::string | m_nm |
| Message source name. | |
| boost::thread_specific_ptr< MsgStream > | m_msg_tls |
| MsgStream instance (a std::cout like with print-out levels) | |
| std::atomic< IMessageSvc * > | m_imsg { nullptr } |
| MessageSvc pointer. | |
| std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
| Current logging level. | |
| std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
| Messaging initialized (initMessaging) | |
Definition at line 30 of file StripDesign.h.
| using MuonGMR4::StripDesign::CheckVector2D = std::optional<Amg::Vector2D> |
Definition at line 82 of file StripDesign.h.
| MuonGMR4::StripDesign::StripDesign | ( | ) |
Definition at line 21 of file StripDesign.cxx.
|
virtualdefault |
|
inlineprivate |
Matrix to translate from nominal -> stereo frame.
Definition at line 173 of file StripDesign.h.
|
inlineprivate |
Matrixt to translate from stereo -> nominal frame.
Definition at line 175 of file StripDesign.h.
| CheckVector2D MuonGMR4::StripDesign::center | ( | int | stripNumb | ) | const |
Returns the bisector of the strip (Global numbering scheme)
| const Amg::Vector2D & MuonGMR4::StripDesign::cornerBotLeft | ( | ) | const |
Returns the bottom left corner of the trapezoid.
| const Amg::Vector2D & MuonGMR4::StripDesign::cornerBotRight | ( | ) | const |
Returns the bottom right corner of the trapezoid.
| const Amg::Vector2D & MuonGMR4::StripDesign::cornerTopLeft | ( | ) | const |
Returns the top left corner of the trapezoid.
| const Amg::Vector2D & MuonGMR4::StripDesign::cornerTopRight | ( | ) | const |
Returns the top right corner of the trapezoid.
| void MuonGMR4::StripDesign::defineDiamond | ( | double | HalfShortY, |
| double | HalfLongY, | ||
| double | HalfHeight, | ||
| double | yCutout ) |
Defines the edges of the sTGC diamond L3 sector.
define a trapezoid region to preserve the functionality of intersect functions in StripDesign class
Definition at line 84 of file StripDesign.cxx.
| void MuonGMR4::StripDesign::defineStripLayout | ( | Amg::Vector2D && | posFirst, |
| const double | stripPitch, | ||
| const double | stripWidth, | ||
| const int | numStrips, | ||
| const int | numFirst = 1 ) |
Defines the layout of the strip detector by specifing the position of the first strip w.r.t.
the layer center, the pitch to the next strip, the corresponding width of each strip, the total number of strips and finally the number of the first strip in the global numbering scheme
Definition at line 109 of file StripDesign.cxx.
| void MuonGMR4::StripDesign::defineTrapezoid | ( | double | HalfShortY, |
| double | HalfLongY, | ||
| double | HalfHeight ) |
Defines the edges of the trapezoid.
Definition at line 71 of file StripDesign.cxx.
| void MuonGMR4::StripDesign::defineTrapezoid | ( | double | HalfShortY, |
| double | HalfLongY, | ||
| double | HalfHeight, | ||
| double | sAngle ) |
Defines the edges of the trapezoid with stereo angle.
The stereo angle is defined as the angle going from the nominal scheme to the stereo scheme
Definition at line 54 of file StripDesign.cxx.
| double MuonGMR4::StripDesign::distanceToStrip | ( | const Amg::Vector2D & | pos, |
| int | strip ) const |
Returns the distance to the strip center along x.
| const Amg::Vector2D & MuonGMR4::StripDesign::edgeDirBottom | ( | ) | const |
Returns the unit vector pointing from the bottom left -> bottom right corner.
| const Amg::Vector2D & MuonGMR4::StripDesign::edgeDirLeft | ( | ) | const |
Returns the unit vector pointing from the left bottom -> left top corner.
| const Amg::Vector2D & MuonGMR4::StripDesign::edgeDirRight | ( | ) | const |
Returns the unit vector pointing from the right bottom -> right top corner.
| const Amg::Vector2D & MuonGMR4::StripDesign::edgeDirTop | ( | ) | const |
Returns the unit vector pointing from the top left -> top right corner.
| int MuonGMR4::StripDesign::firstStripNumber | ( | ) | const |
Returns the number of the first strip.
| const Amg::Vector2D & MuonGMR4::StripDesign::firstStripPos | ( | ) | const |
Vector indicating the first strip position.
| void MuonGMR4::StripDesign::flipTrapezoid | ( | ) |
Flips the edges of the trapezoid boundaries by 90 degrees clockwise.
yCutOut defined for the sTGC detectors. Move the edges to the uncut trapezoid version Deal with the cutOut in the intersect
Definition at line 93 of file StripDesign.cxx.
| double MuonGMR4::StripDesign::halfWidth | ( | ) | const |
Returns the half height of the strip panel.
| bool MuonGMR4::StripDesign::hasStereoAngle | ( | ) | const |
Returns whether a stereo angle is defined.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
protected |
Checks wheather the internal point is inside hte trapezoidal area.
| bool MuonGMR4::StripDesign::insideTrapezoid | ( | const Amg::Vector2D & | extPos | ) | const |
Checks whether an external point is inside the trapezoidal area.
| bool MuonGMR4::StripDesign::isFlipped | ( | ) | const |
Returns whether the trapezoid is flipped.
| CheckVector2D MuonGMR4::StripDesign::leftEdge | ( | int | stripNumb | ) | const |
Returns the left edge of the strip (Global numbering scheme)
|
protected |
|
protectedvirtual |
Returns the intersection of a given strip with the left or right edge of the trapezoid If uncapped is set to false and the strip is a routed strip, then the intersection onto the corresponding bottom / top edges are returned.
Reimplemented in MuonGMR4::RadialStripDesign.
| double MuonGMR4::StripDesign::lenBottomEdge | ( | ) | const |
Length of the edge from bottom left -> bottom right.
| double MuonGMR4::StripDesign::lenLeftEdge | ( | ) | const |
Length of the edge from bottom left -> top left.
| double MuonGMR4::StripDesign::lenRightEdge | ( | ) | const |
Length of the dge from bottom right -> top right.
| double MuonGMR4::StripDesign::lenTopEdge | ( | ) | const |
Length of the the edge from top left -> top right.
| double MuonGMR4::StripDesign::longHalfHeight | ( | ) | const |
Returns the longer half height of the panel.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 163 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 178 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
| lvl | The message level to test against |
| true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
|
virtual |
Number of strips on the panel.
Reimplemented in MuonGMR4::RadialStripDesign.
| bool MuonGMR4::StripDesign::operator< | ( | const StripDesign & | other | ) | const |
Odering operator.
Definition at line 26 of file StripDesign.cxx.
|
virtual |
Dump properties to the ostr.
Reimplemented in MuonGMR4::PadDesign, and MuonGMR4::WireGroupDesign.
Definition at line 43 of file StripDesign.cxx.
|
private |
Resets the cache of the directions.
Definition at line 120 of file StripDesign.cxx.
| CheckVector2D MuonGMR4::StripDesign::rightEdge | ( | int | stripNumb | ) | const |
Returns the right edge of the strip (Global numbering scheme)
|
protected |
|
protectedvirtual |
Reimplemented in MuonGMR4::RadialStripDesign.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 28 of file AthMessaging.cxx.
|
private |
Definition at line 59 of file StripDesign.cxx.
| double MuonGMR4::StripDesign::shortHalfHeight | ( | ) | const |
Returns the shorter half height of the panel.
| double MuonGMR4::StripDesign::stereoAngle | ( | ) | const |
Returns the value of the stereo angle.
|
protected |
Returns the geometrical center of a given strip.
| const Amg::Vector2D & MuonGMR4::StripDesign::stripDir | ( | ) | const |
Vector pointing along the strip.
|
virtual |
Returns length of the strip.
Reimplemented in MuonGMR4::RadialStripDesign.
| const Amg::Vector2D & MuonGMR4::StripDesign::stripNormal | ( | ) | const |
Vector pointing to the next strip.
|
virtual |
Calculates the number of the strip whose center is closest to the given point.
If the point is outside of the panel, -1 is returned
Reimplemented in MuonGMR4::RadialStripDesign, and MuonGMR4::WireGroupDesign.
| double MuonGMR4::StripDesign::stripPitch | ( | ) | const |
Distance between two adjacent strips.
|
protectedvirtual |
Calculates the position of a given strip (Local numbering scheme)
Reimplemented in MuonGMR4::PadDesign, and MuonGMR4::WireGroupDesign.
| double MuonGMR4::StripDesign::stripWidth | ( | ) | const |
Width of a strip.
| double MuonGMR4::StripDesign::yCutout | ( | ) | const |
Returns the cutout of the diamond.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
private |
Bottom left point of the trapezoid.
Definition at line 177 of file StripDesign.h.
|
private |
Bottom right point of the trapezoid.
Definition at line 183 of file StripDesign.h.
|
private |
Shift between the 0-th readout channel and the first strip described by the panel.
Definition at line 150 of file StripDesign.h.
|
private |
Lenght of the line segment that's cut from the long edge to make the trapezoid diamond shaped.
Definition at line 204 of file StripDesign.h.
|
private |
Vector describing the bottom edge of the trapezoid (bottom left -> bottom right)
Definition at line 188 of file StripDesign.h.
|
private |
Vector describing the left adge of the trapezoid (bottom left -> top left)
Definition at line 190 of file StripDesign.h.
|
private |
Vector describing the right edge of the trapezoid (bottom right -> top right)
Definition at line 192 of file StripDesign.h.
|
private |
Vector describing the top edge of the trapzoid (top left -> top right)
Definition at line 186 of file StripDesign.h.
|
private |
|
private |
Definition at line 198 of file StripDesign.h.
|
private |
Flag telling whether the strip design has a stereo angle or not.
Definition at line 168 of file StripDesign.h.
|
mutableprivateinherited |
|
private |
Flag telling whether the trapezoid has been flipped.
Definition at line 166 of file StripDesign.h.
|
private |
Length of the edge connecting the short with the long egde.
Definition at line 194 of file StripDesign.h.
|
private |
Definition at line 197 of file StripDesign.h.
|
mutableprivateinherited |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
private |
|
private |
|
private |
|
private |
Orientiation of the strips along the panel.
Definition at line 161 of file StripDesign.h.
|
private |
Vector pointing from strip N to the next strip.
Definition at line 163 of file StripDesign.h.
|
private |
|
private |
|
private |
Top right point of the trapezoid.
Definition at line 179 of file StripDesign.h.
|
private |
Bottom right point of the trapezoid.
Definition at line 181 of file StripDesign.h.
|
private |
Stores the diamond cutout length from the SQLite DB file.
Definition at line 201 of file StripDesign.h.