ATLAS Offline Software
|
#include <RadialStripDesign.h>
Classes | |
struct | stripEdges |
Helper struct to cache the mounting points of the strips with the bottom & top edge of the Tgc panel. More... | |
Public Types | |
using | CheckVector2D = std::optional< Amg::Vector2D > |
Public Member Functions | |
RadialStripDesign ()=default | |
bool | operator< (const RadialStripDesign &other) const |
set sorting operator More... | |
void | addStrip (const double posOnBottom, const double posOnTop) |
: Defines a new radial strip. More... | |
Amg::Vector2D | stripDir (int stripNumber) const |
: Returns the direction of the radial strip (Pointing from the bottom edge to the top edge) More... | |
Amg::Vector2D | stripLeftEdge (int stripNumber) const |
: Returns the direction of the left edge More... | |
Amg::Vector2D | stripRightEdge (int stripNumber) const |
: Returns the direction of the right edge More... | |
Amg::Vector2D | stripNormal (int stripNumber) const |
@bief: Returns the vector perpendicular to the stripDir and pointing to the next strip More... | |
Amg::Vector2D | stripLeftBottom (int stripNumber) const |
: Returns the intersection of the left strip edge at the bottom panel's edge More... | |
Amg::Vector2D | stripRightBottom (int stripNumber) const |
: Returns the intersecton of the strip right edge at the bottom panel's edge More... | |
Amg::Vector2D | stripLeftTop (int stripNumber) const |
: Returns the intersection of the left strip edge at the top panel's edge More... | |
Amg::Vector2D | stripRightTop (int stripNumber) const |
: Returns the intersecetion fo the right strip edge at the top panel's edge More... | |
int | numStrips () const override |
Returns the number of defined strips. More... | |
int | stripNumber (const Amg::Vector2D &extPos) const override final |
Returns the associated channel number of an external vector. More... | |
double | stripLength (int stripNumb) const override |
Returns the length of the associated strip. More... | |
double | stripPitch (int stripNumb) const |
Returns the pitch of the radial strip evaluated at the strip center. More... | |
double | stripPitch () const |
Distance between two adjacent strips. More... | |
double | stripWidth () const |
Width of a strip. More... | |
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. More... | |
double | halfWidth () const |
Returns the half height of the strip panel. More... | |
double | shortHalfHeight () const |
Returns the shorter half height of the panel. More... | |
double | longHalfHeight () const |
Returns the longer half height of the panel. More... | |
bool | hasStereoAngle () const |
Returns whether a stereo angle is defined. More... | |
double | stereoAngle () const |
Returns the value of the stereo angle. More... | |
bool | isFlipped () const |
Returns whether the trapezoid is flipped. More... | |
void | defineTrapezoid (double HalfShortY, double HalfLongY, double HalfHeight) |
Defines the edges of the trapezoid. More... | |
void | defineTrapezoid (double HalfShortY, double HalfLongY, double HalfHeight, double sAngle) |
Defines the edges of the trapezoid with stereo angle. More... | |
void | flipTrapezoid () |
Flips the edges of the trapezoid boundaries by 90 degrees clockwise. More... | |
double | distanceToStrip (const Amg::Vector2D &pos, int strip) const |
Returns the distance to the strip center along x. More... | |
int | firstStripNumber () const |
Returns the number of the first strip. More... | |
CheckVector2D | leftEdge (int stripNumb) const |
Returns the left edge of the strip (Global numbering scheme) More... | |
CheckVector2D | rightEdge (int stripNumb) const |
Returns the right edge of the strip (Global numbering scheme) More... | |
CheckVector2D | center (int stripNumb) const |
Returns the bisector of the strip (Global numbering scheme) More... | |
bool | operator< (const StripDesign &other) const |
Odering operator. More... | |
virtual void | print (std::ostream &ostr) const |
Dump properties to the ostr. More... | |
bool | insideTrapezoid (const Amg::Vector2D &extPos) const |
Checks whether an external point is inside the trapezoidal area. More... | |
const Amg::Vector2D & | cornerBotLeft () const |
Returns the bottom left corner of the trapezoid. More... | |
const Amg::Vector2D & | cornerBotRight () const |
Returns the bottom right corner of the trapezoid. More... | |
const Amg::Vector2D & | cornerTopLeft () const |
Returns the top left corner of the trapezoid. More... | |
const Amg::Vector2D & | cornerTopRight () const |
Returns the top right corner of the trapezoid. More... | |
const Amg::Vector2D & | edgeDirBottom () const |
Returns the unit vector pointing from the bottom left -> right corner. More... | |
const Amg::Vector2D & | edgeDirTop () const |
Returns the unit vector pointing from the top left -> right corner. More... | |
const Amg::Vector2D & | edgeDirLeft () const |
Returns the unit vector pointing from the left bottom -> top corner. More... | |
const Amg::Vector2D & | edgeDirRight () const |
Returns the unit vector pointing from the right bottom -> top corner. More... | |
double | lenTopEdge () const |
Length of the the edge from top left -> top right. More... | |
double | lenLeftEdge () const |
Length of the edge from bottom left -> top left. More... | |
double | lenBottomEdge () const |
Length of the edge from bottom left -> bottom right. More... | |
double | lenRightEdge () const |
Length of the dge from bottom right -> top right. More... | |
const Amg::Vector2D & | stripNormal () const |
Vector pointing to the next strip. More... | |
const Amg::Vector2D & | stripDir () const |
Vector pointing along the strip. More... | |
const Amg::Vector2D & | firstStripPos () const |
Vector indicating the first strip position. More... | |
void | defineDiamond (double HalfShortY, double HalfLongY, double HalfHeight, double yCutout) |
Defines the edges of the sTGC diamond L3 sector. More... | |
double | yCutout () const |
Returns the cutout of the diamond. More... | |
bool | msgLvl (const MSG::Level lvl) const |
Test the output level. More... | |
MsgStream & | msg () const |
The standard message stream. More... | |
MsgStream & | msg (const MSG::Level lvl) const |
The standard message stream. More... | |
void | setLevel (MSG::Level lvl) |
Change the current logging level. More... | |
Protected Member Functions | |
bool | insideBoundaries (const Amg::Vector2D &pos) const |
Checks wheather the internal point is inside hte trapezoidal area. More... | |
virtual Amg::Vector2D | stripPosition (int stripNum) const |
Calculates the position of a given strip (Local numbering scheme) More... | |
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. More... | |
Private Types | |
using | stripEdgeVec = std::vector< stripEdges > |
using | stripEdgeVecItr = stripEdgeVec::const_iterator |
Private Member Functions | |
CheckVector2D | leftInterSect (int stripNum, bool uncapped=false) const override final |
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. More... | |
CheckVector2D | rightInterSect (int stripNum, bool uncapped=false) const override final |
void | setStereoAngle (double stereo) |
void | resetDirCache () |
Resets the cache of the directions. More... | |
AmgSymMatrix (2) m_etaToStereo | |
Matrix to translate from nominal -> stereo frame. More... | |
AmgSymMatrix (2) m_stereoToEta | |
Matrixt to translate from stereo -> nominal frame. More... | |
void | initMessaging () const |
Initialize our message level and MessageSvc. More... | |
Private Attributes | |
stripEdgeVec | m_strips {} |
bool | m_reversedStripOrder {false} |
int | m_channelShift {1} |
Shift between the 0-th readout channel and the first strip described by the panel. More... | |
int | m_numStrips {0} |
Number of all strips. More... | |
double | m_stripPitch {0.} |
Distance between 2 adjacent strip centers. More... | |
double | m_stripWidth {0.} |
Width of each strip line. More... | |
Amg::Vector2D | m_firstStripPos {Amg::Vector2D::Zero()} |
First strip position. More... | |
Amg::Vector2D | m_stripDir {Amg::Vector2D::UnitY()} |
Orientiation of the strips along the panel. More... | |
Amg::Vector2D | m_stripNormal {Amg::Vector2D::UnitX()} |
Vector pointing from strip N to the next strip. More... | |
bool | m_isFlipped {false} |
Flag telling whether the trapezoid has been flipped. More... | |
bool | m_hasStereo {false} |
Flag telling whether the strip design has a stereo angle or not. More... | |
double | m_stereoAngle {0.} |
Stereo angle of the strip design. More... | |
Amg::Vector2D | m_bottomLeft {Amg::Vector2D::Zero()} |
Bottom left point of the trapezoid. More... | |
Amg::Vector2D | m_topLeft {Amg::Vector2D::Zero()} |
Top right point of the trapezoid. More... | |
Amg::Vector2D | m_topRight {Amg::Vector2D::Zero()} |
Bottom right point of the trapezoid. More... | |
Amg::Vector2D | m_bottomRight {Amg::Vector2D::Zero()} |
Bottom right point of the trapezoid. More... | |
CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirTopEdge {} |
Vector describing the top edge of the trapzoid (top left -> top right) More... | |
CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirBotEdge {} |
Vector describing the bottom edge of the trapezoid (bottom left -> bottom right) More... | |
CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirLeftEdge {} |
Vector describing the left adge of the trapezoid (bottom left -> top left) More... | |
CxxUtils::CachedUniquePtr< Amg::Vector2D > | m_dirRightEdge {} |
Vector describing the right edge of the trapezoid (bottom right -> top right) More... | |
double | m_lenSlopEdge {0.} |
Length of the edge connecting the short with the long egde. More... | |
double | m_shortHalfY {0.} |
Trapezoid dimensions. More... | |
double | m_longHalfY {0.} |
double | m_halfX {0.} |
double | m_yCutout {0.} |
Stores the diamond cutout length from the SQLite DB file. More... | |
double | m_cutLongEdge {0.} |
Lenght of the line segment that's cut from the long edge to make the trapezoid diamond shaped. More... | |
std::string | m_nm |
Message source name. More... | |
boost::thread_specific_ptr< MsgStream > | m_msg_tls |
MsgStream instance (a std::cout like with print-out levels) More... | |
std::atomic< IMessageSvc * > | m_imsg { nullptr } |
MessageSvc pointer. More... | |
std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
Current logging level. More... | |
std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
Messaging initialized (initMessaging) More... | |
Definition at line 23 of file RadialStripDesign.h.
|
inherited |
Definition at line 82 of file StripDesign.h.
|
private |
Definition at line 96 of file RadialStripDesign.h.
|
private |
Definition at line 97 of file RadialStripDesign.h.
|
default |
: Defines a new radial strip.
Intersection between the left strip edge & the bottom panel edge measured from the panel edge center | |
Intersection between the left strip edge & the top panel edge measured from the panel edge center |
There're strip panels where the order goes from left to right and others, where the numbering is exactly opposite. Razupaltuff would be a pretty appropiate comment...
Definition at line 20 of file RadialStripDesign.cxx.
|
inlineprivateinherited |
|
inlineprivateinherited |
|
inherited |
Returns the bisector of the strip (Global numbering scheme)
|
inherited |
Returns the bottom left corner of the trapezoid.
|
inherited |
Returns the bottom right corner of the trapezoid.
|
inherited |
Returns the top left corner of the trapezoid.
|
inherited |
Returns the top right corner of the trapezoid.
|
inherited |
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 82 of file StripDesign.cxx.
|
inherited |
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 107 of file StripDesign.cxx.
|
inherited |
|
inherited |
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.
|
inherited |
Returns the distance to the strip center along x.
|
inherited |
Returns the unit vector pointing from the bottom left -> right corner.
|
inherited |
Returns the unit vector pointing from the left bottom -> top corner.
|
inherited |
Returns the unit vector pointing from the right bottom -> top corner.
|
inherited |
Returns the unit vector pointing from the top left -> right corner.
|
inherited |
Returns the number of the first strip.
|
inherited |
Vector indicating the first strip position.
|
inherited |
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 91 of file StripDesign.cxx.
|
inherited |
Returns the half height of the strip panel.
|
inherited |
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.
|
protectedinherited |
Checks wheather the internal point is inside hte trapezoidal area.
|
inherited |
Checks whether an external point is inside the trapezoidal area.
|
inherited |
Returns whether the trapezoid is flipped.
|
inherited |
Returns the left edge of the strip (Global numbering scheme)
|
protectedinherited |
|
finaloverrideprivatevirtual |
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 from MuonGMR4::StripDesign.
|
inherited |
Length of the edge from bottom left -> bottom right.
|
inherited |
Length of the edge from bottom left -> top left.
|
inherited |
Length of the dge from bottom right -> top right.
|
inherited |
Length of the the edge from top left -> top right.
|
inherited |
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 164 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 179 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.
|
overridevirtual |
Returns the number of defined strips.
Reimplemented from MuonGMR4::StripDesign.
bool MuonGMR4::RadialStripDesign::operator< | ( | const RadialStripDesign & | other | ) | const |
|
inherited |
|
virtualinherited |
Dump properties to the ostr.
Reimplemented in MuonGMR4::PadDesign, and MuonGMR4::WireGroupDesign.
Definition at line 43 of file StripDesign.cxx.
|
privateinherited |
|
inherited |
Returns the right edge of the strip (Global numbering scheme)
|
protectedinherited |
|
finaloverrideprivatevirtual |
Reimplemented from MuonGMR4::StripDesign.
|
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.
|
privateinherited |
Definition at line 59 of file StripDesign.cxx.
|
inherited |
Returns the shorter half height of the panel.
|
inherited |
Returns the value of the stereo angle.
|
protectedinherited |
Returns the geometrical center of a given strip.
|
inherited |
Vector pointing along the strip.
Amg::Vector2D MuonGMR4::RadialStripDesign::stripDir | ( | int | stripNumber | ) | const |
: Returns the direction of the radial strip (Pointing from the bottom edge to the top edge)
Strip number in the global scheme [1- nStrips()] |
Amg::Vector2D MuonGMR4::RadialStripDesign::stripLeftBottom | ( | int | stripNumber | ) | const |
: Returns the intersection of the left strip edge at the bottom panel's edge
Amg::Vector2D MuonGMR4::RadialStripDesign::stripLeftEdge | ( | int | stripNumber | ) | const |
: Returns the direction of the left edge
Amg::Vector2D MuonGMR4::RadialStripDesign::stripLeftTop | ( | int | stripNumber | ) | const |
: Returns the intersection of the left strip edge at the top panel's edge
|
overridevirtual |
Returns the length of the associated strip.
Reimplemented from MuonGMR4::StripDesign.
|
inherited |
Vector pointing to the next strip.
Amg::Vector2D MuonGMR4::RadialStripDesign::stripNormal | ( | int | stripNumber | ) | const |
@bief: Returns the vector perpendicular to the stripDir and pointing to the next strip
|
finaloverridevirtual |
Returns the associated channel number of an external vector.
Reimplemented from MuonGMR4::StripDesign.
|
inherited |
Distance between two adjacent strips.
double MuonGMR4::RadialStripDesign::stripPitch | ( | int | stripNumb | ) | const |
Returns the pitch of the radial strip evaluated at the strip center.
|
protectedvirtualinherited |
Calculates the position of a given strip (Local numbering scheme)
Reimplemented in MuonGMR4::PadDesign, and MuonGMR4::WireGroupDesign.
Amg::Vector2D MuonGMR4::RadialStripDesign::stripRightBottom | ( | int | stripNumber | ) | const |
: Returns the intersecton of the strip right edge at the bottom panel's edge
Amg::Vector2D MuonGMR4::RadialStripDesign::stripRightEdge | ( | int | stripNumber | ) | const |
: Returns the direction of the right edge
Amg::Vector2D MuonGMR4::RadialStripDesign::stripRightTop | ( | int | stripNumber | ) | const |
: Returns the intersecetion fo the right strip edge at the top panel's edge
|
inherited |
Width of a strip.
|
inherited |
Returns the cutout of the diamond.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
privateinherited |
Bottom left point of the trapezoid.
Definition at line 179 of file StripDesign.h.
|
privateinherited |
Bottom right point of the trapezoid.
Definition at line 185 of file StripDesign.h.
|
privateinherited |
Shift between the 0-th readout channel and the first strip described by the panel.
Definition at line 152 of file StripDesign.h.
|
privateinherited |
Lenght of the line segment that's cut from the long edge to make the trapezoid diamond shaped.
Definition at line 206 of file StripDesign.h.
|
privateinherited |
Vector describing the bottom edge of the trapezoid (bottom left -> bottom right)
Definition at line 190 of file StripDesign.h.
|
privateinherited |
Vector describing the left adge of the trapezoid (bottom left -> top left)
Definition at line 192 of file StripDesign.h.
|
privateinherited |
Vector describing the right edge of the trapezoid (bottom right -> top right)
Definition at line 194 of file StripDesign.h.
|
privateinherited |
Vector describing the top edge of the trapzoid (top left -> top right)
Definition at line 188 of file StripDesign.h.
|
privateinherited |
First strip position.
Definition at line 160 of file StripDesign.h.
|
privateinherited |
Definition at line 200 of file StripDesign.h.
|
privateinherited |
Flag telling whether the strip design has a stereo angle or not.
Definition at line 170 of file StripDesign.h.
|
mutableprivateinherited |
MessageSvc pointer.
Definition at line 135 of file AthMessaging.h.
|
privateinherited |
Flag telling whether the trapezoid has been flipped.
Definition at line 168 of file StripDesign.h.
|
privateinherited |
Length of the edge connecting the short with the long egde.
Definition at line 196 of file StripDesign.h.
|
privateinherited |
Definition at line 199 of file StripDesign.h.
|
mutableprivateinherited |
Current logging level.
Definition at line 138 of file AthMessaging.h.
|
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.
|
privateinherited |
Number of all strips.
Definition at line 154 of file StripDesign.h.
|
private |
Definition at line 100 of file RadialStripDesign.h.
|
privateinherited |
Trapezoid dimensions.
Definition at line 198 of file StripDesign.h.
|
privateinherited |
Stereo angle of the strip design.
Definition at line 172 of file StripDesign.h.
|
privateinherited |
Orientiation of the strips along the panel.
Definition at line 163 of file StripDesign.h.
|
privateinherited |
Vector pointing from strip N to the next strip.
Definition at line 165 of file StripDesign.h.
|
privateinherited |
Distance between 2 adjacent strip centers.
Definition at line 156 of file StripDesign.h.
|
private |
Definition at line 98 of file RadialStripDesign.h.
|
privateinherited |
Width of each strip line.
Definition at line 158 of file StripDesign.h.
|
privateinherited |
Top right point of the trapezoid.
Definition at line 181 of file StripDesign.h.
|
privateinherited |
Bottom right point of the trapezoid.
Definition at line 183 of file StripDesign.h.
|
privateinherited |
Stores the diamond cutout length from the SQLite DB file.
Definition at line 203 of file StripDesign.h.