ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCablings
MuonTGC_Cabling
src
TGCCableHPBToSL.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
MuonTGC_Cabling/TGCCableHPBToSL.h
"
6
7
#include "
MuonTGC_Cabling/TGCDatabasePPToSL.h
"
8
#include "
MuonTGC_Cabling/TGCModuleHPB.h
"
9
#include "
MuonTGC_Cabling/TGCModuleSL.h
"
10
11
namespace
MuonTGC_Cabling
{
12
13
TGCCableHPBToSL::TGCCableHPBToSL
(
const
std::string& filename)
14
:
TGCCable
(
TGCCable
::
HPBToSL
),
m_database
{{{
nullptr
}}} {
15
m_database.at(+TGCId::RegionType::Endcap).at(+TGCId::SignalType::Wire) =
16
std::make_unique<TGCDatabasePPToSL>(filename,
"HPB EW"
);
17
m_database.at(+TGCId::RegionType::Endcap).at(+TGCId::SignalType::Strip) =
18
std::make_unique<TGCDatabasePPToSL>(filename,
"HPB ES"
);
19
m_database.at(+TGCId::RegionType::Forward).at(+TGCId::SignalType::Wire) =
20
std::make_unique<TGCDatabasePPToSL>(filename,
"HPB FW"
);
21
m_database.at(+TGCId::RegionType::Forward).at(+TGCId::SignalType::Strip) =
22
std::make_unique<TGCDatabasePPToSL>(filename,
"HPB FS"
);
23
}
24
25
TGCCableHPBToSL::~TGCCableHPBToSL() =
default
;
26
27
TGCModuleMap
TGCCableHPBToSL::getModule
(
const
TGCModuleId
& moduleId)
const
{
28
if
(moduleId.
getModuleIdType
() ==
TGCModuleId::HPB
) {
29
return
getModuleOut
(moduleId);
30
}
31
if
(moduleId.
getModuleIdType
() ==
TGCModuleId::SL
) {
32
return
getModuleIn
(moduleId);
33
}
34
return
TGCModuleMap
{};
35
}
36
37
TGCModuleMap
TGCCableHPBToSL::getModuleIn
(
const
TGCModuleId
& sl)
const
{
38
if
(sl.
isValid
() ==
false
) {
39
return
TGCModuleMap
{};
40
}
41
42
TGCDatabase
* wireP =
m_database
.at(+sl.
getRegionType
()).at(+
TGCId::SignalType::Wire
).get();
43
TGCDatabase
* stripP =
m_database
.at(+sl.
getRegionType
()).at(+
TGCId::SignalType::Strip
).get();
44
45
TGCModuleMap
mapId{};
46
const
int
wireMaxEntry = wireP->
getMaxEntry
();
47
for
(
int
i = 0; i < wireMaxEntry; i++) {
48
int
id
= wireP->
getEntry
(i, 0);
49
int
block = wireP->
getEntry
(i, 1);
50
auto
hpb = std::make_unique<TGCModuleHPB>(sl.
getSideType
(),
51
TGCId::SignalType::Wire
,
52
sl.
getRegionType
(),
53
sl.
getSector
(),
id
);
54
mapId.
insert
(block, std::move(hpb));
55
}
56
57
const
int
stripMaxEntry = stripP->
getMaxEntry
();
58
for
(
int
i = 0; i < stripMaxEntry; i++) {
59
int
id
= stripP->
getEntry
(i, 0);
60
int
block = stripP->
getEntry
(i, 1);
61
auto
hpb = std::make_unique<TGCModuleHPB>(
62
sl.
getSideType
(),
TGCId::SignalType::Strip
, sl.
getRegionType
(), sl.
getSector
(),
63
id
);
64
mapId.
insert
(block, std::move(hpb));
65
}
66
67
return
mapId;
68
}
69
70
TGCModuleMap
TGCCableHPBToSL::getModuleOut
(
const
TGCModuleId
& hpb)
const
{
71
if
(hpb.
isValid
() ==
false
) {
72
return
TGCModuleMap
{};
73
}
74
75
const
int
hpbId = hpb.
getId
();
76
77
TGCDatabase
* databaseP =
78
m_database
.at(+hpb.
getRegionType
()).at(+hpb.
getSignalType
()).get();
79
80
TGCModuleMap
mapId{};
81
const
int
MaxEntry = databaseP->
getMaxEntry
();
82
for
(
int
i = 0; i < MaxEntry; i++) {
83
if
(databaseP->
getEntry
(i, 0) == hpbId) {
84
int
block = databaseP->
getEntry
(i, 1);
85
auto
sl = std::make_unique<TGCModuleSL>(
86
hpb.
getSideType
(), hpb.
getRegionType
(), hpb.
getSector
());
87
88
mapId.
insert
(block, std::move(sl));
89
break
;
90
}
91
}
92
93
return
mapId;
94
}
95
96
}
// namespace MuonTGC_Cabling
TGCCableHPBToSL.h
TGCDatabasePPToSL.h
TGCModuleHPB.h
TGCModuleSL.h
MuonTGC_Cabling::TGCCableHPBToSL::TGCCableHPBToSL
TGCCableHPBToSL(const std::string &filename)
Definition
TGCCableHPBToSL.cxx:13
MuonTGC_Cabling::TGCCableHPBToSL::getModuleIn
TGCModuleMap getModuleIn(const TGCModuleId &sl) const
Definition
TGCCableHPBToSL.cxx:37
MuonTGC_Cabling::TGCCableHPBToSL::getModule
TGCModuleMap getModule(const TGCModuleId &moduleId) const
Definition
TGCCableHPBToSL.cxx:27
MuonTGC_Cabling::TGCCableHPBToSL::getModuleOut
TGCModuleMap getModuleOut(const TGCModuleId &hpt) const
Definition
TGCCableHPBToSL.cxx:70
MuonTGC_Cabling::TGCCableHPBToSL::m_database
std::array< std::array< std::unique_ptr< TGCDatabase >,+TGCId::SignalType::MaxSignalType >,+TGCId::RegionType::MaxRegionType > m_database
Definition
TGCCableHPBToSL.h:31
MuonTGC_Cabling::TGCCable::HPBToSL
@ HPBToSL
Definition
TGCCable.h:24
MuonTGC_Cabling::TGCCable::TGCCable
TGCCable(CableType type=NoCableType)
Definition
TGCCable.h:31
MuonTGC_Cabling::TGCDatabase
Definition
TGCDatabase.h:13
MuonTGC_Cabling::TGCDatabase::getMaxEntry
virtual int getMaxEntry() const
Definition
TGCDatabase.cxx:25
MuonTGC_Cabling::TGCDatabase::getEntry
virtual int getEntry(int entry, int column) const
Definition
TGCDatabase.cxx:17
MuonTGC_Cabling::TGCId::SignalType::Strip
@ Strip
Definition
TGCId.h:58
MuonTGC_Cabling::TGCId::SignalType::Wire
@ Wire
Definition
TGCId.h:58
MuonTGC_Cabling::TGCId::getRegionType
RegionType getRegionType() const
Definition
TGCId.h:137
MuonTGC_Cabling::TGCId::getSector
virtual int getSector() const
Definition
TGCId.h:144
MuonTGC_Cabling::TGCId::getSideType
SideType getSideType() const
Definition
TGCId.h:125
MuonTGC_Cabling::TGCId::getSignalType
SignalType getSignalType() const
Definition
TGCId.h:134
MuonTGC_Cabling::TGCId::getId
int getId() const
Definition
TGCId.h:150
MuonTGC_Cabling::TGCModuleId
Definition
TGCModuleId.h:12
MuonTGC_Cabling::TGCModuleId::SL
@ SL
Definition
TGCModuleId.h:19
MuonTGC_Cabling::TGCModuleId::HPB
@ HPB
Definition
TGCModuleId.h:18
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::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
Generated on
for ATLAS Offline Software by
1.17.0