ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MuonG4R4::TgcSensitiveDetector Class Reference

#include <TgcSensitiveDetector.h>

Inheritance diagram for MuonG4R4::TgcSensitiveDetector:
Collaboration diagram for MuonG4R4::TgcSensitiveDetector:

Public Member Functions

 TgcSensitiveDetector (const std::string &name, const std::string &output_key, const std::string &trf_storKey, const MuonGMR4::MuonDetectorManager *detMgr)
 Constructor. More...
 
 ~TgcSensitiveDetector ()=default
 
void Initialize (G4HCofThisEvent *HCE) override final
 member functions More...
 
G4bool ProcessHits (G4Step *aStep, G4TouchableHistory *ROhist) override final
 
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...
 

Private Member Functions

const MuonGMR4::TgcReadoutElementgetReadoutElement (const G4TouchableHistory *touchHist) const
 Retrieves the matching readout element to a G4 hit. More...
 
Identifier getIdentifier (const ActsGeometryContext &gctx, const MuonGMR4::TgcReadoutElement *readOutEle, const Amg::Vector3D &hitAtGapPlane, bool phiGap) const
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

SG::WriteHandle< xAOD::MuonSimHitContainerm_writeHandle
 
SG::ReadHandleKey< ActsTrk::DetectorAlignStorem_trfCacheKey
 
const ActsGeometryContext m_gctx {}
 Pointer to the acts Geometry context. More...
 
const MuonGMR4::MuonDetectorManagerm_detMgr {nullptr}
 Pointer to the underlying detector manager. 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...
 

Detailed Description

Definition at line 17 of file TgcSensitiveDetector.h.

Constructor & Destructor Documentation

◆ TgcSensitiveDetector()

MuonG4R4::TgcSensitiveDetector::TgcSensitiveDetector ( const std::string &  name,
const std::string &  output_key,
const std::string &  trf_storKey,
const MuonGMR4::MuonDetectorManager detMgr 
)

Constructor.

Parameters
nameName of the Sensitive detctor / AthMessaging module
output_keyKey under which the sim hits are written into store gate
trf_storeKeyLocation of the DetctorAlignmentStore holding the transformations per event
detMgrPointer to the run-4 detector manager

Definition at line 29 of file TgcSensitiveDetector.cxx.

32  :
33  G4VSensitiveDetector{name},
35  m_writeHandle{output_key},
36  m_trfCacheKey{trf_storeKey},
37  m_detMgr{detMgr} {
38  m_trfCacheKey.initialize().ignore();
39 }

◆ ~TgcSensitiveDetector()

MuonG4R4::TgcSensitiveDetector::~TgcSensitiveDetector ( )
default

Member Function Documentation

◆ getIdentifier()

Identifier MuonG4R4::TgcSensitiveDetector::getIdentifier ( const ActsGeometryContext gctx,
const MuonGMR4::TgcReadoutElement readOutEle,
const Amg::Vector3D hitAtGapPlane,
bool  phiGap 
) const
private

Definition at line 157 of file TgcSensitiveDetector.cxx.

159  {
160  const TgcIdHelper& idHelper{m_detMgr->idHelperSvc()->tgcIdHelper()};
161  const Identifier firstChan = idHelper.channelID(readOutEle->identify(), 1, phiGap, 1);
162 
163  const Amg::Vector3D locHitPos{readOutEle->globalToLocalTrans(gctx, firstChan) * hitAtGapPlane};
164 
165  const int gasGap = std::round(std::abs(locHitPos.z()) / readOutEle->gasGapPitch()) + 1;
166  ATH_MSG_VERBOSE("Detector element: "<<m_detMgr->idHelperSvc()->toStringDetEl(firstChan)
167  <<" locPos: "<<Amg::toString(locHitPos, 2)
168  <<" gap thickness: "<<readOutEle->gasGapPitch()
169  <<" gasGap: "<<gasGap);
170 
171  return idHelper.channelID(readOutEle->identify(), gasGap, phiGap, 1);
172 }

◆ getReadoutElement()

const MuonGMR4::TgcReadoutElement * MuonG4R4::TgcSensitiveDetector::getReadoutElement ( const G4TouchableHistory *  touchHist) const
private

Retrieves the matching readout element to a G4 hit.

The third volume encodes the information of the Tgc detector

We should have a string which kind of looks like av_319_impr_1_MuonR4::LogVolMuonStation_pv_190_T3E_Station2_-2_46 Of interest are only the T1E part and the last 2 numbers

Definition at line 137 of file TgcSensitiveDetector.cxx.

