14 ISvcLocator* pSvcLocator):
27 std::vector<std::string> sources;
29 sources.emplace_back(key.key());
45 return StatusCode::SUCCESS;
52 std::optional<SG::WriteDecorHandle<IPC,char>> matchDecorator;
56 std::vector<MatchedPair<IPC>> matches;
60 *sourceLink :
nullptr;
61 if (!matchDecorator && !source) {
62 throw std::runtime_error(
"invalid link to source");
65 if (matchDecorator) matchDecorator.value()(*target) = 1;
66 matches.push_back({source, target});
68 matchDecorator.value()(*target) = 0;
69 matches.push_back({
nullptr, target});
80 return StatusCode::SUCCESS;
83 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
An algorithm that can be simultaneously executed in multiple threads.
ElementLink implementation for ROOT usage.
bool isValid() const
Test to see if the link can be dereferenced.
Handle class for reading a decoration on an object.
virtual StatusCode execute(const EventContext &) const override
virtual StatusCode initialize() override
VariableMule< IPLV, IPC > m_iparticles
VariableMule< uint, IPC > m_uints
VariableMule< int, IPC > m_ints
SG::ReadHandleKeyArray< IPC > m_sourceJets
VariableMule< float, IPC > m_floats
VariableMule< ulong, IPC > m_ulongs
SG::ReadDecorHandleKey< IPC > m_link
SG::ReadHandleKey< IPC > m_targetJet
VariableMule< double, IPC > m_doubles
SG::WriteDecorHandleKey< IPC > m_matchDecorator
VariableMule< char, IPC > m_chars
virtual StatusCode finalize() override
JetLinkMatcherAlg(const std::string &name, ISvcLocator *pSvcLocator)
Class providing the definition of the 4-vector interface.
JetContainer_v1 JetContainer
Definition of the current "jet container version".