ATLAS Offline Software
MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #include "GeoModelMdtTest.h"
5 
6 #include <fstream>
7 #include <iostream>
8 
12 namespace MuonGM {
13 
14 std::ostream& operator<<(std::ostream& ostr, const Amg::Transform3D& trans){
15  ostr<<Amg::toString(trans, 3);
16  return ostr;
17 }
18 
20  ISvcLocator* pSvcLocator)
21  : AthHistogramAlgorithm{name, pSvcLocator} {}
22 
26  ATH_CHECK(m_idHelperSvc.retrieve());
27  ATH_CHECK(m_tree.init(this));
28 
29  const MdtIdHelper& id_helper{m_idHelperSvc->mdtIdHelper()};
30  for (const std::string& testCham : m_selectStat) {
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, is_valid);
42  if (!is_valid) {
43  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
44  return StatusCode::FAILURE;
45  }
46  m_testStations.insert(eleId);
48  const Identifier secMl = id_helper.multilayerID(eleId, 2, is_valid);
49  if (is_valid)
50  m_testStations.insert(secMl);
51  }
53  if (m_testStations.empty()){
54  for(auto itr = id_helper.detectorElement_begin();
55  itr!= id_helper.detectorElement_end();++itr){
56  m_testStations.insert(*itr);
57  }
58  }
59  return StatusCode::SUCCESS;
60 }
62  const EventContext& ctx{Gaudi::Hive::currentContext()};
64  if (!detMgr.isValid()) {
65  ATH_MSG_FATAL("Failed to retrieve MuonDetectorManager "
66  << m_detMgrKey.fullKey());
67  return StatusCode::FAILURE;
68  }
69 
70  for (const Identifier& test_me : m_testStations) {
71  const std::string detStr = m_idHelperSvc->toStringDetEl(test_me);
72  ATH_MSG_VERBOSE("Test retrieval of Mdt detector element " << detStr);
73  const MdtReadoutElement* reElement = detMgr->getMdtReadoutElement(test_me);
74  if (!reElement) {
75  ATH_MSG_VERBOSE("Detector element is invalid");
76  continue;
77  }
79  if (reElement->identify() != test_me) {
80  ATH_MSG_FATAL("Expected to retrieve "
81  << detStr << ". But got instead "
82  << m_idHelperSvc->toStringDetEl(reElement->identify()));
83  return StatusCode::FAILURE;
84  }
85  ATH_CHECK(dumpToTree(ctx, reElement));
86  }
87  return StatusCode::SUCCESS;
88 }
91  return StatusCode::SUCCESS;
92 }
93 StatusCode GeoModelMdtTest::dumpToTree(const EventContext& ctx, const MdtReadoutElement* readoutEle) {
94  m_stIndex = readoutEle->getStationIndex();
95  m_stEta = readoutEle->getStationEta();
96  m_stPhi = readoutEle->getStationPhi();
97  m_stML = readoutEle->getMultilayer();
98  m_chamberDesign = readoutEle->getTechnologyName();
99 
100  m_numTubes = readoutEle->getNtubesperlayer();
101  m_numLayers = readoutEle->getNLayers();
102 
103  m_tubeRad = readoutEle->innerTubeRadius();
104  m_tubePitch = readoutEle->tubePitch();
105 
106  const MuonGM::MuonStation* station = readoutEle->parentMuonStation();
107  m_alignableNode = station->getGeoTransform()->getDefTransform() *
108  station->getNativeToAmdbLRS().inverse();
109  if (station->hasALines()){
110  m_ALineTransS = station->getALine_tras();
111  m_ALineTransT = station->getALine_traz();
112  m_ALineTransZ = station->getALine_trat();
113  m_ALineRotS = station->getALine_rots();
114  m_ALineRotT = station->getALine_rotz();
115  m_ALineRotZ = station->getALine_rott();
116  }
117  const BLinePar* bline = readoutEle->getBLinePar();
118  if (bline) {
119  using Parameter = BLinePar::Parameter;
121  m_BLineBp = bline->getParameter(Parameter::bp);
123  m_BLineSp = bline->getParameter(Parameter::sp);
124  m_BLineSn = bline->getParameter(Parameter::sn);
125  m_BLineTw = bline->getParameter(Parameter::tw);
127  m_BLineTr = bline->getParameter(Parameter::tr);
129  m_BLineEp = bline->getParameter(Parameter::ep);
131  }
132 
133  if (station->hasMdtAsBuiltParams()) {
134  const MdtAsBuiltPar* asBuilt = station->getMdtAsBuiltParams();
135  using multilayer_t = MdtAsBuiltPar::multilayer_t;
136  using tubeSide_t = MdtAsBuiltPar::tubeSide_t;
137  const multilayer_t asBuiltMl = readoutEle->getMultilayer() == 1 ? multilayer_t::ML1 : multilayer_t::ML2;
138  m_asBuiltPosY0 = asBuilt->y0(asBuiltMl, tubeSide_t::POS);
139  m_asBuiltPosZ0 = asBuilt->z0(asBuiltMl, tubeSide_t::POS);
140  m_asBuiltPosAlpha = asBuilt->alpha (asBuiltMl, tubeSide_t::POS);
141  m_asBuiltPosPitchY = asBuilt->ypitch(asBuiltMl, tubeSide_t::POS);
142  m_asBuiltPosPitchZ = asBuilt->zpitch(asBuiltMl, tubeSide_t::POS);
143  m_asBuiltPosStagg = asBuilt->stagg (asBuiltMl, tubeSide_t::POS);
144 
145  m_asBuiltNegY0 = asBuilt->y0(asBuiltMl, tubeSide_t::NEG);
146  m_asBuiltNegZ0 = asBuilt->z0(asBuiltMl, tubeSide_t::NEG);
147  m_asBuiltNegAlpha = asBuilt->alpha (asBuiltMl, tubeSide_t::NEG);
148  m_asBuiltNegPitchY = asBuilt->ypitch(asBuiltMl, tubeSide_t::NEG);
149  m_asBuiltNegPitchZ = asBuilt->zpitch(asBuiltMl, tubeSide_t::NEG);
150  m_asBuiltNegStagg = asBuilt->stagg (asBuiltMl, tubeSide_t::NEG);
151  }
152 
153  const MuonMDT_CablingMap* cabling{nullptr};
154  if (!m_cablingKey.empty()){
156  ATH_CHECK(cablingHandle.isValid());
157  cabling = cablingHandle.cptr();
158  }
159 
160  const Amg::Transform3D trans{readoutEle->getMaterialGeom()->getAbsoluteTransform()};
161  m_readoutTransform = readoutEle->getMaterialGeom()->getAbsoluteTransform();
162 
163  const MdtIdHelper& id_helper{m_idHelperSvc->mdtIdHelper()};
164 
165  for (int lay = 1; lay <= readoutEle->getNLayers(); ++lay) {
166  for (int tube = 1; tube <= readoutEle->getNtubesperlayer(); ++tube) {
167  bool is_valid{false};
168  const Identifier tube_id =id_helper.channelID(readoutEle->identify(),
169  readoutEle->getMultilayer(),
170  lay, tube, is_valid);
171  if (!is_valid) continue;
172  if (m_idHelperSvc->stationNameString(tube_id) == "BMG") {
173  try{
174  readoutEle->transform(tube_id);
175  } catch (const std::runtime_error& err ){
176  ATH_MSG_VERBOSE("Tube does not exist "<<err.what());
177  continue;
178  }
179  }
180  const Amg::Transform3D layTransf{readoutEle->transform(tube_id)};
181  m_tubeLay.push_back(lay);
183 
184  m_tubeTransform.push_back(layTransf);
185 
186  const Amg::Vector3D tubePos = layTransf.translation();
187  const Amg::Vector3D roPos = readoutEle->ROPos(tube_id);
188  m_roPos.push_back(roPos);
191  m_wireLength.push_back(readoutEle->getWireLength(lay, tube));
192  if (cabling) {
193  MdtCablingData translation{};
194  if (!cabling->convert(tube_id, translation) ||
195  !cabling->getOnlineId(translation, msgStream())){
196  ATH_MSG_FATAL("Cabling translation failed");
197  return StatusCode::FAILURE;
198  }
199  m_cablingCSM.push_back(translation.csm);
200  m_cablingMROD.push_back(translation.mrod);
201  m_cablingTdcId.push_back(translation.tdcId);
202  m_cablingTdcCh.push_back(translation.channelId);
203 
204 
205  }
206  if (!m_dumpSurfaces) continue;
207  const Amg::Vector3D globalDir {(tubePos - roPos).unit()};
208 
209  const Trk::SaggedLineSurface& surf{readoutEle->surface(tube_id)};
210  for (double l = readoutEle->tubeLength(tube_id) /2; l > 0; l = l -100. ) {
212  surf.globalToLocal(roPos + l * globalDir,Amg::Vector3D::Zero(),lPos);
213  std::unique_ptr<Trk::StraightLineSurface> sagged{surf.correctedSurface(lPos)};
217  const Amg::Transform3D layTransf{sagged->transform()};
218  m_layDist.push_back(layTransf);
219  }
220  }
221  }
222  return m_tree.fill(ctx) ? StatusCode::SUCCESS : StatusCode::FAILURE;
223 }
224 } // namespace MuonGM
MuonGM::GeoModelMdtTest::m_asBuiltPosPitchY
MuonVal::ScalarBranch< float > & m_asBuiltPosPitchY
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:125
python.changerun.bn
bn
Definition: changerun.py:79
MuonGM::GeoModelMdtTest::m_layDistTubeLay
MuonVal::VectorBranch< unsigned short > & m_layDistTubeLay
Distorted transformations.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:96
MdtReadoutElement.h
MuonGM::GeoModelMdtTest::m_asBuiltPosAlpha
MuonVal::ScalarBranch< float > & m_asBuiltPosAlpha
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:124
MuonGM::MuonStation::getALine_trat
double getALine_trat() const
Definition: MuonStation.h:192
MuonGM::MdtReadoutElement::getNLayers
int getNLayers() const
Returns the number of tube layers inside the multilayer.
MuonGM::GeoModelMdtTest::m_asBuiltPosZ0
MuonVal::ScalarBranch< float > & m_asBuiltPosZ0
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:123
MuonGM::operator<<
std::ostream & operator<<(std::ostream &os, const AlignPos &p)
Definition: AlignPos.cxx:8
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
MuonGM::GeoModelMdtTest::m_asBuiltPosPitchZ
MuonVal::ScalarBranch< float > & m_asBuiltPosPitchZ
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:126
MuonGM::MdtReadoutElement::tubeLength
double tubeLength(const int tubeLayer, const int tube) const
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
MuonGM::GeoModelMdtTest::initialize
StatusCode initialize() override
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:23
MuonVal::MuonTesterTree::init
StatusCode init(OWNER *instance)
Initialize method.
MuonGM::GeoModelMdtTest::m_tubeLength
MuonVal::VectorBranch< double > & m_tubeLength
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:83
MuonGM::GeoModelMdtTest::m_tubeLay
MuonVal::VectorBranch< unsigned short > & m_tubeLay
Readout each tube specifically.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:77
ParticleTest.eg
eg
Definition: ParticleTest.py:29
MuonGM::GeoModelMdtTest::m_layDist
MuonVal::CoordSystemsBranch m_layDist
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:99
MuonGM::GeoModelMdtTest::m_BLineTr
MuonVal::ScalarBranch< float > & m_BLineTr
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:117
MuonGM::MdtReadoutElement::innerTubeRadius
double innerTubeRadius() const
Returns the inner tube radius excluding the aluminium walls.
MuonGM::GeoModelMdtTest::m_readoutTransform
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the underlying GeoModel element (Translation, ColX, ColY, ColZ)
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:68
MdtAsBuiltPar::z0
double z0(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:48
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
MuonGM::GeoModelMdtTest::m_tubeTransform
MuonVal::CoordSystemsBranch m_tubeTransform
Ideal transformations to the tube rest frame.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:81
MuonGM::GeoModelMdtTest::m_BLineEn
MuonVal::ScalarBranch< float > & m_BLineEn
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:120
MuonGM::MdtReadoutElement::tubePitch
double tubePitch() const
Returns the distance between 2 tubes in a tube layer.
MuonGM::GeoModelMdtTest::m_cablingKey
SG::ReadCondHandleKey< MuonMDT_CablingMap > m_cablingKey
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:37
MuonGM::MuonStation::getALine_rotz
double getALine_rotz() const
Definition: MuonStation.h:194
MuonGM::MuonStation::getALine_traz
double getALine_traz() const
Definition: MuonStation.h:191
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
MuonGM::MuonStation::getALine_tras
double getALine_tras() const
Definition: MuonStation.h:190
MdtAsBuiltPar::multilayer_t
multilayer_t
MDT multi-layer index.
Definition: MdtAsBuiltPar.h:28
MuonGM::GeoModelMdtTest::m_wireLength
MuonVal::VectorBranch< double > & m_wireLength
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:85
MuonGM::GeoModelMdtTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:39
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
MuonGM::MuonReadoutElement::getTechnologyName
const std::string & getTechnologyName() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:188
MdtAsBuiltPar::ypitch
double ypitch(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:50
MuonGM::MdtReadoutElement::getBLinePar
const BLinePar * getBLinePar() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:155
MuonGM::GeoModelMdtTest::m_ALineRotS
MuonVal::ScalarBranch< float > & m_ALineRotS
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:105
BLinePar::getParameter
float getParameter(const Parameter p) const
Returns a given parameter.
Definition: BLinePar.h:39
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
MuonGM::GeoModelMdtTest::m_BLineTw
MuonVal::ScalarBranch< float > & m_BLineTw
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:115
MuonGM::GeoModelMdtTest::m_asBuiltNegAlpha
MuonVal::ScalarBranch< float > & m_asBuiltNegAlpha
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:131
MuonGM::GeoModelMdtTest::m_BLineBn
MuonVal::ScalarBranch< float > & m_BLineBn
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:112
MuonGM::GeoModelMdtTest::m_testStations
std::set< Identifier > m_testStations
Set of stations to be tested.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:43
MuonGM::GeoModelMdtTest::m_cablingTdcId
MuonVal::VectorBranch< uint8_t > & m_cablingTdcId
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:89
MuonGM::GeoModelMdtTest::m_ALineTransS
MuonVal::ScalarBranch< float > & m_ALineTransS
Alignment parameters.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:102
MuonGM::GeoModelMdtTest::m_detMgrKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detMgrKey
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:33
MuonGM::GeoModelMdtTest::m_stML
MuonVal::ScalarBranch< short > & m_stML
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:60
MuonGM::GeoModelMdtTest::m_layDistPosAlongWire
MuonVal::VectorBranch< double > & m_layDistPosAlongWire
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:98
MuonVal::ThreeVectorBranch::push_back
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
Definition: ThreeVectorBranch.cxx:23
MuonGM::MdtReadoutElement::getWireLength
double getWireLength(const int tubeLayer, const int tube) const
MdtAsBuiltPar::stagg
int stagg(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:52
MuonGM::GeoModelMdtTest::m_ALineTransZ
MuonVal::ScalarBranch< float > & m_ALineTransZ
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:104
GeoModelMdtTest.h
MuonMDT_CablingMap
Definition: MuonMDT_CablingMap.h:24
MuonGM::GeoModelMdtTest::m_BLinePg
MuonVal::ScalarBranch< float > & m_BLinePg
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:116
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
MuonGM::GeoModelMdtTest::m_BLineSn
MuonVal::ScalarBranch< float > & m_BLineSn
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:114
MuonGM::GeoModelMdtTest::m_tubeNum
MuonVal::VectorBranch< unsigned short > & m_tubeNum
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:78
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:50
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:193
fitman.bz
bz
Definition: fitman.py:412
MuonGM::MuonStation::getALine_rott
double getALine_rott() const
Definition: MuonStation.h:195
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
MuonGM::GeoModelMdtTest::m_asBuiltPosY0
MuonVal::ScalarBranch< float > & m_asBuiltPosY0
AS-built parameters.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:122
MuonGM::MuonReadoutElement::parentMuonStation
const MuonStation * parentMuonStation() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:135
MuonGM::MdtReadoutElement::getActiveTubeLength
double getActiveTubeLength(const int tubeLayer, const int tube) const
MdtAsBuiltPar::zpitch
double zpitch(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:51
MuonGM::GeoModelMdtTest::m_BLineBp
MuonVal::ScalarBranch< float > & m_BLineBp
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:111
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGM::MuonStation
Definition: MuonStation.h:51
MuonGM::GeoModelMdtTest::m_numTubes
MuonVal::ScalarBranch< unsigned short > & m_numTubes
Number of tubes per layer.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:72
MuonGM::GeoModelMdtTest::m_cablingTdcCh
MuonVal::VectorBranch< uint8_t > & m_cablingTdcCh
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:90
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonGM::GeoModelMdtTest::m_layDistTubeNum
MuonVal::VectorBranch< unsigned short > & m_layDistTubeNum
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:97
MuonGM::GeoModelMdtTest::m_BLineEp
MuonVal::ScalarBranch< float > & m_BLineEp
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:119
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonGM::MuonStation::getNativeToAmdbLRS
const Amg::Transform3D & getNativeToAmdbLRS() const
Definition: MuonStation.h:182
MdtCablingData
Definition: MdtCablingData.h:82
MuonGM::GeoModelMdtTest::m_alignableNode
MuonVal::CoordTransformBranch m_alignableNode
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:69
MuonGM::MdtReadoutElement::getMultilayer
int getMultilayer() const
Returns the multilayer represented by the readout element.
MuonGM::GeoModelMdtTest::m_cablingMROD
MuonVal::VectorBranch< uint8_t > & m_cablingMROD
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:88
MuonGM::GeoModelMdtTest::m_tubePitch
MuonVal::ScalarBranch< double > & m_tubePitch
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:64
MuonGM::GeoModelMdtTest::m_ALineRotT
MuonVal::ScalarBranch< float > & m_ALineRotT
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:106
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
BLinePar
Definition: BLinePar.h:14
MuonGM::GeoModelMdtTest::m_asBuiltNegPitchZ
MuonVal::ScalarBranch< float > & m_asBuiltNegPitchZ
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:133
MuonGM::GeoModelMdtTest::m_ALineRotZ
MuonVal::ScalarBranch< float > & m_ALineRotZ
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:107
MuonGM::MuonStation::getGeoTransform
const GeoAlignableTransform * getGeoTransform() const
Definition: MuonStation.h:167
MuonGM::GeoModelMdtTest::m_cablingCSM
MuonVal::VectorBranch< uint8_t > & m_cablingCSM
Cabling information.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:87
MuonGM::GeoModelMdtTest::dumpToTree
StatusCode dumpToTree(const EventContext &ctx, const MdtReadoutElement *readoutEle)
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:93
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
MdtAsBuiltPar::tubeSide_t
tubeSide_t
MDT tube side.
Definition: MdtAsBuiltPar.h:33
MuonGM::GeoModelMdtTest::m_asBuiltNegStagg
MuonVal::ScalarBranch< int > & m_asBuiltNegStagg
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:134
MuonGM::GeoModelMdtTest::m_tubeRad
MuonVal::ScalarBranch< double > & m_tubeRad
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:63
MuonGM::GeoModelMdtTest::m_asBuiltPosStagg
MuonVal::ScalarBranch< int > & m_asBuiltPosStagg
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:127
ParticleGun_EoverP_Config.pg
pg
Definition: ParticleGun_EoverP_Config.py:61
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
PlotCalibFromCool.en
en
Definition: PlotCalibFromCool.py:399
MuonGM::GeoModelMdtTest::m_stIndex
MuonVal::ScalarBranch< unsigned short > & m_stIndex
Identifier of the readout element.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:57
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
MuonGM::MuonStation::hasMdtAsBuiltParams
bool hasMdtAsBuiltParams() const
Definition: MuonStation.h:198
MuonGM::GeoModelMdtTest::m_asBuiltNegZ0
MuonVal::ScalarBranch< float > & m_asBuiltNegZ0
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:130
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGM::GeoModelMdtTest::m_BLineEg
MuonVal::ScalarBranch< float > & m_BLineEg
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:118
MuonGM::GeoModelMdtTest::m_dumpSurfaces
Gaudi::Property< bool > m_dumpSurfaces
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:50
MuonGM::MdtReadoutElement::ROPos
Amg::Vector3D ROPos(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:288
MuonGM::GeoModelMdtTest::m_BLineBz
MuonVal::ScalarBranch< float > & m_BLineBz
B Line chamber defomrations.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:110
MdtAsBuiltPar::alpha
double alpha(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:49
BLinePar::Parameter
Parameter
Definition: BLinePar.h:21
MuonGM::GeoModelMdtTest::m_stEta
MuonVal::ScalarBranch< short > & m_stEta
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:58
MuonGM::MuonReadoutElement::getStationIndex
int getStationIndex() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:192
MdtAsBuiltPar
Container classifier the MDT as-built parameters See parameter description in http://atlas-muon-align...
Definition: MdtAsBuiltPar.h:18
MuonGM::GeoModelMdtTest::m_asBuiltNegPitchY
MuonVal::ScalarBranch< float > & m_asBuiltNegPitchY
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:132
MuonGM::GeoModelMdtTest::m_BLineSp
MuonVal::ScalarBranch< float > & m_BLineSp
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:113
unit
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Definition: AmgMatrixBasePlugin.h:20
MuonGM::MuonReadoutElement::identify
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:184
MuonGM::MuonStation::getMdtAsBuiltParams
const MdtAsBuiltPar * getMdtAsBuiltParams() const
Definition: MuonStation.cxx:371
MuonVal::CoordSystemsBranch::push_back
void push_back(const Amg::Transform3D &trans)
Definition: CoordTransformBranch.cxx:28
MuonGM::MdtReadoutElement::surface
virtual const Trk::Surface & surface() const override final
Return surface associated with this detector element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:875
GeoPrimitivesToStringConverter.h
MuonVal::MuonTesterTree::fill
bool fill(const EventContext &ctx)
Fills the tree per call.
Definition: MuonTesterTree.cxx:89
MuonVal::MuonTesterTree::write
StatusCode write()
Finally write the TTree objects.
Definition: MuonTesterTree.cxx:178
Trk::SaggedLineSurface
Definition: SaggedLineSurface.h:35
MuonGM::MuonStation::hasALines
bool hasALines() const
Definition: MuonStation.h:196
MuonGM::GeoModelMdtTest::execute
StatusCode execute() override
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:61
MuonGM::GeoModelMdtTest::m_numLayers
MuonVal::ScalarBranch< unsigned short > & m_numLayers
Number of tubes per layer.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:74
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
MdtAsBuiltPar::y0
double y0(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:47
MuonGM::GeoModelMdtTest::GeoModelMdtTest
GeoModelMdtTest(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:19
MuonGM::MdtReadoutElement::transform
virtual const Amg::Transform3D & transform(const Identifier &id) const override final
Return local to global transform associated with this identifier.
MuonGM::MdtReadoutElement::getNtubesperlayer
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
MuonStation.h
MuonGM::GeoModelMdtTest::m_stPhi
MuonVal::ScalarBranch< short > & m_stPhi
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:59
MuonGM::MuonStation::getALine_rots
double getALine_rots() const
Definition: MuonStation.h:193
MuonGM::GeoModelMdtTest::m_roPos
MuonVal::ThreeVectorBranch m_roPos
Position of the readout.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:93
MuonGM::GeoModelMdtTest::m_asBuiltNegY0
MuonVal::ScalarBranch< float > & m_asBuiltNegY0
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:129
MuonGM::GeoModelMdtTest::m_tree
MuonVal::MuonTesterTree m_tree
Write a TTree for validation purposes.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:54
calibdata.tube
tube
Definition: calibdata.py:31
MuonGM::GeoModelMdtTest::m_chamberDesign
MuonVal::ScalarBranch< std::string > & m_chamberDesign
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:61
MuonGM::MuonReadoutElement::getStationPhi
int getStationPhi() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:194
MuonGM::GeoModelMdtTest::m_activeTubeLength
MuonVal::VectorBranch< double > & m_activeTubeLength
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:84
MuonGM::MuonReadoutElement::getStationEta
int getStationEta() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:193
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
MuonGM::GeoModelMdtTest::finalize
StatusCode finalize() override
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:89
MuonGM::GeoModelMdtTest::m_selectStat
Gaudi::Property< std::vector< std::string > > m_selectStat
String should be formated like <stationName><stationEta><A/C><stationPhi>
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:47
MuonGM::GeoModelMdtTest::m_ALineTransT
MuonVal::ScalarBranch< float > & m_ALineTransT
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:103