13 const std::vector<std::size_t> &legMultiplicities,
14 const std::vector<VecLInfo_t> &legFeatures,
15 const std::function<
bool(
const VecLInfo_t &)> &filter)
20 if (legMultiplicities.size() != legFeatures.size())
21 throw std::invalid_argument(
"Different numbers of multiplicities and features provided");
25 const std::vector<std::size_t> &legMultiplicities,
26 const std::vector<VecLInfo_t> &legFeatures,
74 addLeg(1, std::move(features));
80 std::vector<std::tuple<std::size_t, VecLInfo_t::const_iterator, VecLInfo_t::const_iterator>> args;
82 args.push_back(std::make_tuple(
void reserve(std::size_t capacity)
Combinations(const std::vector< std::size_t > &legMultiplicities, const std::vector< VecLInfo_t > &legFeatures, const std::function< bool(const VecLInfo_t &)> &filter)
IPartCombItr begin() const
void addLeg(std::size_t multiplicity, const VecLInfo_t &features)
std::vector< VecLInfo_t > m_legFeatures
std::function< bool(const VecLInfo_t &)> m_filter
std::vector< LinkInfo< xAOD::IParticleContainer > > VecLInfo_t
std::vector< std::size_t > m_legMultiplicities
std::function< bool(const std::vector< LinkInfo< xAOD::IParticleContainer > > &)> getFilter(FilterType filter)
Get a lambda corresponding to the specified FilterType enum.