ATLAS Offline Software
Loading...
Searching...
No Matches
MuonGMR4::SpectrometerSector Class Reference

A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & layer E.g. More...

#include <SpectrometerSector.h>

Inheritance diagram for MuonGMR4::SpectrometerSector:
Collaboration diagram for MuonGMR4::SpectrometerSector:

Classes

struct  chamberLocation
 : Helper struct for fast approximate navigation. More...
struct  defineArgs

Public Types

using ChamberPtr = GeoModel::TransientConstSharedPtr<Chamber>
using ChamberSet = std::vector<ChamberPtr>

Public Member Functions

 SpectrometerSector (defineArgs &&args)
 Standard constructor taking the defining parameters.
 SpectrometerSector (const SpectrometerSector &other)=delete
 Delete the copy constructor and copy assignment.
SpectrometerSectoroperator= (const SpectrometerSector &other)=delete
 ~SpectrometerSector ()=default
bool operator< (const SpectrometerSector &other) const
std::string identString () const
 Returns a string encoding the chamber index & the sector of the MS sector.
const Muon::IMuonIdHelperSvcidHelperSvc () const
 Returns the IdHelpeSvc.
Muon::MuonStationIndex::ChIndex chamberIndex () const
 Returns the chamber index scheme.
int stationPhi () const
 : Returns the station phi of the sector
int sector () const
 Returns the sector of the MS-sector.
int8_t side () const
 Returns the side of the MS-sector 1 -> A side ; -1 -> C side.
bool barrel () const
 Returns whether the sector is placed in the barrel.
const Amg::Transform3DlocalToGlobalTransform (const ActsTrk::GeometryContext &gctx) const
 Returns the local -> global tarnsformation from the sector.
Amg::Transform3D globalToLocalTransform (const ActsTrk::GeometryContext &gctx) const
 Returns the global -> local transformation from the ATLAS global.
const Acts::PlaneSurface & surface () const
 Returns the associated surface.
const ChamberSetchambers () const
 Returns the associated chambers with this sector.
double halfXLong () const
 Long-extend of the chamber in the x-direction at positive Y.
double halfXShort () const
 Short extend of the chamber in the x-direction at negative Y.
double halfY () const
 Extend of the chamber in the y-direction.
double halfZ () const
 Thickness of the chamber in the z-direction.
const defineArgsparameters () const
 Returns the reference to the defining parameters of the sector.
std::shared_ptr< Acts::Volume > boundingVolume (const ActsTrk::GeometryContext &gctx) const
 Returns the Acts::Volume representation of the sector.
std::shared_ptr< Acts::VolumeBounds > bounds () const
 Returns the volume bounds.
Chamber::ReadoutSet readoutEles () const
 Returns the list of all associated readout elements.
const std::vector< chamberLocation > & chamberLocations () const
 returns the list of all MDT chambers in the sector for fast navigation
const std::vector< unsigned int > & logicalLayerIdx (const MuonReadoutElement *reEle) const
 Returns the logic layer numbering of a given Readout Element.
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.

Private Member Functions

std::unordered_map< const MuonReadoutElement *, std::vector< unsigned int > > fillDetLayIdCache () const
 Function filling the map mapping the readout elements to layer numbers.
Identifier computeDetLayerId (const MuonReadoutElement *rele) const
 Helper function calculating the logic layer Id and the physical layer id.
unsigned int nLayerPerReadout (const MuonReadoutElement *rele) const
 Helper function giving the number of measurement layers in a given readout ele.
void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

defineArgs m_args {}
const std::unordered_map< const MuonReadoutElement *, std::vector< unsigned int > > m_detLayIdCache {fillDetLayIdCache()}
 Map mapping each Readout Element to the layer numbering in the sector frame.
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)

Detailed Description

A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & layer E.g.

