ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
JetGroupUnion Class Reference

#include <JetGroupUnion.h>

Inheritance diagram for JetGroupUnion:
Collaboration diagram for JetGroupUnion:

Public Member Functions

 JetGroupUnion (const std::vector< std::size_t > &siblings, const CondInd2JetGroupsInds &satisfiedBy)
 
virtual std::vector< std::size_t > next (const Collector &) override
 
virtual bool valid () const override
 

Private Attributes

std::vector< std::size_t > m_jetIndices
 
bool m_done {false}
 

Detailed Description

Definition at line 20 of file JetGroupUnion.h.

Constructor & Destructor Documentation

◆ JetGroupUnion()

JetGroupUnion::JetGroupUnion ( const std::vector< std::size_t > &  siblings,
const CondInd2JetGroupsInds satisfiedBy 
)

Definition at line 12 of file JetGroupUnion.cxx.

13  {
14 
15  // make a vector of the jet indices that satisfy the sibling Conditions
16  // with no duplicates
17 
18  for (const auto& s :siblings){
19  m_jetIndices.insert(m_jetIndices.end(),
20  satisfiedBy.at(s).cbegin(),
21  satisfiedBy.at(s).cend()
22  );
23  }
24 
25  std::sort(m_jetIndices.begin(),
26  m_jetIndices.end());
27 
28  auto iter = std::unique(m_jetIndices.begin(),
29  m_jetIndices.end());
30 
31  m_jetIndices.resize(iter-m_jetIndices.begin());
32  m_done = false;
33 }

Member Function Documentation

◆ next()

std::vector< std::size_t > JetGroupUnion::next ( const Collector collector)
overridevirtual

Implements IJetGroupProduct.

Definition at line 36 of file JetGroupUnion.cxx.

36  {
37  if(collector){
38  std::stringstream sstr;
39  sstr << "no of indices " << m_jetIndices.size()
40  << " done " << std::boolalpha << m_done;
41  collector->collect("JetGroupUnion::next()", sstr.str());
42  }
43 
44  if (m_done) {
45  return std::vector<std::size_t>();
46  }
47 
48  m_done = true;
49  return m_jetIndices;
50 }

◆ valid()

bool JetGroupUnion::valid ( ) const
overridevirtual

Implements IJetGroupProduct.

Definition at line 52 of file JetGroupUnion.cxx.

52 {return true;}

Member Data Documentation

◆ m_done

bool JetGroupUnion::m_done {false}
private

Definition at line 33 of file JetGroupUnion.h.

◆ m_jetIndices

std::vector<std::size_t> JetGroupUnion::m_jetIndices
private

Definition at line 32 of file JetGroupUnion.h.


The documentation for this class was generated from the following files:
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
JetGroupUnion::m_done
bool m_done
Definition: JetGroupUnion.h:33
std::unique
std::reverse_iterator< DataModel_detail::iterator< DVL > > unique(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, BinaryPredicate pred)
Specialization of unique for DataVector/List.
Definition: DVL_algorithms.h:199
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
JetGroupUnion::m_jetIndices
std::vector< std::size_t > m_jetIndices
Definition: JetGroupUnion.h:32