|
ATLAS Offline Software
|
#include <StripDesign.h>
|
| StripDesign () |
|
virtual | ~StripDesign ()=default |
|
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...
|
|
virtual int | stripNumber (const Amg::Vector2D &pos) const |
| Calculates the number of the strip whose center is closest to the given point. 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...
|
|
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...
|
|
Definition at line 30 of file StripDesign.h.
◆ CheckVector2D
◆ StripDesign()
MuonGMR4::StripDesign::StripDesign |
( |
| ) |
|
◆ ~StripDesign()
virtual MuonGMR4::StripDesign::~StripDesign |
( |
| ) |
|
|
virtualdefault |
◆ AmgSymMatrix() [1/2]
MuonGMR4::StripDesign::AmgSymMatrix |
( |
2 |
| ) |
|
|
inlineprivate |
◆ AmgSymMatrix() [2/2]
MuonGMR4::StripDesign::AmgSymMatrix |
( |
2 |
| ) |
|
|
inlineprivate |
Matrixt to translate from stereo -> nominal frame.
Definition at line 177 of file StripDesign.h.
◆ center()
CheckVector2D MuonGMR4::StripDesign::center |
( |
int |
stripNumb | ) |
const |
Returns the bisector of the strip (Global numbering scheme)
◆ cornerBotLeft()
Returns the bottom left corner of the trapezoid.
◆ cornerBotRight()
Returns the bottom right corner of the trapezoid.
◆ cornerTopLeft()
Returns the top left corner of the trapezoid.
◆ cornerTopRight()
Returns the top right corner of the trapezoid.
◆ defineDiamond()
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 82 of file StripDesign.cxx.
85 double HalfLongYuncut = HalfLongY +
yCutout * (HalfLongY - HalfShortY)/(2*HalfHeight -
yCutout);
◆ defineStripLayout()
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 107 of file StripDesign.cxx.
◆ defineTrapezoid() [1/2]
void MuonGMR4::StripDesign::defineTrapezoid |
( |
double |
HalfShortY, |
|
|
double |
HalfLongY, |
|
|
double |
HalfHeight |
|
) |
| |
Defines the edges of the trapezoid.
Definition at line 69 of file StripDesign.cxx.
78 m_lenSlopEdge = std::hypot(2.*HalfHeight, HalfShortY - HalfLongY);
◆ defineTrapezoid() [2/2]
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.
◆ distanceToStrip()
double MuonGMR4::StripDesign::distanceToStrip |
( |
const Amg::Vector2D & |
pos, |
|
|
int |
strip |
|
) |
| const |
Returns the distance to the strip center along x.
◆ edgeDirBottom()
Returns the unit vector pointing from the bottom left -> right corner.
◆ edgeDirLeft()
Returns the unit vector pointing from the left bottom -> top corner.
◆ edgeDirRight()
Returns the unit vector pointing from the right bottom -> top corner.
◆ edgeDirTop()
Returns the unit vector pointing from the top left -> right corner.
◆ firstStripNumber()
int MuonGMR4::StripDesign::firstStripNumber |
( |
| ) |
const |
Returns the number of the first strip.
◆ firstStripPos()
Vector indicating the first strip position.
◆ flipTrapezoid()
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 91 of file StripDesign.cxx.
93 ATH_MSG_WARNING(
"It's impossible to flip a trapezoid twice. Swap short and long lengths");
◆ halfWidth()
double MuonGMR4::StripDesign::halfWidth |
( |
| ) |
const |
Returns the half height of the strip panel.
◆ hasStereoAngle()
bool MuonGMR4::StripDesign::hasStereoAngle |
( |
| ) |
const |
Returns whether a stereo angle is defined.
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ insideBoundaries()
Checks wheather the internal point is inside hte trapezoidal area.
◆ insideTrapezoid()
Checks whether an external point is inside the trapezoidal area.
◆ isFlipped()
bool MuonGMR4::StripDesign::isFlipped |
( |
| ) |
const |
Returns whether the trapezoid is flipped.
◆ leftEdge()
CheckVector2D MuonGMR4::StripDesign::leftEdge |
( |
int |
stripNumb | ) |
const |
Returns the left edge of the strip (Global numbering scheme)
◆ leftInterSect() [1/2]
◆ leftInterSect() [2/2]
virtual CheckVector2D MuonGMR4::StripDesign::leftInterSect |
( |
int |
stripNum, |
|
|
bool |
uncapped = false |
|
) |
| const |
|
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.
◆ lenBottomEdge()
double MuonGMR4::StripDesign::lenBottomEdge |
( |
| ) |
const |
Length of the edge from bottom left -> bottom right.
◆ lenLeftEdge()
double MuonGMR4::StripDesign::lenLeftEdge |
( |
| ) |
const |
Length of the edge from bottom left -> top left.
◆ lenRightEdge()
double MuonGMR4::StripDesign::lenRightEdge |
( |
| ) |
const |
Length of the dge from bottom right -> top right.
◆ lenTopEdge()
double MuonGMR4::StripDesign::lenTopEdge |
( |
| ) |
const |
Length of the the edge from top left -> top right.
◆ longHalfHeight()
double MuonGMR4::StripDesign::longHalfHeight |
( |
| ) |
const |
Returns the longer half height of the panel.
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
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.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
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.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ numStrips()
virtual int MuonGMR4::StripDesign::numStrips |
( |
| ) |
const |
|
virtual |
◆ operator<()
Odering operator.
Definition at line 26 of file StripDesign.cxx.
36 static const GeoTrf::TransformSorter trfSorter{};
◆ print()
void MuonGMR4::StripDesign::print |
( |
std::ostream & |
ostr | ) |
const |
|
virtual |
◆ resetDirCache()
void MuonGMR4::StripDesign::resetDirCache |
( |
| ) |
|
|
private |
◆ rightEdge()
CheckVector2D MuonGMR4::StripDesign::rightEdge |
( |
int |
stripNumb | ) |
const |
Returns the right edge of the strip (Global numbering scheme)
◆ rightInterSect() [1/2]
◆ rightInterSect() [2/2]
virtual CheckVector2D MuonGMR4::StripDesign::rightInterSect |
( |
int |
stripNum, |
|
|
bool |
uncapped = false |
|
) |
| const |
|
protectedvirtual |
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setStereoAngle()
void MuonGMR4::StripDesign::setStereoAngle |
( |
double |
stereo | ) |
|
|
private |
Definition at line 59 of file StripDesign.cxx.
60 if (std::abs(sAngle) < std::numeric_limits<float>::epsilon())
return;
63 m_etaToStereo = Eigen::Rotation2D{sAngle};
64 m_stereoToEta = Eigen::Rotation2D{-sAngle};
◆ shortHalfHeight()
double MuonGMR4::StripDesign::shortHalfHeight |
( |
| ) |
const |
Returns the shorter half height of the panel.
◆ stereoAngle()
double MuonGMR4::StripDesign::stereoAngle |
( |
| ) |
const |
Returns the value of the stereo angle.
◆ stripCenter()
CheckVector2D MuonGMR4::StripDesign::stripCenter |
( |
int |
stripNum | ) |
const |
|
protected |
Returns the geometrical center of a given strip.
◆ stripDir()
Vector pointing along the strip.
◆ stripLength()
virtual double MuonGMR4::StripDesign::stripLength |
( |
int |
stripNumb | ) |
const |
|
virtual |
◆ stripNormal()
Vector pointing to the next strip.
◆ stripNumber()
◆ stripPitch()
double MuonGMR4::StripDesign::stripPitch |
( |
| ) |
const |
Distance between two adjacent strips.
◆ stripPosition()
virtual Amg::Vector2D MuonGMR4::StripDesign::stripPosition |
( |
int |
stripNum | ) |
const |
|
protectedvirtual |
◆ stripWidth()
double MuonGMR4::StripDesign::stripWidth |
( |
| ) |
const |
◆ yCutout()
double MuonGMR4::StripDesign::yCutout |
( |
| ) |
const |
Returns the cutout of the diamond.
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_bottomLeft
Amg::Vector2D MuonGMR4::StripDesign::m_bottomLeft {Amg::Vector2D::Zero()} |
|
private |
Bottom left point of the trapezoid.
Definition at line 179 of file StripDesign.h.
◆ m_bottomRight
Amg::Vector2D MuonGMR4::StripDesign::m_bottomRight {Amg::Vector2D::Zero()} |
|
private |
Bottom right point of the trapezoid.
Definition at line 185 of file StripDesign.h.
◆ m_channelShift
int MuonGMR4::StripDesign::m_channelShift {1} |
|
private |
Shift between the 0-th readout channel and the first strip described by the panel.
Definition at line 152 of file StripDesign.h.
◆ m_cutLongEdge
double MuonGMR4::StripDesign::m_cutLongEdge {0.} |
|
private |
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.
◆ m_dirBotEdge
Vector describing the bottom edge of the trapezoid (bottom left -> bottom right)
Definition at line 190 of file StripDesign.h.
◆ m_dirLeftEdge
Vector describing the left adge of the trapezoid (bottom left -> top left)
Definition at line 192 of file StripDesign.h.
◆ m_dirRightEdge
Vector describing the right edge of the trapezoid (bottom right -> top right)
Definition at line 194 of file StripDesign.h.
◆ m_dirTopEdge
Vector describing the top edge of the trapzoid (top left -> top right)
Definition at line 188 of file StripDesign.h.
◆ m_firstStripPos
Amg::Vector2D MuonGMR4::StripDesign::m_firstStripPos {Amg::Vector2D::Zero()} |
|
private |
◆ m_halfX
double MuonGMR4::StripDesign::m_halfX {0.} |
|
private |
◆ m_hasStereo
bool MuonGMR4::StripDesign::m_hasStereo {false} |
|
private |
Flag telling whether the strip design has a stereo angle or not.
Definition at line 170 of file StripDesign.h.
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_isFlipped
bool MuonGMR4::StripDesign::m_isFlipped {false} |
|
private |
Flag telling whether the trapezoid has been flipped.
Definition at line 168 of file StripDesign.h.
◆ m_lenSlopEdge
double MuonGMR4::StripDesign::m_lenSlopEdge {0.} |
|
private |
Length of the edge connecting the short with the long egde.
Definition at line 196 of file StripDesign.h.
◆ m_longHalfY
double MuonGMR4::StripDesign::m_longHalfY {0.} |
|
private |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_numStrips
int MuonGMR4::StripDesign::m_numStrips {0} |
|
private |
◆ m_shortHalfY
double MuonGMR4::StripDesign::m_shortHalfY {0.} |
|
private |
◆ m_stereoAngle
double MuonGMR4::StripDesign::m_stereoAngle {0.} |
|
private |
◆ m_stripDir
Amg::Vector2D MuonGMR4::StripDesign::m_stripDir {Amg::Vector2D::UnitY()} |
|
private |
Orientiation of the strips along the panel.
Definition at line 163 of file StripDesign.h.
◆ m_stripNormal
Amg::Vector2D MuonGMR4::StripDesign::m_stripNormal {Amg::Vector2D::UnitX()} |
|
private |
Vector pointing from strip N to the next strip.
Definition at line 165 of file StripDesign.h.
◆ m_stripPitch
double MuonGMR4::StripDesign::m_stripPitch {0.} |
|
private |
Distance between 2 adjacent strip centers.
Definition at line 156 of file StripDesign.h.
◆ m_stripWidth
double MuonGMR4::StripDesign::m_stripWidth {0.} |
|
private |
◆ m_topLeft
Amg::Vector2D MuonGMR4::StripDesign::m_topLeft {Amg::Vector2D::Zero()} |
|
private |
◆ m_topRight
Amg::Vector2D MuonGMR4::StripDesign::m_topRight {Amg::Vector2D::Zero()} |
|
private |
Bottom right point of the trapezoid.
Definition at line 183 of file StripDesign.h.
◆ m_yCutout
double MuonGMR4::StripDesign::m_yCutout {0.} |
|
private |
Stores the diamond cutout length from the SQLite DB file.
Definition at line 203 of file StripDesign.h.
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
const Amg::Vector2D & cornerTopLeft() const
Returns the top left corner of the trapezoid.
double m_cutLongEdge
Lenght of the line segment that's cut from the long edge to make the trapezoid diamond shaped.
double stereoAngle() const
Returns the value of the stereo angle.
double m_lenSlopEdge
Length of the edge connecting the short with the long egde.
int m_channelShift
Shift between the 0-th readout channel and the first strip described by the panel.
bool isFlipped() const
Returns whether the trapezoid is flipped.
double m_shortHalfY
Trapezoid dimensions.
const Amg::Vector2D & cornerBotLeft() const
Returns the bottom left corner of the trapezoid.
void setStereoAngle(double stereo)
double m_stereoAngle
Stereo angle of the strip design.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual int numStrips() const
Number of strips on the panel.
CxxUtils::CachedUniquePtr< Amg::Vector2D > m_dirRightEdge
Vector describing the right edge of the trapezoid (bottom right -> top right)
Amg::Vector2D m_stripNormal
Vector pointing from strip N to the next strip.
Amg::Vector2D m_topLeft
Top right point of the trapezoid.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
double m_stripPitch
Distance between 2 adjacent strip centers.
double longHalfHeight() const
Returns the longer half height of the panel.
IMessageSvc * getMessageSvc(bool quiet=false)
Amg::Vector2D m_bottomRight
Bottom right point of the trapezoid.
double shortHalfHeight() const
Returns the shorter half height of the panel.
Amg::Vector2D m_firstStripPos
First strip position.
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
CxxUtils::CachedUniquePtr< Amg::Vector2D > m_dirLeftEdge
Vector describing the left adge of the trapezoid (bottom left -> top left)
double yCutout() const
Returns the cutout of the diamond.
double m_yCutout
Stores the diamond cutout length from the SQLite DB file.
double stripWidth() const
Width of a strip.
Class to provide easy MsgStream access and capabilities.
void defineTrapezoid(double HalfShortY, double HalfLongY, double HalfHeight)
Defines the edges of the trapezoid.
int firstStripNumber() const
Returns the number of the first strip.
MsgStream & msg() const
The standard message stream.
const Amg::Vector2D & cornerTopRight() const
Returns the top right corner of the trapezoid.
CheckVector2D center(int stripNumb) const
Returns the bisector of the strip (Global numbering scheme)
CxxUtils::CachedUniquePtr< Amg::Vector2D > m_dirBotEdge
Vector describing the bottom edge of the trapezoid (bottom left -> bottom right)
bool m_hasStereo
Flag telling whether the strip design has a stereo angle or not.
double m_stripWidth
Width of each strip line.
AmgSymMatrix(2) m_etaToStereo
Matrix to translate from nominal -> stereo frame.
double halfWidth() const
Returns the half height of the strip panel.
bool m_isFlipped
Flag telling whether the trapezoid has been flipped.
CxxUtils::CachedUniquePtr< Amg::Vector2D > m_dirTopEdge
Vector describing the top edge of the trapzoid (top left -> top right)
const Amg::Vector2D & cornerBotRight() const
Returns the bottom right corner of the trapezoid.
void resetDirCache()
Resets the cache of the directions.
Amg::Vector2D m_bottomLeft
Bottom left point of the trapezoid.
#define ATH_MSG_WARNING(x)
Amg::Vector2D m_stripDir
Orientiation of the strips along the panel.
std::string m_nm
Message source name.
bool hasStereoAngle() const
Returns whether a stereo angle is defined.
#define ORDER_PROP(PROP)
Helper macro to facilliate the ordering.
double stripPitch() const
Distance between two adjacent strips.
void initMessaging() const
Initialize our message level and MessageSvc.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Amg::Vector2D m_topRight
Bottom right point of the trapezoid.
int m_numStrips
Number of all strips.