ATLAS Offline Software
|
#include <WireGroupDesign.h>
Classes | |
struct | wireGroup |
helper construct to cache the number of wires in each group as well as the accumulated number of wires from the previous groups. More... | |
Public Types | |
using | CheckVector2D = std::optional< Amg::Vector2D > |
Public Member Functions | |
WireGroupDesign ()=default | |
bool | operator< (const WireGroupDesign &other) const |
set sorting operator More... | |
void | declareGroup (const unsigned int x) |
Adds a new group of wires to the design. More... | |
unsigned int | numWiresInGroup (unsigned int groupNum) const |
Returns the number of wires in a given group. More... | |
unsigned int | numPitchesToGroup (unsigned int groupNum) const |
Returns the number of wire pitches to reach the given group. More... | |
unsigned int | nAllWires () const |
Returns the number of all wires. More... | |
CheckVector2D | wirePosition (unsigned int groupNum, unsigned int wireNum) const |
Returns the positition of the i-th wire in the g-th group groupNum [1; numStrips() wire number [1; numWiresInGroup() More... | |
CheckVector2D | leftWireEdge (unsigned int groupNum, unsigned int wireNum) const |
Returns the edge point at negative y. More... | |
CheckVector2D | rightWireEdge (unsigned int groupNum, unsigned int wireNum) const |
Returns the edge point at positive y. More... | |
int | stripNumber (const Amg::Vector2D &pos) const override |
Calculates the number of the strip whose center is closest to the given point. More... | |
std::pair< int, int > | wireNumber (const Amg::Vector2D &extPos) const |
Returns a pair where the first component indicate the wire group number and the second one returns the number of the closest wire in the group. More... | |
double | wireLength (unsigned int groupNum, unsigned int wireNum) const |
Returns the length of the i-th wire in group j. More... | |
double | wireCutout () const |
Extract the wireCutout for a wireGroup layer. More... | |
void | defineWireCutout (const double wireCutout) |
Define the wirelength available for digitization in a gasGap. More... | |
double | stripPitch () const |
Distance between two adjacent strips. More... | |
double | stripWidth () const |
Width of a strip. More... | |
virtual int | numStrips () const |
Number of strips on the panel. 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 double | stripLength (int stripNumb) const |
Returns length of the strip. 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 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. More... | |
CheckVector2D | leftInterSect (const Amg::Vector2D &stripPos, bool uncapped=false) const |
virtual CheckVector2D | rightInterSect (int stripNum, 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 | wireGrpVector = std::vector< wireGroup > |
using | wireGrpVectorItr = wireGrpVector::const_iterator |
Private Member Functions | |
void | print (std::ostream &ostr) const override final |
Dump properties to the ostr. More... | |
Amg::Vector2D | stripPosition (int stripNum) const override final |
Returns the center of the wire group. More... | |
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 | |
wireGrpVector | m_groups {} |
double | m_wireCutout {0} |
Wire length available for digitization in a gas Gap. More... | |
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 WireGroupDesign.h.
|
inherited |
Definition at line 82 of file StripDesign.h.
|
private |
Definition at line 85 of file WireGroupDesign.h.
|
private |
Definition at line 86 of file WireGroupDesign.h.
|
default |
|
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.
void MuonGMR4::WireGroupDesign::declareGroup | ( | const unsigned int | x | ) |
Adds a new group of wires to the design.
Definition at line 32 of file WireGroupDesign.cxx.
|
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.
void MuonGMR4::WireGroupDesign::defineWireCutout | ( | const double | wireCutout | ) |
Define the wirelength available for digitization in a gasGap.
Definition at line 61 of file WireGroupDesign.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 |
|
protectedvirtualinherited |
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.
CheckVector2D MuonGMR4::WireGroupDesign::leftWireEdge | ( | unsigned int | groupNum, |
unsigned int | wireNum | ||
) | const |
Returns the edge point at negative y.
groupNum | [1; numStrips()] |
wireNum | [1; numWiresInGroup()] |
|
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.
unsigned int MuonGMR4::WireGroupDesign::nAllWires | ( | ) | const |
Returns the number of all wires.
Definition at line 35 of file WireGroupDesign.cxx.
unsigned int MuonGMR4::WireGroupDesign::numPitchesToGroup | ( | unsigned int | groupNum | ) | const |
Returns the number of wire pitches to reach the given group.
Definition at line 49 of file WireGroupDesign.cxx.
|
virtualinherited |
Number of strips on the panel.
Reimplemented in MuonGMR4::RadialStripDesign.
unsigned int MuonGMR4::WireGroupDesign::numWiresInGroup | ( | unsigned int | groupNum | ) | const |
|
inherited |
bool MuonGMR4::WireGroupDesign::operator< | ( | const WireGroupDesign & | other | ) | const |
|
finaloverrideprivatevirtual |
Dump properties to the ostr.
Reimplemented from MuonGMR4::StripDesign.
Definition at line 8 of file WireGroupDesign.cxx.
|
privateinherited |
|
inherited |
Returns the right edge of the strip (Global numbering scheme)
|
protectedinherited |
|
protectedvirtualinherited |
Reimplemented in MuonGMR4::RadialStripDesign.
CheckVector2D MuonGMR4::WireGroupDesign::rightWireEdge | ( | unsigned int | groupNum, |
unsigned int | wireNum | ||
) | const |
Returns the edge point at positive y.
groupNum | [1; numStrips()] |
wireNum | [1; numWiresInGroup()] |
|
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.
|
virtualinherited |
Returns length of the strip.
Reimplemented in MuonGMR4::RadialStripDesign.
|
inherited |
Vector pointing to the next strip.
|
overridevirtual |
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 from MuonGMR4::StripDesign.
|
inherited |
Distance between two adjacent strips.
|
finaloverrideprivatevirtual |
Returns the center of the wire group.
Reimplemented from MuonGMR4::StripDesign.
|
inherited |
Width of a strip.
double MuonGMR4::WireGroupDesign::wireCutout | ( | ) | const |
double MuonGMR4::WireGroupDesign::wireLength | ( | unsigned int | groupNum, |
unsigned int | wireNum | ||
) | const |
Returns the length of the i-th wire in group j.
std::pair<int, int> MuonGMR4::WireGroupDesign::wireNumber | ( | const Amg::Vector2D & | extPos | ) | const |
Returns a pair where the first component indicate the wire group number and the second one returns the number of the closest wire in the group.
CheckVector2D MuonGMR4::WireGroupDesign::wirePosition | ( | unsigned int | groupNum, |
unsigned int | wireNum | ||
) | const |
Returns the positition of the i-th wire in the g-th group groupNum [1; numStrips() wire number [1; numWiresInGroup()
|
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.
|
private |
Definition at line 87 of file WireGroupDesign.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.
|
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.
|
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.
|
private |
Wire length available for digitization in a gas Gap.
Definition at line 89 of file WireGroupDesign.h.
|
privateinherited |
Stores the diamond cutout length from the SQLite DB file.
Definition at line 203 of file StripDesign.h.