ATLAS Offline Software
Loading...
Searching...
No Matches
MuonJetDrTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Finds the nearest jet and adds its info to the muon.
6#include "MuonJetDrTool.h"
7
10
12 ATH_CHECK(m_muonSGKey.initialize());
13 ATH_CHECK(m_jetSGKey.initialize());
14 ATH_CHECK(m_jetDR_SGKey.initialize());
15 return StatusCode::SUCCESS;
16}
17
18
19StatusCode DerivationFramework::MuonJetDrTool::addBranches(const EventContext& ctx) const {
20
21 // Retrieve main muonicle collection
23 if (!muons.isValid()) {
24 ATH_MSG_FATAL("Failed to retrieve container " << m_muonSGKey.fullKey());
25 return StatusCode::FAILURE;
26 }
28 if (!jets.isValid()) {
29 ATH_MSG_FATAL("Failed to retrieve " << m_jetSGKey.fullKey());
30 return StatusCode::FAILURE;
31 }
33
34 for (auto muon : *muons) {
35 double new_jetdR = FLT_MAX;
36 bool found{false};
37 for (auto jet : *jets) {
38 if (jet->pt() <= m_jetMinPt) continue;
39 new_jetdR = std::min(xAOD::P4Helpers::deltaR(jet, muon), new_jetdR);
40 found = true;
41 }
42 decorator_jetdR(*muon) = found ? new_jetdR : -1;
43 }
44 return StatusCode::SUCCESS;
45}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
Handle class for adding a decoration to an object.
virtual StatusCode initialize() override final
virtual StatusCode addBranches(const EventContext &ctx) const override final
Gaudi::Property< float > m_jetMinPt
SG::ReadHandleKey< xAOD::MuonContainer > m_muonSGKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_jetDR_SGKey
SG::ReadHandleKey< xAOD::JetContainer > m_jetSGKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Handle class for adding a decoration to an object.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi