ATLAS Offline Software
ORMETMakerAlg.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 #include "ORMETMakerAlg.h"
8 
13 
17 #include "PATCore/AcceptData.h"
19 #include <xAODCore/ShallowCopy.h>
20 
21 #include "xAODPFlow/PFOAuxContainer.h" //jetOR
22 
23 
24 using std::string;
25 using namespace xAOD;
26 
27 namespace met {
28 
30  static const SG::AuxElement::ConstAccessor< std::vector<iplink_t > > acc_constitObjLinks("ConstitObjectLinks");
31 
32  //**********************************************************************
33 
34  ORMETMakerAlg::ORMETMakerAlg(const std::string& name,
35  ISvcLocator* pSvcLocator )
36  : METMakerAlg(name, pSvcLocator)
37  {
38  declareProperty("ORMETMapName", m_ORMetMapKey = "ORMETAssoc" );
39  declareProperty( "DoRetrieveORconstit", m_doRetrieveORconstit = false );
40  declareProperty( "RetainMuonConstit", m_retainMuonConstit = false );
41  declareProperty( "DoORMet", m_doORMet = false );
42  //pT thresholds
43  declareProperty("ElectronPT", m_electronPT = 10000, "pT for electrons");
44  declareProperty("MuonPT", m_muonPT = 10000, "pT for muons");
45  declareProperty("PhotonPT", m_photonPT = 10000, "pT for photons");
46  declareProperty("TauPT", m_tauPT = 10000, "pT for photons");
47  //eta thresholds
48  declareProperty("ElectronETA", m_electronETA = 2.47, "eta for electrons");
49  declareProperty("MuonETA", m_muonETA = 2.7, "eta for muons");
50  declareProperty("PhotonETA", m_photonETA = 2.47, "eta for photons");
51  declareProperty("TauETA", m_tauETA = 2.47, "eta for photons");
52 
53  declareProperty("UseUnmatched", m_useUnmatched = true, "Include or reject egamma with unmatched clusters");
54  declareProperty("DoJVT", m_doJVT = false);
55  declareProperty("Soft", m_soft = "Clus");
56 
57 
58  }
59 
60  //**********************************************************************
61 
63 
64  //**********************************************************************
65 
67 
69  ATH_MSG_INFO("Initializing " << name() << "...");
70  ATH_MSG_INFO("Retrieving tools...");
71 
72  ATH_CHECK(m_ORMetMapKey.initialize());
76 
77  return StatusCode::SUCCESS;
78  }
79 
80  //**********************************************************************
81 
83  ATH_MSG_INFO ("Finalizing " << name() << "...");
84  return StatusCode::SUCCESS;
85  }
86 
87  //**********************************************************************
88 
90  ATH_MSG_VERBOSE("Executing " << name() << "...");
91  // Create a MissingETContainer with its aux store
92  auto ctx = getContext();
93  auto metHandle= SG::makeHandle (m_metKey,ctx);
94  ATH_CHECK( metHandle.record (std::make_unique<xAOD::MissingETContainer>(), std::make_unique<xAOD::MissingETAuxContainer>()) );
95  xAOD::MissingETContainer* newMet=metHandle.ptr();
96 
97 
99  if (!metMap.isValid()) {
100  ATH_MSG_WARNING("Unable to retrieve MissingETAssociationMap: " << m_metMapKey.key());
101  return StatusCode::FAILURE;
102  }
103 
104  MissingETAssociationHelper metHelper(&(*metMap));
105 
107  if (m_doORMet && !ORMetMap.isValid()) {
108  ATH_MSG_WARNING("Unable to retrieve MissingETAssociationMap: " << m_ORMetMapKey.key());
109  return StatusCode::FAILURE;
110  }
111 
112 
113  MissingETAssociationHelper ORMetHelper((m_doORMet ? &(*ORMetMap) : nullptr));
114 
115  // Retrieve containers ***********************************************
116 
119  if (!coreMet.isValid()) {
120  ATH_MSG_WARNING("Unable to retrieve MissingETContainer: " << m_CoreMetKey.key());
121  return StatusCode::FAILURE;
122  }
123 
126  if (!Jets.isValid()) {
127  ATH_MSG_WARNING("Unable to retrieve JetContainer: " << Jets.key());
128  return StatusCode::FAILURE;
129  }
130 
133  if (!Electrons.isValid()) {
134  ATH_MSG_WARNING("Unable to retrieve ElectronContainer: " << Electrons.key());
135  return StatusCode::FAILURE;
136  }
137 
140  if (!Gamma.isValid()) {
141  ATH_MSG_WARNING("Unable to retrieve GammaContainer: " << Gamma.key());
142  return StatusCode::FAILURE;
143  }
144 
147  if (!TauJets.isValid()) {
148  ATH_MSG_WARNING("Unable to retrieve TauJetContainer: " << TauJets.key());
149  return StatusCode::FAILURE;
150  }
151 
154  if (!Muons.isValid()) {
155  ATH_MSG_WARNING("Unable to retrieve MuonContainer: " << Muons.key());
156  return StatusCode::FAILURE;
157  }
158 
160  SG::ReadHandle<xAOD::PFOContainer> PFOs("CHSParticleFlowObjects");
161  if (!PFOs.isValid() && m_doRetrieveORconstit ) {
162  ATH_MSG_WARNING("Unable to retrieve PFOContainer: " << PFOs.key());
163  return StatusCode::FAILURE;
164  }
165 
166  // Select and flag objects for final MET building ***************************
167 
170  // Electrons
173  for(const auto *const el : *Electrons) {
174  if(accept(el)) {
175  metElectrons.push_back(el);
176 
177  }
178  }
179  if( m_metmaker->rebuildMET("RefEle", xAOD::Type::Electron, newMet,
180  metElectrons.asDataVector(),
181  metHelper, objScale).isFailure() ) {
182  ATH_MSG_WARNING("Failed to build electron term.");
183  }
184  ATH_MSG_DEBUG("Selected " << metElectrons.size() << " MET electrons. "
185  << acc_constitObjLinks(*(*newMet)["RefEle"]).size() << " are non-overlapping.");
186  }
187 
188  // Photons
189  if(!m_PhotonContainerKey.empty()) {
191  for(const auto *const ph : *Gamma) {
192  if(accept(ph)) {
193  metPhotons.push_back(ph);
194  }
195  }
196  if( m_metmaker->rebuildMET("RefGamma", xAOD::Type::Photon, newMet,
197  metPhotons.asDataVector(),
198  metHelper, objScale).isFailure() ) {
199  ATH_MSG_WARNING("Failed to build photon term.");
200  }
201  ATH_MSG_DEBUG("Selected " << metPhotons.size() << " MET photons. "
202  << acc_constitObjLinks(*(*newMet)["RefGamma"]).size() << " are non-overlapping.");
203  }
204 
205  // Taus
206  if(!m_TauJetContainerKey.empty()) {
208  for(const auto *const tau : *TauJets) {
209  if(accept(tau)) {
210  metTaus.push_back(tau);
211  }
212  }
213  if( m_metmaker->rebuildMET("RefTau", xAOD::Type::Tau, newMet,
214  metTaus.asDataVector(),
215  metHelper, objScale).isFailure() ){
216  ATH_MSG_WARNING("Failed to build tau term.");
217  }
218  ATH_MSG_DEBUG("Selected " << metTaus.size() << " MET taus. "
219  << acc_constitObjLinks(*(*newMet)["RefTau"]).size() << " are non-overlapping.");
220  }
221 
222  // Muons
224  if(!m_MuonContainerKey.empty()) {
225  for(const auto *const mu : *Muons) {
226  if(accept(mu)) {
227  metMuons.push_back(mu);
228  }
229  }
230 
232 
234  if( m_metmaker->rebuildMET("Muons", xAOD::Type::Muon, newMet,
235  metMuons.asDataVector(),
236  ORMetHelper, objScale).isFailure() ) {
237  ATH_MSG_WARNING("Failed to build muon term.");
238  }
239  } else {
240  if( m_metmaker->rebuildMET("Muons", xAOD::Type::Muon, newMet,
241  metMuons.asDataVector(),
242  metHelper, objScale).isFailure() ) {
243  ATH_MSG_WARNING("Failed to build muon term.");
244  }
245  }
246  ATH_MSG_DEBUG("Selected " << metMuons.size() << " MET muons. "
247  << acc_constitObjLinks(*(*newMet)["Muons"]).size() << " are non-overlapping.");
248  }
249 
250  if (m_doRetrieveORconstit) {
251 
252  /*** Fill overlapRemovedPFlowObjects ***/
254  ATH_CHECK(PFOContainerWriteHandle.record(std::make_unique<xAOD::PFOContainer>(SG::VIEW_ELEMENTS)));
255 
256  ATH_MSG_DEBUG("Retrieve OR constituents");
258  for(const auto *const pfo : *PFOs) {met_PFO.push_back(pfo);}
259 
260  const xAOD::PFOContainer *OR_pfos;
261 
262  if (!metMuons.empty() && m_retainMuonConstit) {ATH_CHECK(m_metmaker->retrieveOverlapRemovedConstituents(met_PFO.asDataVector(),metHelper, &OR_pfos, true, metMuons.asDataVector()));}
263  else {ATH_CHECK(m_metmaker->retrieveOverlapRemovedConstituents(met_PFO.asDataVector(),metHelper, &OR_pfos, false));}
264 
265  *PFOContainerWriteHandle=*OR_pfos;
266 
267  /**** If want to write CHScharged/neutralOverlapRemovedPFlowObjects container to AOD ****
268  SG::WriteHandle<xAOD::PFOContainer> PFOContainerWriteHandle(m_PFOContainerWriteHandleKey,ctx);
269  ATH_CHECK(PFOContainerWriteHandle.record(std::make_unique<xAOD::PFOContainer>(SG::VIEW_ELEMENTS)));
270  //cPFO
271  SG::ReadHandle<xAOD::PFOContainer> cPFOs("CHSChargedParticleFlowObjects");
272  if (!cPFOs.isValid()) {
273  ATH_MSG_WARNING("Unable to retrieve PFOContainer: " << cPFOs.key());
274  return StatusCode::FAILURE;
275  }
276  //nPFO
277  SG::ReadHandle<xAOD::PFOContainer> nPFOs("CHSNeutralParticleFlowObjects");
278  if (!nPFOs.isValid()) {
279  ATH_MSG_WARNING("Unable to retrieve PFOContainer: " << nPFOs.key());
280  return StatusCode::FAILURE;
281  }
282  SG::WriteHandle<xAOD::PFOContainer> chargedPFOContainerWriteHandle(m_chargedPFOContainerWriteHandleKey,ctx);
283  SG::WriteHandle<xAOD::PFOContainer> neutralPFOContainerWriteHandle(m_neutralPFOContainerWriteHandleKey,ctx);
284  ATH_CHECK(chargedPFOContainerWriteHandle.record(std::make_unique<xAOD::PFOContainer>(),std::make_unique<xAOD::PFOAuxContainer>()));
285  ATH_CHECK(neutralPFOContainerWriteHandle.record(std::make_unique<xAOD::PFOContainer>(),std::make_unique<xAOD::PFOAuxContainer>()));
286 
287 
288  ConstDataVector<PFOContainer> met_cPFO(SG::VIEW_ELEMENTS);
289  for(const auto& pfo : *cPFOs) {met_cPFO.push_back(pfo);}
290  ConstDataVector<PFOContainer> met_nPFO(SG::VIEW_ELEMENTS);
291  for(const auto& pfo : *nPFOs) {met_nPFO.push_back(pfo);}
292 
293  xAOD::PFOContainer* or_cPFO = chargedPFOContainerWriteHandle.ptr();
294  xAOD::PFOContainer* or_nPFO = neutralPFOContainerWriteHandle.ptr();
295 
296  if (metMuons.size()>0 && m_retainMuonConstit) {ATH_CHECK(m_metmaker->retrieveOverlapRemovedConstituents(met_cPFO.asDataVector(), met_nPFO.asDataVector(),metHelper,or_cPFO,or_nPFO,true, metMuons.asDataVector()));}
297  else {ATH_CHECK(m_metmaker->retrieveOverlapRemovedConstituents(met_cPFO.asDataVector(), met_nPFO.asDataVector(),metHelper,or_cPFO,or_nPFO,false));}
298 
299  (*PFOContainerWriteHandle).assign((*neutralPFOContainerWriteHandle).begin(), (*neutralPFOContainerWriteHandle).end());
300  (*PFOContainerWriteHandle).insert((*PFOContainerWriteHandle).end(),
301  (*chargedPFOContainerWriteHandle).begin(),
302  (*chargedPFOContainerWriteHandle).end());***/
303 
304  for (auto tmp_constit : *PFOContainerWriteHandle){ATH_MSG_VERBOSE("ORMETMaker constit with index " << tmp_constit->index() << ", charge " << tmp_constit->charge()<< " pT " << tmp_constit->pt() << " in OverlapRemovedCHSParticleFlowObjects");}
305 
306  }
307 
308  m_doJVT= (m_soft != "Clus");
309  if (m_doORMet) {
310  if( m_metmaker->rebuildJetMET("RefJet", (m_soft=="Clus" ? m_softclname : m_softtrkname), newMet,
311  Jets.cptr(), coreMet.cptr(), ORMetHelper, m_doJVT ).isFailure() ) {
312  ATH_MSG_WARNING("Failed to build jet and soft terms.");
313  }
314  ATH_MSG_DEBUG("Of " << Jets.cptr()->size() << " jets, "
315  << acc_constitObjLinks(*(*newMet)["RefJet"]).size() << " are non-overlapping, "
316  << acc_constitObjLinks(*(*newMet)[(m_soft=="Clus" ? m_softclname : m_softtrkname)]).size() << " are soft");
317  } else {
318  if( m_metmaker->rebuildJetMET("RefJet", (m_soft=="Clus" ? m_softclname : m_softtrkname), newMet,
319  Jets.cptr(), coreMet.cptr(), metHelper, m_doJVT ).isFailure() ) {
320  ATH_MSG_WARNING("Failed to build jet and soft terms.");
321  }
322  ATH_MSG_DEBUG("Of " << Jets.cptr()->size() << " jets, "
323  << acc_constitObjLinks(*(*newMet)["RefJet"]).size() << " are non-overlapping, "
324  << acc_constitObjLinks(*(*newMet)[(m_soft=="Clus" ? m_softclname : m_softtrkname)]).size() << " are soft");
325  }
326 
327 
328  ATH_CHECK( buildMETSum("Final"+m_soft,
329  newMet,
330  (m_soft=="Clus")? (*newMet)["SoftClus"]->source() : (*newMet)["PVSoftTrk"]->source())
331  );
332 
333  xAOD::MissingET* metSum = (*newMet)["Final"+m_soft];
334  ATH_MSG_DEBUG("MET sum = " << 0.001 * metSum->met() << " GeV");
335  ATH_MSG_DEBUG("MET jet = " << 0.001 * (*newMet)["RefJet"]->met() << " GeV");
336  ATH_MSG_DEBUG("MET mu = " << 0.001 * (*newMet)["Muons"]->met() << " GeV");
337  ATH_MSG_DEBUG("MET el = " << 0.001 * (*newMet)["RefEle"]->met() << " GeV");
338  ATH_MSG_DEBUG("MET ph = " << 0.001 * (*newMet)["RefGamma"]->met() << " GeV");
339  ATH_MSG_DEBUG("MET tau = " << 0.001 * (*newMet)["RefTau"]->met() << " GeV");
340  ATH_MSG_DEBUG("MET soft = " << 0.001 * (*newMet)["Soft"+m_soft]->met() << " GeV");
341 
342  return StatusCode::SUCCESS;
343  }
344 
345 
347  if( mu->pt()<m_muonPT && fabs(mu->eta())>m_muonETA) return false;
348  return static_cast<bool>(m_muonSelTool->accept(*mu));
349  }
350 
352  if( fabs(el->eta())>m_electronETA || el->pt()<m_electronPT) return false;
353  return static_cast<bool> (m_elecSelLHTool->accept(el));
354  }
355 
357  if( !(ph->author()&20) || fabs(ph->eta())>m_photonETA || ph->pt()<m_photonPT) return false;
358  return static_cast<bool> (m_photonSelIsEMTool->accept(ph));
359  }
360 
362  return static_cast<bool>(m_tauSelTool->accept( *tau ));
363  }
364 }
365 
ShallowCopy.h
xAOD::name
name
Definition: TriggerMenuJson_v1.cxx:29
met::METMakerAlg::m_softclname
std::string m_softclname
Definition: METMakerAlg.h:67
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
met::METMakerAlg
Definition: METMakerAlg.h:42
met::METMakerAlg::m_photonSelIsEMTool
ToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEMTool
Definition: METMakerAlg.h:90
MissingETBase::UsageHandler::PhysicsObject
@ PhysicsObject
Physics object based.
Definition: MissingETCompositionBase.h:187
MissingETBase::UsageHandler::TruthParticle
@ TruthParticle
Truth particle based.
Definition: MissingETCompositionBase.h:189
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
IAsgPhotonIsEMSelector.h
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
met::ORMETMakerAlg::m_chargedPFOContainerWriteHandleKey
SG::WriteHandleKey< xAOD::PFOContainer > m_chargedPFOContainerWriteHandleKey
Definition: ORMETMakerAlg.h:73
met::ORMETMakerAlg::~ORMETMakerAlg
virtual ~ORMETMakerAlg()
Destructor:
met::ORMETMakerAlg::m_muonPT
double m_muonPT
Definition: ORMETMakerAlg.h:87
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
ORMETMakerAlg.h
xAOD::Egamma_v1::author
uint16_t author(uint16_t bitmask=EgammaParameters::AuthorALL) const
Get author.
Definition: Egamma_v1.cxx:166
met::METMakerAlg::m_PhotonContainerKey
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonContainerKey
Definition: METMakerAlg.h:72
IMETMaker.h
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
VP1PartSpect::Gamma
@ Gamma
Definition: VP1PartSpectFlags.h:22
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
ITauSelectionTool.h
met::ORMETMakerAlg::m_soft
std::string m_soft
Definition: ORMETMakerAlg.h:69
met::ORMETMakerAlg::m_tauETA
double m_tauETA
Definition: ORMETMakerAlg.h:94
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
met::ORMETMakerAlg::accept
virtual bool accept(const xAOD::Electron *el) final
Definition: ORMETMakerAlg.cxx:351
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
ConstDataVector::asDataVector
const DV * asDataVector() const
Return a pointer to this object, as a const DataVector.
met::METMakerAlg::m_tauSelTool
ToolHandle< TauAnalysisTools::ITauSelectionTool > m_tauSelTool
Definition: METMakerAlg.h:91
met::ORMETMakerAlg::initialize
virtual StatusCode initialize() override
Athena algorithm's Hooks.
Definition: ORMETMakerAlg.cxx:66
met::ORMETMakerAlg::m_PFOContainerWriteHandleKey
SG::WriteHandleKey< xAOD::PFOContainer > m_PFOContainerWriteHandleKey
Definition: ORMETMakerAlg.h:75
python.TriggerEDMRun2.PFOs
PFOs
Definition: TriggerEDMRun2.py:70
met::buildMETSum
StatusCode buildMETSum(const std::string &totalName, xAOD::MissingETContainer *metCont)
Definition: METHelpers.cxx:64
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
IMuonSelectionTool.h
met::ORMETMakerAlg::m_electronETA
double m_electronETA
Definition: ORMETMakerAlg.h:91
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
IAsgElectronLikelihoodTool.h
METHelpers.h
met
Definition: IMETSignificance.h:24
met::ORMETMakerAlg::m_ORMetMapKey
SG::ReadHandleKey< xAOD::MissingETAssociationMap > m_ORMetMapKey
Definition: ORMETMakerAlg.h:71
PFOAuxContainer.h
met::ORMETMakerAlg::finalize
virtual StatusCode finalize() override
Definition: ORMETMakerAlg.cxx:82
met::METMakerAlg::m_elecSelLHTool
ToolHandle< IAsgElectronLikelihoodTool > m_elecSelLHTool
Definition: METMakerAlg.h:89
met::ORMETMakerAlg::m_doRetrieveORconstit
bool m_doRetrieveORconstit
Definition: ORMETMakerAlg.h:81
met::METMakerAlg::m_softtrkname
std::string m_softtrkname
Definition: METMakerAlg.h:68
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MissingETAuxContainer.h
met::METMakerAlg::m_metKey
SG::WriteHandleKey< xAOD::MissingETContainer > m_metKey
Definition: METMakerAlg.h:79
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
met::METMakerAlg::m_TauJetContainerKey
SG::ReadHandleKey< xAOD::TauJetContainer > m_TauJetContainerKey
Definition: METMakerAlg.h:73
met::ORMETMakerAlg::m_photonETA
double m_photonETA
Definition: ORMETMakerAlg.h:93
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
met::METMakerAlg::m_metMapKey
SG::ReadHandleKey< xAOD::MissingETAssociationMap > m_metMapKey
Definition: METMakerAlg.h:80
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
met::ORMETMakerAlg::m_tauPT
double m_tauPT
Definition: ORMETMakerAlg.h:89
met::ORMETMakerAlg::m_doJVT
bool m_doJVT
Definition: ORMETMakerAlg.h:98
met::ORMETMakerAlg::m_useUnmatched
bool m_useUnmatched
Definition: ORMETMakerAlg.h:97
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
met::METMakerAlg::initialize
virtual StatusCode initialize() override
Athena algorithm's Hooks.
Definition: METMakerAlg.cxx:70
met::METMakerAlg::m_MuonContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
Definition: METMakerAlg.h:74
AcceptData.h
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
met::METMakerAlg::m_CoreMetKey
SG::ReadHandleKey< xAOD::MissingETContainer > m_CoreMetKey
Definition: METMakerAlg.h:77
MissingETBase::UsageHandler::Policy
Policy
Policies on usage checks.
Definition: MissingETCompositionBase.h:182
met::ORMETMakerAlg::m_retainMuonConstit
bool m_retainMuonConstit
Definition: ORMETMakerAlg.h:82
xAOD::MissingETContainer_v1
Container for xAOD::MissingET_v1 objects.
Definition: MissingETContainer_v1.h:21
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
met::METMakerAlg::m_muonSelTool
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
Definition: METMakerAlg.h:88
met::ORMETMakerAlg::m_electronPT
double m_electronPT
Definition: ORMETMakerAlg.h:86
met::ORMETMakerAlg::execute
virtual StatusCode execute() override
Definition: ORMETMakerAlg.cxx:89
MissingETBase::UsageHandler::OnlyTrack
@ OnlyTrack
Track based only.
Definition: MissingETCompositionBase.h:185
ConstDataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
met::ORMETMakerAlg::m_neutralPFOContainerWriteHandleKey
SG::WriteHandleKey< xAOD::PFOContainer > m_neutralPFOContainerWriteHandleKey
Definition: ORMETMakerAlg.h:74
xAOD::MissingETAssociationHelper
Definition: MissingETAssociationHelper.h:26
SG::VarHandleBase::key
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx:64
xAOD::Electron_v1
Definition: Electron_v1.h:34
met::ORMETMakerAlg::m_muonETA
double m_muonETA
Definition: ORMETMakerAlg.h:92
met::METMakerAlg::m_doTruthLep
bool m_doTruthLep
Definition: METMakerAlg.h:83
xAOD::Photon
Photon_v1 Photon
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Photon.h:17
Muon
struct TBPatternUnitContext Muon
met::ORMETMakerAlg::m_photonPT
double m_photonPT
Definition: ORMETMakerAlg.h:88
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
xAOD::Photon_v1
Definition: Photon_v1.h:37
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ConstDataVector
DataVector adapter that acts like it holds const pointers.
Definition: ConstDataVector.h:76
met::METMakerAlg::m_JetContainerKey
SG::ReadHandleKey< xAOD::JetContainer > m_JetContainerKey
Definition: METMakerAlg.h:75
xAOD::Egamma_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: Egamma_v1.cxx:65
xAODType::Tau
@ Tau
The object is a tau (jet)
Definition: ObjectType.h:49
xAOD::Egamma_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: Egamma_v1.cxx:70
MissingETAssociationMap.h
met::METMakerAlg::m_ElectronContainerKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
Definition: METMakerAlg.h:71
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
MissingETAssociationHelper.h
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
MissingETComposition.h
xAOD::MissingET_v1::met
float met() const
Returns .
met::METMakerAlg::m_metmaker
ToolHandle< IMETMaker > m_metmaker
Athena configured tools.
Definition: METMakerAlg.h:86
met::ORMETMakerAlg::m_doORMet
bool m_doORMet
Definition: ORMETMakerAlg.h:83