2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4 #ifndef MAXCOMBINATIONCONDITION_ICC
5 #define MAXCOMBINATIONCONDITION_ICC
7 #include "CombinationsIterator.h"
11 MaxCombinationCondition<T>::MaxCombinationCondition(std::size_t k,
12 std::unique_ptr<ICondition> cond, const T& cmp):
13 m_k{k},m_acceptingCondition{std::move(cond)}, m_cmp{cmp} {
18 MaxCombinationCondition<T>::isSatisfied(const HypoJetVector& hjv,
19 const std::unique_ptr<ITrigJetHypoInfoCollector>& c) const {
21 if (n < m_k) {return false;}
22 auto begin = CombinationsIterator(m_k, hjv);
23 auto end = begin.endIter();
26 return m_acceptingCondition->isSatisfied(*std::max_element(std::move(begin),
33 std::string MaxCombinationCondition<T>::toString() const {
35 ss << "MaxCombinationCondition:"
37 << " capacity " << m_k
38 << " accepting condition " << m_acceptingCondition->toString()