dchain::LabeledParticleList< ParticleClass, CandidateClass > Class Template Reference

#include <LabeledParticleList.h>

Inheritance diagram for dchain::LabeledParticleList< ParticleClass, CandidateClass >:

dchain::IndexedLabeledParticles< ParticleClass, CandidateClass > dchain::LabeledCandidateList< CandidateClass > dchain::IndexedLabeledCandidates< CandidateClass > dchain::ReferenceCount List of all members.

Public Types

typedef MuteWholeItr< ParticleClass > iterator
typedef WholeItr< ParticleClass > const_iterator
typedef PartialItr< ParticleClass > const_partial_iterator
typedef LabeledCandidate<
CandidateClass > 
value_type

Public Member Functions

 LabeledParticleList ()
virtual ~LabeledParticleList ()
LabeledParticle< ParticleClass > & operator[] (const int aIndex)
iterator begin ()
iterator end ()
void push_back (const LabeledParticle< ParticleClass > &aEntry)
virtual void erase_elements (int aStart, int aFinish)
const LabeledParticle< ParticleClass > & operator[] (const int aIndex) const
virtual bool empty () const
virtual bool empty (const typename conjugation::Label aLabel) const
virtual int size () const
virtual int size (const typename conjugation::Label aLabel) const
const_iterator begin () const
const_partial_iterator begin (const typename conjugation::Label aLabel) const
const_iterator end () const
const_partial_iterator end (const typename conjugation::Label aLabel) const
void erase (iterator aStart, iterator aFinish)
void addLink () const
void dropLink () const

Protected Member Functions

virtual LabeledCandidate<
CandidateClass > & 
labeledCandidateClass (const int aIndex)
virtual LabeledParticle< ParticleClass > & labeledParticleClass (const int aIndex)
virtual const LabeledCandidate<
CandidateClass > & 
labeledCandidateClass (const int aIndex) const
virtual const LabeledParticle<
ParticleClass > & 
labeledParticleClass (const int aIndex) const

Private Member Functions

 LabeledParticleList (const LabeledParticleList< ParticleClass, CandidateClass > &)
const LabeledParticleList<
ParticleClass, CandidateClass > & 
operator= (const LabeledParticleList< ParticleClass, typename ParticleClass::CandidateClass > &)

Private Attributes

_labeledparticlelist_vector_ & m_list

Friends

class dchain::MuteWholeCandidateItr< CandidateClass >
class dchain::WholeCandidateItr< CandidateClass >
class dchain::PartialCandidateItr< CandidateClass >

Detailed Description

template<class ParticleClass, class CandidateClass>
class dchain::LabeledParticleList< ParticleClass, CandidateClass >

Definition at line 111 of file LabeledParticleList.h.


Member Typedef Documentation

template<class ParticleClass, class CandidateClass>
typedef WholeItr< ParticleClass > dchain::LabeledParticleList< ParticleClass, CandidateClass >::const_iterator

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 119 of file LabeledParticleList.h.

template<class ParticleClass, class CandidateClass>
typedef PartialItr< ParticleClass > dchain::LabeledParticleList< ParticleClass, CandidateClass >::const_partial_iterator

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 120 of file LabeledParticleList.h.

template<class ParticleClass, class CandidateClass>
typedef MuteWholeItr< ParticleClass > dchain::LabeledParticleList< ParticleClass, CandidateClass >::iterator

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 118 of file LabeledParticleList.h.

template<class CandidateClass>
typedef LabeledCandidate<CandidateClass> dchain::LabeledCandidateList< CandidateClass >::value_type [inherited]

Definition at line 103 of file LabeledCandidateList.h.


Constructor & Destructor Documentation

template<class ParticleClass, class CandidateClass>
dchain::LabeledParticleList< ParticleClass, CandidateClass >::LabeledParticleList (  ) 

Definition at line 106 of file LabeledParticleList.cc.

00106                                                                            :
00107    m_list( *(new _labeledparticlelist_vector_ ) )
00108 {
00109 }

template<class ParticleClass, class CandidateClass>
dchain::LabeledParticleList< ParticleClass, CandidateClass >::~LabeledParticleList (  )  [virtual]

Definition at line 117 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00118 {
00119    delete( &m_list ) ;
00120 }

template<class ParticleClass, class CandidateClass>
dchain::LabeledParticleList< ParticleClass, CandidateClass >::LabeledParticleList ( const LabeledParticleList< ParticleClass, CandidateClass > &   )  [private]


Member Function Documentation

void dchain::ReferenceCount::addLink (  )  const [inline, inherited]

Definition at line 107 of file ReferenceCount.h.

References dchain::ReferenceCount::m_linkCount.

00108 {
00109    //if (m_linkCount==0xFFFFFFFF) {
00110    //   throw TooManyReferencesException();
00111    //}
00112    ++m_linkCount ;
00113 }

template<class ParticleClass, class CandidateClass>
LabeledParticleList< ParticleClass, CandidateClass >::const_partial_iterator dchain::LabeledParticleList< ParticleClass, CandidateClass >::begin ( const typename conjugation::Label  aLabel  )  const

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 272 of file LabeledParticleList.cc.

