ATLAS Offline Software
Loading...
Searching...
No Matches
CombinationsIterator.cxx
Go to the documentation of this file.
2
3std::ostream& operator << (std::ostream& os, const CombinationsIterator& iter) {
4 os << std::boolalpha
5 << " generator: " << iter.m_gen
6 << " end: " << iter.m_end
7 << " input vals: ";
8 for(const auto& hj : iter.m_input_vals) {
9 os << static_cast<const void*>(hj.get()) << '\n';
10 }
11
12 os << '\n' <<" vals: ";
13
14 for(const auto& hj : iter.m_vals) {
15 os << static_cast<const void*>(hj.get()) << '\n';
16 }
17
18 return os;
19}
20
22 const HypoJetVector& iv,
23 bool end):
24 m_gen{CombinationsGenerator(iv.size(), k)},
25 m_k{k},
26 m_input_vals{iv},
27 m_end{end}
28{
29 auto indices = m_gen.get();
30 std::transform(indices.cbegin(),
31 indices.cend(),
32 std::back_inserter(m_vals),
33 [iv = this->m_input_vals](const auto& ind) {
34 return iv.at(ind);
35 });
37
38
std::ostream & operator<<(std::ostream &os, const CombinationsIterator &iter)
std::vector< pHypoJet > HypoJetVector
Definition HypoJetDefs.h:27
generate all possible combinations of objects
CombinationsIterator(std::size_t k, const HypoJetVector &input_vals, bool end=false)
CombinationsGenerator m_gen
CombinationsIterator endIter() const