sector 5 in BI on the A-side. The spectrometer sector defines a coordinate system which is primarly used in the pattern recognition stage of the muon reconstruction

    x-axis: Points along the Mdt tubes & is hence sensitive to the phi direction
    y-axis: Points to the next Mdt tube in the layer or in other words to the big wheel
            in the sector, if the chamber is in the barrel or outside in radial direction
    z-axis: Points radially outwards if the chamber is in the barrel or in towards the cavern
            wall if it's an endcap chamber

The origin of the spectrometer sector is placed in the nominal centre of the envelope.

The spectrometer contains pointer to all chambers & readout elements that are enclosed by it.

Definition at line 40 of file SpectrometerSector.h.

Member Typedef Documentation

◆ ChamberPtr

◆ ChamberSet

Definition at line 43 of file SpectrometerSector.h.

Constructor & Destructor Documentation

◆ SpectrometerSector() [1/2]

MuonGMR4::SpectrometerSector::SpectrometerSector ( defineArgs && args)

Standard constructor taking the defining parameters.

Definition at line 37 of file SpectrometerSector.cxx.

37 :
38 AthMessaging("MuonSpectrometerSector"), m_args{std::move(args)} {
39 for (auto & chamber : m_args.chambers) {
40 chamber->setParent(this);
41 }
42 }
AthMessaging()
Default constructor:

◆ SpectrometerSector() [2/2]

MuonGMR4::SpectrometerSector::SpectrometerSector ( const SpectrometerSector & other)
delete

Delete the copy constructor and copy assignment.

◆ ~SpectrometerSector()

MuonGMR4::SpectrometerSector::~SpectrometerSector ( )
default

Member Function Documentation

◆ barrel()

bool MuonGMR4::SpectrometerSector::barrel ( ) const

Returns whether the sector is placed in the barrel.

Definition at line 55 of file SpectrometerSector.cxx.

55{ return m_args.chambers.front()->barrel(); }

◆ boundingVolume()

std::shared_ptr< Acts::Volume > MuonGMR4::SpectrometerSector::boundingVolume ( const ActsTrk::GeometryContext & gctx) const

Returns the Acts::Volume representation of the sector.

Parameters
gctxGeometry context carrrying the alignment transformations

Definition at line 77 of file SpectrometerSector.cxx.

77 {
78 return std::make_shared<Acts::Volume>(localToGlobalTransform(gctx), bounds());
79}
const Amg::Transform3D & localToGlobalTransform(const ActsTrk::GeometryContext &gctx) const
Returns the local -> global tarnsformation from the sector.
std::shared_ptr< Acts::VolumeBounds > bounds() const
Returns the volume bounds.

◆ bounds()

std::shared_ptr< Acts::VolumeBounds > MuonGMR4::SpectrometerSector::bounds ( ) const

Returns the volume bounds.

Definition at line 80 of file SpectrometerSector.cxx.

80{ return m_args.bounds; }

◆ chamberIndex()

Muon::MuonStationIndex::ChIndex MuonGMR4::SpectrometerSector::chamberIndex ( ) const

Returns the chamber index scheme.

Definition at line 52 of file SpectrometerSector.cxx.

52{ return m_args.chambers.front()->chamberIndex(); }

◆ chamberLocations()

const std::vector< SpectrometerSector::chamberLocation > & MuonGMR4::SpectrometerSector::chamberLocations ( ) const

returns the list of all MDT chambers in the sector for fast navigation

Definition at line 88 of file SpectrometerSector.cxx.

88 {
89 return m_args.detectorLocs;
90
91}

◆ chambers()

const ChamberSet & MuonGMR4::SpectrometerSector::chambers ( ) const

Returns the associated chambers with this sector.

Definition at line 61 of file SpectrometerSector.cxx.

61{ return m_args.chambers; }

◆ computeDetLayerId()

Identifier MuonGMR4::SpectrometerSector::computeDetLayerId ( const MuonReadoutElement * rele) const
private

Helper function calculating the logic layer Id and the physical layer id.

Definition at line 186 of file SpectrometerSector.cxx.