00273 {
00274    return ( const_partial_iterator( this , 0 , aLabel ) ) ;
00275 }

template<class ParticleClass, class CandidateClass>
LabeledParticleList< ParticleClass, CandidateClass >::const_iterator dchain::LabeledParticleList< ParticleClass, CandidateClass >::begin (  )  const

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 264 of file LabeledParticleList.cc.

00265 {
00266    return ( const_iterator( this , 0 ) ) ;
00267 }

template<class ParticleClass, class CandidateClass>
LabeledParticleList< ParticleClass, CandidateClass >::iterator dchain::LabeledParticleList< ParticleClass, CandidateClass >::begin (  ) 

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 144 of file LabeledParticleList.cc.

Referenced by dchain::NeutralVisibleList< Neutral, Neutral::CandidateClass >::fill(), dchain::NeutralNCVisibleList< NeutralNC, NeutralNC::CandidateClass >::fill(), and dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::fill().

00145 {
00146    return ( iterator( this , 0 ) ) ;
00147 }

void dchain::ReferenceCount::dropLink (  )  const [inline, inherited]

Definition at line 115 of file ReferenceCount.h.

References dchain::ReferenceCount::m_linkCount.

00116 {
00117    --m_linkCount ;
00118    if ( 0 == m_linkCount ) {
00119 // It is necessary to throw away the 'const' so that the object
00120 //   can be deleted
00121       delete const_cast<ReferenceCount*>(this) ;
00122    }
00123 }

