21 if (siblings.empty()){
26 for (
const auto& s : siblings){
27 if (satisfiedBy.at(s).empty()) {
33 std::vector<std::size_t> satisfying;
35 for (
const auto& s :siblings){
36 satisfying.insert(satisfying.end(),
37 satisfiedBy.at(s).cbegin(),
38 satisfiedBy.at(s).cend()
46 auto end = satisfying.end();
47 if (siblings.size() > 1) {
55 std::vector<std::size_t> jet_indices;
56 for(
auto iter = satisfying.begin(); iter != end; ++iter) {
57 jet_indices.insert(jet_indices.end(),
58 jg2elemjgs.at(*iter).begin(),
59 jg2elemjgs.at(*iter).end());
69 jet_indices.resize(final_end-jet_indices.begin());
79 std::stringstream sstr;
81 <<
" done " << std::boolalpha <<
m_done;
82 collector->
collect(
"JetGroupReducer::next()", sstr.str());
86 return std::vector<std::size_t>();
std::map< int, std::vector< std::size_t > > CondInd2JetGroupsInds
std::map< int, std::vector< std::size_t > > JetGroupInd2ElemInds
std::unique_ptr< ITrigJetHypoInfoCollector > Collector
virtual void collect(const std::string &, const std::string &)=0
virtual bool valid() const override
JetGroupReducer(const std::vector< std::size_t > &siblings, const CondInd2JetGroupsInds &satisfiedBy, const JetGroupInd2ElemInds &)
virtual std::vector< std::size_t > next(const Collector &) override
std::vector< std::size_t > m_jetIndices
std::vector< std::size_t > elementalJetGroups(const std::vector< std::size_t > &non_elemental, const JetGroupInd2ElemInds &jg2elemjg)
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.