|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRIGCOMPOSITEUTILS_IPARTCOMBITR_H
6 #define TRIGCOMPOSITEUTILS_IPARTCOMBITR_H
37 bool uniqueRoIs(
const std::vector<LinkInfo<xAOD::IParticleContainer>> &
links);
44 using VecLInfo_t = std::vector<LinkInfo<xAOD::IParticleContainer>>;
66 const std::vector<std::tuple<std::size_t, LInfoItr_t, LInfoItr_t>> &pieces,
79 const std::vector<std::tuple<std::size_t, LInfoItr_t, LInfoItr_t>> &pieces,
124 #endif //> !TRIGCOMPOSITEUTILS_IPARTCOMBITR_H
ProductItr< KFromNItr > m_idxItr
std::function< bool(const VecLInfo_t &)> m_filter
bool uniqueRoIs(const std::vector< LinkInfo< xAOD::IParticleContainer >> &links)
Helper function that returns true if no objects share a final RoI.
@ UniqueRoIs
Do not allow any two objects to share an RoI.
Iterates over all combinations of the provided input iterators.
std::size_t nLegs() const
The number of legs.
bool uniqueObjects(const std::vector< LinkInfo< xAOD::IParticleContainer >> &links)
Helper fucntion that returns true if no objects are repeated.
@ UniqueObjects
Do not allow any repeated objects.
reference operator*() const
Dereference.
void reset()
Reset the iterator to its starting point.
@ All
Allow all combinations.
std::ptrdiff_t difference_type
std::vector< LinkInfo< xAOD::IParticleContainer > > VecLInfo_t
IPartCombItr()
A default constructed iterator acts as a past-the-end iterator.
std::size_t size() const
The size of each combination.
const value_type & reference
VecLInfo_t::const_iterator LInfoItr_t
bool operator==(const IPartCombItr &other) const
Iterator comparison functions.
IPartCombItr & operator++()
Pre-increment operator.
bool operator!=(const IPartCombItr &other) const
std::input_iterator_tag iterator_category
const value_type * pointer
std::function< bool(const std::vector< LinkInfo< xAOD::IParticleContainer >> &)> getFilter(FilterType filter)
Get a lambda corresponding to the specified FilterType enum.
pointer operator->() const
bool uniqueInitialRoIs(const std::vector< LinkInfo< xAOD::IParticleContainer >> &links)
Helper function that returns true if no objects share an initial RoI.
bool exhausted() const
True if this iterator is past the end.
@ UniqueInitialRoIs
Do not allow any two objects to share an initial RoI.
setBGCode setTAP setLVL2ErrorBits bool
std::vector< LInfoItr_t > m_linkInfoItrs