#include <CombinatoricLoop.h>
Public Member Functions | |
virtual | ~CombinatoricLoop () |
void | setCurrentIterator (typename dchain::CandidateList< CandidateClass >::const_partial_iterator &aIterator) |
const dchain::CandidateList< CandidateClass >::const_partial_iterator | partial_begin () const |
const dchain::CandidateList< CandidateClass >::const_partial_iterator | partial_end () const |
CombinatoricLoop (const typename dchain::CandidateList< CandidateClass >::const_partial_iterator &aBegin, const typename dchain::CandidateList< CandidateClass >::const_partial_iterator &aEnd, _combinatoricloop_vector_ &aLoopList) | |
Private Member Functions | |
CombinatoricLoop () | |
CombinatoricLoop (const CombinatoricLoop< CandidateClass > &) | |
const CombinatoricLoop & | operator= (const CombinatoricLoop< CandidateClass > &) |
void | adjustEnd () |
Private Attributes | |
dchain::CandidateList< CandidateClass >::const_partial_iterator | m_beginIterator |
dchain::CandidateList< CandidateClass >::const_partial_iterator | m_endIterator |
dchain::CandidateList< CandidateClass >::const_partial_iterator | m_currentIterator |
_combinatoricloop_vector_::const_iterator * | m_previousDuplicate |
Definition at line 97 of file CombinatoricLoop.h.
dchain::CombinatoricLoop< CandidateClass >::~CombinatoricLoop | ( | ) | [virtual] |
Definition at line 117 of file CombinatoricLoop.cc.
References dchain::CombinatoricLoop< CandidateClass >::m_previousDuplicate.
00118 { 00119 delete m_previousDuplicate ; 00120 }
dchain::CombinatoricLoop< CandidateClass >::CombinatoricLoop | ( | const typename dchain::CandidateList< CandidateClass >::const_partial_iterator & | aBegin, | |
const typename dchain::CandidateList< CandidateClass >::const_partial_iterator & | aEnd, | |||
_combinatoricloop_vector_ & | aLoopList | |||
) |
Definition at line 94 of file CombinatoricLoop.cc.
References dchain::CombinatoricLoop< CandidateClass >::m_beginIterator, and dchain::CombinatoricLoop< CandidateClass >::m_previousDuplicate.
00096 : 00097 m_beginIterator( aBegin ) , 00098 m_endIterator( aEnd ) , 00099 m_previousDuplicate( 0 ) 00100 { 00101 typename _combinatoricloop_vector_::const_iterator lastLoop( aLoopList.begin() ) ; 00102 typename _combinatoricloop_vector_::const_iterator loopToCheck( aLoopList.end() ) ; 00103 while ( loopToCheck != lastLoop ) { 00104 --loopToCheck ; 00105 if ( ( (*(*loopToCheck)).m_beginIterator ) == m_beginIterator ) { 00106 m_previousDuplicate = new typename _combinatoricloop_vector_::const_iterator( loopToCheck ) ; 00107 (*(*(*m_previousDuplicate))).adjustEnd() ; 00108 // 00109 // only require one match, so prepare to terminate search for duplicate 00110 // 00111 loopToCheck = lastLoop ; 00112 } 00113 } 00114 }
dchain::CombinatoricLoop< CandidateClass >::CombinatoricLoop | ( | ) | [private] |
dchain::CombinatoricLoop< CandidateClass >::CombinatoricLoop | ( | const CombinatoricLoop< CandidateClass > & | ) | [private] |
void dchain::CombinatoricLoop< CandidateClass >::adjustEnd | ( | ) | [private] |
Definition at line 160 of file CombinatoricLoop.cc.
References dchain::CombinatoricLoop< CandidateClass >::m_beginIterator, dchain::CombinatoricLoop< CandidateClass >::m_endIterator, and dchain::CombinatoricLoop< CandidateClass >::m_previousDuplicate.
00161 { 00162 if ( m_beginIterator != m_endIterator ) { 00163 --m_endIterator ; 00164 if ( 0 != m_previousDuplicate ) { 00165 (*(*(*m_previousDuplicate))).adjustEnd() ; 00166 } 00167 } 00168 }
const CombinatoricLoop& dchain::CombinatoricLoop< CandidateClass >::operator= | ( | const CombinatoricLoop< CandidateClass > & | ) | [private] |
const dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricLoop< CandidateClass >::partial_begin | ( | ) | const |
Definition at line 144 of file CombinatoricLoop.cc.
References dchain::CombinatoricLoop< CandidateClass >::m_beginIterator, dchain::CombinatoricLoop< CandidateClass >::m_currentIterator, and dchain::CombinatoricLoop< CandidateClass >::m_previousDuplicate.
Referenced by dchain::FillDecayList< DecayClass, CandidateClass >::fill().
00145 { 00146 if ( 0 == m_previousDuplicate ) { 00147 return( m_beginIterator ) ; 00148 } 00149 typename dchain::CandidateList< CandidateClass >::const_partial_iterator newBegin( ( (*(*(*m_previousDuplicate))).m_currentIterator ) ) ; 00150 return( ++newBegin ) ; 00151 }
const dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricLoop< CandidateClass >::partial_end | ( | ) | const |
Definition at line 154 of file CombinatoricLoop.cc.
References dchain::CombinatoricLoop< CandidateClass >::m_endIterator.
Referenced by dchain::FillDecayList< DecayClass, CandidateClass >::fill().
00155 { 00156 return( m_endIterator ) ; 00157 }
void dchain::CombinatoricLoop< CandidateClass >::setCurrentIterator | ( | typename dchain::CandidateList< CandidateClass >::const_partial_iterator & | aIterator | ) |
Definition at line 134 of file CombinatoricLoop.cc.
References dchain::CombinatoricLoop< CandidateClass >::m_currentIterator.
Referenced by dchain::FillDecayList< DecayClass, CandidateClass >::fill().
00135 { 00136 m_currentIterator = aIterator ; 00137 }
dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricLoop< CandidateClass >::m_beginIterator [private] |
Definition at line 142 of file CombinatoricLoop.h.
Referenced by dchain::CombinatoricLoop< CandidateClass >::adjustEnd(), dchain::CombinatoricLoop< CandidateClass >::CombinatoricLoop(), and dchain::CombinatoricLoop< CandidateClass >::partial_begin().
dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricLoop< CandidateClass >::m_currentIterator [private] |
Definition at line 144 of file CombinatoricLoop.h.
Referenced by dchain::CombinatoricLoop< CandidateClass >::partial_begin(), and dchain::CombinatoricLoop< CandidateClass >::setCurrentIterator().
dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricLoop< CandidateClass >::m_endIterator [private] |
Definition at line 143 of file CombinatoricLoop.h.
Referenced by dchain::CombinatoricLoop< CandidateClass >::adjustEnd(), and dchain::CombinatoricLoop< CandidateClass >::partial_end().
_combinatoricloop_vector_::const_iterator* dchain::CombinatoricLoop< CandidateClass >::m_previousDuplicate [private] |
Definition at line 145 of file CombinatoricLoop.h.
Referenced by dchain::CombinatoricLoop< CandidateClass >::adjustEnd(), dchain::CombinatoricLoop< CandidateClass >::CombinatoricLoop(), dchain::CombinatoricLoop< CandidateClass >::partial_begin(), and dchain::CombinatoricLoop< CandidateClass >::~CombinatoricLoop().