template<class ParticleClass, class CandidateClass>
bool dchain::LabeledParticleList< ParticleClass, CandidateClass >::empty ( const typename conjugation::Label  aLabel  )  const [virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 214 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00215 {
00216 // for efficiency, check to see if the whole list is empty first
00217    if ( m_list.empty() ) {
00218       return ( !false ) ;
00219    }
00220    return ( const_partial_iterator( this , 0 , aLabel ) ==
00221                         const_partial_iterator( this , m_list.size() , aLabel ) ) ;
00222 }

template<class ParticleClass, class CandidateClass>
bool dchain::LabeledParticleList< ParticleClass, CandidateClass >::empty (  )  const [virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 206 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00207 {
00208    return ( m_list.empty() ) ;
00209 }

template<class ParticleClass, class CandidateClass>
LabeledParticleList< ParticleClass, CandidateClass >::const_partial_iterator dchain::LabeledParticleList< ParticleClass, CandidateClass >::end ( const typename conjugation::Label  aLabel  )  const

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 288 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00289 {
00290    return ( const_partial_iterator( this , m_list.size() , aLabel ) ) ;
00291 }

template<class ParticleClass, class CandidateClass>
LabeledParticleList< ParticleClass, CandidateClass >::const_iterator dchain::LabeledParticleList< ParticleClass, CandidateClass >::end (  )  const

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 280 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00281 {
00282    return ( const_iterator( this , m_list.size() ) ) ;
00283 }

template<class ParticleClass, class CandidateClass>
LabeledParticleList< ParticleClass, CandidateClass >::iterator dchain::LabeledParticleList< ParticleClass, CandidateClass >::end (  ) 

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 152 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

Referenced by dchain::NeutralVisibleList< Neutral, Neutral::CandidateClass >::fill(), dchain::NeutralNCVisibleList< NeutralNC, NeutralNC::CandidateClass >::fill(), and dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::fill().

00153 {
00154    return ( iterator( this , m_list.size() ) ) ;
00155 }

template<class CandidateClass>
void dchain::LabeledCandidateList< CandidateClass >::erase ( iterator  aStart,
iterator  aFinish 
) [inherited]

Definition at line 135 of file LabeledCandidateList.cc.

References dchain::LabeledCandidateList< CandidateClass >::erase_elements(), and dchain::MuteWholeCandidateItr< CandidateClass >::index().

00137 {
00138    erase_elements( aStart.index() ,
00139                    aFinish.index() ) ;
00140 }

template<class ParticleClass, class CandidateClass>
void dchain::LabeledParticleList< ParticleClass, CandidateClass >::erase_elements ( int  aStart,
int  aFinish 
) [virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 168 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00170 {
00171    m_list.erase( m_list.begin() + aStart ,
00172                  m_list.begin() + aFinish ) ;
00173 }

template<class ParticleClass, class CandidateClass>
const LabeledCandidate< CandidateClass > & dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledCandidateClass ( const int  aIndex  )  const [protected, virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 296 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass().

00297 {
00298    return ( labeledParticleClass( aIndex ) ) ;
00299 }

template<class ParticleClass, class CandidateClass>
LabeledCandidate< CandidateClass > & dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledCandidateClass ( const int  aIndex  )  [protected, virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 178 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass().

00179 {
00180    return ( labeledParticleClass( aIndex ) ) ;
00181 }

template<class ParticleClass, class CandidateClass>
const LabeledParticle< ParticleClass > & dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass ( const int  aIndex  )  const [protected, virtual]

Implements dchain::IndexedLabeledParticles< ParticleClass, CandidateClass >.

Definition at line 304 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00305 {
00306    return ( m_list[ aIndex ] ) ;
00307 }

template<class ParticleClass, class CandidateClass>
LabeledParticle< ParticleClass > & dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass ( const int  aIndex  )  [protected, virtual]

Implements dchain::IndexedLabeledParticles< ParticleClass, CandidateClass >.

Definition at line 186 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

Referenced by dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledCandidateClass(), and dchain::LabeledParticleList< ParticleClass, CandidateClass >::operator[]().

00187 {
00188    return ( m_list[ aIndex ] ) ;
00189 }

template<class ParticleClass, class CandidateClass>
const LabeledParticleList< ParticleClass , CandidateClass >& dchain::LabeledParticleList< ParticleClass, CandidateClass >::operator= ( const LabeledParticleList< ParticleClass, typename ParticleClass::CandidateClass > &   )  [private]

template<class ParticleClass, class CandidateClass>
const LabeledParticle< ParticleClass > & dchain::LabeledParticleList< ParticleClass, CandidateClass >::operator[] ( const int  aIndex  )  const

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 198 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass().

00199 {
00200    return ( labeledParticleClass( aIndex ) ) ;
00201 }

template<class ParticleClass, class CandidateClass>
LabeledParticle< ParticleClass > & dchain::LabeledParticleList< ParticleClass, CandidateClass >::operator[] ( const int  aIndex  ) 

Reimplemented from dchain::LabeledCandidateList< CandidateClass >.

Definition at line 137 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass().

00137                                                                                                                       {
00138    return ( labeledParticleClass( aIndex ) ) ;
00139 }

template<class ParticleClass, class CandidateClass>
void dchain::LabeledParticleList< ParticleClass, CandidateClass >::push_back ( const LabeledParticle< ParticleClass > &  aEntry  ) 

Definition at line 160 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

Referenced by dchain::FillDecayList< DecayClass, CandidateClass >::doIt().

00161 {
00162    m_list.push_back( aEntry ) ;
00163 }

template<class ParticleClass, class CandidateClass>
int dchain::LabeledParticleList< ParticleClass, CandidateClass >::size ( const typename conjugation::Label  aLabel  )  const [virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 235 of file LabeledParticleList.cc.

References first, and dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00236 {
00237 // for efficiency, check to see if the whole list is empty first
00238    if ( m_list.empty() ) {
00239       return ( 0 ) ;
00240    }
00241    int result( 0 ) ;
00242 /* Currently the "count" is done explicilty because of deficiencies
00243   in the SunOS5 compiler!
00244    count( _labeledparticlelist_vector_::const_iterator( m_list.begin() ) ,
00245           _labeledparticlelist_vector_::const_iterator( m_list.end() ) ,
00246           aLabel ,
00247           result ) ;
00248           */
00249    typename _labeledparticlelist_vector_::const_iterator first( m_list.begin() )  ;
00250    typename _labeledparticlelist_vector_::const_iterator last( m_list.end() ) ;
00251    while (first != last) {
00252       if ( *first == aLabel ) {
00253          first++ ;
00254          result++ ;
00255       }
00256    }
00257 
00258    return ( result ) ;
00259 }

template<class ParticleClass, class CandidateClass>
int dchain::LabeledParticleList< ParticleClass, CandidateClass >::size (  )  const [virtual]

Implements dchain::LabeledCandidateList< CandidateClass >.

Definition at line 227 of file LabeledParticleList.cc.

References dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list.

00228 {
00229    return ( m_list.size() ) ;
00230 }


Friends And Related Function Documentation

template<class CandidateClass>
friend class dchain::MuteWholeCandidateItr< CandidateClass > [friend, inherited]

Definition at line 45 of file IndexedLabeledCandidates.h.

template<class CandidateClass>
friend class dchain::PartialCandidateItr< CandidateClass > [friend, inherited]

Definition at line 47 of file IndexedLabeledCandidates.h.

template<class CandidateClass>
friend class dchain::WholeCandidateItr< CandidateClass > [friend, inherited]

Definition at line 46 of file IndexedLabeledCandidates.h.


Member Data Documentation

template<class ParticleClass, class CandidateClass>
_labeledparticlelist_vector_& dchain::LabeledParticleList< ParticleClass, CandidateClass >::m_list [private]

Definition at line 168 of file LabeledParticleList.h.

Referenced by dchain::LabeledParticleList< ParticleClass, CandidateClass >::empty(), dchain::LabeledParticleList< ParticleClass, CandidateClass >::end(), dchain::LabeledParticleList< ParticleClass, CandidateClass >::erase_elements(), dchain::LabeledParticleList< ParticleClass, CandidateClass >::labeledParticleClass(), dchain::LabeledParticleList< ParticleClass, CandidateClass >::push_back(), dchain::LabeledParticleList< ParticleClass, CandidateClass >::size(), and dchain::LabeledParticleList< ParticleClass, CandidateClass >::~LabeledParticleList().


Generated on Tue Nov 29 23:36:27 2016 for BOSS_7.0.2 by  doxygen 1.4.7