186 {
187
188 switch (rele->detectorType()) {
190 auto mdtRele = dynamic_cast<const MdtReadoutElement*>(rele);
191 return idHelperSvc()->mdtIdHelper().channelID(mdtRele->stationName(), 1,
192 mdtRele->stationPhi(),
193 mdtRele->multilayer(),
194 1,1);
195 }
197 auto rpcRele = dynamic_cast<const RpcReadoutElement*>(rele);
198 return idHelperSvc()->rpcIdHelper().channelID(rpcRele->stationName(), 1,
199 rpcRele->stationPhi(),
200 rpcRele->doubletR(), 1, 1,
201 1, 0, 1);
202 }
204 auto tgcRele = dynamic_cast<const TgcReadoutElement*>(rele);
205 return idHelperSvc()->tgcIdHelper().channelID(tgcRele->stationName(), 1,
206 tgcRele->stationPhi(),
207 1, 0, 1);
208 }
210 auto stgcRele = dynamic_cast<const sTgcReadoutElement*>(rele);
211 return idHelperSvc()->stgcIdHelper().channelID(stgcRele->stationName(), 1,
212 stgcRele->stationPhi(),
213 stgcRele->multilayer(),
214 1, 0, 1);
215 }
217 auto mmRele = dynamic_cast<const MmReadoutElement*>(rele);
218 return idHelperSvc()->mmIdHelper().channelID(mmRele->stationName(), 1,
219 mmRele->stationPhi(),
220 mmRele->multilayer(),
221 1, 1);
222 }
223 default:
224 THROW_EXCEPTION("Unexpected Readout Element Type in computeDetLayerId()");
225 }
226}
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int tubeLayer, int tube) const
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the IdHelpeSvc.
virtual const MmIdHelper & mmIdHelper() const =0
access to CscIdHelper
virtual const RpcIdHelper & rpcIdHelper() const =0
access to RpcIdHelper
virtual const sTgcIdHelper & stgcIdHelper() const =0
access to TgcIdHelper
virtual const TgcIdHelper & tgcIdHelper() const =0
access to TgcIdHelper
virtual const MdtIdHelper & mdtIdHelper() const =0
access to MdtIdHelper
Identifier channelID(int stationName, int stationEta, int stationPhi, int doubletR, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const
Identifier channelID(int stationName, int stationEta, int stationPhi, int gasGap, int isStrip, int channel) const
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channelType, int channel) const
@ Mm
Maybe not needed in the migration.
@ Tgc
Resitive Plate Chambers.
@ sTgc
Micromegas (NSW)
@ Rpc
Monitored Drift Tubes.
@ Mdt
MuonSpectrometer.
#define THROW_EXCEPTION(MESSAGE)
Definition throwExcept.h:10

◆ fillDetLayIdCache()

std::unordered_map< const MuonReadoutElement *, std::vector< unsigned int > > MuonGMR4::SpectrometerSector::fillDetLayIdCache ( ) const
private

Function filling the map mapping the readout elements to layer numbers.

Definition at line 114 of file SpectrometerSector.cxx.

