ATLAS Offline Software
Loading...
Searching...
No Matches
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}
std::vector< std::size_t > m_jetIndices
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.

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}
virtual void collect(const std::string &, const std::string &)=0

◆ 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.

33{false};

◆ 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: