Skip to content
Snippets Groups Projects

CPAlgorithms: handle missing inputs in ParticleLevelOverlapRemovalAlg

Merged Baptiste Ravina requested to merge ravinab/athena:pl_or_fix into main
All threads resolved!
2 files
+ 39
36
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -8,7 +8,6 @@
#include <AsgDataHandles/ReadHandle.h>
#include <AsgDataHandles/WriteDecorHandle.h>
#include <AsgTools/CurrentContext.h>
#include <FourMomUtils/xAODP4Helpers.h>
namespace CP {
@@ -16,24 +15,32 @@ namespace CP {
StatusCode ParticleLevelOverlapRemovalAlg::initialize() {
ANA_CHECK(m_jetsKey.initialize());
ANA_CHECK(m_electronsKey.initialize());
ANA_CHECK(m_muonsKey.initialize());
ANA_CHECK(m_photonsKey.initialize());
m_decORelectron = m_electronsKey.key() + "." + m_decLabelOR.value();
m_decORmuon = m_muonsKey.key() + "." + m_decLabelOR.value();
m_decORphoton = m_photonsKey.key() + "." + m_decLabelOR.value();
m_decORjet = m_jetsKey.key() + "." + m_decLabelOR.value();
ANA_CHECK(m_decORelectron.initialize());
ANA_CHECK(m_decORmuon.initialize());
ANA_CHECK(m_decORphoton.initialize());
ANA_CHECK(m_electronsKey.initialize(SG::AllowEmpty));
ANA_CHECK(m_muonsKey.initialize(SG::AllowEmpty));
ANA_CHECK(m_photonsKey.initialize(SG::AllowEmpty));
if (!m_electronsKey.empty())
m_decORelectron = m_electronsKey.key() + "." + m_decLabelOR.value();
if (!m_muonsKey.empty())
m_decORmuon = m_muonsKey.key() + "." + m_decLabelOR.value();
if (!m_photonsKey.empty())
m_decORphoton = m_photonsKey.key() + "." + m_decLabelOR.value();
if (!m_jetsKey.empty())
m_decORjet = m_jetsKey.key() + "." + m_decLabelOR.value();
ANA_CHECK(m_decORelectron.initialize(SG::AllowEmpty));
ANA_CHECK(m_decORmuon.initialize(SG::AllowEmpty));
ANA_CHECK(m_decORphoton.initialize(SG::AllowEmpty));
ANA_CHECK(m_decORjet.initialize());
ANA_CHECK(m_jetSelection.initialize());
ANA_CHECK(m_electronSelection.initialize());
ANA_CHECK(m_muonSelection.initialize());
ANA_CHECK(m_photonSelection.initialize());
if (!m_jetSelection.empty())
ANA_CHECK(m_jetSelection.initialize());
if (!m_electronSelection.empty())
ANA_CHECK(m_electronSelection.initialize());
if (!m_muonSelection.empty())
ANA_CHECK(m_muonSelection.initialize());
if (!m_photonSelection.empty())
ANA_CHECK(m_photonSelection.initialize());
return StatusCode::SUCCESS;
}
@@ -49,0+56,0 @@
}
StatusCode ParticleLevelOverlapRemovalAlg::execute() {
const EventContext& ctx = Gaudi::Hive::currentContext();
SG::ReadHandle<xAOD::TruthParticleContainer> electrons, muons, photons;
if (m_doJetElectronOR)
electrons = SG::makeHandle(m_electronsKey, ctx);
electrons = SG::makeHandle(m_electronsKey);
if (m_doJetMuonOR)
muons = SG::makeHandle(m_muonsKey, ctx);
muons = SG::makeHandle(m_muonsKey);
if (m_doJetPhotonOR)
photons = SG::makeHandle(m_photonsKey, ctx);
SG::ReadHandle<xAOD::JetContainer> jets(m_jetsKey, ctx);
SG::WriteDecorHandle<xAOD::TruthParticleContainer, char> dec_electrons_OR(
m_decORelectron, ctx);
SG::WriteDecorHandle<xAOD::TruthParticleContainer, char> dec_muons_OR(
m_decORmuon, ctx);
SG::WriteDecorHandle<xAOD::TruthParticleContainer, char> dec_photons_OR(
m_decORphoton, ctx);
SG::WriteDecorHandle<xAOD::JetContainer, char> dec_jets_OR(m_decORjet, ctx);
photons = SG::makeHandle(m_photonsKey);
SG::ReadHandle<xAOD::JetContainer> jets(m_jetsKey);
SG::WriteDecorHandle<xAOD::TruthParticleContainer, char> dec_electrons_OR(m_decORelectron);
SG::WriteDecorHandle<xAOD::TruthParticleContainer, char> dec_muons_OR(m_decORmuon);
SG::WriteDecorHandle<xAOD::TruthParticleContainer, char> dec_photons_OR(m_decORphoton);
SG::WriteDecorHandle<xAOD::JetContainer, char> dec_jets_OR(m_decORjet);
// accessors
static const SG::AuxElement::ConstAccessor<float> acc_pt_dressed(
Loading