114 {
115
116 std::unordered_map<const MuonReadoutElement*, std::vector<unsigned int>> cache{};
117 const ActsTrk::GeometryContext gctx{};
118 const Amg::Transform3D sectorTrans = globalToLocalTransform(gctx);
119
120 // sort the Readout elements by z in the sector fram
121 Chamber::ReadoutSet reEleSorted {readoutEles()};
122 std::ranges::sort(reEleSorted, [&sectorTrans, &gctx](const MuonReadoutElement* reEle1, const MuonReadoutElement* reEle2)-> bool {
123 return (sectorTrans * reEle1->center(gctx, reEle1->identify())).z() < (sectorTrans * reEle2->center(gctx, reEle2->identify())).z();
124 });
125
126 // this is a function to find the next logical layer, returning the corresponding reEle and Id
127 auto nextLayer = [this, &cache, &reEleSorted](const Identifier& lastId) ->
128 std::pair<const MuonReadoutElement*, const Identifier> {
129
130 const MuonReadoutElement* nextReEle {nullptr};
131 Identifier nextId {};
132
133 for (const MuonReadoutElement* reEle : reEleSorted){
134
135 // Check if this reEle has already been filled up
136 if (cache.count(reEle)) continue;
137
138 // compute the logical layer Id of the first layer of the reEle (first layer/gasgap, first channel, projecting to
139 // stationEta=1, doubletZ=1, doubletPhi=1, according to the technology)
140 const Identifier logicalId {computeDetLayerId(reEle)};
141
142 //if we find another measurement layer with the same detLayerId as the last we added (e.g. the same gasgap of two RPC z doublets)
143 if (logicalId == lastId){
144 return std::make_pair(reEle, logicalId);
145 }
146
147 // Save the next (subsequent) logic layer in z
148 if (!nextReEle) {
149 nextReEle = reEle;
150 nextId = logicalId;
151 }
152
153 }
154 return std::make_pair(nextReEle, nextId);
155 };
156
157 unsigned int layCounter {0}, nIter {0};
158 Identifier lastId {};
159 unsigned int deltaN {0};
160 while(++nIter <= reEleSorted.size()){
161
162 auto [nextReEle, nextId] = nextLayer(lastId);
163 if (!nextReEle){
164 THROW_EXCEPTION("Failed to retrieve next reEle in fillDetLayIdCache()");
165 }
166
167 unsigned int nLayers = nLayerPerReadout(nextReEle);
168
169 if (nextId != lastId) {
170 layCounter += deltaN;
171 deltaN = nLayers;
172 lastId = nextId;
173 }
174 else{
175 deltaN = std::max(deltaN, nLayers);
176 }
177
178 cache[nextReEle] = range(layCounter, layCounter + nLayers);
179
180 ATH_MSG_DEBUG( identString() << " ReEle: " << idHelperSvc()->toStringDetEl(nextReEle->identify()) <<
181 " Add logicLay: " << idHelperSvc()->toStringGasGap(nextId) << " nInserted, layCounter " << cache.at(nextReEle).size() << " ," << layCounter);
182 }
183 return cache;
184};
#define ATH_MSG_DEBUG(x)
std::vector< const MuonReadoutElement * > ReadoutSet
Define the list of read out elements of the chamber.
Definition Chamber.h:31
unsigned int nLayerPerReadout(const MuonReadoutElement *rele) const
Helper function giving the number of measurement layers in a given readout ele.
Chamber::ReadoutSet readoutEles() const
Returns the list of all associated readout elements.
Identifier computeDetLayerId(const MuonReadoutElement *rele) const
Helper function calculating the logic layer Id and the physical layer id.
std::string identString() const
Returns a string encoding the chamber index & the sector of the MS sector.
Amg::Transform3D globalToLocalTransform(const ActsTrk::GeometryContext &gctx) const
Returns the global -> local transformation from the ATLAS global.
Eigen::Affine3d Transform3D

◆ globalToLocalTransform()

Amg::Transform3D MuonGMR4::SpectrometerSector::globalToLocalTransform ( const ActsTrk::GeometryContext & gctx) const

Returns the global -> local transformation from the ATLAS global.

Definition at line 68 of file SpectrometerSector.cxx.

68 {
69 return localToGlobalTransform(gctx).inverse();
70}

◆ halfXLong()

double MuonGMR4::SpectrometerSector::halfXLong ( ) const

Long-extend of the chamber in the x-direction at positive Y.

Definition at line 71 of file SpectrometerSector.cxx.

71{ return MuonGMR4::halfXhighY(*m_args.bounds); }
double halfXhighY(const Acts::VolumeBounds &bounds)
Returns the half-Y length @ posiive Y for the parsed volume bounds (Trapezoid/ Cuboid)

◆ halfXShort()

double MuonGMR4::SpectrometerSector::halfXShort ( ) const

Short extend of the chamber in the x-direction at negative Y.

Definition at line 72 of file SpectrometerSector.cxx.

72{ return MuonGMR4::halfXlowY(*m_args.bounds); }
double halfXlowY(const Acts::VolumeBounds &bounds)
Returns the half-X length @ negative Y for the parsed volume bounds (Trapezoid/ Cuboid)

