ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.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 "GeoModelsTgcTest.h"
9 #include <fstream>
10 
11 using namespace ActsTrk;
12 namespace MuonGMR4{
13 
14 GeoModelsTgcTest::GeoModelsTgcTest(const std::string& name, ISvcLocator* pSvcLocator):
15 AthHistogramAlgorithm(name,pSvcLocator) {}
16 
18  ATH_CHECK(m_idHelperSvc.retrieve());
21  ATH_CHECK(m_tree.init(this));
22 
23 
24  const sTgcIdHelper& id_helper{m_idHelperSvc->stgcIdHelper()};
25  for (const std::string& testCham : m_selectStat) {
27  if (std::find(m_excludeStat.begin(), m_excludeStat.end(), testCham) != m_excludeStat.end()) {
28  continue;
29  }
31  if (testCham.size() != 6) {
32  ATH_MSG_FATAL("Wrong format given " << testCham);
33  return StatusCode::FAILURE;
34  }
36  std::string statName = testCham.substr(0, 3);
37  unsigned int statEta = std::atoi(testCham.substr(3, 1).c_str()) *
38  (testCham[4] == 'A' ? 1 : -1);
39  unsigned int statPhi = std::atoi(testCham.substr(5, 1).c_str());
40  bool is_valid{false};
41  const Identifier eleId = id_helper.elementID(statName, statEta, statPhi, is_valid);
42  if (!is_valid) {
43  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
44  return StatusCode::FAILURE;
45  }
46  std::copy_if(id_helper.detectorElement_begin(),
47  id_helper.detectorElement_end(),
48  std::inserter(m_testStations, m_testStations.end()),
49  [&](const Identifier& id) {
50  return id_helper.elementID(id) == eleId;
51  });
52  }
54  if (m_testStations.empty()){
56  std::set<Identifier> excludedStations{};
57  for (const std::string& testCham : m_excludeStat) {
59  if (testCham.size() != 6) {
60  ATH_MSG_FATAL("Wrong format given " << testCham);
61  return StatusCode::FAILURE;
62  }
64  std::string statName = testCham.substr(0, 3);
65  unsigned int statEta = std::atoi(testCham.substr(3, 1).c_str()) * (testCham[4] == 'A' ? 1 : -1);
66  unsigned int statPhi = std::atoi(testCham.substr(5, 1).c_str());
67  bool is_valid{false};
68  const Identifier eleId = id_helper.elementID(statName, statEta, statPhi, is_valid);
69  if (!is_valid) {
70  ATH_MSG_FATAL("Failed to deduce a station name for " << testCham);
71  return StatusCode::FAILURE;
72  }
74  std::copy_if(id_helper.detectorElement_begin(),
75  id_helper.detectorElement_end(),
76  std::inserter(excludedStations, excludedStations.end()),
77  [&](const Identifier& id) {
78  return id_helper.elementID(id) == eleId;
79  });
80  }
82  std::copy_if(id_helper.detectorElement_begin(),
83  id_helper.detectorElement_end(),
84  std::inserter(m_testStations, m_testStations.end()),
85  [&](const Identifier& id) {
86  return excludedStations.count(id) == 0;
87  });
89  if (!excludedStations.empty()) {
90  std::stringstream excluded_report{};
91  for (const Identifier& id : excludedStations){
92  excluded_report << " *** " << m_idHelperSvc->toString(id) << std::endl;
93  }
94  ATH_MSG_INFO("Test all station except the following excluded ones " << std::endl << excluded_report.str());
95  }
96  } else {
97  std::stringstream sstr{};
98  for (const Identifier& id : m_testStations){
99  sstr<<" *** "<<m_idHelperSvc->toString(id)<<std::endl;
100  }
101  ATH_MSG_INFO("Test only the following stations "<<std::endl<<sstr.str());
102  }
104  return StatusCode::SUCCESS;
105 }
108  return StatusCode::SUCCESS;
109 }
111  const EventContext& ctx{Gaudi::Hive::currentContext()};
112 
113  SG::ReadHandle<ActsGeometryContext> geoContextHandle{m_geoCtxKey, ctx};
114  ATH_CHECK(geoContextHandle.isPresent());
115  const ActsGeometryContext& gctx{*geoContextHandle};
116 
117 
118  for (const Identifier& test_me : m_testStations) {
119  ATH_MSG_DEBUG("Test retrieval of sTgc detector element "<<m_idHelperSvc->toStringDetEl(test_me));
120  const sTgcReadoutElement* reElement = m_detMgr->getsTgcReadoutElement(test_me);
121  if (!reElement) {
122  continue;
123  }
125  if (m_idHelperSvc->stgcIdHelper().elementID(reElement->identify()) != m_idHelperSvc->stgcIdHelper().elementID(test_me)) {
126  ATH_MSG_FATAL("Expected to retrieve "<<m_idHelperSvc->toString(test_me)
127  <<". But got instead "<<m_idHelperSvc->toString(reElement->identify()));
128  return StatusCode::FAILURE;
129  }
130  ATH_CHECK(dumpToTree(ctx,gctx,reElement));
131  const Amg::Transform3D globToLocal{reElement->globalToLocalTrans(gctx)};
132  const Amg::Transform3D& localToGlob{reElement->localToGlobalTrans(gctx)};
134  const Amg::Transform3D transClosure = globToLocal * localToGlob;
135  for (Amg::Vector3D axis :{Amg::Vector3D::UnitX(),Amg::Vector3D::UnitY(),Amg::Vector3D::UnitZ()}) {
136  const double closure_mag = std::abs( (transClosure*axis).dot(axis) - 1.);
137  if (closure_mag > std::numeric_limits<float>::epsilon() ) {
138  ATH_MSG_FATAL("Closure test failed for "<<m_idHelperSvc->toStringDetEl(test_me)<<" and axis "<<Amg::toString(axis, 0)
139  <<". Ended up with "<< Amg::toString(transClosure*axis) );
140  return StatusCode::FAILURE;
141  }
142  }
143  const sTgcIdHelper& id_helper{m_idHelperSvc->stgcIdHelper()};
144  for (unsigned int layer = 1; layer <= reElement->numLayers(); ++layer) {
145  for (int chType = sTgcIdHelper::sTgcChannelTypes::Pad; chType <= sTgcIdHelper::sTgcChannelTypes::Wire; ++chType) {
146  unsigned int numChannel = 0;
147  bool isValidLay{false};
148  const Identifier layID = id_helper.channelID(reElement->identify(),
149  reElement->multilayer(),
150  layer, chType, 1, isValidLay);
151  if (!isValidLay) {
152  continue;
153  }
154  switch(chType) {
155  case sTgcIdHelper::sTgcChannelTypes::Pad:
156  numChannel = reElement->numPads(layID);
157  break;
158 
159  case sTgcIdHelper::sTgcChannelTypes::Strip:
160  numChannel = reElement->numStrips(layID);
161  break;
162 
163  case sTgcIdHelper::sTgcChannelTypes::Wire:
164  numChannel = reElement->numWireGroups(layer);
165  break;
166  }
167  for (unsigned int channel = 1; channel < numChannel ; ++channel) {
168  bool isValidCh{false};
169  const Identifier chID = id_helper.channelID(reElement->identify(),
170  reElement->multilayer(),
171  layer, chType, channel, isValidCh);
172  if (!isValidCh) {
173  continue;
174  }
176  const IdentifierHash measHash = reElement->measurementHash(chID);
177  const IdentifierHash layHash = reElement->layerHash(chID);
178  ATH_MSG_VERBOSE("layer: "<<layer<<", chType: "<<chType
179  <<" --> layerHash: "<<static_cast<unsigned>(layHash));
180  const Identifier backCnv = reElement->measurementId(measHash);
181  if (backCnv != chID) {
182  ATH_MSG_FATAL("The back and forth conversion of "<<m_idHelperSvc->toString(chID)
183  <<" failed. Got "<<m_idHelperSvc->toString(backCnv));
184  return StatusCode::FAILURE;
185  }
186  if (layHash != reElement->layerHash(measHash)) {
187  ATH_MSG_FATAL("Constructing the layer hash from the identifier "<<
188  m_idHelperSvc->toString(chID)<<" leads to different layer hashes "<<
189  layHash<<" vs. "<< reElement->layerHash(measHash));
190  return StatusCode::FAILURE;
191  }
192  if (chType == sTgcIdHelper::sTgcChannelTypes::Strip) {
193  ATH_MSG_VERBOSE("Channel "<<m_idHelperSvc->toString(chID)<<" strip position "
194  <<Amg::toString(reElement->globalChannelPosition(gctx, measHash)));
195  }
196  else if (chType == sTgcIdHelper::sTgcChannelTypes::Wire) {
197  ATH_MSG_VERBOSE("Channel "<<m_idHelperSvc->toString(chID)<<" wireGroup position "
198  <<Amg::toString(reElement->globalChannelPosition(gctx, measHash)));
199  }
200  else if (chType == sTgcIdHelper::sTgcChannelTypes::Pad) {
201  ATH_MSG_VERBOSE("Channel "<<m_idHelperSvc->toString(chID)<<" Pad position "
202  <<Amg::toString(reElement->globalChannelPosition(gctx, measHash)));
203  }
204  }
205  }
206  }
207 
208  }
209  return StatusCode::SUCCESS;
210 }
211 
212 StatusCode GeoModelsTgcTest::dumpToTree(const EventContext& ctx,
213  const ActsGeometryContext& gctx,
214  const sTgcReadoutElement* reElement){
215 
216  m_stIndex = reElement->stationName();
217  m_stEta = reElement->stationEta();
218  m_stPhi = reElement->stationPhi();
219  m_stML = reElement->multilayer();
220  m_chamberDesign = reElement->chamberDesign();
222  m_numLayers = reElement->numLayers();
223  m_gasTck = reElement->gasGapThickness();
225  m_sChamberLength = reElement->sChamberLength();
226  m_lChamberLength = reElement->lChamberLength();
227  m_chamberHeight = reElement->chamberHeight();
228 
230  const Amg::Transform3D& transform{reElement->localToGlobalTrans(gctx)};
232  m_alignableNode = reElement->alignableTransform()->getDefTransform();
233 
234  const sTgcIdHelper& id_helper{m_idHelperSvc->stgcIdHelper()};
235  for (unsigned int layer = 1; layer <= reElement->numLayers(); ++layer) {
236  for (int chType = sTgcIdHelper::sTgcChannelTypes::Pad; chType <= sTgcIdHelper::sTgcChannelTypes::Wire; ++chType) {
237  unsigned int numWireGroup = 0;
239  bool isValidLay{false};
240  const Identifier layID = id_helper.channelID(reElement->identify(),
241  reElement->multilayer(),
242  layer, chType, 1, isValidLay);
243  if (!isValidLay) {
244  continue;
245  }
247  m_sGapLength = reElement->sGapLength(layID);
248  m_lGapLength = reElement->lGapLength(layID);
249  m_sPadLength = reElement->sPadLength(layID);
250  m_lPadLength = reElement->lPadLength(layID);
251  m_gapHeight = reElement->gapHeight(layID);
252  m_yCutout = reElement->yCutout(layID);
253 
254  switch (chType) {
255  case sTgcIdHelper::sTgcChannelTypes::Pad:
256  m_numPads.push_back(reElement->numPads(layID));
257  m_numPadEta.push_back(reElement->numPadEta(layID));
258  m_numPadPhi.push_back(reElement->numPadPhi(layID));
259  m_firstPadHeight.push_back(reElement->firstPadHeight(layID));
260  m_padHeight.push_back(reElement->padHeight(layID));
261  m_padPhiShift.push_back(reElement->padPhiShift(layID));
262  m_firstPadPhiDiv.push_back(reElement->firstPadPhiDiv(layID));
263  m_anglePadPhi = reElement->anglePadPhi(layID);
264  m_beamlineRadius = reElement->beamlineRadius(layID);
265  for (unsigned int pad = 1; pad <= reElement->numPads(layID); ++pad) {
266  bool isValidPad{false};
267  const Identifier padID = id_helper.channelID(reElement->identify(),
268  reElement->multilayer(),
269  layer, chType, pad, isValidPad);
270  if (!isValidPad) {
271  ATH_MSG_WARNING("Invalid Identifier detected for readout element "
272  <<m_idHelperSvc->toStringDetEl(reElement->identify())
273  <<" layer: "<<layer<<" pad: "<<pad<<" channelType: "<<chType);
274  continue;
275  }
276 
277  Amg::Vector2D localPadPos(Amg::Vector2D::Zero());
278  std::array<Amg::Vector2D,4> localPadCorners{make_array<Amg::Vector2D, 4>(Amg::Vector2D::Zero())};
279  Amg::Vector3D globalPadPos(Amg::Vector3D::Zero());
280  std::array<Amg::Vector3D,4> globalPadCorners{make_array<Amg::Vector3D, 4>(Amg::Vector3D::Zero())};
281 
282  localPadPos = reElement->localChannelPosition(padID);
283  localPadCorners = reElement->localPadCorners(padID);
284 
285  m_localPadPos.push_back(localPadPos);
286  m_localPadCornerBL.push_back(localPadCorners[0]);
287  m_localPadCornerBR.push_back(localPadCorners[1]);
288  m_localPadCornerTL.push_back(localPadCorners[2]);
289  m_localPadCornerTR.push_back(localPadCorners[3]);
290 
291  Amg::Vector2D hitCorrection{-.1, -.1};
292  Amg::Vector2D hitPos = localPadCorners[3] + hitCorrection;
293  m_hitPosition.push_back(hitPos);
294  m_padNumber.push_back(reElement->padNumber(hitPos, padID));
295 
296  globalPadPos = reElement->globalChannelPosition(gctx, padID);
297  globalPadCorners = reElement->globalPadCorners(gctx, padID);
298 
299  m_globalPadPos.push_back(globalPadPos);
300  m_globalPadCornerBR.push_back(globalPadCorners[0]);
301  m_globalPadCornerBL.push_back(globalPadCorners[1]);
302  m_globalPadCornerTR.push_back(globalPadCorners[2]);
303  m_globalPadCornerTL.push_back(globalPadCorners[3]);
304 
305  m_padEta.push_back(reElement->padEta(padID));
306  m_padPhi.push_back(reElement->padPhi(padID));
308 
309  if (pad != 1) continue;
310  const Amg::Transform3D locToGlob = reElement->localToGlobalTrans(gctx, padID);
311  ATH_MSG_DEBUG("The local to global transformation on layers is: " << Amg::toString(locToGlob));
312  m_padRot.push_back(locToGlob);
314 
315  }
316  break;
317 
318  case sTgcIdHelper::sTgcChannelTypes::Strip:
319  m_numStrips = reElement->numStrips(layID);
320  m_stripPitch = reElement->stripPitch(layID);
321  m_stripWidth = reElement->stripWidth(layID);
322  for (unsigned int strip = 1; strip <= reElement->numStrips(layID); ++strip) {
323  bool isValidStrip{false};
324  const Identifier stripID = id_helper.channelID(reElement->identify(),
325  reElement->multilayer(),
326  layer, chType, strip, isValidStrip);
327  if (!isValidStrip) {
328  ATH_MSG_WARNING("Invalid Identifier detected for readout element "
329  <<m_idHelperSvc->toStringDetEl(reElement->identify())
330  <<" layer: "<<layer<<" strip: "<<strip<<" channelType: "<<chType);
331  continue;
332  }
333  m_localStripPos.push_back((reElement->localChannelPosition(stripID)).block<2,1>(0,0));
334  m_globalStripPos.push_back(reElement->globalChannelPosition(gctx, stripID));
336  m_stripNum.push_back(strip);
337  m_stripLengths.push_back(reElement->stripLength(stripID));
338 
339  if (strip != 1) continue;
340  const Amg::Transform3D locToGlob = reElement->localToGlobalTrans(gctx, stripID);
341  ATH_MSG_DEBUG("The local to global transformation on layers is: " << Amg::toString(locToGlob));
342  m_stripRot.push_back(locToGlob);
344 
345  }
346  break;
347 
348  case sTgcIdHelper::sTgcChannelTypes::Wire:
349  m_wireGroupWidth = reElement->wireGroupWidth(layer);
350  numWireGroup = reElement->numWireGroups(layer);
351  m_wirePitch = reElement->wirePitch(layID);
352  m_wireWidth = reElement->wireWidth(layID);
353  m_numWires.push_back(reElement->numWires(layer));
355  m_numWireGroups.push_back(numWireGroup);
356  m_wireCutout.push_back(reElement->wireCutout(layer));
357  std::cout << "The number of wire groups are:" << numWireGroup << std::endl;
358  for (unsigned int wireGroup = 1; wireGroup <= numWireGroup; ++wireGroup) {
359  bool isValidWire{false};
360  const Identifier wireGroupID = id_helper.channelID(reElement->identify(),
361  reElement->multilayer(),
362  layer, chType, wireGroup, isValidWire);
363  if (!isValidWire) {
364  ATH_MSG_WARNING("Invalid Identifier detected for readout element "
365  <<m_idHelperSvc->toStringDetEl(reElement->identify())
366  <<" layer: "<<layer<<" wireGroup: "<<wireGroup<<" channelType: "<<chType);
367  continue;
368  }
369  m_localWireGroupPos.push_back(reElement->localChannelPosition(wireGroupID));
370  m_globalWireGroupPos.push_back(reElement->globalChannelPosition(gctx, wireGroupID));
372  m_wireGroupNum.push_back(wireGroup);
373 
374  if (wireGroup != 1) continue;
375  const Amg::Transform3D locToGlob = reElement->localToGlobalTrans(gctx, wireGroupID);
376  ATH_MSG_DEBUG("The local to global transformation on layers is: " << Amg::toString(locToGlob));
377  m_wireGroupRot.push_back(locToGlob);
379  }
380  break;
381  }
382  }
383  }
384  return m_tree.fill(ctx) ? StatusCode::SUCCESS : StatusCode::FAILURE;
385 }
386 
387 }
388 
MuonGMR4::sTgcReadoutElement::localChannelPosition
Amg::Vector2D localChannelPosition(const Identifier &measId) const
Returns the local pad/strip/wireGroup position.
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MuonGMR4::sTgcReadoutElement::yCutout
double yCutout(const Identifier &measId) const
Returns the yCutout value of the chamber.
chType
sTgcIdHelper::sTgcChannelTypes chType
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/NSWGeoPlottingAlg.cxx:20
MuonGMR4::GeoModelsTgcTest::m_wireWidth
MuonVal::ScalarBranch< float > & m_wireWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:106
MuonGMR4::sTgcReadoutElement::multilayer
int multilayer() const
Returns the multilayer of the sTgcReadoutElement.
MuonGMR4::GeoModelsTgcTest::m_lChamberLength
MuonVal::ScalarBranch< float > & m_lChamberLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:64
MuonGMR4::sTgcReadoutElement::padHeight
double padHeight(const Identifier &measId) const
Returns the height of all the pads that are not adjacent to the bottom edge of the trapezoid active a...
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGMR4::GeoModelsTgcTest::m_padNumber
MuonVal::VectorBranch< int > & m_padNumber
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:132
MuonGMR4::sTgcReadoutElement::padEta
unsigned int padEta(const Identifier &measId) const
Returns the Eta index of the pad for the given pad identifier.
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
MuonGMR4::GeoModelsTgcTest::m_stripLengths
MuonVal::VectorBranch< float > & m_stripLengths
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:98
MuonGMR4::GeoModelsTgcTest::m_padRotGasGap
MuonVal::VectorBranch< uint8_t > & m_padRotGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:88
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::GeoModelsTgcTest::m_wireGroupRotGasGap
MuonVal::VectorBranch< uint8_t > & m_wireGroupRotGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:84
MuonGMR4::GeoModelsTgcTest::m_tree
MuonVal::MuonTesterTree m_tree
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:49
ActsGeometryContext.h
MuonGMR4::sTgcReadoutElement::numPadEta
unsigned int numPadEta(const Identifier &measId) const
Returns the number of pads in the eta direction in the given layer.
MuonGMR4::GeoModelsTgcTest::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/GeoModelsTgcTest.h:41
MuonGMR4::GeoModelsTgcTest::m_globalPadCornerTL
MuonVal::ThreeVectorBranch m_globalPadCornerTL
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:137
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonGMR4::GeoModelsTgcTest::m_localPadPos
MuonVal::TwoVectorBranch m_localPadPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:130
MuonGMR4::GeoModelsTgcTest::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:32
MuonGMR4::sTgcReadoutElement::numPadPhi
unsigned int numPadPhi(const Identifier &measId) const
Returns the number of pads in the Phi direction in the given gasGap layer.
MuonGMR4::MuonReadoutElement::chamberDesign
const std::string & chamberDesign() const
The chamber design refers to the construction parameters of a readout element.
MuonGMR4::GeoModelsTgcTest::m_localPadCornerBL
MuonVal::TwoVectorBranch m_localPadCornerBL
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:127
MuonGMR4::GeoModelsTgcTest::m_wireGroupNum
MuonVal::VectorBranch< uint8_t > & m_wireGroupNum
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:110
MuonGMR4::GeoModelsTgcTest::m_hitPosition
MuonVal::TwoVectorBranch m_hitPosition
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:131
MuonGMR4::GeoModelsTgcTest::m_padPhiShift
MuonVal::VectorBranch< float > & m_padPhiShift
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:121
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
MuonGMR4::GeoModelsTgcTest::m_firstWireGroupWidth
MuonVal::VectorBranch< uint > & m_firstWireGroupWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:102
MuonGMR4::GeoModelsTgcTest::m_globalPadCornerBL
MuonVal::ThreeVectorBranch m_globalPadCornerBL
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:135
MuonGMR4::GeoModelsTgcTest::m_numPadEta
MuonVal::VectorBranch< uint > & m_numPadEta
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:117
MuonGMR4::GeoModelsTgcTest::m_padRot
MuonVal::CoordSystemsBranch m_padRot
Rotation matrix of the respective pad layers.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:87
MuonGMR4::GeoModelsTgcTest::m_sPadLength
MuonVal::ScalarBranch< float > & m_sPadLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:115
MuonGMR4::GeoModelsTgcTest::m_wireGroupGasGap
MuonVal::VectorBranch< uint8_t > & m_wireGroupGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:111
MuonGMR4::sTgcReadoutElement::stripLength
double stripLength(const Identifier &measId) const
Length of each strip.
MuonGMR4::MuonReadoutElement::globalToLocalTrans
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx:78
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
sTgcIdHelper::sTgcChannelTypes
sTgcChannelTypes
Definition: sTgcIdHelper.h:190
MuonGMR4::GeoModelsTgcTest::m_stIndex
MuonVal::ScalarBranch< short > & m_stIndex
Identifier of the readout element.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:52
MuonGMR4::sTgcReadoutElement::sPadLength
double sPadLength(const Identifier &measId) const
Length of gas Gap on short side for wireGroup/Pads.
MuonGMR4::GeoModelsTgcTest::initialize
StatusCode initialize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.cxx:17
MuonGMR4::sTgcReadoutElement::padNumber
unsigned int padNumber(const Identifier &measId) const
Returns the pad number in the conventional pad numbering scheme from the sequential channel number.
MuonGMR4::GeoModelsTgcTest::m_stPhi
MuonVal::ScalarBranch< short > & m_stPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:54
MuonGMR4::GeoModelsTgcTest::m_globalPadCornerBR
MuonVal::ThreeVectorBranch m_globalPadCornerBR
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:134
MuonGMR4::sTgcReadoutElement::measurementHash
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
MuonGMR4::sTgcReadoutElement::chamberHeight
double chamberHeight() const
Height of the chamber.
MuonGMR4::GeoModelsTgcTest::m_sChamberLength
MuonVal::ScalarBranch< float > & m_sChamberLength
Chamber Length for debug.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:63
MuonGMR4::GeoModelsTgcTest::m_yCutout
MuonVal::ScalarBranch< float > & m_yCutout
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:60
MuonGMR4::sTgcReadoutElement::firstPadPhiDiv
double firstPadPhiDiv(const Identifier &measId) const
Returns the angle of the first pad outer edge w.r.t. the gasGap center from the beamline for the give...
MuonGMR4::GeoModelsTgcTest::m_padHeight
MuonVal::VectorBranch< float > & m_padHeight
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:120
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::GeoModelsTgcTest::m_gasTck
MuonVal::ScalarBranch< float > & m_gasTck
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:61
MuonGMR4::GeoModelsTgcTest::m_stripPitch
MuonVal::ScalarBranch< float > & m_stripPitch
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:92
MuonGMR4::sTgcReadoutElement::padPhiShift
double padPhiShift(const Identifier &measId) const
Returns the staggering shift of inner pad edges in the phi direction.
MuonGMR4::GeoModelsTgcTest::m_numWireGroups
MuonVal::VectorBranch< uint > & m_numWireGroups
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:103
MuonVal::ThreeVectorBranch::push_back
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
Definition: ThreeVectorBranch.cxx:23
MuonGMR4::GeoModelsTgcTest::m_lGapLength
MuonVal::ScalarBranch< float > & m_lGapLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:68
sTgcReadoutElement.h
MuonGMR4::GeoModelsTgcTest::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:35
MuonGMR4::GeoModelsTgcTest::dumpToTree
StatusCode dumpToTree(const EventContext &ctx, const ActsGeometryContext &gctx, const sTgcReadoutElement *readoutEle)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.cxx:212
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
MuonGMR4::GeoModelsTgcTest::m_readoutTransform
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the readout element (Translation, ColX, ColY, ColZ)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:75
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:20
MuonGMR4::GeoModelsTgcTest::m_stripRotGasGap
MuonVal::VectorBranch< uint8_t > & m_stripRotGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:80
EventPrimitivesToStringConverter.h
MuonVal::TwoVectorBranch::push_back
void push_back(const Amg::Vector2D &vec)
interface using the Amg::Vector3D
Definition: TwoVectorBranch.cxx:21
MuonGMR4::sTgcReadoutElement::numWireGroups
unsigned int numWireGroups(unsigned int gasGap) const
Number of wire groups in the gas gap.
MuonGMR4::GeoModelsTgcTest::m_stripNum
MuonVal::VectorBranch< uint > & m_stripNum
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:96
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonGMR4::GeoModelsTgcTest::m_firstPadPhiDiv
MuonVal::VectorBranch< float > & m_firstPadPhiDiv
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:122
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MuonGMR4::GeoModelsTgcTest::m_stripWidth
MuonVal::ScalarBranch< float > & m_stripWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:93
MuonGMR4::GeoModelsTgcTest::m_wireGroupRot
MuonVal::CoordSystemsBranch m_wireGroupRot
Rotation matrix of the respective wireGroup layers.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:83
MuonGMR4::GeoModelsTgcTest::m_gapHeight
MuonVal::ScalarBranch< float > & m_gapHeight
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:69
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGMR4::GeoModelsTgcTest::m_alignableNode
MuonVal::CoordTransformBranch m_alignableNode
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:76
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
MuonGMR4::GeoModelsTgcTest::m_numPads
MuonVal::VectorBranch< uint > & m_numPads
Pad dimensions.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:114
MuonGMR4::sTgcReadoutElement::gapHeight
double gapHeight(const Identifier &measId) const
Height of gas Gap.
MuonGMR4::GeoModelsTgcTest::m_stripRot
MuonVal::CoordSystemsBranch m_stripRot
Rotation matrix of the respective strip layers.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:79
MuonGMR4::GeoModelsTgcTest::m_padEta
MuonVal::VectorBranch< uint > & m_padEta
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:141
MuonGMR4::GeoModelsTgcTest::m_beamlineRadius
MuonVal::ScalarBranch< float > & m_beamlineRadius
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:124
MuonGMR4::GeoModelsTgcTest::m_stEta
MuonVal::ScalarBranch< short > & m_stEta
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:53
MuonGMR4::GeoModelsTgcTest::m_numWires
MuonVal::VectorBranch< uint > & m_numWires
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:101
MuonGMR4::GeoModelsTgcTest::m_localPadCornerBR
MuonVal::TwoVectorBranch m_localPadCornerBR
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:126
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::GeoModelsTgcTest::m_padGasGap
MuonVal::VectorBranch< uint8_t > & m_padGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:140
MuonGMR4::GeoModelsTgcTest::m_localStripPos
MuonVal::TwoVectorBranch m_localStripPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:94
GeoModelsTgcTest.h
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::GeoModelsTgcTest::m_lPadLength
MuonVal::ScalarBranch< float > & m_lPadLength
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:116
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
MuonGMR4::sTgcReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
dot.dot
def dot(G, fn, nodesToHighlight=[])
Definition: dot.py:5
MuonGMR4::GeoModelsTgcTest::m_globalPadPos
MuonVal::ThreeVectorBranch m_globalPadPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:138
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonGMR4::sTgcReadoutElement::beamlineRadius
double beamlineRadius(const Identifier &measId) const
Returns the distance between the gasGap center and the beamline.
MuonGMR4::GeoModelsTgcTest::m_detMgr
const MuonDetectorManager * m_detMgr
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:44
MuonGMR4::GeoModelsTgcTest::m_firstPadHeight
MuonVal::VectorBranch< float > & m_firstPadHeight
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:119
MuonGMR4::GeoModelsTgcTest::m_excludeStat
Gaudi::Property< std::vector< std::string > > m_excludeStat
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:42
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
MuonGMR4::GeoModelsTgcTest::m_globalWireGroupPos
MuonVal::ThreeVectorBranch m_globalWireGroupPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:109
MuonGMR4::sTgcReadoutElement::sChamberLength
double sChamberLength() const
Length of the chamber on the short side.
MuonGMR4::GeoModelsTgcTest::m_testStations
std::set< Identifier > m_testStations
Set of stations to be tested.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:38
MuonGMR4::sTgcReadoutElement::globalChannelPosition
Amg::Vector3D globalChannelPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global pad/strip/wireGroup position.
MuonGMR4::sTgcReadoutElement::lChamberLength
double lChamberLength() const
Length of the chamber on the long side.
MuonGMR4::sTgcReadoutElement::gasGapThickness
double gasGapThickness() const
Returns the thickness of the gas gap.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MuonGMR4::MuonReadoutElement::alignableTransform
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.
MuonGMR4::sTgcReadoutElement::wireGroupWidth
unsigned int wireGroupWidth(unsigned int gasGap) const
Number of wires in a normal wire group.
MuonGMR4::sTgcReadoutElement::sGapLength
double sGapLength(const Identifier &measId) const
Length of gas Gap on short side for strips.
sTgcIdHelper
Definition: sTgcIdHelper.h:55
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
MuonGMR4::GeoModelsTgcTest::m_wireGroupWidth
MuonVal::ScalarBranch< uint > & m_wireGroupWidth
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:107
MuonGMR4::GeoModelsTgcTest::m_padPhi
MuonVal::VectorBranch< uint > & m_padPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:142
MuonGMR4::GeoModelsTgcTest::m_anglePadPhi
MuonVal::ScalarBranch< float > & m_anglePadPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:123
MuonGMR4::GeoModelsTgcTest::m_wirePitch
MuonVal::ScalarBranch< float > & m_wirePitch
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:105
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::GeoModelsTgcTest::m_stripGasGap
MuonVal::VectorBranch< uint8_t > & m_stripGasGap
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:97
MuonGMR4::sTgcReadoutElement::numWires
unsigned int numWires(unsigned int gasGap) const
Number of wires in the gas gap.
MuonGMR4::GeoModelsTgcTest::m_chamberHeight
MuonVal::ScalarBranch< float > & m_chamberHeight
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:65
MuonGMR4::GeoModelsTgcTest::m_wireCutout
MuonVal::VectorBranch< float > & m_wireCutout
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:104
MuonGMR4::sTgcReadoutElement::numLayers
unsigned int numLayers() const
Returns the number of gas gap layers.
MuonGMR4::GeoModelsTgcTest::m_numStrips
MuonVal::ScalarBranch< uint > & m_numStrips
Strip dimensions.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:91
MuonGMR4::sTgcReadoutElement::padPhi
unsigned int padPhi(const Identifier &measId) const
Returns the Phi index of the pad for the given pad identifier.
MuonGMR4::sTgcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h:20
MuonGMR4::GeoModelsTgcTest::m_localPadCornerTL
MuonVal::TwoVectorBranch m_localPadCornerTL
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:129
MuonGMR4::GeoModelsTgcTest::m_numLayers
MuonVal::ScalarBranch< short > & m_numLayers
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:59
MuonGMR4::sTgcReadoutElement::firstWireGroupWidth
unsigned int firstWireGroupWidth(unsigned int gasGap) const
Number of wires in the first wire group.
MuonGMR4::sTgcReadoutElement::stripWidth
double stripWidth(const Identifier &measId) const
Width of a strip.
MuonGMR4::MuonReadoutElement::stationName
int stationName() const
Returns the stationName (BIS, BOS, etc) encoded into the integer.
MuonGMR4::sTgcReadoutElement::anglePadPhi
double anglePadPhi(const Identifier &measId) const
Returns the angular pitch of the pads in the phi direction.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonGMR4::sTgcReadoutElement::wireCutout
double wireCutout(unsigned int gasGap) const
Wire Cutout of a gas Gap.
MuonGMR4::sTgcReadoutElement::globalPadCorners
globalCornerArray globalPadCorners(const ActsGeometryContext &ctx, const Identifier &measId) const
MuonVal::CoordSystemsBranch::push_back
void push_back(const Amg::Transform3D &trans)
Definition: CoordTransformBranch.cxx:28
MuonGMR4::sTgcReadoutElement::localPadCorners
localCornerArray localPadCorners(const Identifier &measId) const
MuonGMR4::GeoModelsTgcTest::m_sGapLength
MuonVal::ScalarBranch< float > & m_sGapLength
GasGap Lengths for debug.
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:67
MuonVal::MuonTesterTree::fill
bool fill(const EventContext &ctx)
Fills the tree per call.
Definition: MuonTesterTree.cxx:89
MuonGMR4::GeoModelsTgcTest::m_globalPadCornerTR
MuonVal::ThreeVectorBranch m_globalPadCornerTR
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:136
MuonGMR4::sTgcReadoutElement::numPads
unsigned int numPads(const Identifier &measId) const
Pads Total number of pads in the given layer.
MuonGMR4::sTgcReadoutElement::numStrips
unsigned int numStrips(const Identifier &measId) const
Strips Number of strips in a chamber.
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::sTgcReadoutElement::lGapLength
double lGapLength(const Identifier &measId) const
Length of gas Gap on long side for strips.
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:54
MuonGMR4::GeoModelsTgcTest::m_localWireGroupPos
MuonVal::TwoVectorBranch m_localWireGroupPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:108
MuonGMR4::sTgcReadoutElement::wirePitch
double wirePitch(const Identifier &measId) const
Wires Pitch of the wire.
MuonGMR4::GeoModelsTgcTest::finalize
StatusCode finalize() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.cxx:106
MuonGMR4::MuonReadoutElement::stationEta
int stationEta() const
Returns the stationEta (positive A site, negative O site)
MuonGMR4::GeoModelsTgcTest::m_stML
MuonVal::ScalarBranch< short > & m_stML
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:55
MuonGMR4::sTgcReadoutElement::lPadLength
double lPadLength(const Identifier &measId) const
Length of gas Gap on long side for wireGroup/Pads.
MuonGMR4::sTgcReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
Transforms the Identifier into a layer hash.
MuonGMR4::GeoModelsTgcTest::execute
StatusCode execute() override
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.cxx:110
MuonGMR4::GeoModelsTgcTest::m_chamberDesign
MuonVal::ScalarBranch< std::string > & m_chamberDesign
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:56
MuonGMR4::MuonReadoutElement::stationPhi
int stationPhi() const
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
MuonGMR4::sTgcReadoutElement::firstPadHeight
double firstPadHeight(const Identifier &measId) const
Returns the height of the pads that are adjacent to the bottom edge of the trapezoid active area.
MuonGMR4::sTgcReadoutElement::stripPitch
double stripPitch(const Identifier &measId) const
Pitch of a strip.
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
MuonGMR4::GeoModelsTgcTest::m_numPadPhi
MuonVal::VectorBranch< uint > & m_numPadPhi
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:118
MuonGMR4::GeoModelsTgcTest::m_localPadCornerTR
MuonVal::TwoVectorBranch m_localPadCornerTR
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:128
MuonGMR4::GeoModelsTgcTest::m_globalStripPos
MuonVal::ThreeVectorBranch m_globalStripPos
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelsTgcTest.h:95
Identifier
Definition: IdentifierFieldParser.cxx:14
MuonGMR4::sTgcReadoutElement::wireWidth
double wireWidth(const Identifier &measId) const
Width of a single wire.