ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1RawDataSystems
src
VP1RawDataColl_MDT_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_MDT_RDO //
9
// //
10
// Author: Riccardo Maria BIANCHI <riccardo.maria.bianchi>
11
// Initial version: January 2024 //
12
// //
14
15
#include "
VP1RawDataSystems/VP1RawDataCommonData.h
"
16
#include "
VP1RawDataSystems/VP1RawDataSysController.h
"
17
#include "
VP1RawDataSystems/VP1RawDataColl_MDT_RDO.h
"
18
#include "
VP1RawDataSystems/VP1RawDataHandle_MDT_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_MDT_RDO::availableCollections
(
IVP1System
*sys)
31
{
32
return
VP1SGContentsHelper
(sys).
getKeys
<
MdtDigitContainer
>();
33
}
34
35
//____________________________________________________________________
36
class
VP1RawDataColl_MDT_RDO::Imp
{
37
public
:
38
bool
excludeMasked
=
false
;
39
VP1Interval
mdtAllowedADC
;
40
VP1Interval
mdtAllowedTDC
;
41
42
};
43
44
45
//____________________________________________________________________
46
VP1RawDataColl_MDT_RDO::VP1RawDataColl_MDT_RDO
(
VP1RawDataCommonData
*
common
,
const
QString& key)
47
:
VP1RawDataCollBase
(
common
,key),
m_d
(new
Imp
)
48
{
49
connect(
common
->controller(), SIGNAL(mdtAllowedADCChanged(
const
VP1Interval
&)),
50
this
, SLOT(
setMdtAllowedADC
(
const
VP1Interval
&)));
51
setMdtAllowedADC
(
common
->controller()->mdtAllowedADC());
52
connect(
common
->controller(), SIGNAL(mdtAllowedTDCChanged(
const
VP1Interval
&)),
53
this
, SLOT(
setMdtAllowedTDC
(
const
VP1Interval
&)));
54
setMdtAllowedTDC
(
common
->controller()->mdtAllowedTDC());
55
connect(
common
->controller(), SIGNAL(mdtExcludeMaskedChanged(
bool
)),
56
this
, SLOT(
setMdtExcludeMasked
(
bool
)));
57
setMdtExcludeMasked
(
common
->controller()->mdtExcludeMasked());
58
}
59
60
//____________________________________________________________________
61
VP1RawDataColl_MDT_RDO::~VP1RawDataColl_MDT_RDO
()
62
{
63
delete
m_d
;
64
}
65
66
//____________________________________________________________________
67
void
VP1RawDataColl_MDT_RDO::assignDefaultMaterial
(SoMaterial*m)
const
68
{
69
VP1MaterialButton::setMaterialParametersFromRGB
( m, 255, 136, 0, 0.1 );
70
}
71
72
//____________________________________________________________________
73
bool
VP1RawDataColl_MDT_RDO::load
() {
74
if
(!
VP1JobConfigInfo::hasMuonGeometry
()) {
75
message
(
"Muon geometry not configured in job"
);
76
return
false
;
77
}
78
79
// // From:
80
// https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/ReadMdtDigit.cxx#0055
81
82
// get the detMgr
83
// TODO: we should probably simplify by moving to:
84
// const MuonGM::MuonDetectorManager * detmgr = VP1DetInfo::muonDetMgr();
85
SG::ReadCondHandleKey<MuonGM::MuonDetectorManager>
detMgrKey{
86
"MuonDetectorManager"
};
87
detMgrKey.
initialize
().ignore();
88
SG::ReadCondHandle<MuonGM::MuonDetectorManager>
detMgr{detMgrKey};
89
90
SG::ReadHandleKey<MdtDigitContainer>
digitContainerKey{
"MDT_DIGITS"
};
91
digitContainerKey.
initialize
().ignore();
92
93
const
EventContext& ctx = Gaudi::Hive::currentContext();
94
95
SG::ReadHandle<MdtDigitContainer>
container(digitContainerKey, ctx);
96
if
(!container.isValid()) {
97
std::cout <<
"Could not find MdtDigitContainer called "
<< container.name()
98
<<
" in store "
<< container.store() << std::endl;
99
}
100
// ATH_MSG_DEBUG("Found MdtDigitContainer called " << container.name() << " in store " << container.store());
101
102
// Iterate on the collections
103
for
(
const
MdtDigitCollection
* coll : *container) {
105
for
(
const
MdtDigit
* digit : *coll) {
106
const
Identifier
digitId{digit->identify()};
107
108
109
if
(digit)
110
addHandle
(
new
VP1RawDataHandle_MDT_RDO
(
this
, digit));
111
}
112
}
113
114
// recheckCutStatusOfAllHandles();
115
return
true
;
116
}
117
118
//____________________________________________________________________
119
bool
VP1RawDataColl_MDT_RDO::cut
(
VP1RawDataHandleBase
* handle)
120
{
121
const
auto
* digit =
static_cast<
const
VP1RawDataHandle_MDT_RDO
*
>
(handle);
122
return
(!
m_d
->excludeMasked || !digit->isMasked()) &&
123
m_d
->mdtAllowedADC.contains(digit->amplitude()) &&
124
m_d
->mdtAllowedTDC.contains(digit->time());
125
}
126
127
void
VP1RawDataColl_MDT_RDO::setMdtAllowedADC
(
const
VP1Interval
& range)
128
{
129
if
(
m_d
->mdtAllowedADC == range)
130
return
;
131
m_d
->mdtAllowedADC = range;
132
recheckCutStatusOfAllHandles
();
133
}
134
135
void
VP1RawDataColl_MDT_RDO::setMdtAllowedTDC
(
const
VP1Interval
& range)
136
{
137
if
(
m_d
->mdtAllowedTDC == range)
138
return
;
139
m_d
->mdtAllowedTDC = range;
140
recheckCutStatusOfAllHandles
();
141
}
142
143
void
VP1RawDataColl_MDT_RDO::setMdtExcludeMasked
(
bool
exclude
)
144
{
145
if
(
m_d
->excludeMasked ==
exclude
)
146
return
;
147
m_d
->excludeMasked =
exclude
;
148
if
(
exclude
)
149
recheckCutStatusOfAllVisibleHandles
();
150
else
151
recheckCutStatusOfAllNotVisibleHandles
();
152
}
MuonDetectorManager.h
ReadCondHandle.h
VP1JobConfigInfo.h
VP1MaterialButton.h
VP1RawDataColl_MDT_RDO.h
VP1RawDataCommonData.h
VP1RawDataHandle_MDT_RDO.h
VP1RawDataSysController.h
VP1SGAccessHelper.h
VP1SGContentsHelper.h
IVP1System
Definition
IVP1System.h:36
MdtDigitCollection
Definition
MdtDigitCollection.h:18
MdtDigitContainer
Use IdentifiableContainer with MdtDigitCollection.
Definition
MdtDigitContainer.h:50
MdtDigit
Definition
MdtDigit.h:19
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::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_MDT_RDO::Imp
Definition
VP1RawDataColl_MDT_RDO.cxx:36
VP1RawDataColl_MDT_RDO::Imp::excludeMasked
bool excludeMasked
Definition
VP1RawDataColl_MDT_RDO.cxx:38
VP1RawDataColl_MDT_RDO::Imp::mdtAllowedADC
VP1Interval mdtAllowedADC
Definition
VP1RawDataColl_MDT_RDO.cxx:39
VP1RawDataColl_MDT_RDO::Imp::mdtAllowedTDC
VP1Interval mdtAllowedTDC
Definition
VP1RawDataColl_MDT_RDO.cxx:40
VP1RawDataColl_MDT_RDO::load
bool load()
Definition
VP1RawDataColl_MDT_RDO.cxx:73
VP1RawDataColl_MDT_RDO::availableCollections
static QStringList availableCollections(IVP1System *)
Definition
VP1RawDataColl_MDT_RDO.cxx:30
VP1RawDataColl_MDT_RDO::assignDefaultMaterial
void assignDefaultMaterial(SoMaterial *) const
Definition
VP1RawDataColl_MDT_RDO.cxx:67
VP1RawDataColl_MDT_RDO::setMdtAllowedADC
void setMdtAllowedADC(const VP1Interval &)
Definition
VP1RawDataColl_MDT_RDO.cxx:127
VP1RawDataColl_MDT_RDO::VP1RawDataColl_MDT_RDO
VP1RawDataColl_MDT_RDO(VP1RawDataCommonData *, const QString &key)
Definition
VP1RawDataColl_MDT_RDO.cxx:46
VP1RawDataColl_MDT_RDO::setMdtExcludeMasked
void setMdtExcludeMasked(bool)
Definition
VP1RawDataColl_MDT_RDO.cxx:143
VP1RawDataColl_MDT_RDO::m_d
Imp * m_d
Definition
VP1RawDataColl_MDT_RDO.h:57
VP1RawDataColl_MDT_RDO::~VP1RawDataColl_MDT_RDO
virtual ~VP1RawDataColl_MDT_RDO()
Definition
VP1RawDataColl_MDT_RDO.cxx:61
VP1RawDataColl_MDT_RDO::cut
bool cut(VP1RawDataHandleBase *)
Definition
VP1RawDataColl_MDT_RDO.cxx:119
VP1RawDataColl_MDT_RDO::setMdtAllowedTDC
void setMdtAllowedTDC(const VP1Interval &)
Definition
VP1RawDataColl_MDT_RDO.cxx:135
VP1RawDataCommonData
Definition
VP1RawDataCommonData.h:31
VP1RawDataHandleBase
Definition
VP1RawDataHandleBase.h:34
VP1RawDataHandle_MDT_RDO
Definition
VP1RawDataHandle_MDT_RDO.h:28
VP1SGContentsHelper
Definition
VP1SGContentsHelper.h:26
VP1SGContentsHelper::getKeys
QStringList getKeys() const
Definition
VP1SGContentsHelper.h:55
exclude
std::set< std::string > exclude
list of directories to be excluded
Definition
hcg.cxx:100
Identifier
Definition
IdentifierFieldParser.cxx:14
common
Definition
common.py:1
Generated on
for ATLAS Offline Software by
1.17.0