ATLAS Offline Software
Loading...
Searching...
No Matches
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"
9
12
13using std::string;
16
17namespace 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
39
40 //**********************************************************************
41
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
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" );
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) {
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 }
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
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_VERBOSE(x)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
An algorithm that can be simultaneously executed in multiple threads.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_Truth
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_LocHadTopo
~METReaderAlg()
Destructor:
SG::ReadHandleKey< xAOD::MissingETComponentMap > m_metMap_RefFinal
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_RefFinal
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_PFlow
virtual StatusCode finalize() override
METReaderAlg()
Default constructor:
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_Track
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< xAOD::MissingETComponentMap > m_metMap_LocHadTopo
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_TruthReg
virtual StatusCode initialize() override
Athena algorithm's Hooks.
MissingETComponentMap_v1 MissingETComponentMap
Version control by type definition.