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