◆ halfY()

double MuonGMR4::SpectrometerSector::halfY ( ) const

Extend of the chamber in the y-direction.

Definition at line 73 of file SpectrometerSector.cxx.

73{ return MuonGMR4::halfY(* m_args.bounds); }
double halfY(const Acts::VolumeBounds &bounds)
Returns the half-Y length for the parsed volume bounds (Trapezoid/ Cuboid)

◆ halfZ()

double MuonGMR4::SpectrometerSector::halfZ ( ) const

Thickness of the chamber in the z-direction.

Definition at line 74 of file SpectrometerSector.cxx.

74{ return MuonGMR4::halfZ(*m_args.bounds);}
double halfZ(const Acts::VolumeBounds &bounds)
Returns the half-Z length for the parsed volume bounds (Trapezoid/ Cuboid)

◆ identString()

std::string MuonGMR4::SpectrometerSector::identString ( ) const

Returns a string encoding the chamber index & the sector of the MS sector.

Definition at line 56 of file SpectrometerSector.cxx.

56 {
57 return std::format("id: {:3d}, {:} {:}-side sector: {:2},", m_args.id,
59 side() == 1 ? 'A' : 'C' , sector());
60}
int8_t side() const
Returns the side of the MS-sector 1 -> A side ; -1 -> C side.
int sector() const
Returns the sector of the MS-sector.
Muon::MuonStationIndex::ChIndex chamberIndex() const
Returns the chamber index scheme.
const std::string & chName(ChIndex index)
convert ChIndex into a string

◆ idHelperSvc()

const Muon::IMuonIdHelperSvc * MuonGMR4::SpectrometerSector::idHelperSvc ( ) const

Returns the IdHelpeSvc.

Definition at line 51 of file SpectrometerSector.cxx.

51{ return m_args.chambers.front()->idHelperSvc();}

◆ 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.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ localToGlobalTransform()

const Amg::Transform3D & MuonGMR4::SpectrometerSector::localToGlobalTransform ( const ActsTrk::GeometryContext & gctx) const

Returns the local -> global tarnsformation from the sector.

Parameters
gctxGeometry context carrrying the alignment transformations

Definition at line 65 of file SpectrometerSector.cxx.

65 {
66 return surface().localToGlobalTransform(gctx.context());
67}
Acts::GeometryContext context() const
const Acts::PlaneSurface & surface() const
Returns the associated surface.

◆ logicalLayerIdx()

const std::vector< unsigned int > & MuonGMR4::SpectrometerSector::logicalLayerIdx ( const MuonReadoutElement * reEle) const

Returns the logic layer numbering of a given Readout Element.

Definition at line 109 of file SpectrometerSector.cxx.

109 {
110 return m_detLayIdCache.at(reEle);
111};
const std::unordered_map< const MuonReadoutElement *, std::vector< unsigned int > > m_detLayIdCache
Map mapping each Readout Element to the layer numbering in the sector frame.

◆ 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 167 of file AthMessaging.h.

168{
169 MsgStream* ms = m_msg_tls.get();
170 if (!ms) {
171 if (!m_initialized.test_and_set()) initMessaging();
172 ms = new MsgStream(m_imsg,m_nm);
173 m_msg_tls.reset( ms );
174 }
175
176 ms->setLevel (m_lvl);
177 return *ms;
178}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ 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 182 of file AthMessaging.h.

183{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 // If user did not set explicit message level we have to initialize
154 // the messaging and retrieve the default via the MessageSvc.
155 if (m_lvl==MSG::NIL && !m_initialized.test_and_set()) initMessaging();
156
157 if (m_lvl <= lvl) {
158 msg() << lvl;
159 return true;
160 } else {
161 return false;
162 }
163}

◆ nLayerPerReadout()

unsigned int MuonGMR4::SpectrometerSector::nLayerPerReadout ( const MuonReadoutElement * rele) const
private

Helper function giving the number of measurement layers in a given readout ele.

Definition at line 228 of file SpectrometerSector.cxx.

