ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCablings
MuonTGC_Cabling
src
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
5
#include "
MuonTGC_Cabling/TGCCableSSWToROD.h
"
6
7
#include "
MuonTGC_Cabling/TGCDatabaseSLBToROD.h
"
8
#include "
MuonTGC_Cabling/TGCModuleROD.h
"
9
#include "
MuonTGC_Cabling/TGCModuleSSW.h
"
10
11
namespace
MuonTGC_Cabling
{
12
13
TGCCableSSWToROD::TGCCableSSWToROD
(
const
std::string& filename)
14
:
TGCCable
(
TGCCable
::
SSWToROD
),
15
m_database
(
std
::make_unique<
TGCDatabaseSLBToROD
>(filename,
"SSW ALL"
)) {}
16
17
TGCCableSSWToROD::TGCCableSSWToROD
(
const
TGCCableSSWToROD
& right)
18
:
TGCCable
(
TGCCable
::
SSWToROD
) {
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
}
26
27
TGCCableSSWToROD
&
TGCCableSSWToROD::operator=
(
const
TGCCableSSWToROD
& right) {
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
}
38
39
TGCCableSSWToROD::~TGCCableSSWToROD
() =
default
;
40
41
TGCModuleMap
TGCCableSSWToROD::getModule
(
const
TGCModuleId
& moduleId)
const
{
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
}
52
53
TGCModuleMap
TGCCableSSWToROD::getModuleIn
(
const
TGCModuleId
& rod)
const
{
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
}
72
73
TGCModuleMap
TGCCableSSWToROD::getModuleOut
(
const
TGCModuleId
& ssw)
const
{
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
}
94
95
}
// namespace MuonTGC_Cabling
TGCCableSSWToROD.h
TGCDatabaseSLBToROD.h
TGCModuleROD.h
TGCModuleSSW.h
MuonTGC_Cabling::TGCCableSSWToROD::TGCCableSSWToROD
TGCCableSSWToROD()=delete
MuonTGC_Cabling::TGCCableSSWToROD::getModuleOut
TGCModuleMap getModuleOut(const TGCModuleId &ssw) const
Definition
TGCCableSSWToROD.cxx:73
MuonTGC_Cabling::TGCCableSSWToROD::TGCCableSSWToROD
TGCCableSSWToROD(const std::string &filename)
Definition
TGCCableSSWToROD.cxx:13
MuonTGC_Cabling::TGCCableSSWToROD::getModule
TGCModuleMap getModule(const TGCModuleId &moduleId) const
Definition
TGCCableSSWToROD.cxx:41
MuonTGC_Cabling::TGCCableSSWToROD::operator=
TGCCableSSWToROD & operator=(const TGCCableSSWToROD &)
Definition
TGCCableSSWToROD.cxx:27
MuonTGC_Cabling::TGCCableSSWToROD::~TGCCableSSWToROD
virtual ~TGCCableSSWToROD()
MuonTGC_Cabling::TGCCableSSWToROD::getModuleIn
TGCModuleMap getModuleIn(const TGCModuleId &rod) const
Definition
TGCCableSSWToROD.cxx:53
MuonTGC_Cabling::TGCCableSSWToROD::m_database
std::unique_ptr< TGCDatabase > m_database
Definition
TGCCableSSWToROD.h:30
MuonTGC_Cabling::TGCCable::SSWToROD
@ SSWToROD
Definition
TGCCable.h:26
MuonTGC_Cabling::TGCCable::TGCCable
TGCCable(CableType type=NoCableType)
Definition
TGCCable.h:31
MuonTGC_Cabling::TGCDatabaseSLBToROD
Definition
TGCDatabaseSLBToROD.h:12
MuonTGC_Cabling::TGCId::getSideType
SideType getSideType() const
Definition
TGCId.h:125
MuonTGC_Cabling::TGCId::getId
int getId() const
Definition
TGCId.h:150
MuonTGC_Cabling::TGCId::SideType
SideType
Definition
TGCId.h:48
MuonTGC_Cabling::TGCModuleId
Definition
TGCModuleId.h:12
MuonTGC_Cabling::TGCModuleId::ROD
@ ROD
Definition
TGCModuleId.h:21
MuonTGC_Cabling::TGCModuleId::SSW
@ SSW
Definition
TGCModuleId.h:20
MuonTGC_Cabling::TGCModuleId::getModuleIdType
ModuleIdType getModuleIdType() const
Definition
TGCModuleId.h:32
MuonTGC_Cabling::TGCModuleId::isValid
virtual bool isValid() const
Definition
TGCModuleId.h:36
MuonTGC_Cabling::TGCModuleId::getReadoutSector
int getReadoutSector() const
Definition
TGCModuleId.h:38
MuonTGC_Cabling::TGCModuleMap
Definition
TGCModuleMap.h:15
MuonTGC_Cabling::TGCModuleMap::insert
void insert(int connector, std::unique_ptr< TGCModuleId > moduleId)
Definition
TGCModuleMap.cxx:33
MuonTGC_Cabling
Definition
TGCCable.h:12
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0