Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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 }
21  ATH_CHECK(m_idHelperSvc.retrieve());
22  ATH_CHECK(m_tree.init(this));
23 
24  const MdtIdHelper& idHelper{m_idHelperSvc->mdtIdHelper()};
25  auto translateTokenList = [this, &idHelper](const std::vector<std::string>& chNames){
26 
27  std::set<Identifier> transcriptedIds{};
28  for (const std::string& token : chNames) {
29  if (token.size() != 6) {
30  ATH_MSG_WARNING("Wrong format given for "<<token<<". Expecting 6 characters");
31  continue;
32  }
34  const std::string statName = token.substr(0, 3);
35  const unsigned statEta = std::atoi(token.substr(3, 1).c_str()) * (token[4] == 'A' ? 1 : -1);
36  const unsigned statPhi = std::atoi(token.substr(5, 1).c_str());
37  bool isValid{false};
38  const Identifier eleId = idHelper.elementID(statName, statEta, statPhi, isValid);
39  if (!isValid) {
40  ATH_MSG_WARNING("Failed to deduce a station name for " << token);
41  continue;
42  }
43  transcriptedIds.insert(eleId);
44  const Identifier secMlId = idHelper.multilayerID(eleId, 2, isValid);
45  if (isValid){
46  transcriptedIds.insert(secMlId);
47  }
48  }
49  return transcriptedIds;
50  };
51 
52  std::vector <std::string>& selectedSt = m_selectStat.value();
53  const std::vector <std::string>& excludedSt = m_excludeStat.value();
54  selectedSt.erase(std::remove_if(selectedSt.begin(), selectedSt.end(),
55  [&excludedSt](const std::string& token){
56  return std::ranges::find(excludedSt, token) != excludedSt.end();
57  }), selectedSt.end());
58 
59  if (selectedSt.size()) {
60  m_testStations = translateTokenList(selectedSt);
61  std::stringstream sstr{};
62  for (const Identifier& id : m_testStations) {
63  sstr<<" *** "<<m_idHelperSvc->toString(id)<<std::endl;
64  }
65  ATH_MSG_INFO("Test only the following stations "<<std::endl<<sstr.str());
66  } else {
67  const std::set<Identifier> excluded = translateTokenList(excludedSt);
69  for(auto itr = idHelper.detectorElement_begin();
70  itr!= idHelper.detectorElement_end();++itr){
71  if (!excluded.count(*itr)) {
72  m_testStations.insert(*itr);
73  }
74  }
76  if (!excluded.empty()) {
77  std::stringstream excluded_report{};
78  for (const Identifier& id : excluded){
79  excluded_report << " *** " << m_idHelperSvc->toStringDetEl(id) << std::endl;
80  }
81  ATH_MSG_INFO("Test all station except the following excluded ones " << std::endl << excluded_report.str());
82  }
83  }
84  return StatusCode::SUCCESS;
85 }
87  const EventContext& ctx{Gaudi::Hive::currentContext()};
89  if (!detMgr.isValid()) {
90  ATH_MSG_FATAL("Failed to retrieve MuonDetectorManager "
91  << m_detMgrKey.fullKey());
92  return StatusCode::FAILURE;
93  }
94 
95  for (const Identifier& test_me : m_testStations) {
96  const std::string detStr = m_idHelperSvc->toStringDetEl(test_me);
97  ATH_MSG_VERBOSE("Test retrieval of Mdt detector element " << detStr);
98  const MdtReadoutElement* reElement = detMgr->getMdtReadoutElement(test_me);
99  if (!reElement) {
100  ATH_MSG_VERBOSE("Detector element is invalid");
101  continue;
102  }
104  if (reElement->identify() != test_me) {
105  ATH_MSG_FATAL("Expected to retrieve "
106  << detStr << ". But got instead "
107  << m_idHelperSvc->toStringDetEl(reElement->identify()));
108  return StatusCode::FAILURE;
109  }
110  ATH_CHECK(dumpToTree(ctx, reElement));
111  }
112  return StatusCode::SUCCESS;
113 }
116  return StatusCode::SUCCESS;
117 }
118 StatusCode GeoModelMdtTest::dumpToTree(const EventContext& ctx, const MdtReadoutElement* readoutEle) {
119  m_stIndex = readoutEle->getStationIndex();
120  m_stEta = readoutEle->getStationEta();
121  m_stPhi = readoutEle->getStationPhi();
122  m_stML = readoutEle->getMultilayer();
123  m_chamberDesign = readoutEle->getTechnologyName();
124 
125  m_numTubes = readoutEle->getNtubesperlayer();
126  m_numLayers = readoutEle->getNLayers();
127 
128  m_tubeRad = readoutEle->innerTubeRadius();
129  m_tubePitch = readoutEle->tubePitch();
130 
131  const MuonGM::MuonStation* station = readoutEle->parentMuonStation();
132  m_alignableNode = station->getGeoTransform()->getDefTransform() *
133  station->getNativeToAmdbLRS().inverse();
134  if (station->hasALines()){
135  m_ALineTransS = station->getALine_tras();
136  m_ALineTransT = station->getALine_traz();
137  m_ALineTransZ = station->getALine_trat();
138  m_ALineRotS = station->getALine_rots();
139  m_ALineRotT = station->getALine_rotz();
140  m_ALineRotZ = station->getALine_rott();
141  }
142  const BLinePar* bline = readoutEle->getBLinePar();
143  if (bline) {
144  using Parameter = BLinePar::Parameter;
146  m_BLineBp = bline->getParameter(Parameter::bp);
148  m_BLineSp = bline->getParameter(Parameter::sp);
149  m_BLineSn = bline->getParameter(Parameter::sn);
150  m_BLineTw = bline->getParameter(Parameter::tw);
152  m_BLineTr = bline->getParameter(Parameter::tr);
154  m_BLineEp = bline->getParameter(Parameter::ep);
156  }
157 
158  if (station->hasMdtAsBuiltParams()) {
159  const MdtAsBuiltPar* asBuilt = station->getMdtAsBuiltParams();
160  using multilayer_t = MdtAsBuiltPar::multilayer_t;
161  using tubeSide_t = MdtAsBuiltPar::tubeSide_t;
162  const multilayer_t asBuiltMl = readoutEle->getMultilayer() == 1 ? multilayer_t::ML1 : multilayer_t::ML2;
163  m_asBuiltPosY0 = asBuilt->y0(asBuiltMl, tubeSide_t::POS);
164  m_asBuiltPosZ0 = asBuilt->z0(asBuiltMl, tubeSide_t::POS);
165  m_asBuiltPosAlpha = asBuilt->alpha (asBuiltMl, tubeSide_t::POS);
166  m_asBuiltPosPitchY = asBuilt->ypitch(asBuiltMl, tubeSide_t::POS);
167  m_asBuiltPosPitchZ = asBuilt->zpitch(asBuiltMl, tubeSide_t::POS);
168  m_asBuiltPosStagg = asBuilt->stagg (asBuiltMl, tubeSide_t::POS);
169 
170  m_asBuiltNegY0 = asBuilt->y0(asBuiltMl, tubeSide_t::NEG);
171  m_asBuiltNegZ0 = asBuilt->z0(asBuiltMl, tubeSide_t::NEG);
172  m_asBuiltNegAlpha = asBuilt->alpha (asBuiltMl, tubeSide_t::NEG);
173  m_asBuiltNegPitchY = asBuilt->ypitch(asBuiltMl, tubeSide_t::NEG);
174  m_asBuiltNegPitchZ = asBuilt->zpitch(asBuiltMl, tubeSide_t::NEG);
175  m_asBuiltNegStagg = asBuilt->stagg (asBuiltMl, tubeSide_t::NEG);
176  }
177 
178  const MuonMDT_CablingMap* cabling{nullptr};
179  if (!m_cablingKey.empty()){
181  ATH_CHECK(cablingHandle.isValid());
182  cabling = cablingHandle.cptr();
183  }
184 
185  m_readoutTransform = readoutEle->getMaterialGeom()->getAbsoluteTransform();
186 
187  const MdtIdHelper& id_helper{m_idHelperSvc->mdtIdHelper()};
188 
189  for (int lay = 1; lay <= readoutEle->getNLayers(); ++lay) {
190  for (int tube = 1; tube <= readoutEle->getNtubesperlayer(); ++tube) {
191  bool is_valid{false};
192  const Identifier tube_id =id_helper.channelID(readoutEle->identify(),
193  readoutEle->getMultilayer(),
194  lay, tube, is_valid);
195  if (!is_valid) continue;
196  if (m_idHelperSvc->stationNameString(tube_id) == "BMG") {
197  try{
198  readoutEle->transform(tube_id);
199  } catch (const std::runtime_error& err ){
200  ATH_MSG_VERBOSE("Tube does not exist "<<err.what());
201  continue;
202  }
203  }
204  const Amg::Transform3D layTransf{readoutEle->transform(tube_id)};
205  m_tubeLay.push_back(lay);
207 
208  m_tubeTransform.push_back(layTransf);
209 
210  const Amg::Vector3D roPos = readoutEle->ROPos(tube_id);
211  m_roPos.push_back(roPos);
214  m_wireLength.push_back(readoutEle->getWireLength(lay, tube));
215  if (cabling) {
216  MdtCablingData translation{};
217  if (!cabling->convert(tube_id, translation) ||
218  !cabling->getOnlineId(translation, msgStream())){
219  ATH_MSG_FATAL("Cabling translation failed");
220  return StatusCode::FAILURE;
221  }
222  m_cablingCSM.push_back(translation.csm);
223  m_cablingMROD.push_back(translation.mrod);
224  m_cablingTdcId.push_back(translation.tdcId);
225  m_cablingTdcCh.push_back(translation.channelId);
226  }
227  }
228  }
229  return m_tree.fill(ctx) ? StatusCode::SUCCESS : StatusCode::FAILURE;
230 }
231 } // namespace MuonGM
MuonGM::GeoModelMdtTest::m_asBuiltPosPitchY
MuonVal::ScalarBranch< float > & m_asBuiltPosPitchY
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:117
python.changerun.bn
bn
Definition: changerun.py:79
MdtReadoutElement.h
MuonGM::GeoModelMdtTest::m_asBuiltPosAlpha
MuonVal::ScalarBranch< float > & m_asBuiltPosAlpha
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:116
MuonGM::MuonStation::getALine_trat
double getALine_trat() const
Definition: MuonStation.h:203
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:115
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:118
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:18
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
MuonVal::MuonTesterTree::init
StatusCode init(OWNER *instance)
Initialize method.
MuonGM::GeoModelMdtTest::m_tubeLength
MuonVal::VectorBranch< double > & m_tubeLength
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:82
MuonGM::GeoModelMdtTest::m_tubeLay
MuonVal::VectorBranch< unsigned short > & m_tubeLay
Readout each tube specifically.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:76
ParticleTest.eg
eg
Definition: ParticleTest.py:29
MuonGM::GeoModelMdtTest::m_BLineTr
MuonVal::ScalarBranch< float > & m_BLineTr
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:109
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:67
MdtAsBuiltPar::z0
double z0(multilayer_t iML, tubeSide_t iTubeSide) const
Definition: MdtAsBuiltPar.h:48
MuonGM::GeoModelMdtTest::m_tubeTransform
MuonVal::CoordSystemsBranch m_tubeTransform
Ideal transformations to the tube rest frame.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:80
MuonGM::GeoModelMdtTest::m_BLineEn
MuonVal::ScalarBranch< float > & m_BLineEn
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:112
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:205
MuonGM::MuonStation::getALine_traz
double getALine_traz() const
Definition: MuonStation.h:202
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
MuonGM::MuonStation::getALine_tras
double getALine_tras() const
Definition: MuonStation.h:201
MuonGM::GeoModelMdtTest::m_excludeStat
Gaudi::Property< std::vector< std::string > > m_excludeStat
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:50
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:84
MuonGM::GeoModelMdtTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:39
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:156
MuonGM::GeoModelMdtTest::m_ALineRotS
MuonVal::ScalarBranch< float > & m_ALineRotS
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:97
BLinePar::getParameter
float getParameter(const Parameter p) const
Returns a given parameter.
Definition: BLinePar.h:40
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
isValid
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition: AtlasPID.h:812
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:107
MuonGM::GeoModelMdtTest::m_asBuiltNegAlpha
MuonVal::ScalarBranch< float > & m_asBuiltNegAlpha
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:123
MuonGM::GeoModelMdtTest::m_BLineBn
MuonVal::ScalarBranch< float > & m_BLineBn
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:104
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:88
MuonGM::GeoModelMdtTest::m_ALineTransS
MuonVal::ScalarBranch< float > & m_ALineTransS
Alignment parameters.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:94
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:59
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:96
GeoModelMdtTest.h
MuonMDT_CablingMap
Definition: MuonMDT_CablingMap.h:28
MuonGM::GeoModelMdtTest::m_BLinePg
MuonVal::ScalarBranch< float > & m_BLinePg
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:108
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:106
MuonGM::GeoModelMdtTest::m_tubeNum
MuonVal::VectorBranch< unsigned short > & m_tubeNum
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:77
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:182
fitman.bz
bz
Definition: fitman.py:412
MuonGM::MuonStation::getALine_rott
double getALine_rott() const
Definition: MuonStation.h:206
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:114
MuonGM::MuonReadoutElement::parentMuonStation
const MuonStation * parentMuonStation() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:136
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:103
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:71
MuonGM::GeoModelMdtTest::m_cablingTdcCh
MuonVal::VectorBranch< uint8_t > & m_cablingTdcCh
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:89
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonGM::GeoModelMdtTest::m_BLineEp
MuonVal::ScalarBranch< float > & m_BLineEp
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:111
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonGM::MuonStation::getNativeToAmdbLRS
const Amg::Transform3D & getNativeToAmdbLRS() const
Definition: MuonStation.h:193
MdtCablingData
Definition: MdtCablingData.h:82
MuonGM::GeoModelMdtTest::m_alignableNode
MuonVal::CoordTransformBranch m_alignableNode
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:68
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:87
MuonGM::GeoModelMdtTest::m_tubePitch
MuonVal::ScalarBranch< double > & m_tubePitch
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:63
MuonGM::GeoModelMdtTest::m_ALineRotT
MuonVal::ScalarBranch< float > & m_ALineRotT
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:98
BLinePar
Definition: BLinePar.h:14
MuonGM::GeoModelMdtTest::m_asBuiltNegPitchZ
MuonVal::ScalarBranch< float > & m_asBuiltNegPitchZ
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:125
MuonGM::GeoModelMdtTest::m_ALineRotZ
MuonVal::ScalarBranch< float > & m_ALineRotZ
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:99
MuonGM::MuonStation::getGeoTransform
const GeoAlignableTransform * getGeoTransform() const
Definition: MuonStation.h:178
MuonGM::GeoModelMdtTest::m_cablingCSM
MuonVal::VectorBranch< uint8_t > & m_cablingCSM
Cabling information.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:86
MuonGM::GeoModelMdtTest::dumpToTree
StatusCode dumpToTree(const EventContext &ctx, const MdtReadoutElement *readoutEle)
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:118
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:126
MuonGM::GeoModelMdtTest::m_tubeRad
MuonVal::ScalarBranch< double > & m_tubeRad
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:62
MuonGM::GeoModelMdtTest::m_asBuiltPosStagg
MuonVal::ScalarBranch< int > & m_asBuiltPosStagg
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:119
ParticleGun_EoverP_Config.pg
pg
Definition: ParticleGun_EoverP_Config.py:61
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:56
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
MuonGM::MuonStation::hasMdtAsBuiltParams
bool hasMdtAsBuiltParams() const
Definition: MuonStation.h:209
MuonGM::GeoModelMdtTest::m_asBuiltNegZ0
MuonVal::ScalarBranch< float > & m_asBuiltNegZ0
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:122
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:110
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:102
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:57
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:124
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonGM::GeoModelMdtTest::m_BLineSp
MuonVal::ScalarBranch< float > & m_BLineSp
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:105
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:386
MuonVal::CoordSystemsBranch::push_back
void push_back(const Amg::Transform3D &trans)
Definition: CoordTransformBranch.cxx:28
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
MuonGM::MuonStation::hasALines
bool hasALines() const
Definition: MuonStation.h:207
MuonGM::GeoModelMdtTest::execute
StatusCode execute() override
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:86
MuonGM::GeoModelMdtTest::m_numLayers
MuonVal::ScalarBranch< unsigned short > & m_numLayers
Number of tubes per layer.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:73
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::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:58
MuonGM::MuonStation::getALine_rots
double getALine_rots() const
Definition: MuonStation.h:204
MuonGM::GeoModelMdtTest::m_roPos
MuonVal::ThreeVectorBranch m_roPos
Position of the readout.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:92
MuonGM::GeoModelMdtTest::m_asBuiltNegY0
MuonVal::ScalarBranch< float > & m_asBuiltNegY0
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:121
MuonGM::GeoModelMdtTest::m_tree
MuonVal::MuonTesterTree m_tree
Write a TTree for validation purposes.
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:53
calibdata.tube
tube
Definition: calibdata.py:31
MuonGM::GeoModelMdtTest::m_chamberDesign
MuonVal::ScalarBranch< std::string > & m_chamberDesign
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.h:60
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:83
MuonGM::MuonReadoutElement::getStationEta
int getStationEta() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:193
MuonGM::GeoModelMdtTest::finalize
StatusCode finalize() override
Definition: MuonDetDescr/MuonGeoModelTest/src/GeoModelMdtTest.cxx:114
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:95
Identifier
Definition: IdentifierFieldParser.cxx:14