53 {
55
56
57 SG::ReadHandle<xAOD::JetContainer> hiJets(
m_hiJet_key, ctx);
58 if (!hiJets.isValid()) {
60 return StatusCode::FAILURE;
61 }
62 SG::ReadHandle<xAOD::JetContainer> caloJets(
m_caloJet_key, ctx);
63 if (!caloJets.isValid()) {
66 return StatusCode::FAILURE;
67 }
68
69 SG::WriteDecorHandle<xAOD::JetContainer, float> jvtMatchedHandle(
m_jvtMatchedKey,ctx);
70
71
72 for (const auto *hjet : *hiJets) {
73 float mindR = 999.;
74 float matchedJvt = -1;
75
76 for (const auto *tjet : *caloJets) {
78
79
80 float dR =
81 deltaR(tjet->eta(), hjet->eta(), hjet->phi(), tjet->phi());
82
83 if (dR <
m_deltaR.value() && dR < mindR) {
84 mindR = dR;
85 matchedJvt = newjvt;
86 }
87 }
88
90 (jvtMatchedHandle)(*hjet) = matchedJvt;
91 } else {
92 (jvtMatchedHandle)(*hjet) = -1;
93 }
94
95 }
96
97 return StatusCode::SUCCESS;
98 }
#define ATH_MSG_ERROR(x,...)
double deltaR(double eta1, double eta2, double phi1, double phi2)