15 const std::vector<std::size_t>& condMult,
17 m_jg2elemjgs{jg2elemjgs}
20 m_valid = !siblings.empty() or satisfiedBy.size() != condMult.size();
21 if (m_valid) {
init(siblings, satisfiedBy, condMult);}
26 const std::vector<std::size_t>& condMult) {
35 std::vector<std::vector<std::size_t>> condIndices;
36 condIndices.reserve(siblings.size());
37 std::vector<std::size_t> repeats;
38 condIndices.reserve(siblings.size());
40 for(
const auto& isib : siblings){
41 auto mult = condMult[isib];
42 repeats.push_back(mult);
43 condIndices.push_back(satisfiedBy.at(isib));
46 const auto& sibjets = satisfiedBy.at(isib);
48 *std::max_element(sibjets.begin(),
73 if (!
m_valid) {
return std::vector<std::size_t>();}
75 unsigned int ipass{0};
76 std::vector<std::size_t> jg_indices;
82 collector->collect(
"JetGroupProduct::next()",
89 if (jet_indices.empty()) {
91 collector->collect(
"JetGroupProduct::next()",
96 for (
const auto&
ind : jet_indices) {
104 if (blocked){
continue;}
109 jg_indices.push_back(
i);
115 if (elem_indices.empty()) {
continue;}