ATLAS Offline Software
MuonChamberToolTest.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "MuonChamberToolTest.h"
6 
13 #include <GaudiKernel/SystemOfUnits.h>
14 
15 namespace MuonGMR4 {
16 
17  MuonChamberToolTest::MuonChamberToolTest(const std::string& name, ISvcLocator* pSvcLocator):
18  AthReentrantAlgorithm{name, pSvcLocator} {}
19 
21  ATH_CHECK(m_idHelperSvc.retrieve());
24  ATH_CHECK(m_detVolSvc.retrieve());
25  return StatusCode::SUCCESS;
26  }
28  const Acts::Volume& boundVol,
29  const Amg::Vector3D& point,
30  const std::string& descr,
31  const Identifier& channelId) const {
32 
33  constexpr double tolerance = 10. *Gaudi::Units::micrometer;
34  if (boundVol.inside(point,tolerance)) {
35  ATH_MSG_VERBOSE("In channel "<<m_idHelperSvc->toString(channelId)
36  <<", point "<<descr <<" is inside of the chamber "<<std::endl<<chamb
37  <<std::endl
38  <<"Local position:" <<Amg::toString(boundVol.itransform() * point));
39  return StatusCode::SUCCESS;
40  }
41  const Amg::Vector3D locPos{boundVol.itransform() * point};
42  const MuonChamber::defineArgs& chambPars{chamb.parameters()};
43 
44  StripDesign planeTrapezoid{};
45  planeTrapezoid.defineTrapezoid(chambPars.halfXShort, chambPars.halfXLong, chambPars.halfY);
46  planeTrapezoid.setLevel(MSG::VERBOSE);
48  static const Eigen::Rotation2D axisSwap{90. *Gaudi::Units::deg};
49  if (std::abs(locPos.z()) - chambPars.halfZ < -tolerance &&
50  planeTrapezoid.insideTrapezoid(axisSwap*locPos.block<2,1>(0,0))) {
51  return StatusCode::SUCCESS;
52  }
53  planeTrapezoid.defineStripLayout(locPos.y() * Amg::Vector2D::UnitX(), 1, 1, 1);
54  ATH_MSG_FATAL("In channel "<<m_idHelperSvc->toString(channelId) <<", the point "
55  << descr <<" "<<Amg::toString(point)<<" is not part of the chamber volume."
56  <<std::endl<<std::endl<<chamb<<std::endl<<"Local position "<<Amg::toString(locPos)
57  <<", box left edge: "<<Amg::toString(planeTrapezoid.leftEdge(1).value_or(Amg::Vector2D::Zero()))
58  <<", box right edge "<<Amg::toString(planeTrapezoid.rightEdge(1).value_or(Amg::Vector2D::Zero())));
59  return StatusCode::FAILURE;
60  }
61 
62 
63  StatusCode MuonChamberToolTest::execute(const EventContext& ctx) const {
65  if (!gctx.isValid()) {
66  ATH_MSG_FATAL("Failed to retrieve the Acts alignment "<<m_geoCtxKey.fullKey());
67  return StatusCode::FAILURE;
68  }
69 
70  m_detVolSvc->detector();
71  using ChamberSet = MuonDetectorManager::MuonChamberSet;
72  const ChamberSet chambers = m_detMgr->getAllChambers();
73  std::vector<const MuonReadoutElement*> elements = m_detMgr->getAllReadoutElements();
74 
75  for (const MuonChamber* chamber : chambers) {
77  std::shared_ptr<Acts::Volume> boundVol = chamber->boundingVolume(*gctx);
78  for(const MuonReadoutElement* readOut : chamber->readOutElements()) {
79  if (readOut->detectorType() == ActsTrk::DetectorType::Tgc) {
80  const TgcReadoutElement* tgc = static_cast<const TgcReadoutElement*>(readOut);
81  ATH_CHECK(testTgc(*gctx, *tgc, *chamber, *boundVol));
82  }else if (readOut->detectorType() == ActsTrk::DetectorType::Mdt) {
83  const MdtReadoutElement* mdtMl = static_cast<const MdtReadoutElement*>(readOut);
84  ATH_CHECK(testMdt(*gctx, *mdtMl, *chamber, *boundVol));
85  } else if (readOut->detectorType() == ActsTrk::DetectorType::Rpc) {
86  const RpcReadoutElement* rpc = static_cast<const RpcReadoutElement*>(readOut);
87  ATH_CHECK(testRpc(*gctx, *rpc, *chamber, *boundVol));
88  } else if (readOut->detectorType() == ActsTrk::DetectorType::Mm) {
89  const MmReadoutElement* mm = static_cast<const MmReadoutElement*>(readOut);
90  ATH_CHECK(testMm(*gctx, *mm, *chamber, *boundVol));
91  } else if (readOut->detectorType() == ActsTrk::DetectorType::sTgc) {
92  const sTgcReadoutElement* stgc = static_cast<const sTgcReadoutElement*>(readOut);
93  ATH_CHECK(testStgc(*gctx, *stgc, *chamber, *boundVol));
94  } else {
95  ATH_MSG_FATAL("Who brought the Cscs back? "<<m_idHelperSvc->toStringDetEl(readOut->identify()));
96  return StatusCode::FAILURE;
97  }
98  }
99  }
100  return StatusCode::SUCCESS;
101  }
103  const MdtReadoutElement& mdtMl,
104  const MuonChamber& chamber,
105  const Acts::Volume& detVol) const {
106 
107  for (unsigned int layer = 1; layer <= mdtMl.numLayers(); layer++) {
108  for (unsigned int tube = 1; tube <= mdtMl.numTubesInLay(); tube++) {
109  const IdentifierHash idHash = mdtMl.measurementHash(layer, tube);
110  if (!mdtMl.isValid(idHash)){
111  continue;
112  }
113  const Amg::Transform3D& locToGlob{mdtMl.localToGlobalTrans(gctx, idHash)};
114  const Identifier measId{mdtMl.measurementId(idHash)};
115  ATH_CHECK(pointInside(chamber, detVol, mdtMl.globalTubePos(gctx, idHash), "tube center", measId));
116 
117  ATH_CHECK(pointInside(chamber, detVol, mdtMl.readOutPos(gctx, idHash), "tube readout", measId));
118  ATH_CHECK(pointInside(chamber, detVol, mdtMl.highVoltPos(gctx, idHash), "tube HV", measId));
119 
120  ATH_CHECK(pointInside(chamber, detVol, locToGlob*(-mdtMl.innerTubeRadius() * Amg::Vector3D::UnitX()),
121  "bottom of the tube box", measId));
122  ATH_CHECK(pointInside(chamber, detVol, locToGlob*(mdtMl.innerTubeRadius() * Amg::Vector3D::UnitX()),
123  "sealing of the tube box", measId));
124 
125  ATH_CHECK(pointInside(chamber, detVol, locToGlob*(-mdtMl.innerTubeRadius() * Amg::Vector3D::UnitY()),
126  "wall to the previous tube", measId));
127  ATH_CHECK(pointInside(chamber, detVol, locToGlob*(-mdtMl.innerTubeRadius() * Amg::Vector3D::UnitY()),
128  "wall to the next tube", measId));
129 
130 
131  }
132  }
133  return StatusCode::SUCCESS;
134  }
135 
137  const RpcReadoutElement& rpc,
138  const MuonChamber& chamber,
139  const Acts::Volume& detVol) const {
140 
141  ATH_MSG_DEBUG("Test whether "<<m_idHelperSvc->toStringDetEl(rpc.identify())<<std::endl<<rpc.getParameters());
142 
143  const RpcIdHelper& idHelper{m_idHelperSvc->rpcIdHelper()};
144  for (unsigned int gasGap = 1 ; gasGap <= rpc.nGasGaps(); ++gasGap) {
145  for (int doubletPhi = rpc.doubletPhi(); doubletPhi <= rpc.doubletPhiMax(); ++doubletPhi){
146  for (bool measPhi : {false, true}) {
147  const int nStrips = measPhi ? rpc.nPhiStrips() : rpc.nEtaStrips();
148  for (int strip = 1; strip <= nStrips; ++strip) {
149  const Identifier stripId = idHelper.channelID(rpc.identify(),rpc.doubletZ(),
150  doubletPhi, gasGap, measPhi, strip);
151  ATH_CHECK(pointInside(chamber, detVol, rpc.stripPosition(gctx, stripId), "center", stripId));
152  ATH_CHECK(pointInside(chamber, detVol, rpc.leftStripEdge(gctx, stripId), "right edge", stripId));
153  ATH_CHECK(pointInside(chamber, detVol, rpc.rightStripEdge(gctx, stripId), "left edge", stripId));
154  }
155  }
156  }
157  }
158  return StatusCode::SUCCESS;
159  }
161  const TgcReadoutElement& tgc,
162  const MuonChamber& chamber,
163  const Acts::Volume& detVol) const {
164 
165  const TgcIdHelper& idHelper{m_idHelperSvc->tgcIdHelper()};
166  for (unsigned int gasGap = 1; gasGap <= tgc.nGasGaps(); ++gasGap){
167  for (bool isStrip : {false}) {
168  unsigned int nChannel = isStrip ? tgc.numStrips(gasGap) : tgc.numWireGangs(gasGap);
169  for (unsigned int channel = 1; channel <= nChannel ; ++channel) {
170  const Identifier stripId = idHelper.channelID(tgc.identify(), gasGap, isStrip, channel);
171  ATH_CHECK(pointInside(chamber, detVol, tgc.channelPosition(gctx, stripId), "center", stripId));
172  }
173  }
174  }
175  return StatusCode::SUCCESS;
176  }
177 
179  const MmReadoutElement& mm,
180  const MuonChamber& chamber,
181  const Acts::Volume& detVol) const {
182 
183  const MmIdHelper& idHelper{m_idHelperSvc->mmIdHelper()};
184  for(unsigned int gasGap = 1; gasGap <= mm.nGasGaps(); ++gasGap){
186  unsigned int firstStrip = mm.firstStrip(gasGapHash);
187  for(unsigned int strip = firstStrip; strip <= mm.numStrips(gasGapHash); ++strip){
188  const Identifier stripId = idHelper.channelID(mm.identify(), mm.multilayer(), gasGap, strip);
189  ATH_CHECK(pointInside(chamber, detVol, mm.stripPosition(gctx, stripId), "center", stripId));
190  ATH_CHECK(pointInside(chamber, detVol, mm.leftStripEdge(gctx, mm.measurementHash(stripId)), "left edge", stripId));
191  ATH_CHECK(pointInside(chamber, detVol, mm.rightStripEdge(gctx, mm.measurementHash(stripId)), "right edge", stripId));
192  }
193  }
194 
195  return StatusCode::SUCCESS;
196  }
197 
199  const sTgcReadoutElement& stgc,
200  const MuonChamber& chamber,
201  const Acts::Volume& detVol) const{
202 
203  const sTgcIdHelper& idHelper{m_idHelperSvc->stgcIdHelper()};
204  for(unsigned int gasGap = 1; gasGap <= stgc.numLayers(); ++gasGap){
205 
206  for(unsigned int nch = 1; nch <= stgc.nChTypes(); ++nch){
207  IdentifierHash gasGapHash = sTgcReadoutElement::createHash(gasGap, nch, 0, 0);
208  unsigned int nStrips = stgc.numStrips(stgc.measurementId(gasGapHash));
210  switch (channelType){
211  case sTgcReadoutElement::ReadoutChannelType::Pad:
212  nStrips = stgc.numPads(stgc.measurementId(gasGapHash));
213  break;
214  case sTgcReadoutElement::ReadoutChannelType::Wire:
215  nStrips = stgc.numWires(gasGap);
216  break;
217  default:
218 
219  break;
220  }
221 
222  for(unsigned int strip = 1; strip <= nStrips; ++strip){
223  const Identifier stripId = idHelper.channelID(stgc.identify(), stgc.multilayer(), gasGap, nch, strip);
224  ATH_CHECK(pointInside(chamber, detVol, stgc.globalChannelPosition(gctx, stripId), "channel position", stripId));
225 
226  if(channelType == sTgcReadoutElement::ReadoutChannelType::Wire || channelType == sTgcReadoutElement::ReadoutChannelType::Strip){
227 
228  ATH_CHECK(pointInside(chamber, detVol, stgc.rightStripEdge(gctx, stgc.measurementHash(stripId)), "channel position", stripId));
229  ATH_CHECK(pointInside(chamber, detVol, stgc.leftStripEdge(gctx, stgc.measurementHash(stripId)), "channel position", stripId));
230 
231  }
232 
233  }
234 
235  }
236 
237  }
238 
239  return StatusCode::SUCCESS;
240 
241  }
242 
243 
244 }
245 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MuonGMR4::RpcReadoutElement::doubletPhiMax
int doubletPhiMax() const
Returns the maximum phi panel.
MuonGMR4::MuonChamberToolTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonChamberToolTest.h:68
MuonGMR4::TgcReadoutElement::numWireGangs
unsigned int numWireGangs(unsigned int gasGap) const
Returns the number of wire gangs for a given gasGap [1-3].
MuonGMR4::sTgcReadoutElement::multilayer
int multilayer() const
Returns the multilayer of the sTgcReadoutElement.
MuonGMR4::MmReadoutElement
Definition: MmReadoutElement.h:20
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGMR4::StripDesign
Definition: StripDesign.h:30
MuonGMR4::MmReadoutElement::createHash
static IdentifierHash createHash(const int gasGap, const int strip)
MuonGMR4::MdtReadoutElement::numTubesInLay
unsigned int numTubesInLay() const
Returns the number of tubes per layer.
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TgcIdHelper
Definition: TgcIdHelper.h:50
calibdata.chamber
chamber
Definition: calibdata.py:32
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonGMR4::MuonChamberToolTest::testStgc
StatusCode testStgc(const ActsGeometryContext &gctx, const sTgcReadoutElement &stgc, const MuonChamber &chamber, const Acts::Volume &boundVol) const
Definition: MuonChamberToolTest.cxx:198
MuonGMR4::MdtReadoutElement::measurementHash
static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber)
Transform the layer and tube number to the measurementHash.
MuonGMR4::MuonChamberToolTest::execute
StatusCode execute(const EventContext &ctx) const override
Definition: MuonChamberToolTest.cxx:63
MuonGMR4::MuonChamberToolTest::testTgc
StatusCode testTgc(const ActsGeometryContext &gctx, const TgcReadoutElement &readoutEle, const MuonChamber &chamber, const Acts::Volume &boundVol) const
Definition: MuonChamberToolTest.cxx:160
MuonGMR4::TgcReadoutElement::nGasGaps
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
CaloCondBlobAlgs_fillNoiseFromASCII.nChannel
nChannel
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:91
MuonGMR4::TgcReadoutElement::channelPosition
Amg::Vector3D channelPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the center of the measurement channel eta measurement: wire gang center phi measurement: stri...
ActsTrk::DetectorType::Tgc
@ Tgc
Resitive Plate Chambers.
MuonGMR4::RpcReadoutElement::nGasGaps
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
MuonGMR4::MuonReadoutElement
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:38
MuonGMR4::sTgcReadoutElement::nChTypes
unsigned int nChTypes() const
Number of Channel Types.
MuonGMR4::MuonChamberToolTest::m_detMgr
const MuonDetectorManager * m_detMgr
Definition: MuonChamberToolTest.h:75
MuonGMR4::MdtReadoutElement::readOutPos
Amg::Vector3D readOutPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the readout card.
deg
#define deg
Definition: SbPolyhedron.cxx:17
MuonGMR4::sTgcReadoutElement::ReadoutChannelType
ReadoutChannelType
ReadoutChannelType to distinguish the available readout channels Pad - pad readout channel Strip - et...
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h:31
MuonGMR4::MuonDetectorManager::getAllReadoutElements
std::vector< const MuonReadoutElement * > getAllReadoutElements() const
Returns the list of all detector elements.
MuonGMR4::RpcReadoutElement::rightStripEdge
Amg::Vector3D rightStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge at negative local Y.
MuonGMR4::MuonChamber
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonChamber.h:42
MuonGMR4::MuonChamberToolTest::testRpc
StatusCode testRpc(const ActsGeometryContext &gctx, const RpcReadoutElement &readoutEle, const MuonChamber &chamber, const Acts::Volume &boundVol) const
Definition: MuonChamberToolTest.cxx:136
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ActsTrk::DetectorType::sTgc
@ sTgc
Micromegas (NSW)
MuonGMR4::RpcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:18
RpcIdHelper
Definition: RpcIdHelper.h:51
MuonGMR4::sTgcReadoutElement::measurementHash
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
ReadCondHandle.h
MuonGMR4::RpcReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:34
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
MuonGMR4::MuonChamberToolTest::pointInside
StatusCode pointInside(const MuonChamber &chamb, const Acts::Volume &boundVol, const Amg::Vector3D &point, const std::string &descr, const Identifier &channelId) const
Definition: MuonChamberToolTest.cxx:27
MuonGMR4::RpcReadoutElement::nEtaStrips
unsigned int nEtaStrips() const
Number of strips measuring the eta coordinate.
MuonGMR4::TgcReadoutElement::numStrips
unsigned int numStrips(unsigned int gasGap) const
Returns the number of strips for a given gasGap [1-3].
MuonGMR4::MdtReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:45
MuonGMR4::MuonChamberToolTest::testMm
StatusCode testMm(const ActsGeometryContext &gctx, const MmReadoutElement &readoutEle, const MuonChamber &chamber, const Acts::Volume &boundVol) const
Definition: MuonChamberToolTest.cxx:178
sTgcReadoutElement.h
MuonGMR4::sTgcReadoutElement::createHash
static IdentifierHash createHash(const unsigned int gasGap, const unsigned int channelType, const unsigned int channel, const unsigned int wireInGrp=0)
Create a measurement hash from the Identifier fields.
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
MuonGMR4
Definition: ChamberAssembleTool.h:16
ActsTrk::DetectorType::Mm
@ Mm
Maybe not needed in the migration.
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MuonGMR4::MuonDetectorManager::MuonChamberSet
std::set< const MuonChamber *, ChamberSorter > MuonChamberSet
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:103
MuonGMR4::RpcReadoutElement::doubletPhi
int doubletPhi() const
Returns the doublet Phi field of the MuonReadoutElement identifier.
MuonGMR4::MdtReadoutElement::numLayers
unsigned int numLayers() const
Returns the number of tube layer.
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGMR4::RpcReadoutElement::stripPosition
Amg::Vector3D stripPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
MuonGMR4::sTgcReadoutElement::leftStripEdge
Amg::Vector3D leftStripEdge(const ActsGeometryContext &ctx, const IdentifierHash &measHash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx:262
MuonChamber.h
MuonGMR4::StripDesign::defineTrapezoid
void defineTrapezoid(double HalfShortY, double HalfLongY, double HalfHeight)
Defines the edges of the trapezoid.
Definition: StripDesign.cxx:69
MuonGMR4::RpcReadoutElement::doubletZ
int doubletZ() const
Returns the doublet Z field of the MuonReadoutElement identifier.
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
python.TransformConfig.descr
descr
print "%s.properties()" % self.__name__
Definition: TransformConfig.py:360
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
MuonGMR4::MuonChamberToolTest::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: MuonChamberToolTest.h:71
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
MuonGMR4::sTgcReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
MuonChamberToolTest.h
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonGMR4::MdtReadoutElement::innerTubeRadius
double innerTubeRadius() const
Returns the inner tube radius.
tolerance
Definition: suep_shower.h:17
MuonGM::nStrips
int nStrips(const MuonGM::TgcReadoutElement &readoutEle, int layer)
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelTgcTest.cxx:46
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
ActsTrk::DetectorType::Mdt
@ Mdt
MuonSpectrometer.
MuonGMR4::sTgcReadoutElement::globalChannelPosition
Amg::Vector3D globalChannelPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global pad/strip/wireGroup position.
MuonGMR4::MdtReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:19
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonGMR4::sTgcReadoutElement::rightStripEdge
Amg::Vector3D rightStripEdge(const ActsGeometryContext &ctx, const IdentifierHash &measHash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx:306
MuonGMR4::MuonChamber::parameters
const defineArgs & parameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonChamber.cxx:61
sTgcIdHelper
Definition: sTgcIdHelper.h:55
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
MuonGMR4::RpcReadoutElement::nPhiStrips
unsigned int nPhiStrips() const
Number of strips measuring the phi coordinate.
MuonGMR4::MuonChamber::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonChamber.h:45
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::sTgcReadoutElement::numWires
unsigned int numWires(unsigned int gasGap) const
Number of wires in the gas gap.
MuonGMR4::sTgcReadoutElement::numLayers
unsigned int numLayers() const
Returns the number of gas gap layers.
MuonGMR4::sTgcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h:21
MuonGMR4::MuonChamberToolTest::m_detVolSvc
ServiceHandle< ActsTrk::IDetectorVolumeSvc > m_detVolSvc
Definition: MuonChamberToolTest.h:73
RpcReadoutElement.h
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
MuonGMR4::RpcReadoutElement::leftStripEdge
Amg::Vector3D leftStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global posiition of the strip edge at positive local Y.
MmIdHelper
Definition: MmIdHelper.h:54
MuonGMR4::MuonDetectorManager::getAllChambers
MuonChamberSet getAllChambers() const
: Returns all MuonChambers associated with the readout geometry
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonDetectorManager.cxx:150
MdtReadoutElement.h
MuonGMR4::MuonChamberToolTest::initialize
StatusCode initialize() override
Definition: MuonChamberToolTest.cxx:20
ActsTrk::DetectorType::Rpc
@ Rpc
Monitored Drift Tubes.
MuonGMR4::sTgcReadoutElement::numPads
unsigned int numPads(const Identifier &measId) const
Pads Total number of pads in the given layer.
MuonGMR4::sTgcReadoutElement::numStrips
unsigned int numStrips(const Identifier &measId) const
Strips Number of strips in a chamber.
MuonGMR4::MuonChamberToolTest::testMdt
StatusCode testMdt(const ActsGeometryContext &gctx, const MdtReadoutElement &readOutEle, const MuonChamber &chamb, const Acts::Volume &boundVol) const
Test that all Mdts are inside the chamber volume.
Definition: MuonChamberToolTest.cxx:102
MuonGMR4::MuonReadoutElement::localToGlobalTrans
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx:81
MuonGMR4::MdtReadoutElement::globalTubePos
Amg::Vector3D globalTubePos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the tube center.
createCablingJSON.doubletPhi
int doubletPhi
Definition: createCablingJSON.py:11
SCT_CalibAlgs::firstStrip
@ firstStrip
Definition: SCT_CalibNumbers.h:10
MuonGMR4::MdtReadoutElement::highVoltPos
Amg::Vector3D highVoltPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the High Voltage connectors.
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
IdentifierHash
Definition: IdentifierHash.h:38
MuonGMR4::MuonChamberToolTest::MuonChamberToolTest
MuonChamberToolTest(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MuonChamberToolTest.cxx:17
MuonGMR4::MdtReadoutElement::isValid
bool isValid(const IdentifierHash &measHash) const
MuonGMR4::TgcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/TgcReadoutElement.h:20
calibdata.tube
tube
Definition: calibdata.py:31
MmReadoutElement.h
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32