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 ()
virtual TGCModuleMapgetModule (const TGCModuleId *moduleId) const
CableType getCableType (void) const

Protected Member Functions

virtual TGCChannelIdgetChannelIn (const TGCChannelId *, bool) const
virtual TGCChannelIdgetChannelOut (const TGCChannelId *, bool) const

Private Member Functions

 TGCCableSSWToROD ()=delete
virtual TGCModuleMapgetModuleIn (const TGCModuleId *rod) const
virtual TGCModuleMapgetModuleOut (const TGCModuleId *ssw) const

Private Attributes

std::unique_ptr< TGCDatabasem_database {nullptr}
CableType m_type

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 ( void ) const
inlineinherited

Definition at line 34 of file TGCCable.h.

34{ return m_type; }

◆ getChannelIn()

virtual TGCChannelId * MuonTGC_Cabling::TGCCable::getChannelIn ( const TGCChannelId * ,
bool  ) const
inlineprotectedvirtualinherited

◆ getChannelOut()

virtual TGCChannelId * MuonTGC_Cabling::TGCCable::getChannelOut ( const TGCChannelId * ,
bool  ) const
inlineprotectedvirtualinherited

◆ getModule()

TGCModuleMap * MuonTGC_Cabling::TGCCableSSWToROD::getModule ( const TGCModuleId * moduleId) const
virtual

Definition at line 41 of file TGCCableSSWToROD.cxx.

41 {
42 if (moduleId) {
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 nullptr;
51}
virtual TGCModuleMap * getModuleIn(const TGCModuleId *rod) const
virtual TGCModuleMap * getModuleOut(const TGCModuleId *ssw) const

◆ getModuleIn()

TGCModuleMap * MuonTGC_Cabling::TGCCableSSWToROD::getModuleIn ( const TGCModuleId * rod) const
privatevirtual

Reimplemented from MuonTGC_Cabling::TGCCable.

Definition at line 53 of file TGCCableSSWToROD.cxx.

53 {
54 if (!rod->isValid()) {
55 return nullptr;
56 }
57
58 const TGCId::SideType rodSideType = rod->getSideType();
59 const int rodReadoutSector = rod->getReadoutSector();
60
61 TGCModuleMap* mapId = nullptr;
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 TGCModuleSSW* ssw = new TGCModuleSSW(rodSideType, rodReadoutSector, id);
67 if (mapId == nullptr) {
68 mapId = new TGCModuleMap();
69 }
70 mapId->insert(block, ssw);
71 }
72 return mapId;
73}

◆ getModuleOut()

TGCModuleMap * MuonTGC_Cabling::TGCCableSSWToROD::getModuleOut ( const TGCModuleId * ssw) const
privatevirtual

Reimplemented from MuonTGC_Cabling::TGCCable.

Definition at line 75 of file TGCCableSSWToROD.cxx.

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

◆ 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
privateinherited

Definition at line 51 of file TGCCable.h.


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