137  {
139  const std::string stationVolume = touchHist->GetVolume(2)->GetName();
140  const std::vector<std::string> volumeTokens = CxxUtils::tokenize(stationVolume, "_");
144  const size_t nTokens{volumeTokens.size()};
145  const TgcIdHelper& idHelper{m_detMgr->idHelperSvc()->tgcIdHelper()};
146  const std::string stationName{volumeTokens[nTokens-4].substr(0,3)};
147  const int stationEta = CxxUtils::atoi(volumeTokens[nTokens-2]);
148  const int stationPhi = CxxUtils::atoi(volumeTokens[nTokens-1]);
149  bool isValid{false};
150  const Identifier stationId = idHelper.elementID(stationName, stationEta, stationPhi, isValid);
151  if (!isValid) {
152  THROW_EXCEPTION("Failed to deduce station name from "+stationVolume);
153  }
154  return m_detMgr->getTgcReadoutElement(stationId);
155 }

◆ Initialize()

void MuonG4R4::TgcSensitiveDetector::Initialize ( G4HCofThisEvent *  HCE)
finaloverride

member functions

Definition at line 41 of file TgcSensitiveDetector.cxx.

41  {
42  if (m_writeHandle.isValid()) {
43  ATH_MSG_VERBOSE("Simulation hit container "<<m_writeHandle.fullKey()<<" is already written");
44  return;
45  }
46  if (!m_writeHandle.recordNonConst(std::make_unique<xAOD::MuonSimHitContainer>(),
47  std::make_unique<xAOD::MuonSimHitAuxContainer>()).isSuccess()) {
48  THROW_EXCEPTION("Failed to record "<<m_writeHandle.fullKey());
49  }
50  ATH_MSG_DEBUG("Output container "<<m_writeHandle.fullKey()<<" has been successfully created");
51 }

