ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.cxx
Go to the documentation of this file.
1 
2 /*
3  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
4 */
5 #include "GeoModelRpcTest.h"
9 #include <fstream>
10 
11 using namespace ActsTrk;
12 namespace MuonGMR4{
13 
14 GeoModelRpcTest::GeoModelRpcTest(const std::string& name, ISvcLocator* pSvcLocator):
15 AthHistogramAlgorithm(name,pSvcLocator) {}
16 
18  ATH_CHECK(m_idHelperSvc.retrieve());
21  ATH_CHECK(m_tree.init(this));
22 
23 
24  const RpcIdHelper& id_helper{m_idHelperSvc->rpcIdHelper()};
25  for (const std::string& testCham : m_selectStat) {
27  if (std::find(m_excludeStat.begin(), m_excludeStat.end(), testCham) != m_excludeStat.end()) {
28  continue;
29  }
31  if (testCham.size() != 6) {
32  ATH_MSG_FATAL("Wrong format given " << testCham);
33  return StatusCode::FAILURE;
34  }
36  std::string statName = testCham.substr(0, 3);
37  unsigned int statEta = std::atoi(testCham.substr(3, 1).c_str()) *
38  (testCham[4] == 'A' ? 1 : -1);
39  unsigned int statPhi = std::atoi(testCham.substr(5, 1).c_str());
40  bool is_valid{false};
41  const Identifier eleId = id_helper.elementID(statName, statEta, statPhi, 1, is_valid);
42  if (!is_valid) {
43  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
44  return StatusCode::FAILURE;
45  }
46  std::copy_if(id_helper.detectorElement_begin(),
47  id_helper.detectorElement_end(),
48  std::inserter(m_testStations, m_testStations.end()),
49  [&](const Identifier& id) {
50  return id_helper.stationName(id) == id_helper.stationName(eleId) &&
51  id_helper.stationEta(id) == id_helper.stationEta(eleId) &&
52  id_helper.stationPhi(id) == id_helper.stationPhi(eleId);
53  });
54  }
56  if (m_testStations.empty()){
58  std::set<Identifier> excludedStations{};
59  for (const std::string& testCham : m_excludeStat) {
61  if (testCham.size() != 6) {
62  ATH_MSG_FATAL("Wrong format given " << testCham);
63  return StatusCode::FAILURE;
64  }
66  std::string statName = testCham.substr(0, 3);
67  unsigned int statEta = std::atoi(testCham.substr(3, 1).c_str()) * (testCham[4] == 'A' ? 1 : -1);
68  unsigned int statPhi = std::atoi(testCham.substr(5, 1).c_str());
69  bool is_valid{false};
70  const Identifier eleId = id_helper.elementID(statName, statEta, statPhi, 1, is_valid);
71  if (!is_valid) {
72  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
73  return StatusCode::FAILURE;
74  }
76  std::copy_if(id_helper.detectorElement_begin(),
77  id_helper.detectorElement_end(),
78  std::inserter(excludedStations, excludedStations.end()),
79  [&](const Identifier& id) {
80  return id_helper.stationName(id) == id_helper.stationName(eleId) &&
81  id_helper.stationEta(id) == id_helper.stationEta(eleId) &&
82  id_helper.stationPhi(id) == id_helper.stationPhi(eleId);
83  });
84  }
86  std::copy_if(id_helper.detectorElement_begin(),
87  id_helper.detectorElement_end(),
88  std::inserter(m_testStations, m_testStations.end()),
89  [&](const Identifier& id) {
90  return excludedStations.count(id) == 0;
91  });
93  if (!excludedStations.empty()) {
94  std::stringstream excluded_report{};
95  for (const Identifier& id : excludedStations){
96  excluded_report << " *** " << m_idHelperSvc->toString(id) << std::endl;
97  }
98  ATH_MSG_INFO("Test all station except the following excluded ones " << std::endl << excluded_report.str());
99  }
100  } else {
101  std::stringstream sstr{};
102  for (const Identifier& id : m_testStations){
103  sstr<<" *** "<<m_idHelperSvc->toString(id)<<std::endl;
104  }
105  ATH_MSG_INFO("Test only the following stations "<<std::endl<<sstr.str());
106  }
108  return StatusCode::SUCCESS;
109 }
112  return StatusCode::SUCCESS;
113 }
115  const EventContext& ctx{Gaudi::Hive::currentContext()};
116 
117  SG::ReadHandle<ActsGeometryContext> geoContextHandle{m_geoCtxKey, ctx};
118  ATH_CHECK(geoContextHandle.isPresent());
119  const ActsGeometryContext& gctx{*geoContextHandle};
120 
121  for (const Identifier& test_me : m_testStations) {
122  ATH_MSG_DEBUG("Test retrieval of Rpc detector element "<<m_idHelperSvc->toStringDetEl(test_me));
123  const RpcReadoutElement* reElement = m_detMgr->getRpcReadoutElement(test_me);
124  if (!reElement) {
125  continue;
126  }
128  if (reElement->identify() != test_me) {
129  ATH_MSG_FATAL("Expected to retrieve "<<m_idHelperSvc->toStringDetEl(test_me)
130  <<". But got instead "<<m_idHelperSvc->toStringDetEl(reElement->identify()));
131  return StatusCode::FAILURE;
132  }
133  ATH_CHECK(dumpToTree(ctx,gctx,reElement));
134  const Amg::Transform3D globToLocal{reElement->globalToLocalTrans(gctx)};
135  const Amg::Transform3D& localToGlob{reElement->localToGlobalTrans(gctx)};
137  const Amg::Transform3D transClosure = globToLocal * localToGlob;
138  if (!Amg::doesNotDeform(transClosure)) {
139  ATH_MSG_FATAL("Closure test failed for "<<m_idHelperSvc->toStringDetEl(test_me)
140  <<". Ended up with "<< Amg::toString(transClosure) );
141  return StatusCode::FAILURE;
142  }
143  const RpcIdHelper& id_helper{m_idHelperSvc->rpcIdHelper()};
144  for (unsigned int gasGap = 1; gasGap <= reElement->nGasGaps(); ++gasGap) {
145  for (int doubPhi = reElement->doubletPhi(); doubPhi <= reElement->doubletPhiMax(); ++doubPhi) {
146  for (bool measPhi: {false, true}) {
147  unsigned int numStrip = (measPhi ? reElement->nPhiStrips() :
148  reElement->nEtaStrips());
149  for (unsigned int strip = 1; strip < numStrip ; ++strip) {
150  bool isValid{false};
151  const Identifier chId = id_helper.channelID(reElement->identify(),
152  reElement->doubletZ(),
153  doubPhi, gasGap, measPhi, strip, isValid);
154  if (!isValid) {
155  continue;
156  }
158  const IdentifierHash measHash = reElement->measurementHash(chId);
159  const IdentifierHash layHash = reElement->layerHash(chId);
160  ATH_MSG_VERBOSE("gasGap: "<<gasGap<<", doubletPhi: "<<doubPhi<<", measPhi: "<<measPhi
161  <<" --> layerHash: "<<static_cast<unsigned>(layHash));
162  const Identifier backCnv = reElement->measurementId(measHash);
163  if (backCnv != chId) {
164  ATH_MSG_FATAL("The back and forth conversion of "<<m_idHelperSvc->toString(chId)
165  <<" failed. Got "<<m_idHelperSvc->toString(backCnv));
166  return StatusCode::FAILURE;
167  }
168  if (layHash != reElement->layerHash(measHash)) {
169  ATH_MSG_FATAL("Constructing the layer hash from the identifier "<<
170  m_idHelperSvc->toString(chId)<<" leadds to different layer hashes "<<
171  layHash<<" vs. "<< reElement->layerHash(measHash));
172  return StatusCode::FAILURE;
173  }
174  ATH_MSG_VERBOSE("Channel "<<m_idHelperSvc->toString(chId)<<" strip position "
175  <<Amg::toString(reElement->stripPosition(gctx, measHash)));
176  }
177  }
178  }
179  }
180  }
181  return StatusCode::SUCCESS;
182 }
183 StatusCode GeoModelRpcTest::dumpToTree(const EventContext& ctx,
184  const ActsGeometryContext& gctx,
185  const RpcReadoutElement* reElement){
186 
187  m_stIndex = reElement->stationName();
188  m_stEta = reElement->stationEta();
189  m_stPhi = reElement->stationPhi();
190  m_doubletR = reElement->doubletR();
191  m_doubletZ = reElement->doubletZ();
192  m_doubletPhi = reElement->doubletPhi();
193  m_chamberDesign = reElement->chamberDesign();
194 
195  m_numRpcLayers = reElement->nGasGaps();
196 
197  m_numGasGapsPhi = reElement->nPhiPanels();
198  m_numPhiPanels = reElement->nPhiPanels();
199 
201  m_numStripsEta = reElement->nEtaStrips();
202  m_numStripsPhi = reElement->nPhiStrips();
203 
204  m_stripEtaPitch = reElement->stripEtaPitch();
205  m_stripPhiPitch = reElement->stripPhiPitch();
206  m_stripEtaWidth = reElement->stripEtaWidth();
207  m_stripPhiWidth = reElement->stripPhiWidth();
208  m_stripEtaLength = reElement->stripEtaLength();
209  m_stripPhiLength = reElement->stripPhiLength();
210 
212  const Amg::Transform3D& transform{reElement->localToGlobalTrans(gctx)};
214  m_alignableNode = reElement->alignableTransform()->getDefTransform();
215 
216  const RpcIdHelper& id_helper{m_idHelperSvc->rpcIdHelper()};
217 
218  for (unsigned int gasGap = 1; gasGap <= reElement->nGasGaps(); ++gasGap) {
219  for (int doubPhi = reElement->doubletPhi(); doubPhi <= reElement->doubletPhiMax(); ++doubPhi) {
220  for (bool measPhi: {false, true}) {
221  unsigned int numStrip = (measPhi ? reElement->nPhiStrips() :
222  reElement->nEtaStrips());
223  for (unsigned int strip = 1; strip <= numStrip ; ++strip) {
224 
225  bool isValid{false};
226  const Identifier stripID = id_helper.channelID(reElement->identify(),
227  reElement->doubletZ(),
228  doubPhi, gasGap, measPhi, strip, isValid);
229  if (!isValid) {
230  ATH_MSG_WARNING("Invalid Identifier detected for readout element "
231  <<m_idHelperSvc->toStringDetEl(reElement->identify())
232  <<" gap: "<<gasGap<<" strip: "<<strip<<" meas phi: "<<measPhi);
233  continue;
234  }
235  const IdentifierHash measHash = reElement->measurementHash(stripID);
236  const IdentifierHash layHash = reElement->layerHash(measHash);
237  const Amg::Vector3D stripPos = reElement->stripPosition(gctx, measHash);
238  m_stripPos.push_back(stripPos);
239  m_locStripPos.push_back((reElement->globalToLocalTrans(gctx, layHash) * stripPos).block<2,1>(0,0));
241  m_stripPosMeasPhi.push_back(measPhi);
242  m_stripPosNum.push_back(strip);
243  m_stripDblPhi.push_back(doubPhi);
244 
245  if (strip != 1) continue;
246  const Amg::Transform3D locToGlob = reElement->localToGlobalTrans(gctx, layHash);
247  m_stripRot.push_back(locToGlob);
249  m_stripRotMeasPhi.push_back(measPhi);
250  m_stripRotDblPhi.push_back(doubPhi);
251  }
252  }
253  }
254  }
255  return m_tree.fill(ctx) ? StatusCode::SUCCESS : StatusCode::FAILURE;
256 }
257 
258 }
259 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MuonGMR4::GeoModelRpcTest::m_chamberDesign
MuonVal::ScalarBranch< std::string > & m_chamberDesign
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:59
MuonGMR4::RpcReadoutElement::stripPhiLength
double stripPhiLength() const
Returns the length of a phi strip.
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGMR4::GeoModelRpcTest::m_stripEtaLength
MuonVal::ScalarBranch< float > & m_stripEtaLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:69
MuonGMR4::GeoModelRpcTest::m_stripPhiWidth
MuonVal::ScalarBranch< float > & m_stripPhiWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:68
MuonGMR4::GeoModelRpcTest::m_stIndex
MuonVal::ScalarBranch< unsigned short > & m_stIndex
Identifier of the readout element.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:53
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
MuonVal::MuonTesterTree::init
StatusCode init(OWNER *instance)
Initialize method.
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
MuonGMR4::GeoModelRpcTest::m_stripRot
MuonVal::CoordSystemsBranch m_stripRot
Rotation matrix of the respective layers.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:90
MuonGMR4::RpcReadoutElement::doubletR
int doubletR() const
Returns the doublet R field of the MuonReadoutElement identifier.
ActsGeometryContext.h
MuonGMR4::GeoModelRpcTest::m_stripPosMeasPhi
MuonVal::VectorBranch< bool > & m_stripPosMeasPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:98
MuonGMR4::GeoModelRpcTest::m_stripRotDblPhi
MuonVal::VectorBranch< uint8_t > & m_stripRotDblPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:92
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonGMR4::RpcReadoutElement::stripEtaPitch
double stripEtaPitch() const
Strip pitch in eta.
MuonGMR4::GeoModelRpcTest::initialize
StatusCode initialize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.cxx:17
MuonGMR4::MuonReadoutElement::chamberDesign
std::string chamberDesign() const
The chamber design refers to the construction parameters of a readout element.
MuonGMR4::RpcReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
MuonGMR4::RpcReadoutElement::nGasGaps
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
MuonGMR4::GeoModelRpcTest::m_alignableNode
MuonVal::CoordTransformBranch m_alignableNode
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:78
MuonGMR4::GeoModelRpcTest::m_numStripsPhi
MuonVal::ScalarBranch< uint8_t > & m_numStripsPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:62
MuonGMR4::GeoModelRpcTest::m_locStripPos
MuonVal::TwoVectorBranch m_locStripPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:97
MuonGMR4::RpcReadoutElement::stripPhiPitch
double stripPhiPitch() const
Strip pitch in phi.
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
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:225
MuonGMR4::RpcReadoutElement::nPhiPanels
int nPhiPanels() const
Returns the number of phi panels (1 or 2)
MuonGMR4::RpcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:17
RpcIdHelper
Definition: RpcIdHelper.h:51
MuonGMR4::GeoModelRpcTest::m_stPhi
MuonVal::ScalarBranch< short > & m_stPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:55
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
MuonGMR4::GeoModelRpcTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:33
MuonGMR4::RpcReadoutElement::nEtaStrips
unsigned int nEtaStrips() const
Number of strips measuring the eta coordinate.
MuonVal::ThreeVectorBranch::push_back
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
Definition: ThreeVectorBranch.cxx:23
MuonGMR4::GeoModelRpcTest::m_doubletPhi
MuonVal::ScalarBranch< uint8_t > & m_doubletPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:58
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:20
MuonGMR4::GeoModelRpcTest::m_doubletR
MuonVal::ScalarBranch< uint8_t > & m_doubletR
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:56
MuonGMR4::GeoModelRpcTest::m_tree
MuonVal::MuonTesterTree m_tree
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:50
EventPrimitivesToStringConverter.h
MuonVal::TwoVectorBranch::push_back
void push_back(const Amg::Vector2D &vec)
interface using the Amg::Vector3D
Definition: TwoVectorBranch.cxx:21
MuonGMR4::GeoModelRpcTest::m_stripPos
MuonVal::ThreeVectorBranch m_stripPos
Strip positions.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:96
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
MuonGMR4::RpcReadoutElement::doubletPhi
int doubletPhi() const
Returns the doublet Phi field of the MuonReadoutElement identifier.
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::doesNotDeform
bool doesNotDeform(const Amg::Transform3D &trans)
Checks whether the linear part of the transformation rotates or stetches any of the basis vectors.
Definition: GeoPrimitivesHelpers.h:361
MuonGMR4::RpcReadoutElement::stripPosition
Amg::Vector3D stripPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
MuonGMR4::GeoModelRpcTest::m_stripPhiLength
MuonVal::ScalarBranch< float > & m_stripPhiLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:70
MuonGMR4::GeoModelRpcTest::m_numGasGapsPhi
MuonVal::ScalarBranch< uint8_t > & m_numGasGapsPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:74
GeoModelRpcTest.h
AnalysisUtils::copy_if
Out copy_if(In first, const In &last, Out res, const Pred &p)
Definition: IFilterUtils.h:30
MuonGMR4::RpcReadoutElement::doubletZ
int doubletZ() const
Returns the doublet Z field of the MuonReadoutElement identifier.
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonGMR4::GeoModelRpcTest::m_excludeStat
Gaudi::Property< std::vector< std::string > > m_excludeStat
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:43
MuonGMR4::RpcReadoutElement::measurementHash
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
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
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
MuonGMR4::GeoModelRpcTest::m_readoutTransform
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the readout element (Translation, ColX, ColY, ColZ)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:77
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonGMR4::GeoModelRpcTest::m_numRpcLayers
MuonVal::ScalarBranch< uint8_t > & m_numRpcLayers
Number of eta & phi gas gaps.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:73
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
MuonGMR4::GeoModelRpcTest::m_stripPhiPitch
MuonVal::ScalarBranch< float > & m_stripPhiPitch
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:66
MuonGMR4::GeoModelRpcTest::m_testStations
std::set< Identifier > m_testStations
Set of stations to be tested.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:39
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
MuonGMR4::GeoModelRpcTest::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:36
MuonGMR4::MuonReadoutElement::alignableTransform
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.
MuonGMR4::GeoModelRpcTest::m_stEta
MuonVal::ScalarBranch< short > & m_stEta
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:54
MuonGMR4::RpcReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
MuonGMR4::GeoModelRpcTest::m_stripEtaPitch
MuonVal::ScalarBranch< float > & m_stripEtaPitch
Strip dimensions.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:65
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.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::GeoModelRpcTest::m_stripEtaWidth
MuonVal::ScalarBranch< float > & m_stripEtaWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:67
RpcReadoutElement.h
MuonGMR4::GeoModelRpcTest::m_stripRotMeasPhi
MuonVal::VectorBranch< bool > & m_stripRotMeasPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:93
MuonGMR4::GeoModelRpcTest::m_stripPosGasGap
MuonVal::VectorBranch< uint8_t > & m_stripPosGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:99
MuonGMR4::GeoModelRpcTest::dumpToTree
StatusCode dumpToTree(const EventContext &ctx, const ActsGeometryContext &gctx, const RpcReadoutElement *readoutEle)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.cxx:183
MuonGMR4::MuonReadoutElement::stationName
int stationName() const
Returns the stationName (BIS, BOS, etc) encoded into the integer.
MuonGMR4::GeoModelRpcTest::execute
StatusCode execute() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.cxx:114
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonVal::CoordSystemsBranch::push_back
void push_back(const Amg::Transform3D &trans)
Definition: CoordTransformBranch.cxx:28
MuonGMR4::GeoModelRpcTest::m_detMgr
const MuonDetectorManager * m_detMgr
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:45
MuonVal::MuonTesterTree::fill
bool fill(const EventContext &ctx)
Fills the tree per call.
Definition: MuonTesterTree.cxx:89
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
MuonVal::MuonTesterTree::write
StatusCode write()
Finally write the TTree objects.
Definition: MuonTesterTree.cxx:178
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
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:49
MuonGMR4::RpcReadoutElement::stripPhiWidth
double stripPhiWidth() const
Strip width in phi.
MuonGMR4::MuonReadoutElement::stationEta
int stationEta() const
Returns the stationEta (positive A site, negative O site)
MuonGMR4::GeoModelRpcTest::m_numStripsEta
MuonVal::ScalarBranch< uint8_t > & m_numStripsEta
Number of strips, strip pitch in eta & phi direction.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:61
MuonGMR4::GeoModelRpcTest::finalize
StatusCode finalize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.cxx:110
MuonGMR4::GeoModelRpcTest::m_numPhiPanels
MuonVal::ScalarBranch< uint8_t > & m_numPhiPanels
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:75
MuonGMR4::GeoModelRpcTest::m_stripRotGasGap
MuonVal::VectorBranch< uint8_t > & m_stripRotGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:91
MuonGMR4::GeoModelRpcTest::m_stripDblPhi
MuonVal::VectorBranch< uint8_t > & m_stripDblPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:101
MuonGMR4::GeoModelRpcTest::m_stripPosNum
MuonVal::VectorBranch< uint8_t > & m_stripPosNum
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:100
MuonGMR4::RpcReadoutElement::stripEtaWidth
double stripEtaWidth() const
Strip width in eta.
MuonGMR4::MuonReadoutElement::stationPhi
int stationPhi() const
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
MuonGMR4::GeoModelRpcTest::m_doubletZ
MuonVal::ScalarBranch< uint8_t > & m_doubletZ
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:57
MuonGMR4::RpcReadoutElement::stripEtaLength
double stripEtaLength() const
Returns the length of an eta strip.
MuonGMR4::GeoModelRpcTest::m_selectStat
Gaudi::Property< std::vector< std::string > > m_selectStat
String should be formated like <stationName><stationEta><A/C><stationPhi>
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelRpcTest.h:42
Identifier
Definition: IdentifierFieldParser.cxx:14