ATLAS Offline Software
MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <fstream>
8 #include <utility>
9 
11 #include "GeoModelHelpers/throwExcept.h"
22 
23 namespace {
24  template <typename read_out> void clearCache(std::vector<std::unique_ptr<read_out>>& array) {
25  for (std::unique_ptr<read_out>& ele : array) {
26  if (ele) ele->clearCache();
27  }
28  }
29  template <typename read_out> void fillCache(std::vector<std::unique_ptr<read_out>>& array) {
30  for (std::unique_ptr<read_out>& ele : array) {
31  if (ele) ele->fillCache();
32  }
33  }
34 }
35 
36 namespace MuonGM {
37 
38  MuonDetectorManager::MuonDetectorManager(): AthMessaging{"MGM::MuonDetectorManager"} {
39  setName("Muon");
40  if (m_idHelperSvc.retrieve().isFailure()) {
41  THROW_EXCEPTION("MuonDetectorManager() - No IdHelper svc is available");
42  }
43  loadStationIndices();
44  if (m_idHelperSvc->hasMDT()){
45  m_mdtArray.resize(m_idHelperSvc->mdtIdHelper().detectorElement_hash_max());
46  }
47  if (m_idHelperSvc->hasCSC()){
48  m_cscArray.resize(m_idHelperSvc->cscIdHelper().detectorElement_hash_max());
49  }
50  if (m_idHelperSvc->hasTGC()){
51  m_tgcArray.resize(m_idHelperSvc->tgcIdHelper().detectorElement_hash_max());
52  }
53  if (m_idHelperSvc->hasRPC()){
54  m_rpcArray.resize(m_idHelperSvc->rpcIdHelper().detectorElement_hash_max());
55  }
56 
57  if (m_idHelperSvc->hasMM()){
58  m_mmcArray.resize(m_idHelperSvc->mmIdHelper().detectorElement_hash_max());
59  }
60  if (m_idHelperSvc->hasSTGC()){
61  m_stgArray.resize(m_idHelperSvc->stgcIdHelper().detectorElement_hash_max());
62  }
63  }
64 
66 
74  }
76  ATH_MSG_INFO( "Filling cache" );
83  }
85  const MuonReadoutElement* reEle{nullptr};
87  switch (m_idHelperSvc->technologyIndex(id)){
88  case TechIndex::MDT:
89  reEle = getMdtReadoutElement(id);
90  break;
91  case TechIndex::RPC:
92  reEle = getRpcReadoutElement(id);
93  break;
94  case TechIndex::TGC:
95  reEle = getTgcReadoutElement(id);
96  break;
97  case TechIndex::CSCI:
98  reEle = getCscReadoutElement(id);
99  break;
100  case TechIndex::MM:
101  reEle = getMMReadoutElement(id);
102  break;
103  case TechIndex::STGC:
104  reEle = getsTgcReadoutElement(id);
105  break;
106  default:
107  ATH_MSG_WARNING("Invalid technology ");
108  };
109  if (!reEle) ATH_MSG_WARNING("No readout element retrieved "<<m_idHelperSvc->toString(id));
110  return reEle;
111  }
112 
113  unsigned int MuonDetectorManager::getNumTreeTops() const { return m_envelope.size(); }
114 
115  PVConstLink MuonDetectorManager::getTreeTop(unsigned int i) const { return m_envelope[i]; }
116  PVLink MuonDetectorManager::getTreeTop(unsigned int i) { return m_envelope[i]; }
118  m_envelope.push_back(pV);
119  }
120 
121  void MuonDetectorManager::addMuonStation(std::unique_ptr<MuonStation>&& mst) {
122  std::string key = muonStationKey(mst->getStationType(), mst->getEtaIndex(), mst->getPhiIndex());
123  m_MuonStationMap[key] = std::move(mst);
124  }
125 
126  std::string MuonDetectorManager::muonStationKey(const std::string& stName, int statEtaIndex, int statPhiIndex) {
127  std::string key;
128  if (statEtaIndex < 0)
129  key = stName.substr(0, 3) + "_C_zi" + MuonGM::buildString(std::abs(statEtaIndex), 2) + "fi" +
130  MuonGM::buildString(statPhiIndex, 2);
131  else
132  key = stName.substr(0, 3) + "_A_zi" + MuonGM::buildString(std::abs(statEtaIndex), 2) + "fi" +
133  MuonGM::buildString(statPhiIndex, 2);
134  return key;
135  }
136 
137  const MuonStation* MuonDetectorManager::getMuonStation(const std::string& stName, int stEtaIndex, int stPhiIndex) const {
138  std::string key = muonStationKey(stName, stEtaIndex, stPhiIndex);
139 
140  std::map<std::string, std::unique_ptr<MuonStation>>::const_iterator it = m_MuonStationMap.find(key);
141  if (it != m_MuonStationMap.end())
142  return (*it).second.get();
143  else
144  return nullptr;
145  }
146 
147  MuonStation* MuonDetectorManager::getMuonStation(const std::string& stName, int stEtaIndex, int stPhiIndex) {
148  std::string key = muonStationKey(stName, stEtaIndex, stPhiIndex);
149 
150  std::map<std::string, std::unique_ptr<MuonStation>>::const_iterator it = m_MuonStationMap.find(key);
151  if (it != m_MuonStationMap.end())
152  return (*it).second.get();
153  else
154  return nullptr;
155  }
156 
157  void MuonDetectorManager::addRpcReadoutElement(std::unique_ptr<RpcReadoutElement>&& x) {
158  const Identifier id = x->identify();
159  int idx = rpcIdentToArrayIdx(id);
160  if (m_rpcArray[idx]) {
161  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" Trying to add ReadoutElement "<<m_idHelperSvc->toStringDetEl(id)<<" which has been already added.");
162  THROW_EXCEPTION("Double readout element assignment");
163  }
164  m_rpcArray[idx] = std::move(x);
165  ++m_n_rpcRE;
166  }
167 
169  int idx = rpcIdentToArrayIdx(id);
170  return m_rpcArray[idx].get();
171  }
172 
173  void MuonDetectorManager::addMMReadoutElement(std::unique_ptr<MMReadoutElement>&& x) {
174  const int array_idx = mmIdenToArrayIdx(x->identify());
175  if (m_mmcArray[array_idx]) {
176  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" Trying to add ReadoutElement "<<m_idHelperSvc->toStringDetEl(x->identify())<<" which has been already added.");
177  THROW_EXCEPTION("Double readout element assignment");
178  }
179  m_mmcArray[array_idx] = std::move(x);
180  ++m_n_mmcRE;
181  }
182 
183  void MuonDetectorManager::addsTgcReadoutElement(std::unique_ptr<sTgcReadoutElement>&& x) {
184  const int array_idx = stgcIdentToArrayIdx(x->identify());
185  if (m_stgArray[array_idx]) {
186  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" Trying to add ReadoutElement "<<m_idHelperSvc->toStringDetEl(x->identify())<<" which has been already added.");
187  THROW_EXCEPTION("Double readout element assignment");
188  }
189  m_stgArray[array_idx] = std::move(x);
190  ++m_n_stgRE;
191  }
192 
193  void MuonDetectorManager::addMdtReadoutElement(std::unique_ptr<MdtReadoutElement>&& x) {
194  const Identifier id = x->identify();
195  const int arrayIdx = mdtIdentToArrayIdx(id);
196  if (m_mdtArray[arrayIdx]) {
197  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" Trying to add ReadoutElement "<<m_idHelperSvc->toStringDetEl(id)<<" which has been already added.");
198  THROW_EXCEPTION("Double readout element assignment");
199  }
200  m_mdtArray[arrayIdx] = std::move(x);
201  ++m_n_mdtRE;
202  }
203 
205  const int arrayIdx = mdtIdentToArrayIdx(id);
206  return arrayIdx < 0 ? nullptr : m_mdtArray[arrayIdx].get();
207  }
208 
210  const int arrayIdx = mdtIdentToArrayIdx(id);
211  return arrayIdx < 0 ? nullptr : m_mdtArray[arrayIdx].get();
212  }
213 
214  void MuonDetectorManager::addCscReadoutElement(std::unique_ptr<CscReadoutElement>&& x) {
215  const Identifier id = x->identify();
216  const int array_idx = cscIdentToArrayIdx(id);
217  if (m_cscArray[array_idx]) {
218  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" Trying to add ReadoutElement "<<m_idHelperSvc->toStringDetEl(id)<<" which has been already added.");
219  THROW_EXCEPTION("Double readout element assignment");
220  }
221  m_cscArray[array_idx] = std::move(x);
222  ++m_n_cscRE;
223  }
224 
226  const int array_idx = cscIdentToArrayIdx(id);
227  return array_idx < 0 ? nullptr : m_cscArray[array_idx].get();
228  }
229 
231  const int array_idx = cscIdentToArrayIdx(id);
232  return array_idx < 0 ? nullptr : m_cscArray[array_idx].get();
233  }
234 
235  void MuonDetectorManager::addTgcReadoutElement(std::unique_ptr<TgcReadoutElement>&& x) {
236  const Identifier id = x->identify();
237  const int array_idx = tgcIdentToArrayIdx(id);
238  if (m_tgcArray[array_idx]) {
239  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" Trying to add ReadoutElement "<<m_idHelperSvc->toStringDetEl(id)<<" which has been already added.");
240  THROW_EXCEPTION("Double readout element assignment");
241  }
242 
243  m_tgcArray[array_idx] = std::move(x);
244  ++m_n_tgcRE;
245  }
246 
248  const int array_idx = tgcIdentToArrayIdx(id);
249  return array_idx < 0 ? nullptr : m_tgcArray[array_idx].get();
250  }
252  const int array_idx = tgcIdentToArrayIdx(id);
253  return array_idx < 0 ? nullptr : m_tgcArray[array_idx].get();
254  }
256  const int array_idx = mmIdenToArrayIdx(id);
257  return array_idx < 0 ? nullptr : m_mmcArray[array_idx].get();
258  }
260  const int array_idx = stgcIdentToArrayIdx(id);
261  return array_idx < 0 ? nullptr : m_stgArray[array_idx].get();
262  }
264  const int hash = static_cast<int>(m_idHelperSvc->detElementHash(id));
265 #ifndef NDEBUG
266  if (hash <0) {
267  ATH_MSG_WARNING("Failed to retrieve a proper hash for "<<m_idHelperSvc->toString(id));
268  return -1;
269  }
270 #endif
271  return hash;
272  }
273 
275  const int hash = static_cast<int>(m_idHelperSvc->detElementHash(id));
276 #ifndef NDEBUG
277  if (hash <0) {
278  ATH_MSG_WARNING("Failed to retrieve a proper hash for "<<m_idHelperSvc->toString(id));
279  return -1;
280  }
281 #endif
282  return hash;
283  }
285  const int hash = static_cast<int>(m_idHelperSvc->detElementHash(id));
286 #ifndef NDEBUG
287  if (hash <0) {
288  ATH_MSG_WARNING("Failed to retrieve a proper hash for "<<m_idHelperSvc->toString(id));
289  return -1;
290  }
291 #endif
292  return hash;
293  }
295  const int hash = static_cast<int>(m_idHelperSvc->detElementHash(id));
296 #ifndef NDEBUG
297  if (hash <0) {
298  ATH_MSG_WARNING("Failed to retrieve a proper hash for "<<m_idHelperSvc->toString(id));
299  return -1;
300  }
301 #endif
302  return hash;
303  }
305  const int hash = static_cast<int>(m_idHelperSvc->detElementHash(id));
306 #ifndef NDEBUG
307  if (hash <0) {
308  ATH_MSG_WARNING("Failed to retrieve a proper hash for "<<m_idHelperSvc->toString(id));
309  return -1;
310  }
311 #endif
312  return hash;
313  }
315  const int hash = static_cast<int>(m_idHelperSvc->detElementHash(id));
316 #ifndef NDEBUG
317  if (hash <0) {
318  ATH_MSG_WARNING("Failed to retrieve a proper hash for "<<m_idHelperSvc->toString(id));
319  return -1;
320  }
321 #endif
322  return hash;
323  }
324 
326  if (alineData.empty()) {
327  ATH_MSG_DEBUG("Got empty A-line container (expected for MC), not applying A-lines...");
328  return StatusCode::SUCCESS;
329  }
330 
331  using Parameter = ALinePar::Parameter;
332  // loop over the container of the updates passed by the MuonAlignmentDbTool
333  unsigned int nLines{0}, nUpdates{0};
334  for (const ALinePar& ALine : alineData) {
335  nLines++;
336  ATH_MSG_DEBUG(ALine << " is new. ID = " << m_idHelperSvc->toString(ALine.identify()));
337  const std::string stType = ALine.AmdbStation();
338  const int jff = ALine.AmdbPhi();
339  const int jzz = ALine.AmdbEta();
340  const int job = ALine.AmdbJob();
341  //********************
342  // NSW Cases
343  //********************
344  if (stType[0] == 'M' || stType[0] == 'S') {
345  if (!nMMRE() || !nsTgcRE()) {
346  ATH_MSG_WARNING("Unable to set A-line; the manager does not contain NSW readout elements" );
347  continue;
348  }
349  if (stType[0] == 'M') {
350  // Micromegas
351  const int array_idx = mmIdenToArrayIdx(ALine.identify());
352  MMReadoutElement* RE = m_mmcArray[array_idx].get();
353 
354  if (!RE) {
355  ATH_MSG_WARNING(ALine << " *** No MM readout element found\n"
356  << "PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and Geometry Layout in use");
357  return StatusCode::FAILURE;
358  }
359 
360  RE->setDelta(ALine);
361 
362  } else if (stType[0] == 'S') {
363  // sTGC
364  const int array_idx = stgcIdentToArrayIdx(ALine.identify());
365  sTgcReadoutElement* RE = m_stgArray[array_idx].get();
366 
367  if (!RE) {
368  ATH_MSG_WARNING(ALine << " *** No sTGC readout element found\n"
369  << "PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and Geometry Layout in use");
370  return StatusCode::FAILURE;
371  }
372 
373  RE->setDelta(ALine);
374  }
375  continue;
376  }
377 
378 
379  //********************
380  // Non-NSW Cases
381  //********************
382  MuonStation* thisStation = getMuonStation(stType, jzz, jff);
383  if (!thisStation) {
384  ATH_MSG_WARNING("ALinePar with AmdbId " << stType << " " << jzz << " " << jff << " " << job << "*** No MuonStation found\n"
385  << "PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and Geometry Layout in use" );
386  continue;
387  }
388 
389  if (job != 0) {
390  // job different than 0 (standard for TGC conditions for Sept 2010 repro.)
391  if (stType[0] == 'T') {
392  ATH_MSG_DEBUG( "ALinePar with AmdbId " << stType << " " << jzz << " " << jff << " " << job
393  << " has JOB not 0 - this is expected for TGC" );
394  } else {
395  ATH_MSG_WARNING("ALinePar with AmdbId " << stType << " " << jzz << " " << jff << " " << job
396  << " has JOB not 0 - this is NOT EXPECTED yet for non TGC chambers - skipping this A-line" );
397  continue;
398  }
399  }
400  if (job == 0) {
401  ATH_MSG_DEBUG( "Setting delta transform for Station " << ALine);
402  using Parameter = ALinePar::Parameter;
403  thisStation->setDelta_fromAline(ALine.getParameter(Parameter::transS),
404  ALine.getParameter(Parameter::transZ),
405  ALine.getParameter(Parameter::transT),
406  ALine.getParameter(Parameter::rotS),
407  ALine.getParameter(Parameter::rotZ),
408  ALine.getParameter(Parameter::rotT));
409 
410  thisStation->clearCache();
411  thisStation->fillCache();
412  } else {
413  // job different than 0 (standard for TGC conditions for Sept 2010 repro.)
414  ATH_MSG_DEBUG( "Setting delta transform for component " << ALine);
415  thisStation->setDelta_fromAline_forComp(job,
416  ALine.getParameter(Parameter::transS),
417  ALine.getParameter(Parameter::transZ),
418  ALine.getParameter(Parameter::transT),
419  ALine.getParameter(Parameter::rotS),
420  ALine.getParameter(Parameter::rotZ),
421  ALine.getParameter(Parameter::rotT));
422 
423  thisStation->getMuonReadoutElement(job)->refreshCache();
424 
425  }
426  nUpdates++;
427  }
428  ATH_MSG_INFO( "# of A-lines read from the ALineMapContainer in StoreGate is " << nLines );
429  ATH_MSG_INFO( "# of deltaTransforms updated according to A-lines is " << nUpdates );
430  return StatusCode::SUCCESS;
431  }
432 
434  ATH_MSG_DEBUG( "In updateDeformations()" );
435  if (blineData.empty()) {
436  ATH_MSG_DEBUG( "Got empty B-line container (expected for MC), not applying B-lines..." );
437  return StatusCode::SUCCESS;
438  } else
439  ATH_MSG_INFO( "temporary B-line container with size = " << blineData.size() );
440 
441  // loop over the container of the updates passed by the MuonAlignmentDbTool
442  unsigned int nLines{0}, nUpdates{0};
443  for (const BLinePar& BLine : blineData) {
444  ++nLines;
445  const std::string stType = BLine.AmdbStation();
446  const int jff = BLine.AmdbPhi();
447  const int jzz = BLine.AmdbEta();
448  const int job = BLine.AmdbJob();
449  //********************
450  // NSW Cases
451  //********************
452  if (stType[0] == 'M' || stType[0] == 'S') {
453  if (!nMMRE() || !nsTgcRE()) {
454  ATH_MSG_WARNING("Unable to set B-line; the manager does not contain NSW readout elements" );
455  continue;
456  }
457  if (stType[0] == 'M') {
458  // Micromegas
459  const int array_idx = mmIdenToArrayIdx(BLine.identify());
460  MMReadoutElement* RE = m_mmcArray[array_idx].get();
461 
462  if (!RE) {
463  ATH_MSG_WARNING("BlinePar with AmdbId " <<BLine<< " *** No MM readout element found\n"
464  << "PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and Geometry Layout in use");
465  return StatusCode::FAILURE;
466  }
467  RE->setBLinePar(BLine);
468  } else if (stType[0] == 'S') {
469  // sTGC
470  const int array_idx = stgcIdentToArrayIdx(BLine.identify());
471  sTgcReadoutElement* RE = m_stgArray[array_idx].get();
472  if (!RE) {
473  ATH_MSG_WARNING("BlinePar with AmdbId " << BLine << " *** No sTGC readout element found\n"
474  << "PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and Geometry Layout in use");
475  return StatusCode::FAILURE;
476  }
477  RE->setBLinePar(BLine);
478  }
479  continue;
480  }
481 
482  //********************
483  // MDT Cases
484  //********************
485  if (stType.at(0) == 'T' || stType.at(0) == 'C' || (stType.substr(0, 3) == "BML" && std::abs(jzz) == 7)) {
486  ATH_MSG_DEBUG( "BLinePar with AmdbId " << BLine << " is not a MDT station - skipping" );
487  continue;
488  }
489  ATH_MSG_DEBUG( "BLinePar with AmdbId " <<BLine << " is new ID = " << m_idHelperSvc->toString(BLine.identify()) );
490  if (job == 0) {
491  MuonStation* thisStation = getMuonStation(stType, jzz, jff);
492  if (!thisStation) {
493  ATH_MSG_WARNING("BLinePar with AmdbId " << BLine <<
494  " *** No MuonStation found \n PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and "
495  "Geometry Layout in use");
496  continue;
497  }
498  ATH_MSG_DEBUG( "Setting deformation parameters for Station " << stType << " " << jzz << " " << jff << " ");
499  thisStation->setBline(&BLine);
500  nUpdates++;
501  } else {
502  ATH_MSG_WARNING("BLinePar with AmdbId " << stType << " " << jzz << " " << jff << " " << job << " has JOB not 0 ");
503  return StatusCode::FAILURE;
504  }
505  }
506  ATH_MSG_INFO( "# of B-lines read from the ALineMapContainer in StoreGate is " << nLines );
507  ATH_MSG_INFO( "# of deform-Transforms updated according to B-lines is " << nUpdates );
508  return StatusCode::SUCCESS;
509  }
510 
512 
513  if (ilineData.empty()) {
514  ATH_MSG_WARNING("Empty temporary CSC I-line container - nothing to do here" );
515  return StatusCode::SUCCESS;
516  } else
517  ATH_MSG_INFO( "temporary CSC I-line container with size = " << ilineData.size() );
518 
519  // loop over the container of the updates passed by the MuonAlignmentDbTool
520  unsigned int nLines{0}, nUpdates{0};
521  for (const ALinePar& ILine : ilineData) {
522  nLines++;
523  const std::string stType = ILine.AmdbStation();
524  const int jff = ILine.AmdbPhi();
525  const int jzz = ILine.AmdbEta();
526  const int job = ILine.AmdbJob();
527  ATH_MSG_DEBUG( "CscInternalAlignmentPar with AmdbId " << ILine << " is new ID = " << m_idHelperSvc->toString(ILine.identify()) );
528  if (job == 3) {
529  MuonStation* thisStation = getMuonStation(stType, jzz, jff);
530  if (!thisStation) {
531  ATH_MSG_WARNING("CscInternalAlignmentPar with AmdbId " << ILine
532  << " *** No MuonStation found \n PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and "
533  "Geometry Layout in use");
534  continue;
535  }
536  ATH_MSG_DEBUG( "Setting CSC I-Lines for Station " <<ILine);
537  CscReadoutElement* CscRE = dynamic_cast<CscReadoutElement*>(thisStation->getMuonReadoutElement(job));
538  if (!CscRE)
539  ATH_MSG_ERROR( "The CSC I-lines container includes stations which are no CSCs! This is impossible." );
540  else {
541  CscRE->setCscInternalAlignmentPar(ILine);
542  }
543  thisStation->refreshCache();
544 
545  nUpdates++;
546 
547  } else {
548  ATH_MSG_ERROR( "job for CSC I-Lines= " << job << " is not 3 => This is not valid." );
549  }
550  }
551  ATH_MSG_INFO( "# of CSC I-lines read from the ILineMapContainer in StoreGate is " << nLines );
552  ATH_MSG_INFO( "# of deltaTransforms updated according to A-lines is " << nUpdates );
553  return StatusCode::SUCCESS;
554  }
556 
557  if (asbuiltData.empty()) {
558  ATH_MSG_WARNING("Empty temporary As-Built container - nothing to do here" );
559  return StatusCode::SUCCESS;
560  } else
561  ATH_MSG_INFO( "temporary As-Built container with size = " << asbuiltData.size() );
562 
563  // loop over the container of the updates passed by the MuonAlignmentDbTool
564  unsigned int nLines{0}, nUpdates{0};
565  for (const auto& AsBuiltPar : asbuiltData) {
566  nLines++;
567  const std::string stType = AsBuiltPar.AmdbStation();
568  const int jff = AsBuiltPar.AmdbPhi();
569  const int jzz = AsBuiltPar.AmdbEta();
570 
571  ATH_MSG_DEBUG( "MdtAsBuiltPar with AmdbId " << AsBuiltPar
572  << " is new ID = " << m_idHelperSvc->toString(AsBuiltPar.identify()) );
573 
574  MuonStation* thisStation = getMuonStation(stType, jzz, jff);
575  if (thisStation) {
576 
577  ATH_MSG_DEBUG( "Setting as-built parameters for Station " << AsBuiltPar );
578  thisStation->setMdtAsBuiltParams(&AsBuiltPar);
579  nUpdates++;
580  } else {
581  ATH_MSG_WARNING("MdtAsBuiltPar with AmdbId " <<AsBuiltPar
582  << " *** No MuonStation found \n PLEASE CHECK FOR possible MISMATCHES between alignment constants from COOL and "
583  "Geometry Layout in use");
584  continue;
585  }
586  }
587  ATH_MSG_INFO( "# of MDT As-Built read from the MdtAsBuiltMapContainer in StoreGate is " << nLines );
588  ATH_MSG_INFO( "# of deltaTransforms updated according to As-Built is " << nUpdates );
589  return StatusCode::SUCCESS;
590  }
591 
593  m_nswAsBuilt = nswAsBuiltData;
594  }
595 
597 #ifndef NDEBUG
598  if (id >= m_idHelperSvc->mdtIdHelper().detectorElement_hash_max()) {
599  ATH_MSG_WARNING(" try to getMdtReadoutElement with hashId " << (unsigned int)id << " outside range 0-"
600  << m_idHelperSvc->mdtIdHelper().detectorElement_hash_max() - 1 );
601  return nullptr;
602  }
603 #endif
604  return m_mdtArray[id].get();
605  }
606 
608 #ifndef NDEBUG
609  if (id >= m_idHelperSvc->rpcIdHelper().detectorElement_hash_max()) {
610  ATH_MSG_WARNING(" try to getRpcReadoutElement with hashId " << (unsigned int)id << " outside range 0-"
611  << m_idHelperSvc->rpcIdHelper().detectorElement_hash_max() - 1 );
612  return nullptr;
613  }
614 #endif
615  return m_rpcArray[id].get();
616  }
617 
619 #ifndef NDEBUG
620  if (id >= m_idHelperSvc->tgcIdHelper().detectorElement_hash_max()) {
621  ATH_MSG_WARNING(" try to getTgcReadoutElement with hashId " << (unsigned int)id << " outside range 0-"
622  << m_idHelperSvc->tgcIdHelper().detectorElement_hash_max() - 1 );
623  return nullptr;
624  }
625 #endif
626  return m_tgcArray[id].get();
627  }
628 
630 #ifndef NDEBUG
631  if (id >= m_idHelperSvc->cscIdHelper().detectorElement_hash_max()) {
632  ATH_MSG_WARNING(" try to getCscReadoutElement with hashId " << (unsigned int)id << " outside range 0-"
633  << m_idHelperSvc->cscIdHelper().detectorElement_hash_max() - 1 );
634  return nullptr;
635  }
636 #endif
637  return m_cscArray[id].get();
638  }
639 
640  unsigned int MuonDetectorManager::rpcStationTypeIdx(const int stationName) const {
641  std::map<int, int>::const_iterator itr = m_rpcStatToIdx.find(stationName);
642  if (itr != m_rpcStatToIdx.end()) return itr->second;
643  return RpcStatType::UNKNOWN;
644  }
645 
646  int MuonDetectorManager::rpcStationName(const int stationIndex) const {
647  std::map<int, int>::const_iterator itr = m_rpcIdxToStat.find(stationIndex);
648  if (itr != m_rpcIdxToStat.end()) return itr->second;
649  return -1;
650  }
652 
653  if (!m_idHelperSvc->hasRPC()) return;
654  const RpcIdHelper& rpcHelper{m_idHelperSvc->rpcIdHelper()};
655  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BML"), RpcStatType::BML));
656  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BMS"), RpcStatType::BMS));
657  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BOL"), RpcStatType::BOL));
658  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BOS"), RpcStatType::BOS));
659  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BMF"), RpcStatType::BMF));
660  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BOF"), RpcStatType::BOF));
661  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BOG"), RpcStatType::BOG));
662  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BME"), RpcStatType::BME));
663  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BIR"), RpcStatType::BIR));
664  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BIM"), RpcStatType::BIM));
665  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BIL"), RpcStatType::BIL));
666  m_rpcStatToIdx.insert(std::make_pair(rpcHelper.stationNameIndex("BIS"), RpcStatType::BIS));
667 
668  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BML, rpcHelper.stationNameIndex("BML")));
669  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BMS, rpcHelper.stationNameIndex("BMS")));
670  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BOL, rpcHelper.stationNameIndex("BOL")));
671  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BOS, rpcHelper.stationNameIndex("BOS")));
672  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BMF, rpcHelper.stationNameIndex("BMF")));
673  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BOF, rpcHelper.stationNameIndex("BOF")));
674  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BOG, rpcHelper.stationNameIndex("BOG")));
675  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BME, rpcHelper.stationNameIndex("BME")));
676  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BIR, rpcHelper.stationNameIndex("BIR")));
677  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BIM, rpcHelper.stationNameIndex("BIM")));
678  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BIL, rpcHelper.stationNameIndex("BIL")));
679  m_rpcIdxToStat.insert(std::make_pair(RpcStatType::BIS, rpcHelper.stationNameIndex("BIS")));
680  }
686 
687 
688 } // namespace MuonGM
BIS
@ BIS
Definition: RegSelEnums.h:11
MuonGM::MMReadoutElement::setDelta
void setDelta(const ALinePar &aline)
Definition: MMReadoutElement.cxx:361
MuonGM::MuonDetectorManager::getRpcReadoutElement
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:168
MuonGM::MuonDetectorManager::set_DBMuonVersion
void set_DBMuonVersion(const std::string &version)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:681
TGC
@ TGC
Definition: RegSelEnums.h:33
python.StoreID.UNKNOWN
int UNKNOWN
Definition: StoreID.py:16
MuonGM::MuonDetectorManager::addMuonStation
void addMuonStation(std::unique_ptr< MuonStation > &&mst)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:121
MdtReadoutElement.h
MuonGM::MuonDetectorManager::addMdtReadoutElement
void addMdtReadoutElement(std::unique_ptr< MdtReadoutElement > &&reEle)
store the MdtReadoutElement using as "key" the identifier
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:193
MuonGM::MuonDetectorManager::m_cscArray
std::vector< std::unique_ptr< CscReadoutElement > > m_cscArray
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:192
STGC
@ STGC
Definition: RegSelEnums.h:39
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::MuonDetectorManager::m_envelope
std::vector< PVLink > m_envelope
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:183
MuonGM::MuonStation::setDelta_fromAline_forComp
void setDelta_fromAline_forComp(int, double, double, double, double, double, double)
Definition: MuonStation.cxx:190
MuonGM::MuonDetectorManager::m_rpcArray
std::vector< std::unique_ptr< RpcReadoutElement > > m_rpcArray
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:195
BIL
@ BIL
Definition: RegSelEnums.h:10
MuonGM::MuonStation::fillCache
void fillCache()
Definition: MuonStation.cxx:255
MuonGM::MuonDetectorManager::m_nswAsBuilt
const NswAsBuiltDbData * m_nswAsBuilt
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:213
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
MuonGM::MuonDetectorManager::m_stgArray
std::vector< std::unique_ptr< sTgcReadoutElement > > m_stgArray
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:196
MuonGM::MuonDetectorManager::addTreeTop
void addTreeTop(PVLink)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:117
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
ALinePar
Definition: ALinePar.h:15
BOG
@ BOG
Definition: RegSelEnums.h:19
MuonGM::MuonDetectorManager::tgcIdentToArrayIdx
int tgcIdentToArrayIdx(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:304
MuonGM::MuonDetectorManager::nMMRE
unsigned int nMMRE() const
Number of MM ReadoutElements.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:256
MuonGM::MuonDetectorManager::fillCache
void fillCache()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:75
sTgcReadoutElement.h
ALinePar.h
MuonGM::MuonDetectorManager::getNumTreeTops
virtual unsigned int getNumTreeTops() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:113
BIR
@ BIR
Definition: RegSelEnums.h:17
MuonGM::MuonDetectorManager::clearCache
void clearCache()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:67
MuonGM::MuonDetectorManager::m_geometryVersion
std::string m_geometryVersion
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:187
MuonGM::MuonDetectorManager::m_rpcStatToIdx
std::map< int, int > m_rpcStatToIdx
RPC name caches.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:215
MuonGM::MuonDetectorManager::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:167
skel.it
it
Definition: skel.GENtoEVGEN.py:423
MuonGM::MuonDetectorManager::updateCSCInternalAlignmentMap
StatusCode updateCSCInternalAlignmentMap(const ALineContainer &cscIntAline)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:511
MuonGM::MuonDetectorManager::updateMdtAsBuiltParams
StatusCode updateMdtAsBuiltParams(const MdtAsBuiltContainer &a)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:555
xAOD::L2MuonParameters::BME
@ BME
BME measurement point.
Definition: TrigMuonDefs.h:25
MuonGM::MuonDetectorManager::muonStationKey
static std::string muonStationKey(const std::string &stName, int statEtaIndex, int statPhiIndex)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:126
MuonGM::MuonStation::setMdtAsBuiltParams
void setMdtAsBuiltParams(const MdtAsBuiltPar *xtomo)
Definition: MuonStation.cxx:378
MM
@ MM
Definition: RegSelEnums.h:38
MuonGM::MuonDetectorManager::stgcIdentToArrayIdx
int stgcIdentToArrayIdx(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:284
MuonGM::RpcReadoutElement
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/RpcReadoutElement.h:54
MuonGM::MuonDetectorManager::m_tgcArray
std::vector< std::unique_ptr< TgcReadoutElement > > m_tgcArray
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:193
MuonGM::MuonDetectorManager::addRpcReadoutElement
void addRpcReadoutElement(std::unique_ptr< RpcReadoutElement > &&reEle)
store the RpcReadoutElement using as "key" the identifier
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:157
BMF
@ BMF
Definition: RegSelEnums.h:16
MuonGM::CscReadoutElement
Definition: CscReadoutElement.h:56
THROW_EXCEPTION
#define THROW_EXCEPTION(MSG)
Definition: MMReadoutElement.cxx:48
MuonGM::MuonDetectorManager::setGeometryVersion
void setGeometryVersion(const std::string &version)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:682
BOL
@ BOL
Definition: RegSelEnums.h:14
MuonGM::MuonDetectorManager::m_n_mmcRE
unsigned int m_n_mmcRE
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:205
x
#define x
MuonGM::MuonDetectorManager::m_n_tgcRE
unsigned int m_n_tgcRE
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:203
RpcIdHelper
Definition: RpcIdHelper.h:51
MuonGM::MuonDetectorManager::mmIdenToArrayIdx
int mmIdenToArrayIdx(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:274
MuonGM::MuonDetectorManager::m_DBMuonVersion
std::string m_DBMuonVersion
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:188
MuonGM::MuonDetectorManager::m_n_mdtRE
unsigned int m_n_mdtRE
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:200
MuonGM::MuonReadoutElement
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:40
MuonGM::MuonStation::getMuonReadoutElement
const MuonReadoutElement * getMuonReadoutElement(int jobIndex) const
Definition: MuonStation.cxx:165
MuonGM::MuonDetectorManager::rpcStationTypeIdx
unsigned int rpcStationTypeIdx(const int stationName) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:640
MuonGM::MuonDetectorManager::getTgcReadoutElement
const TgcReadoutElement * getTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:247
MuonGM::CscReadoutElement::setCscInternalAlignmentPar
void setCscInternalAlignmentPar(const ALinePar &)
Definition: CscReadoutElement.cxx:572
BOF
@ BOF
Definition: RegSelEnums.h:18
MuonGM::MuonDetectorManager::m_n_rpcRE
unsigned int m_n_rpcRE
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:202
MuonGM::MuonReadoutElement::refreshCache
void refreshCache()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:177
MMReadoutElement.h
MuonGM::MuonDetectorManager::cscIdentToArrayIdx
int cscIdentToArrayIdx(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:314
MuonGM::MuonDetectorManager::updateDeformations
StatusCode updateDeformations(const BLineContainer &a)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:433
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonGM::MuonDetectorManager::getMdtReadoutElement
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:204
MuonGM::MuonDetectorManager::m_mmcArray
std::vector< std::unique_ptr< MMReadoutElement > > m_mmcArray
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:197
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:50
MuonGM::MuonDetectorManager::m_minimalgeo
int m_minimalgeo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:179
lumiFormat.i
int i
Definition: lumiFormat.py:92
MuonGM::MuonDetectorManager::rpcStationName
int rpcStationName(const int stationIndex) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:646
MuonGM::MuonDetectorManager::m_includeCutoutsBog
int m_includeCutoutsBog
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:181
MuonGM::MuonDetectorManager::m_rpcIdxToStat
std::map< int, int > m_rpcIdxToStat
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:216
MuonGM::MuonDetectorManager::getCscReadoutElement
const CscReadoutElement * getCscReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:225
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
MuonGM::MuonDetectorManager::m_MuonStationMap
std::map< std::string, std::unique_ptr< MuonStation > > m_MuonStationMap
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:198
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
MuonGM::sTgcReadoutElement
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h:28
master.flag
bool flag
Definition: master.py:29
MuonGM::MuonStation
Definition: MuonStation.h:51
MuonGM::MuonDetectorManager::m_includeCutouts
int m_includeCutouts
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:180
CscReadoutElement.h
MuonGM::TgcReadoutElement
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:42
MuonGM::MuonDetectorManager::setCutoutsFlag
void setCutoutsFlag(int flag)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:684
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
MuonGM::MuonDetectorManager::m_n_stgRE
unsigned int m_n_stgRE
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:204
MuonGM::MuonStation::refreshCache
void refreshCache()
Definition: MuonStation.cxx:268
ALineContainer
std::set< ALinePar, std::less<> > ALineContainer
Definition: CorrContainer.h:16
MuonGM::MuonDetectorManager::nsTgcRE
unsigned int nsTgcRE() const
Number of sTgc ReadoutElements.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:255
MuonGM::MuonDetectorManager::setCutoutsBogFlag
void setCutoutsBogFlag(int flag)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:685
MuonGM::sTgcReadoutElement::setDelta
void setDelta(const ALinePar &aline)
Definition: MuonDetDescr/MuonReadoutGeometry/src/sTgcReadoutElement.cxx:720
MuonGM::MMReadoutElement::setBLinePar
void setBLinePar(const BLinePar &bLine)
read B-line (chamber-deformation) parameters
Definition: MMReadoutElement.cxx:385
MuonGM::MuonDetectorManager::addCscReadoutElement
void addCscReadoutElement(std::unique_ptr< CscReadoutElement > &&reEle)
store the CscReadoutElement using as "key" the identifier
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:214
MuonGM::MuonDetectorManager::mdtIdentToArrayIdx
int mdtIdentToArrayIdx(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:263
MdtAsBuiltContainer
std::set< MdtAsBuiltPar, std::less<> > MdtAsBuiltContainer
Definition: CorrContainer.h:24
BLinePar
Definition: BLinePar.h:14
MuonGM::MuonDetectorManager::setMinimalGeoFlag
void setMinimalGeoFlag(int flag)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:683
GlobalUtilities.h
lumiFormat.array
array
Definition: lumiFormat.py:98
MuonGM::MuonDetectorManager::rpcIdentToArrayIdx
int rpcIdentToArrayIdx(const Identifier &id) const
Helper method to convert the Identifier into the corresponding index accessing the array.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:294
MuonGM::MuonStation::setBline
void setBline(const BLinePar *bline)
Definition: MuonStation.cxx:273
RPC
@ RPC
Definition: RegSelEnums.h:32
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
MuonGM::MuonDetectorManager::m_n_cscRE
unsigned int m_n_cscRE
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:201
MuonGM::MuonStation::setDelta_fromAline
void setDelta_fromAline(double, double, double, double, double, double)
set the delta transform in the amdb frame and update the geoModel Delta
Definition: MuonStation.cxx:142
MuonGM::MuonDetectorManager::~MuonDetectorManager
~MuonDetectorManager()
MuonGM::MuonDetectorManager::addTgcReadoutElement
void addTgcReadoutElement(std::unique_ptr< TgcReadoutElement > &&reEle)
store the TgcReadoutElement using as "key" the identifier
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:235
MuonDetectorManager.h
get_generator_info.version
version
Definition: get_generator_info.py:33
MuonGM::MuonDetectorManager::getMuonStation
const MuonStation * getMuonStation(const std::string &stName, int eta, int phi) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:137
BLinePar.h
MuonGM::MuonStation::clearCache
void clearCache()
Definition: MuonStation.cxx:240
BML
@ BML
Definition: RegSelEnums.h:12
MuonGM::MuonDetectorManager::getReadoutElement
const MuonReadoutElement * getReadoutElement(const Identifier &id) const
Get any read out element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:84
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonGM::MuonDetectorManager::m_mdtArray
std::vector< std::unique_ptr< MdtReadoutElement > > m_mdtArray
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:191
MuonGM::sTgcReadoutElement::setBLinePar
void setBLinePar(const BLinePar &bLine)
read B-line (chamber-deformation) parameters
Definition: MuonDetDescr/MuonReadoutGeometry/src/sTgcReadoutElement.cxx:745
GeoPrimitivesHelpers.h
MuonGM::MuonDetectorManager::getMMReadoutElement
const MMReadoutElement * getMMReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:255
BMS
@ BMS
Definition: RegSelEnums.h:13
MuonGM::MuonDetectorManager::MuonDetectorManager
MuonDetectorManager()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:38
MuonGM::MMReadoutElement
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station con...
Definition: MMReadoutElement.h:23
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
MuonGM::MuonDetectorManager::getTreeTop
virtual PVConstLink getTreeTop(unsigned int i) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:115
MuonGM::MuonDetectorManager::setNswAsBuilt
void setNswAsBuilt(const NswAsBuiltDbData *nswAsBuiltData)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:592
MuonGM::MuonDetectorManager::addMMReadoutElement
void addMMReadoutElement(std::unique_ptr< MMReadoutElement > &&reEle)
store the MMReadoutElement using as "key" the identifier
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:173
MuonGM::MuonDetectorManager::updateAlignment
StatusCode updateAlignment(const ALineContainer &a)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:325
TgcReadoutElement.h
MuonGM::MuonDetectorManager::loadStationIndices
void loadStationIndices()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:651
MuonGM::MuonDetectorManager::addsTgcReadoutElement
void addsTgcReadoutElement(std::unique_ptr< sTgcReadoutElement > &&reEle)
store the sTGCReadoutElement using as "key" the identifier
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:183
BLineContainer
std::set< BLinePar, std::less<> > BLineContainer
Definition: CorrContainer.h:20
MuonGM::MuonDetectorManager::getsTgcReadoutElement
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:259
IdentifierHash
Definition: IdentifierHash.h:38
test_interactive_athena.job
job
Definition: test_interactive_athena.py:6
MuonStation.h
MuonGM::buildString
std::string buildString(int i, int ncha)
Definition: GlobalUtilities.cxx:23
BOS
@ BOS
Definition: RegSelEnums.h:15
Muon::MuonStationIndex::TechnologyIndex
TechnologyIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:54
MDT
@ MDT
Definition: RegSelEnums.h:31
NswAsBuiltDbData
Definition: NswAsBuiltDbData.h:17
ALinePar::Parameter
Parameter
amdb frame (s, z, t) = chamber frame (y, z, x)
Definition: ALinePar.h:23
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
RpcReadoutElement.h