228 {
229
230 switch (rele->detectorType()) {
232 auto mdtRele = dynamic_cast<const MdtReadoutElement*>(rele);
233 return mdtRele->numLayers();
234 }
236 auto rpcRele = dynamic_cast<const RpcReadoutElement*>(rele);
237 return rpcRele->nGasGaps();
238 }
240 auto tgcRele = dynamic_cast<const TgcReadoutElement*>(rele);
241 return tgcRele->nGasGaps();
242 }
244 auto stgcRele = dynamic_cast<const sTgcReadoutElement*>(rele);
245 return stgcRele->numLayers();
246 }
248 auto mmRele = dynamic_cast<const MmReadoutElement*>(rele);
249 return mmRele->nGasGaps();
250 }
251 default:
252 THROW_EXCEPTION("Unexpected Readout Element Type in nLayerPerReadout()");
253 }
254}

◆ operator<()

bool MuonGMR4::SpectrometerSector::operator< ( const SpectrometerSector & other) const

Definition at line 44 of file SpectrometerSector.cxx.

44 {
45 return m_args.id < other.m_args.id;
46}

◆ operator=()

SpectrometerSector & MuonGMR4::SpectrometerSector::operator= ( const SpectrometerSector & other)
delete

◆ parameters()

const SpectrometerSector::defineArgs & MuonGMR4::SpectrometerSector::parameters ( ) const

Returns the reference to the defining parameters of the sector.

Definition at line 50 of file SpectrometerSector.cxx.

50{ return m_args; }

◆ readoutEles()

Chamber::ReadoutSet MuonGMR4::SpectrometerSector::readoutEles ( ) const

Returns the list of all associated readout elements.

Definition at line 81 of file SpectrometerSector.cxx.

81 {
82 Chamber::ReadoutSet toReturn{};
83 for (const ChamberPtr& ch : chambers()) {
84 toReturn.insert(toReturn.end(), ch->readoutEles().begin(), ch->readoutEles().end());
85 }
86 return toReturn;
87}
const ChamberSet & chambers() const
Returns the associated chambers with this sector.
GeoModel::TransientConstSharedPtr< Chamber > ChamberPtr

◆ sector()

int MuonGMR4::SpectrometerSector::sector ( ) const

Returns the sector of the MS-sector.

Definition at line 54 of file SpectrometerSector.cxx.

54{return m_args.chambers.front()->sector(); }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
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.

29{
30 m_lvl = lvl;
31}

◆ side()

int8_t MuonGMR4::SpectrometerSector::side ( ) const

Returns the side of the MS-sector 1 -> A side ; -1 -> C side.

Definition at line 47 of file SpectrometerSector.cxx.

47 {
48 return Acts::copySign(1, chambers().front()->stationEta());
49}

◆ stationPhi()

int MuonGMR4::SpectrometerSector::stationPhi ( ) const

: Returns the station phi of the sector

Definition at line 53 of file SpectrometerSector.cxx.

53{ return m_args.chambers.front()->stationPhi(); }

◆ surface()

const Acts::PlaneSurface & MuonGMR4::SpectrometerSector::surface ( ) const

Returns the associated surface.

Definition at line 62 of file SpectrometerSector.cxx.

62 {
63 return *m_args.surface;
64}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_args

defineArgs MuonGMR4::SpectrometerSector::m_args {}
private

Definition at line 173 of file SpectrometerSector.h.

173{};

◆ m_detLayIdCache

const std::unordered_map<const MuonReadoutElement*, std::vector<unsigned int> > MuonGMR4::SpectrometerSector::m_detLayIdCache {fillDetLayIdCache()}
private

Map mapping each Readout Element to the layer numbering in the sector frame.

Definition at line 178 of file SpectrometerSector.h.

std::unordered_map< const MuonReadoutElement *, std::vector< unsigned int > > fillDetLayIdCache() const
Function filling the map mapping the readout elements to layer numbers.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ 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

Message source name.

Definition at line 129 of file AthMessaging.h.


The documentation for this class was generated from the following files: