5#ifndef TRIGNAVSTRUCTURE_ComboIterator_H
6#define TRIGNAVSTRUCTURE_ComboIterator_H
14 typedef std::vector<HLT::TriggerElement*>
TEVec;
122 const TEVec& teVec,
int idx = -1)
const;
131 bool reset (
int pos);
virtual ~ComboIteratorBase()
Destructor.
virtual bool rewind()=0
Rewind method, resetting the iterator to the first element.
virtual bool isValid() const =0
Validity check for the iterator.
virtual ComboIteratorBase & operator++(int)=0
Post increment operator.
virtual ComboIteratorBase & operator++()=0
Pre increment operator.
virtual TEVec & operator*()=0
Unary * operator, used to recover the current combination.
ComboIteratorBase()
Constructor.
virtual TEVec & combination()=0
Accessor method for the current combination.
virtual bool overlaps(const TriggerElement *t1, const TriggerElement *t2) const
Method used to test overlaps between two TEs.
ComboIteratorTopo(const std::vector< TEVec > &tes, const TrigNavStructure *nav, HLT::te_id_type topoSpan)
void traverseUntilSeedsTopo(const TriggerElement *start, std::set< const TriggerElement * > &topos) const
Iterator used to loop over multi-particle combinations.
std::vector< TEVec > m_tes
Vector of vectors of TEs to be combined.
const TrigNavStructure * m_nav
Pointer to the navigation service.
void invalidate()
Method used to invalidate the current combination.
bool reset(int pos)
Private reset method.
bool m_valid
Validity status variable.
bool incrementByOne(int pos, bool &ok)
Private increment method.
ComboIterator(const std::vector< TEVec > &tes, const TrigNavStructure *nav)
Constructor; gets a vector of TE vectors and a pointer to Navigation as arguments.
bool isValid() const
Validity check for the iterator.
bool rewind()
Rewind method, resetting the iterator to the first element.
TEVec m_comb
Current combination of TEs.
std::vector< int > m_idx
Vector of indexes keeping track of the loop over combinations.
TEVec & combination()
Accessor method for the current combination.
virtual bool overlaps(const TriggerElement *t1, const TriggerElement *t2) const
Method used to test overlaps between two TEs.
ComboIterator & operator++()
Pre increment operator.
void print() const
Debug dump to std::cout.
ComboIterator & operator++(int)
Post increment operator.
TEVec & operator*()
Unary * operator, used to recover the current combination.
bool increment(int pos)
Private increment method.
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
std::vector< HLT::TriggerElement * > TEVec