ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.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 "GeoModelTgcTest.h"
9 #include <fstream>
10 
11 using namespace ActsTrk;
12 
13 namespace MuonGMR4{
14 
15 GeoModelTgcTest::GeoModelTgcTest(const std::string& name, ISvcLocator* pSvcLocator):
16  AthHistogramAlgorithm(name,pSvcLocator) {}
17 
19  ATH_CHECK(m_idHelperSvc.retrieve());
22  ATH_CHECK(m_tree.init(this));
23 
24  const TgcIdHelper& id_helper{m_idHelperSvc->tgcIdHelper()};
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() != 7) {
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, 2).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);
47  }
49  if (m_testStations.empty()){
51  std::set<Identifier> excludedStations{};
52  for (const std::string& testCham : m_excludeStat) {
54  if (testCham.size() != 7) {
55  ATH_MSG_FATAL("Wrong format given " << testCham);
56  return StatusCode::FAILURE;
57  }
59  std::string statName = testCham.substr(0, 3);
60  unsigned int statEta = std::atoi(testCham.substr(3, 1).c_str()) *
61  (testCham[4] == 'A' ? 1 : -1);
62  unsigned int statPhi = std::atoi(testCham.substr(5, 2).c_str());
63  bool is_valid{false};
64  const Identifier eleId{id_helper.elementID(statName, statEta, statPhi, is_valid)};
65  if (!is_valid) {
66  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
67  return StatusCode::FAILURE;
68  }
70  excludedStations.insert(eleId);
71  }
73  std::copy_if(id_helper.detectorElement_begin(),
74  id_helper.detectorElement_end(),
75  std::inserter(m_testStations, m_testStations.end()),
76  [&](const Identifier& id) {
77  return excludedStations.count(id) == 0;
78  });
80  if (!excludedStations.empty()) {
81  std::stringstream excluded_report{};
82  for (const Identifier& id : excludedStations){
83  excluded_report << " *** " << m_idHelperSvc->toString(id) << std::endl;
84  }
85  ATH_MSG_INFO("Test all station except the following excluded ones " << std::endl << excluded_report.str());
86  }
87  } else {
88  std::stringstream sstr{};
89  for (const Identifier& id : m_testStations) {
90  sstr<<" *** "<<m_idHelperSvc->toString(id)<<std::endl;
91  }
92  ATH_MSG_INFO("Test only the following stations "<<std::endl<<sstr.str());
93  }
95  return StatusCode::SUCCESS;
96 }
99  return StatusCode::SUCCESS;
100 }
102  const EventContext& ctx{Gaudi::Hive::currentContext()};
103 
104  SG::ReadHandle<ActsGeometryContext> geoContextHandle{m_geoCtxKey, ctx};
105  ATH_CHECK(geoContextHandle.isPresent());
106  const ActsGeometryContext& gctx{*geoContextHandle};
107 
108  for (const Identifier& test_me : m_testStations) {
109  ATH_MSG_DEBUG("Test retrieval of Tgc detector element "<<m_idHelperSvc->toStringDetEl(test_me));
110  const TgcReadoutElement* reElement = m_detMgr->getTgcReadoutElement(test_me);
111  if (!reElement) {
112  continue;
113  }
115  if (reElement->identify() != test_me) {
116  ATH_MSG_FATAL("Expected to retrieve "<<m_idHelperSvc->toStringDetEl(test_me)
117  <<". But got instead "<<m_idHelperSvc->toStringDetEl(reElement->identify()));
118  return StatusCode::FAILURE;
119  }
120  const Amg::Transform3D globToLocal{reElement->globalToLocalTrans(gctx)};
121  const Amg::Transform3D& localToGlob{reElement->localToGlobalTrans(gctx)};
123  const Amg::Transform3D transClosure = globToLocal * localToGlob;
124  if (!Amg::doesNotDeform(transClosure)) {
125  ATH_MSG_FATAL("Closure test failed for "<<m_idHelperSvc->toStringDetEl(test_me)
126  <<". Ended up with "<< Amg::toString(transClosure) );
127  return StatusCode::FAILURE;
128  }
129  const TgcIdHelper& id_helper{m_idHelperSvc->tgcIdHelper()};
130  for (unsigned int gasGap = 1; gasGap <= reElement->nGasGaps(); ++gasGap) {
131  for (bool isStrip : {false, true}) {
132  const unsigned int nChan = isStrip ? reElement->numStrips(gasGap)
133  : reElement->numWireGangs(gasGap);
134  for (unsigned int chan = 1; chan <= nChan ; ++chan) {
135  bool isValid{false};
136  const Identifier channelId = id_helper.channelID(reElement->identify(),
138  if (!isValid) {
139  ATH_MSG_DEBUG("No valid Identifier constructed from the fields "
140  <<m_idHelperSvc->toStringDetEl(reElement->identify())
141  <<"isStrip: "<<(isStrip ? "yay" : "nay")<<" gasGap: "<<gasGap<<
142  " channel: "<<chan);
143  continue;
144  }
145  const IdentifierHash measHash{reElement->measurementHash(channelId)};
146  const Identifier backCnv = reElement->measurementId(measHash);
147  if (backCnv != channelId) {
148  ATH_MSG_FATAL("Forward-backward conversion of the Identifier "<<m_idHelperSvc->toString(channelId)
149  <<"failed. Got instead "<<m_idHelperSvc->toString(backCnv));
150  return StatusCode::FAILURE;
151  }
152  if (reElement->layerHash(channelId) != reElement->layerHash(measHash)) {
153  ATH_MSG_FATAL("The cosntruction of the layer hash from the Identifier "<<m_idHelperSvc->toString(channelId)
154  <<" gave something else than doing it from the measurement hash "<<measHash<<". "<<
155  reElement->layerHash(channelId)<<" vs. "<<reElement->layerHash(measHash));
156  }
157  }
158  }
159  }
160  ATH_CHECK(dumpToTree(ctx, gctx, reElement));
161  }
162  return StatusCode::SUCCESS;
163 }
164 StatusCode GeoModelTgcTest::dumpToTree(const EventContext& ctx,
165  const ActsGeometryContext& gctx,
166  const TgcReadoutElement* reElement) {
167 
168  m_stIndex = reElement->stationName();
169  m_stEta = reElement->stationEta();
170  m_stPhi = reElement->stationPhi();
171  m_stLayout = reElement->chamberDesign();
172  m_nGasGaps = reElement->nGasGaps();
173  m_readoutTransform = reElement->localToGlobalTrans(gctx);
174 
175  m_alignableNode = reElement->alignableTransform()->getDefTransform();
176 
177  m_shortWidth = reElement->moduleWidthS();
178  m_longWidth = reElement->moduleWidthL();
179  m_height = reElement->moduleHeight();
180  m_thickness = reElement->moduleThickness();
181 
182  const TgcIdHelper& idHelper{m_idHelperSvc->tgcIdHelper()};
183  for (unsigned int gap = 1; gap <= reElement->nGasGaps(); ++gap) {
185  for (unsigned int strip = 1 ; strip <= reElement->numStrips(gap); ++strip) {
186  const Identifier measId = idHelper.channelID(reElement->identify(),gap, true, strip);
187  const RadialStripDesign& layout{reElement->stripLayout(gap)};
188 
189  const Amg::Transform3D& localToGlobal{reElement->localToGlobalTrans(gctx,measId)};
190  if (strip == 1) {
191  m_layTans.push_back(localToGlobal);
192  m_layMeasPhi.push_back(true);
194  m_layShortWidth.push_back(2.*layout.shortHalfHeight());
195  m_layLongWidth.push_back(2.*layout.longHalfHeight());
196  m_layHeight.push_back(2.*layout.halfWidth());
198  }
200  m_stripNum.push_back(strip);
201  m_stripCenter.push_back(reElement->channelPosition(gctx, measId));
202  const RadialStripDesign& stripDesign{reElement->stripLayout(gap)};
203  const Amg::Vector2D locTop2D{stripDesign.leftEdge(strip).value_or(Amg::Vector2D::Zero())};
204  const Amg::Vector2D locBot2D{stripDesign.rightEdge(strip).value_or(Amg::Vector2D::Zero())};
205  const Amg::Vector3D globTop{localToGlobal * Amg::Vector3D{locTop2D.x(), locTop2D.y(), 0}};
206  const Amg::Vector3D globBot{localToGlobal * Amg::Vector3D{locBot2D.x(), locBot2D.y(), 0}};
207 
208  m_stripBottom.push_back(globBot);
209  m_stripTop.push_back(globTop);
210  m_locStripTop.push_back(locTop2D);
211  m_locStripCenter.push_back(stripDesign.center(strip).value_or(Amg::Vector2D::Zero()));
212  m_locStripBottom.push_back(locBot2D);
213 
214  }
216  for (unsigned int gang = 1; gang <= reElement->numWireGangs(gap); ++gang) {
217  const Identifier measId = idHelper.channelID(reElement->identify(),gap, false, gang);
218  const WireGroupDesign& layout{reElement->wireGangLayout(gap)};
219  if (gang == 1) {
220  m_layTans.push_back(reElement->localToGlobalTrans(gctx,measId));
221  m_layMeasPhi.push_back(false);
223  m_layShortWidth.push_back(2.*layout.shortHalfHeight());
224  m_layLongWidth.push_back(2.*layout.longHalfHeight());
225  m_layHeight.push_back(2.*layout.halfWidth());
226  m_layNumWires.push_back(layout.nAllWires());
227  }
228  m_gangNum.push_back(gang);
230  m_gangCenter.push_back(reElement->channelPosition(gctx, measId));
231  m_gangNumWires.push_back(layout.numWiresInGroup(gang));
232  m_locGangPos.push_back(layout.center(gang).value_or(Amg::Vector2D::Zero()));
233  m_gangLength.push_back(layout.stripLength(gang));
234  }
235  }
236  return m_tree.fill(ctx) ? StatusCode::SUCCESS : StatusCode::FAILURE;
237 }
238 
239 }
240 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MuonGMR4::GeoModelTgcTest::m_locGangPos
MuonVal::TwoVectorBranch m_locGangPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:93
MuonGMR4::GeoModelTgcTest::m_nGasGaps
MuonVal::ScalarBranch< uint8_t > & m_nGasGaps
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:57
MuonGMR4::TgcReadoutElement::numWireGangs
unsigned int numWireGangs(unsigned int gasGap) const
Returns the number of wire gangs for a given gasGap [1-3].
MuonGMR4::GeoModelTgcTest::m_layShortWidth
MuonVal::VectorBranch< float > & m_layShortWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:103
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
MuonGMR4::TgcReadoutElement::wireGangLayout
const WireGroupDesign & wireGangLayout(unsigned int gasGap) const
Returns access to the wire group design of the given gasGap [1-3] If the gap does not have a wires an...
MuonGMR4::GeoModelTgcTest::m_alignableNode
MuonVal::CoordTransformBranch m_alignableNode
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:61
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGMR4::WireGroupDesign
Definition: WireGroupDesign.h:23
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::GeoModelTgcTest::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:35
ActsGeometryContext.h
MuonGMR4::GeoModelTgcTest::m_locStripTop
MuonVal::TwoVectorBranch m_locStripTop
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:83
TgcIdHelper
Definition: TgcIdHelper.h:50
MuonGMR4::StripDesign::leftEdge
CheckVector2D leftEdge(int stripNumb) const
Returns the left edge of the strip (Global numbering scheme)
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
GeoModelTgcTest.h
MuonGMR4::MuonReadoutElement::chamberDesign
std::string chamberDesign() const
The chamber design refers to the construction parameters of a readout element.
MuonGMR4::TgcReadoutElement::nGasGaps
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
MuonGMR4::TgcReadoutElement::channelPosition
Amg::Vector3D channelPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the center of the measurement channel eta measurement: wire gang center phi measurement: stri...
MuonGMR4::GeoModelTgcTest::dumpToTree
StatusCode dumpToTree(const EventContext &ctx, const ActsGeometryContext &gctx, const TgcReadoutElement *readoutEle)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.cxx:164
MuonGMR4::GeoModelTgcTest::m_stripBottom
MuonVal::ThreeVectorBranch m_stripBottom
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:78
MuonGMR4::TgcReadoutElement::moduleWidthS
double moduleWidthS() const
Returns the length of the bottom edge of the chamber (short width)
MuonGMR4::GeoModelTgcTest::m_detMgr
const MuonDetectorManager * m_detMgr
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:44
MuonGMR4::GeoModelTgcTest::finalize
StatusCode finalize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.cxx:97
MuonGMR4::TgcReadoutElement::moduleWidthL
double moduleWidthL() const
Returns the length of the top edge of the chamber (top width)
MuonGMR4::GeoModelTgcTest::m_stripTop
MuonVal::ThreeVectorBranch m_stripTop
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:79
MuonGMR4::GeoModelTgcTest::m_excludeStat
Gaudi::Property< std::vector< std::string > > m_excludeStat
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:42
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
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:225
MuonGMR4::TgcReadoutElement::moduleHeight
double moduleHeight() const
Returns the height of the chamber (Distance bottom - topWidth)
MuonGMR4::GeoModelTgcTest::m_gangGasGap
MuonVal::VectorBranch< uint8_t > & m_gangGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:94
CaloSwCorrections.gap
def gap(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:212
MuonGMR4::GeoModelTgcTest::m_gangNumWires
MuonVal::VectorBranch< uint8_t > & m_gangNumWires
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:96
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::GeoModelTgcTest::m_stEta
MuonVal::ScalarBranch< short > & m_stEta
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:54
MuonGMR4::TgcReadoutElement::moduleThickness
double moduleThickness() const
Returns the thickness of the chamber.
MuonGMR4::TgcReadoutElement::numStrips
unsigned int numStrips(unsigned int gasGap) const
Returns the number of strips for a given gasGap [1-3].
MuonGMR4::TgcReadoutElement::stripLayout
const RadialStripDesign & stripLayout(unsigned int gasGap) const
Returns access to the strip design of the given gasGap [1-3] If the gap does not have strips an excep...
MuonVal::ThreeVectorBranch::push_back
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
Definition: ThreeVectorBranch.cxx:23
MuonGMR4::GeoModelTgcTest::m_stPhi
MuonVal::ScalarBranch< short > & m_stPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:55
MuonGMR4::GeoModelTgcTest::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/GeoModelTgcTest.h:41
MuonGMR4::GeoModelTgcTest::m_layLongWidth
MuonVal::VectorBranch< float > & m_layLongWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:104
MuonGMR4::GeoModelTgcTest::m_layTans
MuonVal::CoordSystemsBranch m_layTans
Layer dimensions.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:100
MuonGMR4::GeoModelTgcTest::m_stLayout
MuonVal::ScalarBranch< std::string > & m_stLayout
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:56
MuonGMR4::GeoModelTgcTest::m_stIndex
MuonVal::ScalarBranch< unsigned short > & m_stIndex
Identifier of the readout element.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:53
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
MuonGMR4::GeoModelTgcTest::m_gangNum
MuonVal::VectorBranch< unsigned int > & m_gangNum
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:95
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:20
MuonGMR4::GeoModelTgcTest::m_layNumWires
MuonVal::VectorBranch< uint16_t > & m_layNumWires
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:106
EventPrimitivesToStringConverter.h
MuonVal::TwoVectorBranch::push_back
void push_back(const Amg::Vector2D &vec)
interface using the Amg::Vector3D
Definition: TwoVectorBranch.cxx:21
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
MuonGMR4::GeoModelTgcTest::m_thickness
MuonVal::ScalarBranch< float > & m_thickness
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:66
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
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::TgcReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
MuonGMR4::GeoModelTgcTest::m_shortWidth
MuonVal::ScalarBranch< float > & m_shortWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:63
AnalysisUtils::copy_if
Out copy_if(In first, const In &last, Out res, const Pred &p)
Definition: IFilterUtils.h:30
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonGMR4::TgcReadoutElement::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
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
MuonGMR4::GeoModelTgcTest::m_stripGasGap
MuonVal::VectorBranch< uint8_t > & m_stripGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:85
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
MuonGMR4::TgcReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
MuonGMR4::GeoModelTgcTest::m_readoutTransform
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the readout element (Translation, ColX, ColY, ColZ)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:60
MuonGMR4::GeoModelTgcTest::m_layMeasPhi
MuonVal::VectorBranch< bool > & m_layMeasPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:101
MuonGMR4::MuonReadoutElement::alignableTransform
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.
MuonGMR4::GeoModelTgcTest::m_locStripCenter
MuonVal::TwoVectorBranch m_locStripCenter
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:81
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::GeoModelTgcTest::execute
StatusCode execute() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.cxx:101
MuonGMR4::GeoModelTgcTest::m_layHeight
MuonVal::VectorBranch< float > & m_layHeight
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:105
MuonGMR4::MuonReadoutElement::stationName
int stationName() const
Returns the stationName (BIS, BOS, etc) encoded into the integer.
MuonGMR4::GeoModelTgcTest::m_height
MuonVal::ScalarBranch< float > & m_height
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:65
MuonVal::CoordSystemsBranch::push_back
void push_back(const Amg::Transform3D &trans)
Definition: CoordTransformBranch.cxx:28
MuonGMR4::GeoModelTgcTest::m_testStations
std::set< Identifier > m_testStations
Set of stations to be tested.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:38
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
MuonGMR4::GeoModelTgcTest::m_longWidth
MuonVal::ScalarBranch< float > & m_longWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:64
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::MuonReadoutElement::stationEta
int stationEta() const
Returns the stationEta (positive A site, negative O site)
MuonGMR4::GeoModelTgcTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:32
MuonGMR4::GeoModelTgcTest::m_locStripBottom
MuonVal::TwoVectorBranch m_locStripBottom
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:82
MuonGMR4::GeoModelTgcTest::m_stripCenter
MuonVal::ThreeVectorBranch m_stripCenter
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:77
MuonGMR4::RadialStripDesign
Definition: RadialStripDesign.h:23
TgcReadoutElement.h
MuonGMR4::GeoModelTgcTest::m_gangCenter
MuonVal::ThreeVectorBranch m_gangCenter
Wire gangs.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:92
MuonGMR4::GeoModelTgcTest::m_layNumber
MuonVal::VectorBranch< uint8_t > & m_layNumber
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:102
MuonGMR4::MuonReadoutElement::stationPhi
int stationPhi() const
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
MuonGMR4::TgcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/TgcReadoutElement.h:19
MuonGMR4::GeoModelTgcTest::m_tree
MuonVal::MuonTesterTree m_tree
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:50
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
MuonGMR4::GeoModelTgcTest::m_stripNum
MuonVal::VectorBranch< unsigned int > & m_stripNum
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:86
MuonGMR4::GeoModelTgcTest::initialize
StatusCode initialize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.cxx:18
MuonGMR4::GeoModelTgcTest::m_gangLength
MuonVal::VectorBranch< float > & m_gangLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelTgcTest.h:97
Identifier
Definition: IdentifierFieldParser.cxx:14