ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.cxx
Go to the documentation of this file.
1 
2 /*
3  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 */
5 #include "GeoModelMdtTest.h"
10 
11 #include <fstream>
12 
13 using namespace ActsTrk;
14 namespace MuonGMR4{
15 
16 GeoModelMdtTest::GeoModelMdtTest(const std::string& name, ISvcLocator* pSvcLocator):
17 AthHistogramAlgorithm(name,pSvcLocator) {}
18 
20  ATH_CHECK(m_idHelperSvc.retrieve());
23  ATH_CHECK(m_tree.init(this));
24 
25 
26  const MdtIdHelper& id_helper{m_idHelperSvc->mdtIdHelper()};
27  for (const std::string& testCham : m_selectStat) {
29  if (std::find(m_excludeStat.begin(), m_excludeStat.end(), testCham) != m_excludeStat.end()) {
30  continue;
31  }
33  if (testCham.size() != 6) {
34  ATH_MSG_FATAL("Wrong format given " << testCham);
35  return StatusCode::FAILURE;
36  }
38  std::string statName = testCham.substr(0, 3);
39  unsigned int statEta = std::atoi(testCham.substr(3, 1).c_str()) *
40  (testCham[4] == 'A' ? 1 : -1);
41  unsigned int statPhi = std::atoi(testCham.substr(5, 1).c_str());
42  bool is_valid{false};
43  const Identifier eleId =
44  id_helper.elementID(statName, statEta, statPhi, is_valid);
45  if (!is_valid) {
46  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
47  return StatusCode::FAILURE;
48  }
49  m_testStations.insert(eleId);
51  const Identifier secMl = id_helper.multilayerID(eleId, 2, is_valid);
52  if (is_valid)
53  m_testStations.insert(secMl);
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, is_valid);
71  if (!is_valid) {
72  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
73  return StatusCode::FAILURE;
74  }
76  excludedStations.insert(eleId);
78  const Identifier secMl = id_helper.multilayerID(eleId, 2, is_valid);
79  if (is_valid) {
80  excludedStations.insert(secMl);
81  }
82  }
84  for(auto itr = id_helper.detectorElement_begin();
85  itr!= id_helper.detectorElement_end();++itr){
86  if (excludedStations.count(*itr) == 0) {
87  m_testStations.insert(*itr);
88  }
89  }
91  if (!excludedStations.empty()) {
92  std::stringstream excluded_report{};
93  for (const Identifier& id : excludedStations){
94  excluded_report << " *** " << m_idHelperSvc->toString(id) << std::endl;
95  }
96  ATH_MSG_INFO("Test all station except the following excluded ones " << std::endl << excluded_report.str());
97  }
98  } else {
99  std::stringstream sstr{};
100  for (const Identifier& id : m_testStations) {
101  sstr<<" *** "<<m_idHelperSvc->toString(id)<<std::endl;
102  }
103  ATH_MSG_INFO("Test only the following stations "<<std::endl<<sstr.str());
104  }
106  return StatusCode::SUCCESS;
107 }
110  return StatusCode::SUCCESS;
111 }
113  const EventContext& ctx{Gaudi::Hive::currentContext()};
114  SG::ReadHandle<ActsGeometryContext> geoContextHandle{m_geoCtxKey, ctx};
115  ATH_CHECK(geoContextHandle.isPresent());
116 
117  const ActsGeometryContext& gctx{*geoContextHandle};
118 
119  const MdtIdHelper& id_helper{m_idHelperSvc->mdtIdHelper()};
120  for (const Identifier& test_me : m_testStations) {
121  const int ml = id_helper.multilayer(test_me);
122  const std::string detStr = m_idHelperSvc->toStringDetEl(test_me);
123  ATH_MSG_DEBUG("Test retrieval of Mdt detector element "<<detStr);
124  const MdtReadoutElement* reElement = m_detMgr->getMdtReadoutElement(test_me);
125  if (!reElement) {
126  continue;
127  }
129  if (reElement->identify() != test_me) {
130  ATH_MSG_FATAL("Expected to retrieve "<<detStr<<". 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 "<<detStr<<". Ended up with "<< Amg::toString(transClosure) );
140  return StatusCode::FAILURE;
141  }
142  for (unsigned int lay = 1 ; lay <= reElement->numLayers() ; ++lay ) {
143  for (unsigned int tube = 1; tube <=reElement->numTubesInLay(); ++tube ){
144  const Identifier tube_id = id_helper.channelID(test_me,ml,lay,tube);
146  const IdentifierHash measHash = reElement->measurementHash(tube_id);
147  const Identifier cnv_tube_id = reElement->measurementId(measHash);
148  if (tube_id != cnv_tube_id) {
149  ATH_MSG_FATAL("Failed to convert "<<m_idHelperSvc->toString(tube_id)<<" back and forth "<<m_idHelperSvc->toString(cnv_tube_id));
150  return StatusCode::FAILURE;
151  }
152  }
153  }
154  }
156  return StatusCode::SUCCESS;
157 }
159  if (m_swapRead.empty()) return;
160  std::ofstream swapReadXML{m_swapRead};
161  if (!swapReadXML.good()) {
162  ATH_MSG_ERROR("Failed to create "<<m_swapRead);
163  return;
164  }
165  std::set<Identifier> chamberIDs{};
166  const MdtIdHelper& idHelper{m_idHelperSvc->mdtIdHelper()};
167  swapReadXML<<"<Table name=\"MdtTubeROSides\">"<<std::endl;
168  unsigned int counter{1};
169  for (MdtIdHelper::const_id_iterator itr = idHelper.detectorElement_begin();
170  itr != idHelper.detectorElement_end();
171  ++itr){
172  const Identifier swap{*itr};
173  const MdtReadoutElement* readoutEle = m_detMgr->getMdtReadoutElement(swap);
174  if(!readoutEle) continue;
175  if (!chamberIDs.insert(idHelper.elementID(swap)).second) continue;
176  const int side = readoutEle->getParameters().readoutSide;
177  swapReadXML<<" <Row ";
178  swapReadXML<<"MDTTUBEROSIDES_DATA_ID=\""<<counter<<"\" ";
179  swapReadXML<<"stationName=\""<<m_idHelperSvc->stationNameString(swap)<<"\" ";
180  swapReadXML<<"stationEta=\""<<m_idHelperSvc->stationEta(swap)<<"\" ";
181  swapReadXML<<"stationPhi=\""<<m_idHelperSvc->stationPhi(swap)<<"\" ";
182  swapReadXML<<"side=\""<<side<<"\" ";
183  swapReadXML<<"/>"<<std::endl;
184  ++counter;
185  }
186  swapReadXML<<"</Table>"<<std::endl;
187 
188 }
189 StatusCode GeoModelMdtTest::dumpToTree(const EventContext& ctx,
190  const ActsGeometryContext& gctx,
191  const MdtReadoutElement* readoutEle) {
192 
193  m_stIndex = readoutEle->stationName();
194  m_stEta = readoutEle->stationEta();
195  m_stPhi = readoutEle->stationPhi();
196  m_stML = readoutEle->multilayer();
197  m_chamberDesign = readoutEle->chamberDesign();
198 
199  m_numLayers = readoutEle->numLayers();
200  m_numTubes = readoutEle->numTubesInLay();
201 
202  m_tubeRad = readoutEle->innerTubeRadius();
203  m_tubePitch = readoutEle->tubePitch();
204 
206  const Amg::Transform3D& transform {readoutEle->localToGlobalTrans(gctx)};
208  m_alignableNode = readoutEle->alignableTransform()->getDefTransform();
209 
211  for (unsigned int lay = 1; lay <= readoutEle->numLayers(); ++lay) {
212  for (unsigned int tube = 1; tube <= readoutEle->numTubesInLay(); ++tube) {
213  const IdentifierHash measHash{readoutEle->measurementHash(lay,tube)};
214  if (!readoutEle->isValid(measHash)) continue;
215  const Amg::Transform3D& tubeTransform{readoutEle->localToGlobalTrans(gctx,measHash)};
216  m_tubeLay.push_back(lay);
218  m_tubeTransform.push_back(tubeTransform);
219  m_tubePosInCh.push_back(readoutEle->msSector()->globalToLocalTrans(gctx) *
220  readoutEle->center(gctx, measHash));
221  m_roPos.push_back(readoutEle->readOutPos(gctx, measHash));
222  m_tubeLength.push_back(readoutEle->tubeLength(measHash));
223  m_activeTubeLength.push_back(readoutEle->activeTubeLength(measHash));
224  m_wireLength.push_back(readoutEle->wireLength(measHash));
225  }
226  }
227 
228  return m_tree.fill(ctx) ? StatusCode::SUCCESS : StatusCode::FAILURE;
229 }
230 
231 }
232 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MuonGMR4::GeoModelMdtTest::m_stIndex
MuonVal::ScalarBranch< unsigned short > & m_stIndex
Identifier of the readout element.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:53
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGMR4::MuonReadoutElement::msSector
const SpectrometerSector * msSector() const
Returns the pointer to the envelope volume enclosing all chambers in the sector.
MuonGMR4::MdtReadoutElement::numTubesInLay
unsigned int numTubesInLay() const
Returns the number of tubes per layer.
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
ActsGeometryContext.h
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonGMR4::MdtReadoutElement::tubeLength
double tubeLength(const IdentifierHash &hash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:185
MuonGMR4::MdtReadoutElement::measurementHash
static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber)
Transform the layer and tube number to the measurementHash.
MuonGMR4::MuonReadoutElement::chamberDesign
std::string chamberDesign() const
The chamber design refers to the construction parameters of a readout element.
MuonGMR4::GeoModelMdtTest::dumpReadoutSideXML
void dumpReadoutSideXML() const
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.cxx:158
MuonGMR4::MdtReadoutElement::activeTubeLength
double activeTubeLength(const IdentifierHash &hash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:173
MuonGMR4::MdtReadoutElement::readOutPos
Amg::Vector3D readOutPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the readout card.
MuonGMR4::GeoModelMdtTest::m_stML
MuonVal::ScalarBranch< short > & m_stML
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:56
MuonGMR4::GeoModelMdtTest::m_readoutTransform
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the readout element (Translation, ColX, ColY, ColZ)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:64
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
MuonGMR4::GeoModelMdtTest::m_swapRead
Gaudi::Property< std::string > m_swapRead
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:45
SpectrometerSector.h
MuonGMR4::GeoModelMdtTest::m_numTubes
MuonVal::ScalarBranch< unsigned short > & m_numTubes
Number of tubes per layer.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:67
MuonGMR4::GeoModelMdtTest::m_tubeNum
MuonVal::VectorBranch< unsigned short > & m_tubeNum
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:73
MuonGMR4::GeoModelMdtTest::m_tree
MuonVal::MuonTesterTree m_tree
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:50
MuonGMR4::GeoModelMdtTest::m_alignableNode
MuonVal::CoordTransformBranch m_alignableNode
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:65
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::GeoModelMdtTest::m_stPhi
MuonVal::ScalarBranch< short > & m_stPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:55
MuonGMR4::MdtReadoutElement::parameterBook::readoutSide
double readoutSide
Is the readout chip at positive or negative Z?
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:65
TRT::Hit::side
@ side
Definition: HitInfo.h:83
MuonGMR4::GeoModelMdtTest::execute
StatusCode execute() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.cxx:112
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:47
MuonVal::ThreeVectorBranch::push_back
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
Definition: ThreeVectorBranch.cxx:23
MuonGMR4::MdtReadoutElement::multilayer
unsigned int multilayer() const
Returns the multi layer of the MdtReadoutElement.
MuonGMR4::MdtReadoutElement::wireLength
double wireLength(const IdentifierHash &hash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:188
MuonGMR4::GeoModelMdtTest::m_testStations
std::set< Identifier > m_testStations
Set of stations to be tested.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:37
MuonGMR4::GeoModelMdtTest::m_detMgr
const MuonDetectorManager * m_detMgr
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:43
GeoModelMdtTest.h
MuonGMR4::GeoModelMdtTest::m_chamberDesign
MuonVal::ScalarBranch< std::string > & m_chamberDesign
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:57
MuonGMR4::GeoModelMdtTest::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:35
calibdata.tube_id
tube_id
Definition: calibdata.py:30
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
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonGMR4::GeoModelMdtTest::m_numLayers
MuonVal::ScalarBranch< unsigned short > & m_numLayers
Number of tubes per layer.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:69
MuonGMR4::GeoModelMdtTest::m_excludeStat
Gaudi::Property< std::vector< std::string > > m_excludeStat
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:41
MuonGMR4::GeoModelMdtTest::m_stEta
MuonVal::ScalarBranch< short > & m_stEta
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:54
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::SpectrometerSector::globalToLocalTrans
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &gctx) const
Returns the global -> local transformation from the ATLAS global.
Definition: SpectrometerSector.cxx:54
MuonGMR4::MdtReadoutElement::numLayers
unsigned int numLayers() const
Returns the number of tube layer.
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
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonGMR4::GeoModelMdtTest::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/GeoModelMdtTest.h:40
MuonGMR4::MuonReadoutElement::center
Amg::Vector3D center(const ActsGeometryContext &ctx) const
Returns the detector center (Which is the same as the detector center of the first measurement layer)
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
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::GeoModelMdtTest::m_wireLength
MuonVal::VectorBranch< double > & m_wireLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:80
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
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.
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
MuonGMR4::GeoModelMdtTest::m_tubeLength
MuonVal::VectorBranch< double > & m_tubeLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:78
MuonGMR4::GeoModelMdtTest::m_tubeTransform
MuonVal::CoordSystemsBranch m_tubeTransform
Transformation to each tube.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:76
MuonGMR4::MdtReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:22
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
MuonGMR4::GeoModelMdtTest::m_tubePosInCh
MuonVal::ThreeVectorBranch m_tubePosInCh
Position of the tube in the sector frame.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:85
MuonGMR4::MuonReadoutElement::alignableTransform
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.
MuonGMR4::GeoModelMdtTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:32
MuonGMR4::GeoModelMdtTest::m_tubeLay
MuonVal::VectorBranch< unsigned short > & m_tubeLay
Readout each tube specifically.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:72
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
MuonGMR4::MdtReadoutElement::tubePitch
double tubePitch() const
Returns the pitch between 2 tubes in a layer.
MuonGMR4::GeoModelMdtTest::m_activeTubeLength
MuonVal::VectorBranch< double > & m_activeTubeLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:79
MuonGMR4::GeoModelMdtTest::initialize
StatusCode initialize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.cxx:19
MuonGMR4::MuonReadoutElement::stationName
int stationName() const
Returns the stationName (BIS, BOS, etc) encoded into the integer.
MdtReadoutElement.h
MuonVal::CoordSystemsBranch::push_back
void push_back(const Amg::Transform3D &trans)
Definition: CoordTransformBranch.cxx:28
GeoPrimitivesToStringConverter.h
MuonGMR4::GeoModelMdtTest::m_tubePitch
MuonVal::ScalarBranch< double > & m_tubePitch
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:60
MuonVal::MuonTesterTree::fill
bool fill(const EventContext &ctx)
Fills the tree per call.
Definition: MuonTesterTree.cxx:89
MuonGMR4::GeoModelMdtTest::m_roPos
MuonVal::ThreeVectorBranch m_roPos
Position of the readout.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:83
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
MuonIdHelper::const_id_iterator
std::vector< Identifier >::const_iterator const_id_iterator
Definition: MuonIdHelper.h:143
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::GeoModelMdtTest::finalize
StatusCode finalize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.cxx:108
MuonGMR4::MuonReadoutElement::stationEta
int stationEta() const
Returns the stationEta (positive A site, negative O site)
MuonGMR4::MdtReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:46
test_pyathena.counter
counter
Definition: test_pyathena.py:15
MuonGMR4::GeoModelMdtTest::m_tubeRad
MuonVal::ScalarBranch< double > & m_tubeRad
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.h:59
MuonGMR4::MdtReadoutElement::isValid
bool isValid(const IdentifierHash &measHash) const
MuonGMR4::MuonReadoutElement::stationPhi
int stationPhi() const
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
calibdata.tube
tube
Definition: calibdata.py:31
MuonGMR4::GeoModelMdtTest::dumpToTree
StatusCode dumpToTree(const EventContext &ctx, const ActsGeometryContext &gctx, const MdtReadoutElement *readoutEle)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.cxx:189
Identifier
Definition: IdentifierFieldParser.cxx:14