ATLAS Offline Software
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 
12 
13 using std::string;
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 
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 
met::METReaderAlg::~METReaderAlg
~METReaderAlg()
Destructor:
met::METReaderAlg::METReaderAlg
METReaderAlg()
Default constructor:
met::METReaderAlg::m_met_PFlow
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_PFlow
Definition: METReaderAlg.h:40
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
met::METReaderAlg::m_metMap_LocHadTopo
SG::ReadHandleKey< xAOD::MissingETComponentMap > m_metMap_LocHadTopo
Definition: METReaderAlg.h:44
xAOD::MissingETContainer
MissingETContainer_v1 MissingETContainer
Definition: Event/xAOD/xAODMissingET/xAODMissingET/MissingETContainer.h:16
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
met::METReaderAlg::m_met_Truth
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_Truth
Definition: METReaderAlg.h:41
met
Definition: IMETSignificance.h:24
met::METReaderAlg::m_met_TruthReg
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_TruthReg
Definition: METReaderAlg.h:42
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
met::METReaderAlg::m_metMap_RefFinal
SG::ReadHandleKey< xAOD::MissingETComponentMap > m_metMap_RefFinal
Definition: METReaderAlg.h:43
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
met::METReaderAlg::m_met_Track
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_Track
Definition: METReaderAlg.h:39
met::METReaderAlg::m_met_RefFinal
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_RefFinal
Definition: METReaderAlg.h:37
met::METReaderAlg::initialize
virtual StatusCode initialize() override
Athena algorithm's Hooks.
Definition: METReaderAlg.cxx:42
JetContainer.h
MissingETComponentMap.h
xAOD::MissingETComponentMap
MissingETComponentMap_v1 MissingETComponentMap
Version control by type definition.
Definition: MissingETComponentMap.h:16
METReaderAlg.h
met::METReaderAlg::finalize
virtual StatusCode finalize() override
Definition: METReaderAlg.cxx:58
met::METReaderAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: METReaderAlg.cxx:65
met::METReaderAlg::m_met_LocHadTopo
SG::ReadHandleKey< xAOD::MissingETContainer > m_met_LocHadTopo
Definition: METReaderAlg.h:38
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
MissingETContainer.h