17 JetGhostMergingAlg (
const std::string&
name,
18 ISvcLocator* pSvcLocator)
23 StatusCode JetGhostMergingAlg ::
40 return StatusCode::SUCCESS;
43 StatusCode JetGhostMergingAlg ::
44 execute (
const EventContext &ctx)
const
49 return StatusCode::FAILURE;
53 using GTC = std::vector<ElementLink<DataVector<xAOD::IParticle> > >;
56 std::vector<SG::ReadDecorHandle<xAOD::JetContainer, GTC> > ghostTrackAccs;
59 ghostTrackAccs.emplace_back(key, ctx);
65 std::vector<ElementLink<xAOD::IParticleContainer>> mergedGhosts;
66 for (
const auto& ghostTrackAcc: ghostTrackAccs) {
67 const GTC &ghosts = ghostTrackAcc( *
jet );
68 mergedGhosts.insert(mergedGhosts.end(), ghosts.begin(), ghosts.end());
70 mergedGhostDecor(*
jet) = std::move(mergedGhosts);
72 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
std::vector< SG::ReadDecorHandleKey< xAOD::JetContainer > > m_ghostTrackKeys
internal vector to hold the ReadDecorHandles for the difference ghosts
SG::ReadHandleKey< xAOD::JetContainer > m_jetLocation
the jet collection we run on
Gaudi::Property< std::vector< std::string > > m_inputGhostTrackNames
SG::WriteDecorHandleKey< xAOD::JetContainer > m_mergedGhostContainer
the name of the output ghost collection
AnaReentrantAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Handle class for adding a decoration to an object.
Select isolated Photons, Electrons and Muons.
Jet_v1 Jet
Definition of the current "jet version".