ATLAS Offline Software
Loading...
Searching...
No Matches
MuonTGC_Cabling::TGCCableSSWToROD Class Reference

#include <TGCCableSSWToROD.h>

Inheritance diagram for MuonTGC_Cabling::TGCCableSSWToROD:
Collaboration diagram for MuonTGC_Cabling::TGCCableSSWToROD:

Public Types

enum  CableType {
  NoCableType = -1 , InASD , ASDToPP , InPP ,
  PPToSLB , InSLB , SLBToHPB , HPBToSL ,
  SLBToSSW , SSWToROD , MaxCableType
}

Public Member Functions

 TGCCableSSWToROD (const std::string &filename)
 TGCCableSSWToROD (const TGCCableSSWToROD &)
TGCCableSSWToRODoperator= (const TGCCableSSWToROD &)
virtual ~TGCCableSSWToROD ()
TGCModuleMap getModule (const TGCModuleId &moduleId) const
CableType getCableType () const

Private Member Functions

 TGCCableSSWToROD ()=delete
TGCModuleMap getModuleIn (const TGCModuleId &rod) const
TGCModuleMap getModuleOut (const TGCModuleId &ssw) const

Private Attributes

std::unique_ptr< TGCDatabasem_database {nullptr}
CableType m_type {CableType::NoCableType}

Detailed Description

Definition at line 17 of file TGCCableSSWToROD.h.

Member Enumeration Documentation

◆ CableType

Enumerator
NoCableType 
InASD 
ASDToPP 
InPP 
PPToSLB 
InSLB 
SLBToHPB 
HPBToSL 
SLBToSSW 
SSWToROD 
MaxCableType 

Definition at line 16 of file TGCCable.h.

Constructor & Destructor Documentation

◆ TGCCableSSWToROD() [1/3]

MuonTGC_Cabling::TGCCableSSWToROD::TGCCableSSWToROD ( const std::string & filename)

Definition at line 13 of file TGCCableSSWToROD.cxx.

15 m_database(std::make_unique<TGCDatabaseSLBToROD>(filename, "SSW ALL")) {}
std::unique_ptr< TGCDatabase > m_database
TGCCable(CableType type=NoCableType)
Definition TGCCable.h:31

◆ TGCCableSSWToROD() [2/3]

MuonTGC_Cabling::TGCCableSSWToROD::TGCCableSSWToROD ( const TGCCableSSWToROD & right)

Definition at line 17 of file TGCCableSSWToROD.cxx.

19 if (auto mypointer =
20 dynamic_cast<TGCDatabaseSLBToROD*>(right.m_database.get())) {
21 m_database = std::make_unique<TGCDatabaseSLBToROD>(*mypointer);
22 } else {
23 m_database.reset();
24 }
25}

◆ ~TGCCableSSWToROD()

MuonTGC_Cabling::TGCCableSSWToROD::~TGCCableSSWToROD ( )
virtualdefault

◆ TGCCableSSWToROD() [3/3]

MuonTGC_Cabling::TGCCableSSWToROD::TGCCableSSWToROD ( )
privatedelete

Member Function Documentation

◆ getCableType()

CableType MuonTGC_Cabling::TGCCable::getCableType ( ) const
inlineinherited

Definition at line 34 of file TGCCable.h.

34{ return m_type; }

◆ getModule()

TGCModuleMap MuonTGC_Cabling::TGCCableSSWToROD::getModule ( const TGCModuleId & moduleId) const

Definition at line 41 of file TGCCableSSWToROD.cxx.

41 {
42
43 if (moduleId.getModuleIdType() == TGCModuleId::SSW) {
44 return getModuleOut(moduleId);
45 }
46 if (moduleId.getModuleIdType() == TGCModuleId::ROD) {
47 return getModuleIn(moduleId);
48 }
49
50 return TGCModuleMap{};
51}
TGCModuleMap getModuleOut(const TGCModuleId &ssw) const
TGCModuleMap getModuleIn(const TGCModuleId &rod) const

◆ getModuleIn()

TGCModuleMap MuonTGC_Cabling::TGCCableSSWToROD::getModuleIn ( const TGCModuleId & rod) const
private

Definition at line 53 of file TGCCableSSWToROD.cxx.

53 {
54 if (!rod.isValid()) {
55 return TGCModuleMap{};
56 }
57
58 const TGCId::SideType rodSideType = rod.getSideType();
59 const int rodReadoutSector = rod.getReadoutSector();
60
61 TGCModuleMap mapId{};
62 const int MaxEntry = m_database->getMaxEntry();
63 for (int i = 0; i < MaxEntry; i++) {
64 int id = m_database->getEntry(i, 0);
65 int block = m_database->getEntry(i, 1);
66 auto ssw =
67 std::make_unique<TGCModuleSSW>(rodSideType, rodReadoutSector, id);
68 mapId.insert(block, std::move(ssw));
69 }
70 return mapId;
71}

◆ getModuleOut()

TGCModuleMap MuonTGC_Cabling::TGCCableSSWToROD::getModuleOut ( const TGCModuleId & ssw) const
private

Definition at line 73 of file TGCCableSSWToROD.cxx.

73 {
74 if (!ssw.isValid()) {
75 return TGCModuleMap{};
76 }
77
78 const int sswId = ssw.getId();
79
80 TGCModuleMap mapId{};
81 const int MaxEntry = m_database->getMaxEntry();
82 for (int i = 0; i < MaxEntry; i++) {
83 if (m_database->getEntry(i, 0) == sswId) {
84 int block = m_database->getEntry(i, 1);
85 auto rod = std::make_unique<TGCModuleROD>(ssw.getSideType(),
86 ssw.getReadoutSector());
87
88 mapId.insert(block, std::move(rod));
89 break;
90 }
91 }
92 return mapId;
93}

◆ operator=()

TGCCableSSWToROD & MuonTGC_Cabling::TGCCableSSWToROD::operator= ( const TGCCableSSWToROD & right)

Definition at line 27 of file TGCCableSSWToROD.cxx.

27 {
28 if (this != &right) {
29 if (auto mypointer =
30 dynamic_cast<TGCDatabaseSLBToROD*>(right.m_database.get())) {
31 m_database = std::make_unique<TGCDatabaseSLBToROD>(*mypointer);
32 } else {
33 m_database.reset();
34 }
35 }
36 return *this;
37}

Member Data Documentation

◆ m_database

std::unique_ptr<TGCDatabase> MuonTGC_Cabling::TGCCableSSWToROD::m_database {nullptr}
private

Definition at line 30 of file TGCCableSSWToROD.h.

30{nullptr};

◆ m_type

CableType MuonTGC_Cabling::TGCCable::m_type {CableType::NoCableType}
privateinherited

Definition at line 37 of file TGCCable.h.


The documentation for this class was generated from the following files: