ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
MET
METReconstruction
src
METReaderAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// METReaderAlg.cxx
6
7
#include "
METReaderAlg.h
"
8
#include "
xAODJet/JetContainer.h
"
9
10
#include "
xAODMissingET/MissingETContainer.h
"
11
#include "
xAODMissingET/MissingETComponentMap.h
"
12
13
using
std::string;
14
using
xAOD::MissingETContainer
;
15
using
xAOD::MissingETComponentMap
;
16
17
namespace
met
{
18
19
//**********************************************************************
20
21
METReaderAlg::METReaderAlg
(
const
std::string&
name
,
22
ISvcLocator* pSvcLocator )
23
: ::
AthReentrantAlgorithm
(
name
, pSvcLocator ) {
24
declareProperty
(
"MET_RefFinal"
,
m_met_RefFinal
=
"MET_RefFinal"
);
25
declareProperty
(
"MET_LocHadTopo"
,
m_met_LocHadTopo
=
"MET_LocHadTopo"
);
26
declareProperty
(
"MET_Track"
,
m_met_Track
=
"MET_Track"
);
27
declareProperty
(
"MET_PFlow"
,
m_met_PFlow
=
"MET_PFlow"
);
28
declareProperty
(
"MET_Truth"
,
m_met_Truth
=
"MET_Truth"
);
29
declareProperty
(
"MET_TruthRegions"
,
m_met_TruthReg
=
"MET_TruthRegions"
);
30
declareProperty
(
"METMap_RefFinal"
,
m_metMap_RefFinal
=
"METMap_RefFinal"
);
31
declareProperty
(
"METMap_LocHadTopo"
,
m_metMap_LocHadTopo
=
"METMap_LocHadTopo"
);
32
33
34
}
35
36
//**********************************************************************
37
38
METReaderAlg::~METReaderAlg
() =
default
;
39
40
//**********************************************************************
41
42
StatusCode
METReaderAlg::initialize
() {
43
ATH_MSG_INFO
(
"Initializing "
<<
name
() <<
"..."
);
44
ATH_CHECK
(
m_met_RefFinal
.initialize() );
45
ATH_CHECK
(
m_met_LocHadTopo
.initialize() );
46
ATH_CHECK
(
m_met_Track
.initialize() );
47
ATH_CHECK
(
m_met_PFlow
.initialize() );
48
ATH_CHECK
(
m_met_Truth
.initialize() );
49
ATH_CHECK
(
m_met_TruthReg
.initialize() );
50
ATH_CHECK
(
m_metMap_RefFinal
.initialize() );
51
ATH_CHECK
(
m_metMap_LocHadTopo
.initialize() );
52
53
return
StatusCode::SUCCESS;
54
}
55
56
//**********************************************************************
57
58
StatusCode
METReaderAlg::finalize
() {
59
ATH_MSG_INFO
(
"Finalizing "
<<
name
() <<
"..."
);
60
return
StatusCode::SUCCESS;
61
}
62
63
//**********************************************************************
64
65
StatusCode
METReaderAlg::execute
(
const
EventContext& ctx)
const
{
66
ATH_MSG_VERBOSE
(
"Executing "
<<
name
() <<
"..."
);
67
// Loop over tools.
68
69
ATH_MSG_INFO
(
"Check MET rebuilding"
);
70
SG::ReadHandle<xAOD::MissingETContainer>
met_RefFinal (
m_met_RefFinal
, ctx);
71
SG::ReadHandle<xAOD::MissingETContainer>
met_LocHadTopo (
m_met_LocHadTopo
, ctx);
72
SG::ReadHandle<xAOD::MissingETContainer>
met_Track (
m_met_Track
, ctx);
73
SG::ReadHandle<xAOD::MissingETContainer>
met_PFlow (
m_met_PFlow
, ctx);
74
SG::ReadHandle<xAOD::MissingETContainer>
met_Truth (
m_met_Truth
, ctx);
75
76
77
78
bool
doRefFinal( met_RefFinal.
isValid
() );
79
bool
doLHT( met_LocHadTopo.
isValid
() );
80
bool
doTrack( met_Track.
isValid
() );
81
bool
doPFlow( met_PFlow.
isValid
() );
82
bool
doTruth( met_Truth.
isValid
() );
83
84
ATH_MSG_INFO
(
" MET magnitude:"
);
85
//
86
if
(doRefFinal) {
87
ATH_MSG_INFO
(
" MET_Final = "
<< (*met_RefFinal)[
"Final"
]->
met
() );
88
ATH_MSG_INFO
(
" MET_RefEle = "
<< (*met_RefFinal)[
"RefEle"
]->
met
() );
89
ATH_MSG_INFO
(
" MET_RefGamma = "
<< (*met_RefFinal)[
"RefGamma"
]->
met
() );
90
ATH_MSG_INFO
(
" MET_RefTau = "
<< (*met_RefFinal)[
"RefTau"
]->
met
() );
91
ATH_MSG_INFO
(
" MET_RefJet = "
<< (*met_RefFinal)[
"RefJet"
]->
met
() );
92
ATH_MSG_INFO
(
" MET_RefJet_JVFCut = "
<< (*met_RefFinal)[
"RefJet_JVFCut"
]->
met
() );
93
ATH_MSG_INFO
(
" MET_Muons = "
<< (*met_RefFinal)[
"Muons"
]->
met
() );
94
ATH_MSG_INFO
(
" MET_SoftClus = "
<< (*met_RefFinal)[
"SoftClus"
]->
met
() );
95
ATH_MSG_INFO
(
" MET_PVSoftTrk = "
<< (*met_RefFinal)[
"PVSoftTrk"
]->
met
() );
96
}
97
//
98
if
(doLHT) {
99
ATH_MSG_INFO
(
" MET_LocHadTopo = "
<< (*met_LocHadTopo)[
"LocHadTopo"
]->
met
() );
100
}
101
if
(doTrack) {
102
ATH_MSG_INFO
(
" MET_Track = "
<< (*met_Track)[
"Track"
]->
met
() );
103
ATH_MSG_INFO
(
" MET_TrackPV = "
<< (*met_Track)[
"PVTrack"
]->
met
() );
104
}
105
if
(doPFlow) {
106
ATH_MSG_INFO
(
" MET_PFlow = "
<< (*met_PFlow)[
"PFlow"
]->
met
() );
107
}
108
//
109
if
(doRefFinal) {
110
ATH_MSG_INFO
(
" MET_Truth_NonInt = "
<< (*met_Truth)[
"NonInt"
]->
met
() );
111
ATH_MSG_INFO
(
" MET_Truth_Int = "
<< (*met_Truth)[
"Int"
]->
met
() );
112
ATH_MSG_INFO
(
" MET_Truth_IntOut = "
<< (*met_Truth)[
"IntOut"
]->
met
() );
113
ATH_MSG_INFO
(
" MET_Truth_IntMuons = "
<< (*met_Truth)[
"IntMuons"
]->
met
() );
114
}
115
ATH_MSG_INFO
(
" MET x-component:"
);
116
//
117
if
(doRefFinal) {
118
ATH_MSG_INFO
(
" MET_Final_x = "
<< (*met_RefFinal)[
"Final"
]->mpx() );
119
ATH_MSG_INFO
(
" MET_RefEle_x = "
<< (*met_RefFinal)[
"RefEle"
]->mpx() );
120
ATH_MSG_INFO
(
" MET_RefGamma_x = "
<< (*met_RefFinal)[
"RefGamma"
]->mpx() );
121
ATH_MSG_INFO
(
" MET_RefTau_x = "
<< (*met_RefFinal)[
"RefTau"
]->mpx() );
122
ATH_MSG_INFO
(
" MET_RefJet_x = "
<< (*met_RefFinal)[
"RefJet"
]->mpx() );
123
ATH_MSG_INFO
(
" MET_RefJet_JVFCut_x = "
<< (*met_RefFinal)[
"RefJet_JVFCut"
]->mpx() );
124
ATH_MSG_INFO
(
" MET_Muons_x = "
<< (*met_RefFinal)[
"Muons"
]->mpx() );
125
ATH_MSG_INFO
(
" MET_SoftClus_x = "
<< (*met_RefFinal)[
"SoftClus"
]->mpx() );
126
ATH_MSG_INFO
(
" MET_PVSoftTrk_x = "
<< (*met_RefFinal)[
"PVSoftTrk"
]->mpx() );
127
}
128
//
129
if
(doLHT) {
130
ATH_MSG_INFO
(
" MET_LocHadTopo_x = "
<< (*met_LocHadTopo)[
"LocHadTopo"
]->mpx() );
131
}
132
if
(doTrack) {
133
ATH_MSG_INFO
(
" MET_Track_x = "
<< (*met_Track)[
"Track"
]->mpx() );
134
ATH_MSG_INFO
(
" MET_TrackPV_x = "
<< (*met_Track)[
"PVTrack"
]->mpx() );
135
}
136
if
(doPFlow) {
137
ATH_MSG_INFO
(
" MET_PFlow_x = "
<< (*met_PFlow)[
"PFlow"
]->mpx() );
138
}
139
//
140
if
(doTruth) {
141
ATH_MSG_INFO
(
" MET_Truth_NonInt_x = "
<< (*met_Truth)[
"NonInt"
]->mpx() );
142
ATH_MSG_INFO
(
" MET_Truth_Int_x = "
<< (*met_Truth)[
"Int"
]->mpx() );
143
ATH_MSG_INFO
(
" MET_Truth_IntOut_x = "
<< (*met_Truth)[
"IntOut"
]->mpx() );
144
ATH_MSG_INFO
(
" MET_Truth_IntMuons_x = "
<< (*met_Truth)[
"IntMuons"
]->mpx() );
145
}
146
ATH_MSG_INFO
(
" MET y-component:"
);
147
//
148
if
(doRefFinal) {
149
ATH_MSG_INFO
(
" MET_Final_y = "
<< (*met_RefFinal)[
"Final"
]->mpy() );
150
ATH_MSG_INFO
(
" MET_RefEle_y = "
<< (*met_RefFinal)[
"RefEle"
]->mpy() );
151
ATH_MSG_INFO
(
" MET_RefGamma_y = "
<< (*met_RefFinal)[
"RefGamma"
]->mpy() );
152
ATH_MSG_INFO
(
" MET_RefTau_y = "
<< (*met_RefFinal)[
"RefTau"
]->mpy() );
153
ATH_MSG_INFO
(
" MET_RefJet_y = "
<< (*met_RefFinal)[
"RefJet"
]->mpy() );
154
ATH_MSG_INFO
(
" MET_RefJet_JVFCut_y = "
<< (*met_RefFinal)[
"RefJet_JVFCut"
]->mpy() );
155
ATH_MSG_INFO
(
" MET_Muons_y = "
<< (*met_RefFinal)[
"Muons"
]->mpy() );
156
ATH_MSG_INFO
(
" MET_SoftClus_y = "
<< (*met_RefFinal)[
"SoftClus"
]->mpy() );
157
ATH_MSG_INFO
(
" MET_PVSoftTrk_y = "
<< (*met_RefFinal)[
"PVSoftTrk"
]->mpy() );
158
}
159
//
160
if
(doLHT) {
161
ATH_MSG_INFO
(
" MET_LocHadTopo_y = "
<< (*met_LocHadTopo)[
"LocHadTopo"
]->mpy() );
162
}
163
if
(doTrack) {
164
ATH_MSG_INFO
(
" MET_Track_y = "
<< (*met_Track)[
"Track"
]->mpy() );
165
ATH_MSG_INFO
(
" MET_TrackPV_y = "
<< (*met_Track)[
"PVTrack"
]->mpy() );
166
}
167
if
(doPFlow) {
168
ATH_MSG_INFO
(
" MET_PFlow_y = "
<< (*met_PFlow)[
"PFlow"
]->mpy() );
169
}
170
//
171
if
(doTruth) {
172
ATH_MSG_INFO
(
" MET_Truth_NonInt_y = "
<< (*met_Truth)[
"NonInt"
]->mpy() );
173
ATH_MSG_INFO
(
" MET_Truth_Int_y = "
<< (*met_Truth)[
"Int"
]->mpy() );
174
ATH_MSG_INFO
(
" MET_Truth_IntOut_y = "
<< (*met_Truth)[
"IntOut"
]->mpy() );
175
ATH_MSG_INFO
(
" MET_Truth_IntMuons_y = "
<< (*met_Truth)[
"IntMuons"
]->mpy() );
176
}
177
178
if
(doTruth) {
179
SG::ReadHandle<xAOD::MissingETContainer>
met_TruthReg (
m_met_TruthReg
, ctx);
180
181
if
( met_TruthReg.
isValid
() ) {
182
ATH_MSG_INFO
(
" MET_Truth_IntCentral_y = "
<< (*met_TruthReg)[
"Int_Central"
]->mpy() );
183
ATH_MSG_INFO
(
" MET_Truth_IntEndCap_y = "
<< (*met_TruthReg)[
"Int_EndCap"
]->mpy() );
184
ATH_MSG_INFO
(
" MET_Truth_IntForward_y = "
<< (*met_TruthReg)[
"Int_Forward"
]->mpy() );
185
}
186
}
187
SG::ReadHandle<xAOD::MissingETComponentMap>
metMap_RefFinal (
m_metMap_RefFinal
, ctx);
188
SG::ReadHandle<xAOD::MissingETComponentMap>
metMap_LocHadTopo (
m_metMap_LocHadTopo
, ctx);
189
190
ATH_CHECK
( metMap_RefFinal.
isValid
() );
191
ATH_CHECK
( metMap_LocHadTopo.
isValid
() );
192
193
ATH_MSG_INFO
(
"Number of components in MET map: "
<< metMap_RefFinal->size() );
194
ATH_MSG_INFO
(
"Number of components in MET map: "
<< metMap_LocHadTopo->size() );
195
196
return
StatusCode::SUCCESS;
197
}
198
199
//**********************************************************************
200
201
}
202
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
MissingETContainer.h
JetContainer.h
METReaderAlg.h
MissingETComponentMap.h
AthCommonAlgorithm< Gaudi::Algorithm >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition
AthCommonDataStore.h:145
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
met::METReaderAlg::m_met_Truth
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_Truth
Definition
METReaderAlg.h:40
met::METReaderAlg::m_met_LocHadTopo
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_LocHadTopo
Definition
METReaderAlg.h:37
met::METReaderAlg::~METReaderAlg
~METReaderAlg()
Destructor:
met::METReaderAlg::m_metMap_RefFinal
SG::ReadHandleKey< xAOD::MissingETComponentMap > m_metMap_RefFinal
Definition
METReaderAlg.h:42
met::METReaderAlg::m_met_RefFinal
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_RefFinal
Definition
METReaderAlg.h:36
met::METReaderAlg::m_met_PFlow
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_PFlow
Definition
METReaderAlg.h:39
met::METReaderAlg::finalize
virtual StatusCode finalize() override
Definition
METReaderAlg.cxx:58
met::METReaderAlg::METReaderAlg
METReaderAlg()
Default constructor:
met::METReaderAlg::m_met_Track
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_Track
Definition
METReaderAlg.h:38
met::METReaderAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
METReaderAlg.cxx:65
met::METReaderAlg::m_metMap_LocHadTopo
SG::ReadHandleKey< xAOD::MissingETComponentMap > m_metMap_LocHadTopo
Definition
METReaderAlg.h:43
met::METReaderAlg::m_met_TruthReg
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_TruthReg
Definition
METReaderAlg.h:41
met::METReaderAlg::initialize
virtual StatusCode initialize() override
Athena algorithm's Hooks.
Definition
METReaderAlg.cxx:42
met
Definition
IMETSignificance.h:24
xAOD::name
name
Definition
TriggerMenuJson_v1.cxx:29
xAOD::MissingETComponentMap
MissingETComponentMap_v1 MissingETComponentMap
Version control by type definition.
Definition
MissingETComponentMap.h:16
xAOD::MissingETContainer
MissingETContainer_v1 MissingETContainer
Definition
Event/xAOD/xAODMissingET/xAODMissingET/MissingETContainer.h:16
Generated on
for ATLAS Offline Software by
1.17.0