![]() |
HepMC Reference DocumentationHepMC |
#include <GenVertex.h>
Public Member Functions | |
vertex_iterator () | |
vertex_iterator (GenVertex &vtx_root, IteratorRange range) | |
used to set limits on the iteration | |
vertex_iterator (GenVertex &vtx_root, IteratorRange range, std::set< const HepMC::GenVertex * > &visited_vertices) | |
next constructor is intended for internal use only | |
vertex_iterator (const vertex_iterator &v_iter) | |
copy | |
virtual | ~vertex_iterator () |
vertex_iterator & | operator= (const vertex_iterator &) |
make a copy | |
GenVertex * | operator * (void) const |
return a pointer to a vertex | |
vertex_iterator & | operator++ (void) |
Pre-fix increment. | |
vertex_iterator | operator++ (int) |
Post-fix increment. | |
bool | operator== (const vertex_iterator &) const |
equality | |
bool | operator!= (const vertex_iterator &) const |
inequality | |
GenVertex * | vertex_root () const |
vertex that this iterator begins from | |
IteratorRange | range () const |
iterator range | |
void | copy_with_own_set (const vertex_iterator &v_iter, std::set< const HepMC::GenVertex * > &visited_vertices) |
intended for internal use only. | |
Protected Member Functions | |
GenVertex * | follow_edge_ () |
non-null if recursive iter. created | |
void | copy_recursive_iterator_ (const vertex_iterator *recursive_v_iter) |
copy recursive iterator |
Iterates over all vertices connected via a graph to this vertex. this is made friend to that it can access protected edge iterator the range can be IteratorRange= ( parents, children, family, ancestors, descendants, relatives ) example for range=descendants the iterator will return all vertices which are children (connected by an outgoing particle edge), grandchildren, great-grandchildren, etc. of this vertex In all cases the iterator always returns this vertex (returned last). The algorithm is accomplished by converting the graph to a tree (by "chopping" the edges connecting to an already visited vertex) and returning the vertices in POST ORDER traversal.
Definition at line 247 of file GenVertex.h.
HepMC::GenVertex::vertex_iterator::vertex_iterator | ( | ) |
Definition at line 607 of file GenVertex.cc.
Referenced by copy_recursive_iterator_(), and follow_edge_().
HepMC::GenVertex::vertex_iterator::vertex_iterator | ( | GenVertex & | vtx_root, | |
IteratorRange | range | |||
) |
used to set limits on the iteration
Definition at line 612 of file GenVertex.cc.
References HepMC::GenVertex::edges_begin(), HepMC::GenVertex::edges_end(), and follow_edge_().
HepMC::GenVertex::vertex_iterator::vertex_iterator | ( | GenVertex & | vtx_root, | |
IteratorRange | range, | |||
std::set< const HepMC::GenVertex * > & | visited_vertices | |||
) |
next constructor is intended for internal use only
Definition at line 628 of file GenVertex.cc.
References HepMC::GenVertex::edges_begin(), HepMC::GenVertex::edges_end(), and follow_edge_().
HepMC::GenVertex::vertex_iterator::vertex_iterator | ( | const vertex_iterator & | v_iter | ) |
HepMC::GenVertex::vertex_iterator::~vertex_iterator | ( | ) | [virtual] |
Definition at line 652 of file GenVertex.cc.
void HepMC::GenVertex::vertex_iterator::copy_recursive_iterator_ | ( | const vertex_iterator * | recursive_v_iter | ) | [protected] |
copy recursive iterator
Definition at line 817 of file GenVertex.cc.
References copy_recursive_iterator_(), m_edge, m_it_owns_set, m_range, m_recursive_iterator, m_vertex, m_visited_vertices, and vertex_iterator().
Referenced by copy_recursive_iterator_(), copy_with_own_set(), and operator=().
void HepMC::GenVertex::vertex_iterator::copy_with_own_set | ( | const vertex_iterator & | v_iter, | |
std::set< const HepMC::GenVertex * > & | visited_vertices | |||
) |
intended for internal use only.
intended for internal use only. (use with care!) this is the same as the operator= method, but it allows the user to specify which set container m_visited_vertices points to. in all cases, this vertex will NOT own its set.
Definition at line 758 of file GenVertex.cc.
References copy_recursive_iterator_(), m_edge, m_range, m_recursive_iterator, and m_vertex.
GenVertex * HepMC::GenVertex::vertex_iterator::follow_edge_ | ( | ) | [protected] |
non-null if recursive iter. created
Definition at line 781 of file GenVertex.cc.
References HepMC::family, HepMC::GenVertex::edge_iterator::is_parent(), and vertex_iterator().
Referenced by operator++(), and vertex_iterator().
GenVertex * HepMC::GenVertex::vertex_iterator::operator * | ( | void | ) | const |
bool HepMC::GenVertex::vertex_iterator::operator!= | ( | const vertex_iterator & | ) | const [inline] |
GenVertex::vertex_iterator HepMC::GenVertex::vertex_iterator::operator++ | ( | int | ) |
GenVertex::vertex_iterator & HepMC::GenVertex::vertex_iterator::operator++ | ( | void | ) |
Pre-fix increment.
Definition at line 709 of file GenVertex.cc.
References HepMC::GenVertex::edges_end(), and follow_edge_().
GenVertex::vertex_iterator & HepMC::GenVertex::vertex_iterator::operator= | ( | const vertex_iterator & | ) |
make a copy
Definition at line 657 of file GenVertex.cc.
References copy_recursive_iterator_(), m_edge, m_it_owns_set, m_range, m_recursive_iterator, m_vertex, and m_visited_vertices.
bool HepMC::GenVertex::vertex_iterator::operator== | ( | const vertex_iterator & | ) | const [inline] |
IteratorRange HepMC::GenVertex::vertex_iterator::range | ( | ) | const [inline] |
iterator range
Definition at line 484 of file GenVertex.h.
Referenced by HepMC::GenVertex::particle_iterator::advance_to_first_(), HepMC::GenVertex::particle_iterator::operator++(), and HepMC::GenVertex::particle_iterator::particle_iterator().
GenVertex * HepMC::GenVertex::vertex_iterator::vertex_root | ( | ) | const [inline] |