ATLAS Offline Software
|
Parameters defining the design of the readout sTGC pads. More...
#include <MuonPadDesign.h>
Public Types | |
enum | padCorners { botLeft =0, botRight, topLeft, topRight } |
using | CornerArray = std::array< Amg::Vector2D, 4 > |
calculate local channel corners for a given channel number More... | |
Public Member Functions | |
MuonPadDesign () | |
std::pair< int, int > | etaPhiId (const int channel) const |
int | channelId (const std::pair< int, int > &padId) const |
double | distanceToChannel (const Amg::Vector2D &pos, bool measPhi, int channel=0) const |
distance to channel - residual More... | |
Amg::Vector2D | distanceToPad (const Amg::Vector2D &pos, int channel) const |
bool | withinSensitiveArea (const Amg::Vector2D &pos) const |
whether pos is within the sensitive area of the module More... | |
double | minSensitiveY () const |
lowest y (local) of the sensitive volume More... | |
double | maxSensitiveY () const |
highest y (local) of the sensitive volume More... | |
double | maxAbsSensitiveX (const double &y) const |
largest (abs, local) x of the sensitive volume More... | |
std::pair< int, int > | channelNumber (const Amg::Vector2D &pos) const |
calculate local channel number, range 1=nstrips like identifiers. More... | |
bool | channelPosition (const std::pair< int, int > &pad, Amg::Vector2D &pos) const |
calculate local channel position for a given channel number More... | |
bool | channelPosition (const int channel, Amg::Vector2D &pos) const |
bool | channelCorners (const std::pair< int, int > &pad, CornerArray &corners) const |
bool | channelCorners (const int channel, CornerArray &corners) const |
double | channelWidth (const Amg::Vector2D &pos, bool measPhi, bool preciseMeas=false) const |
calculate local channel width More... | |
double | gasGapThickness () const |
thickness of gas gap More... | |
void | setR (double R) |
access to cache 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... | |
Public Attributes | |
int | padEtaMin {0} |
int | padEtaMax {0} |
double | inputRowPitch {0.} |
double | inputPhiPitch {0.} |
double | signY {0.} |
double | firstRowPos {0.} |
double | firstPhiPos {0.} |
double | Length {0.} |
double | sWidth {0.} |
double | lWidth {0.} |
double | Size {0.} |
double | thickness {0.} |
double | radialDistance {0.} |
DT-2015-11-29 distance from the beamline to the center of the module. More... | |
double | sPadWidth {0.} |
double | lPadWidth {0.} |
double | xFrame {0.} |
double | ysFrame {0.} |
double | ylFrame {0.} |
double | yCutout {0.} |
int | nPadH {0} |
int | nPadColumns {0} |
double | PadPhiShift {0.} |
int | etasign {0} |
int | isLargeSector {0} |
double | sectorOpeningAngle {0.} |
Static Public Attributes | |
static constexpr double | largeSectorOpeningAngle {28.0} |
static constexpr double | smallSectorOpeningAngle {17.0} |
Private Member Functions | |
void | initMessaging () const |
Initialize our message level and MessageSvc. More... | |
Private Attributes | |
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... | |
Parameters defining the design of the readout sTGC pads.
The parameters below are the ones from the parameter book. The naming convention used here refers to the one explained on p.90 ("naming of .xml tags and .h variables") of https://twiki.cern.ch/twiki/bin/view/Atlas/NSWParameterBook#Parameter_book
Note that the pads do not exist as objects in memory. Instead, a MuonPadDesign is defined for each layer in a module. From the readout parameters one can map position <-> channel:
Definition at line 40 of file MuonPadDesign.h.
using MuonGM::MuonPadDesign::CornerArray = std::array<Amg::Vector2D, 4> |
calculate local channel corners for a given channel number
Definition at line 104 of file MuonPadDesign.h.
MuonPadDesign::MuonPadDesign | ( | ) |
Definition at line 12 of file MuonPadDesign.cxx.
bool MuonPadDesign::channelCorners | ( | const int | channel, |
CornerArray & | corners | ||
) | const |
Definition at line 154 of file MuonPadDesign.cxx.
bool MuonPadDesign::channelCorners | ( | const std::pair< int, int > & | pad, |
CornerArray & | corners | ||
) | const |
Definition at line 157 of file MuonPadDesign.cxx.
|
inline |
Definition at line 118 of file MuonPadDesign.h.
std::pair< int, int > MuonPadDesign::channelNumber | ( | const Amg::Vector2D & | pos | ) | const |
calculate local channel number, range 1=nstrips like identifiers.
Returns -1 if out of range
Definition at line 39 of file MuonPadDesign.cxx.
bool MuonPadDesign::channelPosition | ( | const int | channel, |
Amg::Vector2D & | pos | ||
) | const |
Definition at line 109 of file MuonPadDesign.cxx.
bool MuonPadDesign::channelPosition | ( | const std::pair< int, int > & | pad, |
Amg::Vector2D & | pos | ||
) | const |
calculate local channel position for a given channel number
Definition at line 112 of file MuonPadDesign.cxx.
|
inline |
calculate local channel width
Definition at line 142 of file MuonPadDesign.h.
|
inline |
distance to channel - residual
Definition at line 122 of file MuonPadDesign.h.
Amg::Vector2D MuonPadDesign::distanceToPad | ( | const Amg::Vector2D & | pos, |
int | channel | ||
) | const |
In terms of y the hit could be in the pad
Hit is inside the pad
Definition at line 118 of file MuonPadDesign.cxx.
|
inline |
Definition at line 115 of file MuonPadDesign.h.
|
inline |
thickness of gas gap
Definition at line 169 of file MuonPadDesign.h.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
double MuonPadDesign::maxAbsSensitiveX | ( | const double & | y | ) | const |
double MuonPadDesign::maxSensitiveY | ( | ) | const |
highest y (local) of the sensitive volume
Definition at line 24 of file MuonPadDesign.cxx.
double MuonPadDesign::minSensitiveY | ( | ) | 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.
|
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.
|
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.
|
inline |
bool MuonPadDesign::withinSensitiveArea | ( | const Amg::Vector2D & | pos | ) | const |
whether pos is within the sensitive area of the module
Definition at line 13 of file MuonPadDesign.cxx.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
int MuonGM::MuonPadDesign::etasign {0} |
Definition at line 71 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::firstPhiPos {0.} |
Definition at line 53 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::firstRowPos {0.} |
Definition at line 52 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::inputPhiPitch {0.} |
Definition at line 50 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::inputRowPitch {0.} |
Definition at line 49 of file MuonPadDesign.h.
int MuonGM::MuonPadDesign::isLargeSector {0} |
Definition at line 72 of file MuonPadDesign.h.
|
staticconstexpr |
Definition at line 75 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::Length {0.} |
Definition at line 55 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::lPadWidth {0.} |
Definition at line 63 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::lWidth {0.} |
Definition at line 57 of file MuonPadDesign.h.
|
mutableprivateinherited |
MessageSvc pointer.
Definition at line 135 of file AthMessaging.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.
int MuonGM::MuonPadDesign::nPadColumns {0} |
Definition at line 69 of file MuonPadDesign.h.
int MuonGM::MuonPadDesign::nPadH {0} |
Definition at line 68 of file MuonPadDesign.h.
int MuonGM::MuonPadDesign::padEtaMax {0} |
Definition at line 47 of file MuonPadDesign.h.
int MuonGM::MuonPadDesign::padEtaMin {0} |
Definition at line 46 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::PadPhiShift {0.} |
Definition at line 70 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::radialDistance {0.} |
DT-2015-11-29 distance from the beamline to the center of the module.
Definition at line 60 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::sectorOpeningAngle {0.} |
Definition at line 73 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::signY {0.} |
Definition at line 51 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::Size {0.} |
Definition at line 58 of file MuonPadDesign.h.
|
staticconstexpr |
Definition at line 76 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::sPadWidth {0.} |
Definition at line 62 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::sWidth {0.} |
Definition at line 56 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::thickness {0.} |
Definition at line 59 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::xFrame {0.} |
Definition at line 64 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::yCutout {0.} |
Definition at line 67 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::ylFrame {0.} |
Definition at line 66 of file MuonPadDesign.h.
double MuonGM::MuonPadDesign::ysFrame {0.} |
Definition at line 65 of file MuonPadDesign.h.