ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCablings
MuonCablingData
src
MdtTdcMap.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 "
MuonCablingData/MdtTdcMap.h
"
6
7
#include "
MuonIdHelpers/MdtIdHelper.h
"
8
9
// constructor
10
MdtTdcMap::MdtTdcMap
(
MezzCardPtr
mezType,
const
MdtCablingData
& cabling_data)
11
:
m_statId
{cabling_data},
m_mezzCard
{
std
::move(mezType)} {
12
for
(uint8_t globTube :
m_mezzCard
->tdcToTubeMap()) {
13
if (globTube == NOTSET)
14
continue;
15
int8_t tube = globTube % m_mezzCard->numTubesPerLayer();
16
m_minTube = std::min(m_minTube, tube);
17
m_maxTube = std::max(m_maxTube, tube);
18
}
19
m_minTube
+=
tubeZero
();
20
m_maxTube
+=
tubeZero
();
21
}
22
23
// get the offlineId
24
bool
MdtTdcMap::offlineId
(
MdtCablingData
& cabling_map, MsgStream& log)
const
{
25
if
(
onlineId
() != cabling_map) {
26
if
(log.level() <= MSG::VERBOSE) {
27
log << MSG::VERBOSE << cabling_map
28
<<
" does not have the same online Id "
<<
onlineId
() <<
endmsg
;
29
return
false
;
30
}
31
}
32
using
OfflineCh =
MdtMezzanineCard::OfflineCh
;
33
OfflineCh tubeLayer =
m_mezzCard
->offlineTube(cabling_map.
channelId
, log);
34
static_cast<
MdtCablingOffData
&
>
(cabling_map) =
offId
();
35
cabling_map.
tube
=
tubeZero
() + tubeLayer.tube;
36
cabling_map.
layer
= tubeLayer.layer;
37
return
tubeLayer.isValid;
38
}
39
bool
MdtTdcMap::onlineId
(
MdtCablingData
& cabling_data, MsgStream& log)
const
{
40
if
(
offId
() != cabling_data) {
41
log << MSG::WARNING <<
"The cabling data "
<< cabling_data
42
<<
" does not share the same offline id as the Tdc "
<<
offId
()
43
<<
". "
<<
endmsg
;
44
return
false
;
45
}
46
const
bool
debug
=
true
|| log.level() <= MSG::VERBOSE;
47
const
uint8_t tubeOffSet =
48
(
tubeZero
() - 1) %
m_mezzCard
->numTubesPerLayer();
49
if
(
debug
) {
50
log << MSG::VERBOSE <<
"Try to match "
<< cabling_data <<
endmsg
;
51
}
52
if
(cabling_data.tube <
minTube
() || cabling_data.tube >
maxTube
()) {
53
if
(
debug
) {
54
log << MSG::VERBOSE <<
"The requested tube "
55
<<
static_cast<
int
>
(cabling_data.tube) <<
" is out of range "
56
<<
static_cast<
int
>
(
minTube
()) <<
" -- "
57
<<
static_cast<
int
>
(
maxTube
()) <<
endmsg
;
58
}
59
return
false
;
60
}
61
cabling_data.channelId =
m_mezzCard
->tdcChannel(
62
cabling_data.layer, cabling_data.tube - tubeOffSet, log);
63
static_cast<
MdtCablingOnData
&
>
(cabling_data) =
m_statId
;
64
cabling_data.tdcId =
moduleId
();
65
cabling_data.mezzanine_type =
m_mezzCard
->id();
66
if
(
debug
) {
67
log << MSG::VERBOSE <<
"Mapped to "
<<
m_statId
<<
", channel "
68
<<
static_cast<
int
>
(cabling_data.channelId) <<
endmsg
;
69
}
70
return
cabling_data.channelId !=
NOTSET
;
71
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
debug
const bool debug
Definition
MakeUncertaintyPlots.cxx:53
MdtIdHelper.h
MdtTdcMap.h
MdtTdcMap::m_mezzCard
MezzCardPtr m_mezzCard
Definition
MdtTdcMap.h:80
MdtTdcMap::m_maxTube
int8_t m_maxTube
Definition
MdtTdcMap.h:83
MdtTdcMap::offlineId
bool offlineId(MdtCablingData &cabling_data, MsgStream &log) const
retrieve the full information
Definition
MdtTdcMap.cxx:24
MdtTdcMap::moduleId
uint8_t moduleId() const
return the tdc id
Definition
MdtTdcMap.h:50
MdtTdcMap::offId
const MdtCablingOffData & offId() const
get the offline identifier
Definition
MdtTdcMap.h:57
MdtTdcMap::m_statId
MdtCablingData m_statId
tube corresponding to each tdc channel
Definition
MdtTdcMap.h:79
MdtTdcMap::MezzCardPtr
MdtMezzanineCard::MezzCardPtr MezzCardPtr
Definition
MdtTdcMap.h:31
MdtTdcMap::m_minTube
int8_t m_minTube
Definition
MdtTdcMap.h:82
MdtTdcMap::maxTube
uint8_t maxTube() const
Definition
MdtTdcMap.h:74
MdtTdcMap::minTube
uint8_t minTube() const
Definition
MdtTdcMap.h:75
MdtTdcMap::MdtTdcMap
MdtTdcMap(const MezzCardPtr mezType, const MdtCablingData &cabling_data)
constructor
Definition
MdtTdcMap.cxx:10
MdtTdcMap::tubeZero
uint8_t tubeZero() const
Definition
MdtTdcMap.h:72
MdtTdcMap::NOTSET
static constexpr uint8_t NOTSET
Definition
MdtTdcMap.h:30
MdtTdcMap::onlineId
const MdtCablingOnData & onlineId() const
get the online identiifer
Definition
MdtTdcMap.h:59
std
STL namespace.
MdtCablingData
Definition
MdtCablingData.h:84
MdtCablingData::layer
int layer
Definition
MdtCablingData.h:87
MdtCablingData::tube
int tube
Layer inside the multilayer.
Definition
MdtCablingData.h:88
MdtCablingData::channelId
uint8_t channelId
Identifier of the corresponding tdc.
Definition
MdtCablingData.h:94
MdtCablingOffData
Split the offline part of the cabling apart to use it later for sorting.
Definition
MdtCablingData.h:16
MdtCablingOnData
Definition
MdtCablingData.h:51
MdtMezzanineCard::OfflineCh
Helper struct to pipe the result from the tdc -> offline channel translation.
Definition
MdtMezzanineCard.h:73
Generated on
for ATLAS Offline Software by
1.17.0