ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1RawDataSystems
src
VP1RawDataColl_RPC_Digit.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 "
VP1RawDataSystems/VP1RawDataColl_RPC_Digit.h
"
6
#include "
VP1RawDataSystems/VP1RawDataCommonData.h
"
7
#include "
VP1RawDataSystems/VP1RawDataSysController.h
"
8
#include "
RpcDigitCuts.h
"
9
#include "
VP1RawDataSystems/VP1RawDataHandle_RPC_Digit.h
"
10
#include "
VP1Utils/VP1SGContentsHelper.h
"
11
#include "
VP1Utils/VP1JobConfigInfo.h
"
12
#include "
VP1Utils/VP1DetInfo.h
"
13
#include "
VP1Base/VP1MaterialButton.h
"
14
#include "
MuonDigitContainer/RpcDigitContainer.h
"
15
#include "
MuonReadoutGeometry/MuonDetectorManager.h
"
16
#include "
StoreGate/ReadHandle.h
"
17
18
QStringList
VP1RawDataColl_RPC_Digit::availableCollections
(
IVP1System
* sys)
19
{
20
return
VP1SGContentsHelper
(sys).
getKeys
<
RpcDigitContainer
>();
21
}
22
23
VP1RawDataColl_RPC_Digit::VP1RawDataColl_RPC_Digit
(
24
VP1RawDataCommonData
*
common
,
const
QString& key)
25
:
VP1RawDataCollBase
(
common
, key),
m_cuts
(
std
::make_unique<
RpcDigitCuts
>())
26
{
27
connect(
common
->controller(), &
VP1RawDataSysController::rpcShowEtaChanged
,
28
this
, &
VP1RawDataColl_RPC_Digit::setRpcShowEta
);
29
setRpcShowEta
(
common
->controller()->rpcShowEta());
30
connect(
common
->controller(), &
VP1RawDataSysController::rpcShowPhiChanged
,
31
this
, &
VP1RawDataColl_RPC_Digit::setRpcShowPhi
);
32
setRpcShowPhi
(
common
->controller()->rpcShowPhi());
33
connect(
common
->controller(), &
VP1RawDataSysController::rpcShowPrimarySideChanged
,
34
this
, &
VP1RawDataColl_RPC_Digit::setRpcShowPrimarySide
);
35
setRpcShowPrimarySide
(
common
->controller()->rpcShowPrimarySide());
36
connect(
common
->controller(), &
VP1RawDataSysController::rpcShowOppositeSideChanged
,
37
this
, &
VP1RawDataColl_RPC_Digit::setRpcShowOppositeSide
);
38
setRpcShowOppositeSide
(
common
->controller()->rpcShowOppositeSide());
39
connect(
common
->controller(), &
VP1RawDataSysController::rpcKeepMissingToTChanged
,
40
this
, &
VP1RawDataColl_RPC_Digit::setRpcKeepMissingToT
);
41
setRpcKeepMissingToT
(
common
->controller()->rpcKeepMissingToT());
42
connect(
common
->controller(), &
VP1RawDataSysController::rpcAllowedTimeChanged
,
43
this
, &
VP1RawDataColl_RPC_Digit::setRpcAllowedTime
);
44
setRpcAllowedTime
(
common
->controller()->rpcAllowedTime());
45
connect(
common
->controller(), &
VP1RawDataSysController::rpcAllowedToTChanged
,
46
this
, &
VP1RawDataColl_RPC_Digit::setRpcAllowedToT
);
47
setRpcAllowedToT
(
common
->controller()->rpcAllowedToT());
48
}
49
50
VP1RawDataColl_RPC_Digit::~VP1RawDataColl_RPC_Digit
() =
default
;
51
52
void
VP1RawDataColl_RPC_Digit::assignDefaultMaterial
(SoMaterial*
material
)
const
53
{
54
VP1MaterialButton::setMaterialParametersFromRGB
(
material
, 255, 190, 80, 0.1);
55
}
56
57
bool
VP1RawDataColl_RPC_Digit::load
()
58
{
59
const
auto
* helper =
VP1DetInfo::rpcIDHelper
();
60
const
auto
* manager =
VP1DetInfo::muonDetMgr
();
61
if
(!
VP1JobConfigInfo::hasMuonGeometry
() || !helper || !manager) {
62
message
(
"RPC geometry or identifier helper unavailable"
);
63
return
false
;
64
}
65
SG::ReadHandleKey<RpcDigitContainer>
key{
text
().toStdString()};
66
if
(key.initialize().isFailure())
67
return
false
;
68
SG::ReadHandle<RpcDigitContainer>
container(key, Gaudi::Hive::currentContext());
69
if
(!container.isValid()) {
70
message
(
"Could not retrieve RPC digit container "
+
text
());
71
return
false
;
72
}
73
unsigned
skipped = 0;
74
for
(
const
auto
* collection : *container) {
75
if
(!collection)
76
continue
;
77
for
(
const
RpcDigit
* digit : *collection) {
78
if
(!digit || !helper->valid(digit->identify()) ||
79
!manager->getRpcReadoutElement(digit->identify())) {
80
++skipped;
81
continue
;
82
}
83
addHandle
(
new
VP1RawDataHandle_RPC_Digit
(
this
, digit));
84
}
85
}
86
if
(skipped)
87
message
(QString(
"Skipped %1 RPC digits with invalid identifiers or missing geometry"
).arg(skipped));
88
return
true
;
89
}
90
91
bool
VP1RawDataColl_RPC_Digit::cut
(
VP1RawDataHandleBase
* handle)
92
{
93
const
auto
* digit =
static_cast<
const
VP1RawDataHandle_RPC_Digit
*
>
(handle);
94
return
m_cuts
->accepts(digit->measuresPhi(), digit->time(), digit->timeOverThreshold(), digit->oppositeSide());
95
}
96
97
void
VP1RawDataColl_RPC_Digit::setRpcShowEta
(
bool
enabled)
98
{
99
if
(
m_cuts
->showEta == enabled)
100
return
;
101
m_cuts
->showEta = enabled;
102
if
(enabled)
103
recheckCutStatusOfAllNotVisibleHandles
();
104
else
105
recheckCutStatusOfAllVisibleHandles
();
106
}
107
108
void
VP1RawDataColl_RPC_Digit::setRpcShowPhi
(
bool
enabled)
109
{
110
if
(
m_cuts
->showPhi == enabled)
111
return
;
112
m_cuts
->showPhi = enabled;
113
if
(enabled)
114
recheckCutStatusOfAllNotVisibleHandles
();
115
else
116
recheckCutStatusOfAllVisibleHandles
();
117
}
118
119
void
VP1RawDataColl_RPC_Digit::setRpcShowPrimarySide
(
bool
enabled)
120
{
121
if
(
m_cuts
->showPrimarySide == enabled)
122
return
;
123
m_cuts
->showPrimarySide = enabled;
124
if
(enabled)
125
recheckCutStatusOfAllNotVisibleHandles
();
126
else
127
recheckCutStatusOfAllVisibleHandles
();
128
}
129
130
void
VP1RawDataColl_RPC_Digit::setRpcShowOppositeSide
(
bool
enabled)
131
{
132
if
(
m_cuts
->showOppositeSide == enabled)
133
return
;
134
m_cuts
->showOppositeSide = enabled;
135
if
(enabled)
136
recheckCutStatusOfAllNotVisibleHandles
();
137
else
138
recheckCutStatusOfAllVisibleHandles
();
139
}
140
141
void
VP1RawDataColl_RPC_Digit::setRpcKeepMissingToT
(
bool
enabled)
142
{
143
if
(
m_cuts
->keepMissingToT == enabled)
144
return
;
145
m_cuts
->keepMissingToT = enabled;
146
if
(enabled)
147
recheckCutStatusOfAllNotVisibleHandles
();
148
else
149
recheckCutStatusOfAllVisibleHandles
();
150
}
151
152
void
VP1RawDataColl_RPC_Digit::setRpcAllowedTime
(
const
VP1Interval
& range)
153
{
154
if
(
m_cuts
->timeRange == range)
155
return
;
156
m_cuts
->timeRange = range;
157
recheckCutStatusOfAllHandles
();
158
}
159
160
void
VP1RawDataColl_RPC_Digit::setRpcAllowedToT
(
const
VP1Interval
& range)
161
{
162
if
(
m_cuts
->totRange == range)
163
return
;
164
m_cuts
->totRange = range;
165
recheckCutStatusOfAllHandles
();
166
}
MuonDetectorManager.h
RpcDigitContainer.h
RpcDigitCuts.h
ReadHandle.h
Handle class for reading from StoreGate.
VP1DetInfo.h
VP1JobConfigInfo.h
VP1MaterialButton.h
VP1RawDataColl_RPC_Digit.h
VP1RawDataCommonData.h
VP1RawDataHandle_RPC_Digit.h
VP1RawDataSysController.h
VP1SGContentsHelper.h
IVP1System
Definition
IVP1System.h:36
RpcDigitContainer
Use IdentifiableContainer with RpcDigitCollection.
Definition
RpcDigitContainer.h:53
RpcDigit
Definition
RpcDigit.h:16
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:66
VP1DetInfo::rpcIDHelper
static const RpcIdHelper * rpcIDHelper()
Definition
VP1DetInfo.cxx:159
VP1DetInfo::muonDetMgr
static const MuonGM::MuonDetectorManager * muonDetMgr()
Definition
VP1DetInfo.cxx:148
VP1HelperClassBase::message
void message(const QString &) const
Definition
VP1HelperClassBase.cxx:49
VP1Interval
Definition
VP1Interval.h:23
VP1JobConfigInfo::hasMuonGeometry
static bool hasMuonGeometry()
Definition
VP1JobConfigInfo.cxx:138
VP1MaterialButton::setMaterialParametersFromRGB
static void setMaterialParametersFromRGB(SoMaterial *m, const int r, const int g, const int b, const double &brightness=0.0, const double &transp=0.0)
Definition
VP1MaterialButton.cxx:840
VP1RawDataCollBase::recheckCutStatusOfAllNotVisibleHandles
void recheckCutStatusOfAllNotVisibleHandles()
Definition
VP1RawDataCollBase.cxx:232
VP1RawDataCollBase::recheckCutStatusOfAllVisibleHandles
void recheckCutStatusOfAllVisibleHandles()
Definition
VP1RawDataCollBase.cxx:214
VP1RawDataCollBase::VP1RawDataCollBase
VP1RawDataCollBase(VP1RawDataCommonData *, const QString &key)
Definition
VP1RawDataCollBase.cxx:43
VP1RawDataCollBase::recheckCutStatusOfAllHandles
void recheckCutStatusOfAllHandles()
Definition
VP1RawDataCollBase.cxx:196
VP1RawDataCollBase::addHandle
void addHandle(VP1RawDataHandleBase *)
Definition
VP1RawDataCollBase.cxx:152
VP1RawDataColl_RPC_Digit::m_cuts
std::unique_ptr< RpcDigitCuts > m_cuts
Definition
VP1RawDataColl_RPC_Digit.h:33
VP1RawDataColl_RPC_Digit::assignDefaultMaterial
void assignDefaultMaterial(SoMaterial *) const override
Definition
VP1RawDataColl_RPC_Digit.cxx:52
VP1RawDataColl_RPC_Digit::availableCollections
static QStringList availableCollections(IVP1System *)
Definition
VP1RawDataColl_RPC_Digit.cxx:18
VP1RawDataColl_RPC_Digit::setRpcAllowedTime
void setRpcAllowedTime(const VP1Interval &)
Definition
VP1RawDataColl_RPC_Digit.cxx:152
VP1RawDataColl_RPC_Digit::load
bool load() override
Definition
VP1RawDataColl_RPC_Digit.cxx:57
VP1RawDataColl_RPC_Digit::setRpcAllowedToT
void setRpcAllowedToT(const VP1Interval &)
Definition
VP1RawDataColl_RPC_Digit.cxx:160
VP1RawDataColl_RPC_Digit::setRpcShowPrimarySide
void setRpcShowPrimarySide(bool)
Definition
VP1RawDataColl_RPC_Digit.cxx:119
VP1RawDataColl_RPC_Digit::setRpcKeepMissingToT
void setRpcKeepMissingToT(bool)
Definition
VP1RawDataColl_RPC_Digit.cxx:141
VP1RawDataColl_RPC_Digit::cut
bool cut(VP1RawDataHandleBase *) override
Definition
VP1RawDataColl_RPC_Digit.cxx:91
VP1RawDataColl_RPC_Digit::setRpcShowPhi
void setRpcShowPhi(bool)
Definition
VP1RawDataColl_RPC_Digit.cxx:108
VP1RawDataColl_RPC_Digit::setRpcShowEta
void setRpcShowEta(bool)
Definition
VP1RawDataColl_RPC_Digit.cxx:97
VP1RawDataColl_RPC_Digit::setRpcShowOppositeSide
void setRpcShowOppositeSide(bool)
Definition
VP1RawDataColl_RPC_Digit.cxx:130
VP1RawDataColl_RPC_Digit::VP1RawDataColl_RPC_Digit
VP1RawDataColl_RPC_Digit(VP1RawDataCommonData *, const QString &key)
Definition
VP1RawDataColl_RPC_Digit.cxx:23
VP1RawDataColl_RPC_Digit::~VP1RawDataColl_RPC_Digit
~VP1RawDataColl_RPC_Digit() override
VP1RawDataCommonData
Definition
VP1RawDataCommonData.h:31
VP1RawDataHandleBase
Definition
VP1RawDataHandleBase.h:34
VP1RawDataHandle_RPC_Digit
Definition
VP1RawDataHandle_RPC_Digit.h:12
VP1RawDataSysController::rpcShowEtaChanged
void rpcShowEtaChanged(bool)
VP1RawDataSysController::rpcShowPhiChanged
void rpcShowPhiChanged(bool)
VP1RawDataSysController::rpcShowPrimarySideChanged
void rpcShowPrimarySideChanged(bool)
VP1RawDataSysController::rpcShowOppositeSideChanged
void rpcShowOppositeSideChanged(bool)
VP1RawDataSysController::rpcAllowedToTChanged
void rpcAllowedToTChanged(const VP1Interval &)
VP1RawDataSysController::rpcKeepMissingToTChanged
void rpcKeepMissingToTChanged(bool)
VP1RawDataSysController::rpcAllowedTimeChanged
void rpcAllowedTimeChanged(const VP1Interval &)
VP1SGContentsHelper
Definition
VP1SGContentsHelper.h:26
VP1SGContentsHelper::getKeys
QStringList getKeys() const
Definition
VP1SGContentsHelper.h:55
VP1StdCollection::material
SoMaterial * material() const
Definition
VP1StdCollection.cxx:220
VP1StdCollection::text
QString text() const
Definition
VP1StdCollection.cxx:132
common
Definition
common.py:1
std
STL namespace.
RpcDigitCuts
Definition
RpcDigitCuts.h:11
Generated on
for ATLAS Offline Software by
1.17.0