5#ifndef TRIG_HLTJETHYPO_COMBINATIONSITERATOR_H
6#define TRIG_HLTJETHYPO_COMBINATIONSITERATOR_H
52 auto indices =
m_gen.get();
55 std::transform(indices.cbegin(),
58 [iv = this->m_input_vals](
const auto& ind) {
79 return a.m_end == b.m_end and
81 a.m_input_vals == b.m_input_vals;
std::ostream & operator<<(std::ostream &os, const CombinationsIterator &iter)
std::vector< pHypoJet > HypoJetVector
generate all possible combinations of objects
friend std::ostream & operator<<(std::ostream &, const CombinationsIterator &)
HypoJetVector m_input_vals
CombinationsIterator operator++(int)
std::forward_iterator_tag iterator_category
CombinationsIterator(std::size_t k, const HypoJetVector &input_vals, bool end=false)
std::ptrdiff_t difference_type
friend bool operator==(const CombinationsIterator &a, const CombinationsIterator &b)
friend bool operator!=(const CombinationsIterator &a, const CombinationsIterator &b)
CombinationsGenerator m_gen
CombinationsIterator endIter() const
CombinationsIterator & operator++()
HypoJetVector & reference