Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TGCCableSSWToROD.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
10 
11 namespace MuonTGC_Cabling {
12 
14  : TGCCable(TGCCable::SSWToROD),
15  m_database(std::make_unique<TGCDatabaseSLBToROD>(filename, "SSW ALL")) {
16 }
17 
19  : TGCCable(TGCCable::SSWToROD) {
20  if (auto mypointer = dynamic_cast<TGCDatabaseSLBToROD*>(right.m_database.get())) {
21  m_database = std::make_unique<TGCDatabaseSLBToROD>(*mypointer);
22  } else {
23  m_database.reset();
24  }
25 }
26 
28  if (this != &right) {
29  if (auto mypointer = dynamic_cast<TGCDatabaseSLBToROD*>(right.m_database.get())) {
30  m_database = std::make_unique<TGCDatabaseSLBToROD>(*mypointer);
31  } else {
32  m_database.reset();
33  }
34  }
35  return *this;
36 }
37 
39  if(moduleId){
40  if(moduleId->getModuleIdType()==TGCModuleId::SSW)
41  return getModuleOut(moduleId);
42  if(moduleId->getModuleIdType()==TGCModuleId::ROD)
43  return getModuleIn(moduleId);
44  }
45  return nullptr;
46 }
47 
49  if(!rod->isValid()) return nullptr;
50 
51  const TGCId::SideType rodSideType = rod->getSideType();
52  const int rodReadoutSector = rod->getReadoutSector();
53 
54  TGCModuleMap* mapId = nullptr;
55  const int MaxEntry = m_database->getMaxEntry();
56  for(int i=0; i<MaxEntry; i++){
57  int id = m_database->getEntry(i,0);
58  int block = m_database->getEntry(i,1);
59  TGCModuleSSW* ssw = new TGCModuleSSW(rodSideType,
60  rodReadoutSector,
61  id);
62  if(mapId==nullptr) mapId = new TGCModuleMap();
63  mapId->insert(block,ssw);
64  }
65  return mapId;
66 }
67 
69  if(!ssw->isValid()) return nullptr;
70 
71  const int sswId = ssw->getId();
72 
73  TGCModuleMap* mapId = nullptr;
74  const int MaxEntry = m_database->getMaxEntry();
75  for(int i=0; i<MaxEntry; i++){
76  if(m_database->getEntry(i,0)==sswId){
77  int block = m_database->getEntry(i,1);
79  ssw->getReadoutSector());
80  mapId = new TGCModuleMap();
81  mapId->insert(block,rod);
82  break;
83  }
84  }
85  return mapId;
86 }
87 
88 } //end of namespace
TGCCableSSWToROD.h
MuonTGC_Cabling::TGCCableSSWToROD::getModuleOut
virtual TGCModuleMap * getModuleOut(const TGCModuleId *ssw) const
Definition: TGCCableSSWToROD.cxx:68
MuonTGC_Cabling::TGCModuleId::getModuleIdType
ModuleIdType getModuleIdType(void) const
Definition: TGCModuleId.h:30
MuonTGC_Cabling::TGCId::getSideType
SideType getSideType(void) const
Definition: TGCId.h:121
MuonTGC_Cabling::TGCModuleId::ROD
@ ROD
Definition: TGCModuleId.h:16
MuonTGC_Cabling::TGCCableSSWToROD::TGCCableSSWToROD
TGCCableSSWToROD()
Definition: TGCCableSSWToROD.h:27
make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: SkimmingToolEXOT5.cxx:23
TGCModuleSSW.h
MuonTGC_Cabling::TGCModuleId::getReadoutSector
int getReadoutSector() const
Definition: TGCModuleId.h:36
MuonTGC_Cabling::TGCCableSSWToROD::operator=
TGCCableSSWToROD & operator=(const TGCCableSSWToROD &)
Definition: TGCCableSSWToROD.cxx:27
TGCModuleROD.h
MuonTGC_Cabling::TGCModuleMap
Definition: TGCModuleMap.h:16
MuonTGC_Cabling::TGCCableSSWToROD
Definition: TGCCableSSWToROD.h:17
MuonTGC_Cabling::TGCModuleId::SSW
@ SSW
Definition: TGCModuleId.h:16
MuonTGC_Cabling::TGCCableSSWToROD::getModule
virtual TGCModuleMap * getModule(const TGCModuleId *moduleId) const
Definition: TGCCableSSWToROD.cxx:38
lumiFormat.i
int i
Definition: lumiFormat.py:85
MuonTGC_Cabling
Definition: TGCCable.h:13
MuonTGC_Cabling::TGCId::getId
int getId() const
Definition: TGCId.h:131
MuonTGC_Cabling::TGCCable
Definition: TGCCable.h:16
RunTileMonitoring.rod
rod
Definition: RunTileMonitoring.py:134
MuonTGC_Cabling::TGCModuleROD
Definition: TGCModuleROD.h:14
MuonTGC_Cabling::TGCModuleMap::insert
void insert(int connector, TGCModuleId *moduleId)
Definition: TGCModuleMap.cxx:34
TGCDatabaseSLBToROD.h
MuonTGC_Cabling::TGCDatabaseSLBToROD
Definition: TGCDatabaseSLBToROD.h:14
MuonTGC_Cabling::TGCCableSSWToROD::m_database
std::unique_ptr< TGCDatabase > m_database
Definition: TGCCableSSWToROD.h:30
MuonTGC_Cabling::TGCModuleSSW
Definition: TGCModuleSSW.h:14
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
MuonTGC_Cabling::TGCModuleId
Definition: TGCModuleId.h:13
MuonTGC_Cabling::TGCId::SideType
SideType
Definition: TGCId.h:45
MuonTGC_Cabling::TGCModuleId::isValid
virtual bool isValid(void) const
Definition: TGCModuleId.h:34
MuonTGC_Cabling::TGCCableSSWToROD::getModuleIn
virtual TGCModuleMap * getModuleIn(const TGCModuleId *rod) const
Definition: TGCCableSSWToROD.cxx:48