ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1RawDataSystems
src
VP1RawDataColl_MM_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_MM_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_MM_RDO.h
"
18
#include "
VP1RawDataSystems/VP1RawDataHandle_MM_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_MM_RDO::availableCollections
(
IVP1System
*sys)
31
{
32
return
VP1SGContentsHelper
(sys).
getKeys
<
MmDigitContainer
>();
33
}
34
35
//____________________________________________________________________
36
class
VP1RawDataColl_MM_RDO::Imp
{
37
public
:
38
VP1Interval
mmAllowedCharge
;
39
VP1Interval
mmAllowedTime
;
40
41
};
42
43
44
//____________________________________________________________________
45
VP1RawDataColl_MM_RDO::VP1RawDataColl_MM_RDO
(
VP1RawDataCommonData
*
common
,
const
QString& key)
46
:
VP1RawDataCollBase
(
common
,key),
m_d
(new
Imp
)
47
{
48
connect(
common
->controller(), SIGNAL(mmAllowedChargeChanged(
const
VP1Interval
&)),
49
this
, SLOT(
setMmAllowedCharge
(
const
VP1Interval
&)));
50
setMmAllowedCharge
(
common
->controller()->mmAllowedCharge());
51
connect(
common
->controller(), SIGNAL(mmAllowedTimeChanged(
const
VP1Interval
&)),
52
this
, SLOT(
setMmAllowedTime
(
const
VP1Interval
&)));
53
setMmAllowedTime
(
common
->controller()->mmAllowedTime());
54
}
55
56
//____________________________________________________________________
57
VP1RawDataColl_MM_RDO::~VP1RawDataColl_MM_RDO
()
58
{
59
delete
m_d
;
60
}
61
62
//____________________________________________________________________
63
void
VP1RawDataColl_MM_RDO::assignDefaultMaterial
(SoMaterial*m)
const
64
{
65
VP1MaterialButton::setMaterialParametersFromRGB
( m, 255, 136, 0, 0.1 );
66
}
67
68
//____________________________________________________________________
69
bool
VP1RawDataColl_MM_RDO::load
() {
70
if
(!
VP1JobConfigInfo::hasMuonGeometry
()) {
71
message
(
"Muon geometry not configured in job"
);
72
return
false
;
73
}
74
75
// get the detMgr
76
// TODO: we should probably simplify by moving to:
77
// const MuonGM::MuonDetectorManager * detmgr = VP1DetInfo::muonDetMgr();
78
SG::ReadCondHandleKey<MuonGM::MuonDetectorManager>
detMgrKey{
79
"MuonDetectorManager"
};
80
detMgrKey.
initialize
().ignore();
81
SG::ReadCondHandle<MuonGM::MuonDetectorManager>
detMgr{detMgrKey};
82
83
SG::ReadHandleKey<MmDigitContainer>
digitContainerKey{
"MM_DIGITS"
};
84
digitContainerKey.
initialize
().ignore();
85
86
const
EventContext& ctx = Gaudi::Hive::currentContext();
87
88
SG::ReadHandle<MmDigitContainer>
container(digitContainerKey, ctx);
89
if
(!container.isValid()) {
90
std::cout <<
"Could not find MmDigitContainer called "
<< container.name()
91
<<
" in store "
<< container.store() << std::endl;
92
}
93
94
// Iterate on the collections
95
for
(
const
MmDigitCollection
* coll : *container) {
97
for
(
const
MmDigit
* digit : *coll) {
98
const
Identifier
digitId{digit->identify()};
99
100
// example from Johannes
101
/*
102
mdtReadoutElement = detMgr->getMdtReadoutElement(digitId);
103
const Amg::Vector3D tubePos = mdtReadoutElement->tubePos(digitId);
104
*/
105
106
if
(digit)
107
addHandle
(
new
VP1RawDataHandle_MM_RDO
(
this
, digit));
108
}
109
}
110
111
return
true
;
112
}
113
114
//____________________________________________________________________
115
bool
VP1RawDataColl_MM_RDO::cut
(
VP1RawDataHandleBase
* handle)
116
{
117
const
auto
* digit =
static_cast<
const
VP1RawDataHandle_MM_RDO
*
>
(handle);
118
return
m_d
->mmAllowedCharge.contains(digit->amplitude()) &&
119
m_d
->mmAllowedTime.contains(digit->time());
120
}
121
122
void
VP1RawDataColl_MM_RDO::setMmAllowedCharge
(
const
VP1Interval
& range)
123
{
124
if
(
m_d
->mmAllowedCharge == range)
125
return
;
126
m_d
->mmAllowedCharge = range;
127
recheckCutStatusOfAllHandles
();
128
}
129
130
void
VP1RawDataColl_MM_RDO::setMmAllowedTime
(
const
VP1Interval
& range)
131
{
132
if
(
m_d
->mmAllowedTime == range)
133
return
;
134
m_d
->mmAllowedTime = range;
135
recheckCutStatusOfAllHandles
();
136
}
MuonDetectorManager.h
ReadCondHandle.h
VP1JobConfigInfo.h
VP1MaterialButton.h
VP1RawDataColl_MM_RDO.h
VP1RawDataCommonData.h
VP1RawDataHandle_MM_RDO.h
VP1RawDataSysController.h
VP1SGAccessHelper.h
VP1SGContentsHelper.h
IVP1System
Definition
IVP1System.h:36
MmDigitCollection
Definition
MmDigitCollection.h:18
MmDigitContainer
Use IdentifiableContainer with MmDigitCollection.
Definition
MmDigitContainer.h:50
MmDigit
Definition
MmDigit.h:20
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::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_MM_RDO::Imp
Definition
VP1RawDataColl_MM_RDO.cxx:36
VP1RawDataColl_MM_RDO::Imp::mmAllowedCharge
VP1Interval mmAllowedCharge
Definition
VP1RawDataColl_MM_RDO.cxx:38
VP1RawDataColl_MM_RDO::Imp::mmAllowedTime
VP1Interval mmAllowedTime
Definition
VP1RawDataColl_MM_RDO.cxx:39
VP1RawDataColl_MM_RDO::m_d
Imp * m_d
Definition
VP1RawDataColl_MM_RDO.h:55
VP1RawDataColl_MM_RDO::~VP1RawDataColl_MM_RDO
virtual ~VP1RawDataColl_MM_RDO()
Definition
VP1RawDataColl_MM_RDO.cxx:57
VP1RawDataColl_MM_RDO::assignDefaultMaterial
void assignDefaultMaterial(SoMaterial *) const
Definition
VP1RawDataColl_MM_RDO.cxx:63
VP1RawDataColl_MM_RDO::availableCollections
static QStringList availableCollections(IVP1System *)
Definition
VP1RawDataColl_MM_RDO.cxx:30
VP1RawDataColl_MM_RDO::setMmAllowedCharge
void setMmAllowedCharge(const VP1Interval &)
Definition
VP1RawDataColl_MM_RDO.cxx:122
VP1RawDataColl_MM_RDO::cut
bool cut(VP1RawDataHandleBase *)
Definition
VP1RawDataColl_MM_RDO.cxx:115
VP1RawDataColl_MM_RDO::VP1RawDataColl_MM_RDO
VP1RawDataColl_MM_RDO(VP1RawDataCommonData *, const QString &key)
Definition
VP1RawDataColl_MM_RDO.cxx:45
VP1RawDataColl_MM_RDO::setMmAllowedTime
void setMmAllowedTime(const VP1Interval &)
Definition
VP1RawDataColl_MM_RDO.cxx:130
VP1RawDataColl_MM_RDO::load
bool load()
Definition
VP1RawDataColl_MM_RDO.cxx:69
VP1RawDataCommonData
Definition
VP1RawDataCommonData.h:31
VP1RawDataHandleBase
Definition
VP1RawDataHandleBase.h:34
VP1RawDataHandle_MM_RDO
Definition
VP1RawDataHandle_MM_RDO.h:26
VP1SGContentsHelper
Definition
VP1SGContentsHelper.h:26
VP1SGContentsHelper::getKeys
QStringList getKeys() const
Definition
VP1SGContentsHelper.h:55
Identifier
Definition
IdentifierFieldParser.cxx:14
common
Definition
common.py:1
Generated on
for ATLAS Offline Software by
1.17.0