◆ 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  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

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

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ 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
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 (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ ProcessHits()

G4bool MuonG4R4::TgcSensitiveDetector::ProcessHits ( G4Step *  aStep,
G4TouchableHistory *  ROhist 
)
finaloverride

Reject secondary particles

The x-axis of the gas gap coordinate system points to the outer big wheel -> extrapolate into the plane X = 0.

Final check that the hit is located at zero

At the very last clear the cache of the readout element

Definition at line 53 of file TgcSensitiveDetector.cxx.

53  {
54 
55  G4Track* currentTrack = aStep->GetTrack();
56 
57  // TGC sensitive to charged particle only
58  if (currentTrack->GetDefinition()->GetPDGCharge() == 0.0) {
59  if (currentTrack->GetDefinition()!= G4Geantino::GeantinoDefinition()) return true;
60  else if (currentTrack->GetDefinition()==G4ChargedGeantino::ChargedGeantinoDefinition()) return true;
61  }
62 
64  constexpr double velCutOff = 10.*Gaudi::Units::micrometer / Gaudi::Units::second;
65  if (currentTrack->GetVelocity() < velCutOff) return true;
66 
67  const G4TouchableHistory* touchHist = static_cast<const G4TouchableHistory*>(currentTrack->GetTouchable());
68 
69  const MuonGMR4::TgcReadoutElement* readOutEle = getReadoutElement(touchHist);
70  if (!readOutEle) {
71  return false;
72  }
73  ActsGeometryContext gctx{};
74 
76  if (!trfStoreHandle.isValid()) {
77  ATH_MSG_FATAL("Failed to retrieve "<<m_trfCacheKey.fullKey()<<".");
78  return false;
79  }
80  gctx.setStore(std::make_unique<DetectorAlignStore>(*trfStoreHandle));
81 
82  const Amg::Transform3D globalToLocal = getTransform(currentTrack->GetTouchable(), 0).inverse();
83  ATH_MSG_VERBOSE(" Track is inside volume "
84  <<currentTrack->GetTouchable()->GetHistory()->GetTopVolume()->GetName()
85  <<" transformation: "<<Amg::toString(globalToLocal));
86  const Amg::Vector3D locPos{globalToLocal*Amg::Hep3VectorToEigen(currentTrack->GetPosition())};
87  const Amg::Vector3D locDir{globalToLocal.linear()*Amg::Hep3VectorToEigen(currentTrack->GetMomentumDirection())};
88  ATH_MSG_VERBOSE("Track is located in "<<m_detMgr->idHelperSvc()->toStringDetEl(readOutEle->identify())
89  <<" at "<<Amg::toString(locPos)<<" pointing towards "<<Amg::toString(locDir, 3));
90 
92  std::optional<double> travelDist = Amg::intersect<3>(locPos, locDir, Amg::Vector3D::UnitX(), 0);
93  if (!travelDist) {
94  ATH_MSG_VERBOSE("Hit cannot be extrapolated into the gas gap origin");
95  return true;
96  }
97  const Amg::Vector3D lPosAtGap = locPos + (*travelDist) * locDir;
98  ATH_MSG_VERBOSE("Extrpolated by "<<(*travelDist)<<" mm to the gasGap center "<<Amg::toString(lPosAtGap, 2));
99 
100  const Amg::Vector3D gapCenterCross = globalToLocal.inverse() * lPosAtGap;
101  const Identifier etaHitID = getIdentifier(gctx, readOutEle, gapCenterCross, false);
102  if (!etaHitID.is_valid()) {
103  ATH_MSG_VERBOSE("No valid hit found");
104  return true;
105  }
106 
107  const double globalTime = currentTrack->GetGlobalTime() + (*travelDist) / currentTrack->GetVelocity();
108  const Amg::Transform3D gapTrans{readOutEle->globalToLocalTrans(gctx, etaHitID)};
109  const Amg::Vector3D locHitDir = gapTrans.linear() * Amg::Hep3VectorToEigen(currentTrack->GetMomentumDirection());
110  const Amg::Vector3D locHitPos = gapTrans * gapCenterCross;
111 
113  if (std::abs(locHitPos.z()) > tolerance) {
114  ATH_MSG_FATAL("The hit "<<Amg::toString(locHitPos)<<" doest not match "<<m_detMgr->idHelperSvc()->toString(etaHitID));
115  throw std::runtime_error("Picked wrong gas gap");
116  }
117 
119  readOutEle->releaseUnAlignedTrfs();
120 
121 
122  xAOD::MuonSimHit* hit = new xAOD::MuonSimHit();
123  m_writeHandle->push_back(hit);
124 
125  TrackHelper trHelp(aStep->GetTrack());
126  hit->setIdentifier(etaHitID);
127  hit->setLocalPosition(xAOD::toStorage(locHitPos));
128  hit->setLocalDirection(xAOD::toStorage(locHitDir));
129  hit->setMass(currentTrack->GetDefinition()->GetPDGMass());
130  hit->setGlobalTime(globalTime);
131  hit->setPdgId(currentTrack->GetDefinition()->GetPDGEncoding());
132  hit->setEnergyDeposit(aStep->GetTotalEnergyDeposit());
133  hit->setKineticEnergy(currentTrack->GetKineticEnergy());
134  hit->setGenParticleLink(trHelp.GenerateParticleLink());
135  return true;
136 }

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

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_detMgr

const MuonGMR4::MuonDetectorManager* MuonG4R4::TgcSensitiveDetector::m_detMgr {nullptr}
private

Pointer to the underlying detector manager.

Definition at line 60 of file TgcSensitiveDetector.h.

◆ m_gctx

const ActsGeometryContext MuonG4R4::TgcSensitiveDetector::m_gctx {}
private

Pointer to the acts Geometry context.

Definition at line 58 of file TgcSensitiveDetector.h.

◆ m_imsg

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

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

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

Current logging level.

Definition at line 138 of file AthMessaging.h.

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

◆ m_trfCacheKey

SG::ReadHandleKey<ActsTrk::DetectorAlignStore> MuonG4R4::TgcSensitiveDetector::m_trfCacheKey
private

Definition at line 55 of file TgcSensitiveDetector.h.

◆ m_writeHandle

SG::WriteHandle<xAOD::MuonSimHitContainer> MuonG4R4::TgcSensitiveDetector::m_writeHandle
private

Definition at line 50 of file TgcSensitiveDetector.h.


The documentation for this class was generated from the following files:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
xAOD::MuonSimHit_v1
Definition: MuonSimHit_v1.h:18
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
MuonG4R4::TgcSensitiveDetector::m_detMgr
const MuonGMR4::MuonDetectorManager * m_detMgr
Pointer to the underlying detector manager.
Definition: TgcSensitiveDetector.h:60
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
xAOD::MuonSimHit_v1::setIdentifier
void setIdentifier(const Identifier &id)
Sets the global ATLAS identifier.
Definition: xAODMuonSimHit_V1.cxx:43
MuonG4R4::TgcSensitiveDetector::m_writeHandle
SG::WriteHandle< xAOD::MuonSimHitContainer > m_writeHandle
Definition: TgcSensitiveDetector.h:50
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
TgcIdHelper
Definition: TgcIdHelper.h:50
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
CxxUtils::tokenize
std::vector< std::string > tokenize(const std::string &the_str, std::string_view delimiters)
Splits the string into smaller substrings.
Definition: Control/CxxUtils/Root/StringUtils.cxx:15
xAOD::MuonSimHit_v1::setPdgId
void setPdgId(int id)
Sets the pdgID of the traversing particle.
MuonG4R4::getTransform
Amg::Transform3D getTransform(const G4VTouchable *history, unsigned int level)
Extracts the local -> global transformation from a TouchableHistory at a given level.
Definition: MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/MuonSensitiveDetectorsR4/Utils.h:24
MuonGM::round
float round(const float toRound, const unsigned int decimals)
Definition: Mdt.cxx:27
MuonG4R4::TgcSensitiveDetector::m_trfCacheKey
SG::ReadHandleKey< ActsTrk::DetectorAlignStore > m_trfCacheKey
Definition: TgcSensitiveDetector.h:55
xAOD::toStorage
MeasVector< N > toStorage(const AmgVector(N)&amgVec)
Converts the double precision of the AmgVector into the floating point storage precision of the MeasV...
Definition: MeasurementDefs.h:68
Muon::IMuonIdHelperSvc::toStringDetEl
virtual std::string toStringDetEl(const Identifier &id) const =0
print all fields up to detector element to string
xAOD::MuonSimHit_v1::setLocalPosition
void setLocalPosition(MeasVector< 3 > vec)
Sets the local position of the traversing particle.
Definition: xAODMuonSimHit_V1.cxx:55
MuonGMR4::MuonReadoutElement::globalToLocalTrans
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx:78
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
xAOD::MuonSimHit_v1::setGenParticleLink
void setGenParticleLink(const HepMcParticleLink &link)
Sets the link to the HepMC particle producing this hit.
Definition: xAODMuonSimHit_V1.cxx:82
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:214
THROW_EXCEPTION
#define THROW_EXCEPTION(MSG)
Definition: MMReadoutElement.cxx:48
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
xAOD::MuonSimHit_v1::setMass
void setMass(const float m)
set the rest-mass of the traversing particle
Amg::Hep3VectorToEigen
Amg::Vector3D Hep3VectorToEigen(const CLHEP::Hep3Vector &CLHEPvector)
Converts a CLHEP-based CLHEP::Hep3Vector into an Eigen-based Amg::Vector3D.
Definition: CLHEPtoEigenConverter.h:137
TrackHelper
Definition: TrackHelper.h:14
xAOD::MuonSimHit_v1::setKineticEnergy
void setKineticEnergy(const float energy)
Sets the kinetic energy of the traversing particle.
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
MuonGMR4::TgcReadoutElement::gasGapPitch
double gasGapPitch() const
Returns the thickness of the gasGap.
python.SystemOfUnits.micrometer
int micrometer
Definition: SystemOfUnits.py:71
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
tolerance
Definition: suep_shower.h:17
xAOD::MuonSimHit_v1::setEnergyDeposit
void setEnergyDeposit(const float deposit)
Sets the energy deposited by the traversing particle inside the gas volume.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonG4R4::TgcSensitiveDetector::getIdentifier
Identifier getIdentifier(const ActsGeometryContext &gctx, const MuonGMR4::TgcReadoutElement *readOutEle, const Amg::Vector3D &hitAtGapPlane, bool phiGap) const
Definition: TgcSensitiveDetector.cxx:157
xAOD::MuonSimHit_v1::setLocalDirection
void setLocalDirection(MeasVector< 3 > vec)
Sets the local direction of the traversing particle.
Definition: xAODMuonSimHit_V1.cxx:61
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.copyTCTOutput.locDir
locDir
Definition: copyTCTOutput.py:113
Muon::IMuonIdHelperSvc::tgcIdHelper
virtual const TgcIdHelper & tgcIdHelper() const =0
access to TgcIdHelper
Muon::IMuonIdHelperSvc::toString
virtual std::string toString(const Identifier &id) const =0
print all fields to string
MuonGMR4::MuonReadoutElement::releaseUnAlignedTrfs
void releaseUnAlignedTrfs() const
Releases all cached transforms that are not connected with alignment.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx:62
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonGMR4::MuonDetectorManager::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns a pointer to the central MuonIdHelperSvc.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonDetectorManager.cxx:132
CxxUtils::atoi
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
Definition: Control/CxxUtils/Root/StringUtils.cxx:85
TgcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int gasGap, int isStrip, int channel) const
Definition: TgcIdHelper.cxx:583
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
MuonG4R4::TgcSensitiveDetector::getReadoutElement
const MuonGMR4::TgcReadoutElement * getReadoutElement(const G4TouchableHistory *touchHist) const
Retrieves the matching readout element to a G4 hit.
Definition: TgcSensitiveDetector.cxx:137
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
NSWL1::globalToLocal
Polygon globalToLocal(const Polygon &pol, float z, const Trk::PlaneSurface &surf)
Definition: GeoUtils.cxx:103
MuonGMR4::TgcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/TgcReadoutElement.h:20
xAOD::MuonSimHit_v1::setGlobalTime
void setGlobalTime(const float time)
Sets the time of the traversing particle.
xAOD::MuonSimHit
MuonSimHit_v1 MuonSimHit
Defined the version of the MuonSimHit.
Definition: MuonSimHit.h:12