ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1RawDataSystems
src
VP1RawDataColl_sTGC_RDO.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
7
// //
8
// Implementation of class VP1RawDataColl_sTGC_RDO //
9
// //
10
// Author: Riccardo Maria BIANCHI <riccardo.maria.bianchi>
11
// Initial version: December 2024 //
12
// //
14
15
#include "
VP1RawDataSystems/VP1RawDataCommonData.h
"
16
#include "
VP1RawDataSystems/VP1RawDataSysController.h
"
17
#include "
VP1RawDataSystems/VP1RawDataColl_sTGC_RDO.h
"
18
#include "
VP1RawDataSystems/VP1RawDataHandle_sTGC_RDO.h
"
19
20
#include "
VP1Utils/VP1JobConfigInfo.h
"
21
#include "
VP1Base/VP1MaterialButton.h
"
22
#include "
VP1Utils/VP1SGContentsHelper.h
"
23
#include "
VP1Utils/VP1SGAccessHelper.h
"
24
25
#include "
MuonReadoutGeometry/MuonDetectorManager.h
"
26
27
#include "
StoreGate/ReadCondHandle.h
"
28
29
//____________________________________________________________________
30
QStringList
VP1RawDataColl_sTGC_RDO::availableCollections
(
IVP1System
*sys)
31
{
32
return
VP1SGContentsHelper
(sys).
getKeys
<
sTgcDigitContainer
>();
33
}
34
35
//____________________________________________________________________
36
class
VP1RawDataColl_sTGC_RDO::Imp
{
37
public
:
38
bool
stgcShowPads
=
true
;
39
bool
stgcShowStrips
=
true
;
40
bool
stgcShowWires
=
true
;
41
bool
stgcExcludeDead
=
false
;
42
bool
stgcExcludePileup
=
false
;
43
44
VP1Interval
stgcAllowedCharge
;
45
VP1Interval
stgcAllowedTime
;
46
47
};
48
49
50
//____________________________________________________________________
51
VP1RawDataColl_sTGC_RDO::VP1RawDataColl_sTGC_RDO
(
VP1RawDataCommonData
*
common
,
const
QString& key)
52
:
VP1RawDataCollBase
(
common
,key),
m_d
(new
Imp
)
53
{
54
connect(
common
->controller(), SIGNAL(stgcAllowedChargeChanged(
const
VP1Interval
&)),
55
this
, SLOT(
setStgcAllowedCharge
(
const
VP1Interval
&)));
56
setStgcAllowedCharge
(
common
->controller()->stgcAllowedCharge());
57
connect(
common
->controller(), SIGNAL(stgcAllowedTimeChanged(
const
VP1Interval
&)),
58
this
, SLOT(
setStgcAllowedTime
(
const
VP1Interval
&)));
59
setStgcAllowedTime
(
common
->controller()->stgcAllowedTime());
60
connect(
common
->controller(), SIGNAL(stgcShowPadsChanged(
bool
)),
61
this
, SLOT(
setStgcShowPads
(
bool
)));
62
setStgcShowPads
(
common
->controller()->stgcShowPads());
63
connect(
common
->controller(), SIGNAL(stgcShowStripsChanged(
bool
)),
64
this
, SLOT(
setStgcShowStrips
(
bool
)));
65
setStgcShowStrips
(
common
->controller()->stgcShowStrips());
66
connect(
common
->controller(), SIGNAL(stgcShowWiresChanged(
bool
)),
67
this
, SLOT(
setStgcShowWires
(
bool
)));
68
setStgcShowWires
(
common
->controller()->stgcShowWires());
69
connect(
common
->controller(), SIGNAL(stgcExcludeDeadChanged(
bool
)),
70
this
, SLOT(
setStgcExcludeDead
(
bool
)));
71
setStgcExcludeDead
(
common
->controller()->stgcExcludeDead());
72
connect(
common
->controller(), SIGNAL(stgcExcludePileupChanged(
bool
)),
73
this
, SLOT(
setStgcExcludePileup
(
bool
)));
74
setStgcExcludePileup
(
common
->controller()->stgcExcludePileup());
75
76
}
77
78
//____________________________________________________________________
79
VP1RawDataColl_sTGC_RDO::~VP1RawDataColl_sTGC_RDO
()
80
{
81
delete
m_d
;
82
}
83
84
//____________________________________________________________________
85
void
VP1RawDataColl_sTGC_RDO::assignDefaultMaterial
(SoMaterial*m)
const
86
{
87
VP1MaterialButton::setMaterialParameters
( m, 0.42, 0.96, 0.16, 0.1 );
88
}
89
90
//____________________________________________________________________
91
bool
VP1RawDataColl_sTGC_RDO::load
() {
92
if
(!
VP1JobConfigInfo::hasMuonGeometry
()) {
93
message
(
"Muon geometry not configured in job"
);
94
return
false
;
95
}
96
97
// get the detMgr
98
// TODO: we should probably simplify by moving to:
99
// const MuonGM::MuonDetectorManager * detmgr = VP1DetInfo::muonDetMgr();
100
SG::ReadCondHandleKey<MuonGM::MuonDetectorManager>
detMgrKey{
101
"MuonDetectorManager"
};
102
detMgrKey.
initialize
().ignore();
103
SG::ReadCondHandle<MuonGM::MuonDetectorManager>
detMgr{detMgrKey};
104
105
SG::ReadHandleKey<sTgcDigitContainer>
digitContainerKey{
"sTGC_DIGITS"
};
106
digitContainerKey.
initialize
().ignore();
107
108
const
EventContext& ctx = Gaudi::Hive::currentContext();
109
110
SG::ReadHandle<sTgcDigitContainer>
container(digitContainerKey, ctx);
111
if
(!container.isValid()) {
112
std::cout <<
"Could not find sTgcDigitContainer called "
<< container.name()
113
<<
" in store "
<< container.store() << std::endl;
114
}
115
116
// Iterate on the collections
117
for
(
const
sTgcDigitCollection
* coll : *container) {
119
for
(
const
sTgcDigit
* digit : *coll) {
120
const
Identifier
digitId{digit->identify()};
121
122
// example from Johannes
123
/*
124
mdtReadoutElement = detMgr->getMdtReadoutElement(digitId);
125
const Amg::Vector3D tubePos = mdtReadoutElement->tubePos(digitId);
126
*/
127
128
if
(digit)
129
addHandle
(
new
VP1RawDataHandle_sTGC_RDO
(
this
, digit));
130
}
131
}
132
133
// recheckCutStatusOfAllHandles();
134
return
true
;
135
}
136
137
//____________________________________________________________________
138
bool
VP1RawDataColl_sTGC_RDO::cut
(
VP1RawDataHandleBase
* handle)
139
{
140
const
auto
* digit =
static_cast<
const
VP1RawDataHandle_sTGC_RDO
*
>
(handle);
141
if
((
m_d
->stgcExcludeDead && digit->isDead()) ||
142
(
m_d
->stgcExcludePileup && digit->isPileup()))
143
return
false
;
144
if
(!
m_d
->stgcShowPads && !
m_d
->stgcShowStrips && !
m_d
->stgcShowWires)
145
return
false
;
146
if
(!(
m_d
->stgcShowPads &&
m_d
->stgcShowStrips &&
m_d
->stgcShowWires)) {
147
const
int
type
= digit->channelType();
148
if
(!((
type
==
sTgcIdHelper::Pad
&&
m_d
->stgcShowPads) ||
149
(
type
==
sTgcIdHelper::Strip
&&
m_d
->stgcShowStrips) ||
150
(
type
==
sTgcIdHelper::Wire
&&
m_d
->stgcShowWires)))
151
return
false
;
152
}
153
return
m_d
->stgcAllowedCharge.contains(digit->amplitude()) &&
154
m_d
->stgcAllowedTime.contains(digit->time());
155
}
156
157
void
VP1RawDataColl_sTGC_RDO::setStgcAllowedCharge
(
const
VP1Interval
& range)
158
{
159
if
(
m_d
->stgcAllowedCharge == range)
160
return
;
161
m_d
->stgcAllowedCharge = range;
162
recheckCutStatusOfAllHandles
();
163
}
164
165
void
VP1RawDataColl_sTGC_RDO::setStgcAllowedTime
(
const
VP1Interval
& range)
166
{
167
if
(
m_d
->stgcAllowedTime == range)
168
return
;
169
m_d
->stgcAllowedTime = range;
170
recheckCutStatusOfAllHandles
();
171
}
172
173
void
VP1RawDataColl_sTGC_RDO::setStgcShowPads
(
bool
enabled)
174
{
175
if
(
m_d
->stgcShowPads == enabled)
176
return
;
177
m_d
->stgcShowPads = enabled;
178
recheckCutStatusOfAllHandles
();
179
}
180
181
void
VP1RawDataColl_sTGC_RDO::setStgcShowStrips
(
bool
enabled)
182
{
183
if
(
m_d
->stgcShowStrips == enabled)
184
return
;
185
m_d
->stgcShowStrips = enabled;
186
recheckCutStatusOfAllHandles
();
187
}
188
189
void
VP1RawDataColl_sTGC_RDO::setStgcShowWires
(
bool
enabled)
190
{
191
if
(
m_d
->stgcShowWires == enabled)
192
return
;
193
m_d
->stgcShowWires = enabled;
194
recheckCutStatusOfAllHandles
();
195
}
196
197
void
VP1RawDataColl_sTGC_RDO::setStgcExcludeDead
(
bool
enabled)
198
{
199
if
(
m_d
->stgcExcludeDead == enabled)
200
return
;
201
m_d
->stgcExcludeDead = enabled;
202
recheckCutStatusOfAllHandles
();
203
}
204
205
void
VP1RawDataColl_sTGC_RDO::setStgcExcludePileup
(
bool
enabled)
206
{
207
if
(
m_d
->stgcExcludePileup == enabled)
208
return
;
209
m_d
->stgcExcludePileup = enabled;
210
recheckCutStatusOfAllHandles
();
211
}
MuonDetectorManager.h
ReadCondHandle.h
VP1JobConfigInfo.h
VP1MaterialButton.h
VP1RawDataColl_sTGC_RDO.h
VP1RawDataCommonData.h
VP1RawDataHandle_sTGC_RDO.h
VP1RawDataSysController.h
VP1SGAccessHelper.h
VP1SGContentsHelper.h
IVP1System
Definition
IVP1System.h:36
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
SG::ReadCondHandle
Definition
ReadCondHandle.h:39
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
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition
AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
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::setMaterialParameters
static void setMaterialParameters(SoMaterial *m, const QColor &, const double &brightness=0.0, const double &transp=0.0)
Definition
VP1MaterialButton.cxx:802
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_sTGC_RDO::Imp
Definition
VP1RawDataColl_sTGC_RDO.cxx:36
VP1RawDataColl_sTGC_RDO::Imp::stgcShowWires
bool stgcShowWires
Definition
VP1RawDataColl_sTGC_RDO.cxx:40
VP1RawDataColl_sTGC_RDO::Imp::stgcExcludePileup
bool stgcExcludePileup
Definition
VP1RawDataColl_sTGC_RDO.cxx:42
VP1RawDataColl_sTGC_RDO::Imp::stgcAllowedTime
VP1Interval stgcAllowedTime
Definition
VP1RawDataColl_sTGC_RDO.cxx:45
VP1RawDataColl_sTGC_RDO::Imp::stgcExcludeDead
bool stgcExcludeDead
Definition
VP1RawDataColl_sTGC_RDO.cxx:41
VP1RawDataColl_sTGC_RDO::Imp::stgcShowStrips
bool stgcShowStrips
Definition
VP1RawDataColl_sTGC_RDO.cxx:39
VP1RawDataColl_sTGC_RDO::Imp::stgcShowPads
bool stgcShowPads
Definition
VP1RawDataColl_sTGC_RDO.cxx:38
VP1RawDataColl_sTGC_RDO::Imp::stgcAllowedCharge
VP1Interval stgcAllowedCharge
Definition
VP1RawDataColl_sTGC_RDO.cxx:44
VP1RawDataColl_sTGC_RDO::setStgcShowStrips
void setStgcShowStrips(bool)
Definition
VP1RawDataColl_sTGC_RDO.cxx:181
VP1RawDataColl_sTGC_RDO::availableCollections
static QStringList availableCollections(IVP1System *)
Definition
VP1RawDataColl_sTGC_RDO.cxx:30
VP1RawDataColl_sTGC_RDO::setStgcShowPads
void setStgcShowPads(bool)
Definition
VP1RawDataColl_sTGC_RDO.cxx:173
VP1RawDataColl_sTGC_RDO::setStgcShowWires
void setStgcShowWires(bool)
Definition
VP1RawDataColl_sTGC_RDO.cxx:189
VP1RawDataColl_sTGC_RDO::m_d
Imp * m_d
Definition
VP1RawDataColl_sTGC_RDO.h:61
VP1RawDataColl_sTGC_RDO::VP1RawDataColl_sTGC_RDO
VP1RawDataColl_sTGC_RDO(VP1RawDataCommonData *, const QString &key)
Definition
VP1RawDataColl_sTGC_RDO.cxx:51
VP1RawDataColl_sTGC_RDO::setStgcAllowedTime
void setStgcAllowedTime(const VP1Interval &)
Definition
VP1RawDataColl_sTGC_RDO.cxx:165
VP1RawDataColl_sTGC_RDO::cut
bool cut(VP1RawDataHandleBase *)
Definition
VP1RawDataColl_sTGC_RDO.cxx:138
VP1RawDataColl_sTGC_RDO::load
bool load()
Definition
VP1RawDataColl_sTGC_RDO.cxx:91
VP1RawDataColl_sTGC_RDO::setStgcExcludePileup
void setStgcExcludePileup(bool)
Definition
VP1RawDataColl_sTGC_RDO.cxx:205
VP1RawDataColl_sTGC_RDO::setStgcExcludeDead
void setStgcExcludeDead(bool)
Definition
VP1RawDataColl_sTGC_RDO.cxx:197
VP1RawDataColl_sTGC_RDO::setStgcAllowedCharge
void setStgcAllowedCharge(const VP1Interval &)
Definition
VP1RawDataColl_sTGC_RDO.cxx:157
VP1RawDataColl_sTGC_RDO::assignDefaultMaterial
void assignDefaultMaterial(SoMaterial *) const
Definition
VP1RawDataColl_sTGC_RDO.cxx:85
VP1RawDataColl_sTGC_RDO::~VP1RawDataColl_sTGC_RDO
virtual ~VP1RawDataColl_sTGC_RDO()
Definition
VP1RawDataColl_sTGC_RDO.cxx:79
VP1RawDataCommonData
Definition
VP1RawDataCommonData.h:31
VP1RawDataHandleBase
Definition
VP1RawDataHandleBase.h:34
VP1RawDataHandle_sTGC_RDO
Definition
VP1RawDataHandle_sTGC_RDO.h:25
VP1SGContentsHelper
Definition
VP1SGContentsHelper.h:26
VP1SGContentsHelper::getKeys
QStringList getKeys() const
Definition
VP1SGContentsHelper.h:55
sTgcDigitCollection
Definition
sTgcDigitCollection.h:18
sTgcDigitContainer
Use IdentifiableContainer with sTgcDigitCollection.
Definition
sTgcDigitContainer.h:50
sTgcDigit
Definition
sTgcDigit.h:20
sTgcIdHelper::Pad
@ Pad
Definition
sTgcIdHelper.h:190
sTgcIdHelper::Strip
@ Strip
Definition
sTgcIdHelper.h:190
sTgcIdHelper::Wire
@ Wire
Definition
sTgcIdHelper.h:190
Identifier
Definition
IdentifierFieldParser.cxx:14
common
Definition
common.py:1
type
Generated on
for ATLAS Offline Software by
1.17.0