BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
dchain::CombinatoricList< CandidateClass > Class Template Reference

#include <CombinatoricList.h>

+ Inheritance diagram for dchain::CombinatoricList< CandidateClass >:

Public Types

typedef DCCandidateTraits< CandidateClass >::DecayClass DecayClass
 
typedef dchain::DecayList< DecayClass, CandidateClass >::iterator iterator
 
typedef dchain::DecayList< DecayClass, CandidateClass >::const_iterator const_iterator
 
typedef dchain::DecayList< DecayClass, CandidateClass >::const_partial_iterator const_partial_iterator
 
- Public Types inherited from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >
typedef MuteWholeItr< DecayClass > iterator
 
typedef WholeItr< DecayClass > const_iterator
 
typedef PartialItr< DecayClass > const_partial_iterator
 
typedef DecayClass value_type
 
typedef DecayList< DecayClass, CandidateClass > self_type
 
- Public Types inherited from dchain::ConjugateList< CandidateClass >
typedef dchain::MuteWholeCandidateItr< CandidateClass > iterator
 
typedef dchain::WholeCandidateItr< CandidateClass > const_iterator
 
typedef dchain::PartialCandidateItr< CandidateClass > const_partial_iterator
 
- Public Types inherited from dchain::CandidateList< CandidateClass >
typedef dchain::MuteWholeCandidateItr< CandidateClass > iterator
 
typedef dchain::WholeCandidateItr< CandidateClass > const_iterator
 
typedef dchain::PartialCandidateItr< CandidateClass > const_partial_iterator
 
typedef dchain::LabeledCandidate< CandidateClass > value_type
 

Public Member Functions

virtual ~CombinatoricList ()
 
 CombinatoricList (const ConjugateList< CandidateClass > &aList)
 
virtual conjugation::Label label () const
 
virtual dchain::CandidateList< CandidateClass >::iterator begin ()
 
virtual dchain::CandidateList< CandidateClass >::iterator end ()
 
virtual dchain::DecayList< DecayClass, CandidateClass >::iterator particle_begin ()
 
virtual dchain::DecayList< DecayClass, CandidateClass >::iterator particle_end ()
 
virtual const dchain::DecayList< DecayClass, CandidateClass > bar () const
 
virtual const dchain::DecayList< DecayClass, CandidateClass > & operator() () const
 
virtual bool isSelfConjugate () const
 
virtual dchain::CandidateList< CandidateClass >::const_iterator begin () const
 
virtual dchain::CandidateList< CandidateClass >::const_iterator end () const
 
virtual dchain::CandidateList< CandidateClass >::const_partial_iterator partial_begin () const
 
virtual dchain::CandidateList< CandidateClass >::const_partial_iterator partial_end () const
 
virtual const_iterator particle_begin () const
 
virtual const_iterator particle_end () const
 
virtual const_partial_iterator partial_particle_begin () const
 
virtual const_partial_iterator partial_particle_end () const
 
template<class TAnalyze >
void iterate (const TAnalyze &analyze) const
 
template<class TAnalyzer >
void conjugation_iterate (const TAnalyzer &analyze) const
 
template<class TAnalyze >
void partial_iterate (TAnalyze &analyze) const
 
 CombinatoricList (const CombinatoricList< CandidateClass > &aOtherList)
 
CombinatoricList< CandidateClass > & operator= (const CombinatoricList< CandidateClass > &aOtherList)
 
- Public Member Functions inherited from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >
 DecayList ()
 
 DecayList (const self_type &aOtherList)
 
 DecayList (LabeledParticleList< DecayClass, CandidateClass > &aLabeledDecayList, conjugation::Label aLabel)
 
virtual ~DecayList ()
 
const self_typeoperator= (const DecayList< TDecay, CandidateClass > &aOtherList)
 
const self_typeoperator= (const CombinatoricList< CandidateClass > &aOtherList)
 
const self_typeoperator= (const DecayList< DecayClass, CandidateClass > &aOtherList)
 
void operator+= (const TList &aOtherList)
 
FillListWithSelection< self_type, TSelector > operator[] (const TSelector &iSel)
 
const DecayList< DecayClass, CandidateClass > bar () const
 
const DecayList< DecayClass, CandidateClass > & operator() () const
 
void iterate (const TAnalyze &analyze) const
 
void iterate (TAnalyze &analyze) const
 
void conjugation_iterate (const TAnalyzer &analyzer) const
 
void partial_iterate (TAnalyze &analyze) const
 
void eraseContents ()
 
void erase ()
 
bool attempt_insert (DecayClass *pPossible, const conjugation::Label aLabel, const TSelect &aSelect)
 
void insert (THolder &pPossible, const conjugation::Label aLabel)
 
void fill (const TDecayList &aList, const TSelector &aSel=SelectAll< DecayClass >())
 
- Public Member Functions inherited from dchain::ConjugateList< CandidateClass >
 ConjugateList (const conjugation::Label aLabel)
 
virtual ~ConjugateList ()
 
bool isConjugateOf (const ConjugateList< CandidateClass > &aList) const
 
int partial_size () const
 
template<class TAnalyzer >
void conjugation_iterate (const TAnalyzer &analyzer) const
 
template<class TAnalyzer >
void partial_iterate (const TAnalyzer &analyze) const
 
const_partial_iterator conjugate_partial_begin () const
 
const_partial_iterator conjugate_partial_end () const
 
void setLabel (const conjugation::Label aLabel)
 
- Public Member Functions inherited from dchain::CandidateList< CandidateClass >
 CandidateList ()
 
virtual ~CandidateList ()
 
virtual bool empty () const
 
virtual int size () const
 
template<class TAnalyzer >
void iterate (const TAnalyzer &analyze) const
 

Protected Member Functions

 CombinatoricList (const ConjugateList< CandidateClass > &lhs, const ConjugateList< CandidateClass > &rhs)
 
 CombinatoricList (const CombinatoricList< CandidateClass > &lhs, const ConjugateList< CandidateClass > &rhs)
 
 CombinatoricList (const ConjugateList< CandidateClass > &lhs, const CombinatoricList< CandidateClass > &rhs)
 
 CombinatoricList (const CombinatoricList< CandidateClass > &lhs, const CombinatoricList< CandidateClass > &rhs)
 
virtual dchain::LabeledCandidateList< CandidateClass > & labeledCandidateList ()
 
virtual const dchain::LabeledCandidateList< CandidateClass > & labeledCandidateList () const
 
- Protected Member Functions inherited from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >
virtual LabeledParticleList< DecayClass, CandidateClass > & labeledParticleList ()
 
virtual const LabeledParticleList< DecayClass, CandidateClass > & labeledParticleList () const
 
- Protected Member Functions inherited from dchain::CandidateList< CandidateClass >

Friends

class dchain::DecayList< DecayClass, CandidateClass >
 
CombinatoricList< CandidateClass > operator* (const ConjugateList< CandidateClass > &lhs, const ConjugateList< CandidateClass > &rhs)
 
CombinatoricList< CandidateClass > operator* (const CombinatoricList< CandidateClass > &lhs, const ConjugateList< CandidateClass > &rhs)
 
CombinatoricList< CandidateClass > operator* (const ConjugateList< CandidateClass > &lhs, const CombinatoricList< CandidateClass > &rhs)
 
CombinatoricList< CandidateClass > operator* (const CombinatoricList< CandidateClass > &lhs, const CombinatoricList< CandidateClass > &rhs)
 

Detailed Description

template<class CandidateClass>
class dchain::CombinatoricList< CandidateClass >

Definition at line 42 of file FillListWithSelection.h.

Member Typedef Documentation

◆ const_iterator

template<class CandidateClass >
dchain::DecayList<DecayClass,CandidateClass>::const_iterator dchain::CombinatoricList< CandidateClass >::const_iterator

Definition at line 128 of file CombinatoricList.h.

◆ const_partial_iterator

template<class CandidateClass >
dchain::DecayList<DecayClass,CandidateClass>::const_partial_iterator dchain::CombinatoricList< CandidateClass >::const_partial_iterator

Definition at line 129 of file CombinatoricList.h.

◆ DecayClass

template<class CandidateClass >
DCCandidateTraits<CandidateClass>::DecayClass dchain::CombinatoricList< CandidateClass >::DecayClass

Definition at line 102 of file CombinatoricList.h.

◆ iterator

template<class CandidateClass >
dchain::DecayList<DecayClass,CandidateClass>::iterator dchain::CombinatoricList< CandidateClass >::iterator

Definition at line 127 of file CombinatoricList.h.

Constructor & Destructor Documentation

◆ ~CombinatoricList()

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::~CombinatoricList ( )
virtual

Definition at line 358 of file CombinatoricList.cc.

359{
360 delete &m_listOfLists ;
361}

◆ CombinatoricList() [1/6]

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::CombinatoricList ( const ConjugateList< CandidateClass > & aList)

Definition at line 293 of file CombinatoricList.cc.

293 :
294 m_listOfLists( *(new _combinatoriclist_vector_( 1 ,
295 &aList ) ) ) ,
296 m_listFilled( false ) ,
297 m_conjugationKnown( false )
298{
299}
#define _combinatoriclist_vector_

◆ CombinatoricList() [2/6]

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::CombinatoricList ( const ConjugateList< CandidateClass > & lhs,
const ConjugateList< CandidateClass > & rhs )
protected

Definition at line 302 of file CombinatoricList.cc.

303 :
304 m_listOfLists( *(new _combinatoriclist_vector_( 1 ,
305 &lhs ) ) ) ,
306 m_listFilled( false ) ,
307 m_conjugationKnown( false )
308{
309 //std::cout << "@CombinatoricList::CombinatoricList() 11" << std::endl;
310 //typedef typename ConjugateList< CandidateClass >::const_partial_iterator test_it;
311 //std::cout << "lhs ...................... : " << std::endl;
312 //for ( test_it it = lhs.partial_begin(); it != lhs.partial_end(); it++ ) {
313 // std::cout << (*it)().footPrint() << std::endl;
314 //}
315 //std::cout << "rhs ...................... : " << std::endl;
316 //for ( test_it it = rhs.partial_begin(); it != rhs.partial_end(); it++ ) {
317 // std::cout << (*it)().footPrint() << std::endl;
318 //}
319 m_listOfLists.push_back( &rhs ) ;
320}

◆ CombinatoricList() [3/6]

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::CombinatoricList ( const CombinatoricList< CandidateClass > & lhs,
const ConjugateList< CandidateClass > & rhs )
protected

Definition at line 323 of file CombinatoricList.cc.

324 :
325 m_listOfLists( *(new _combinatoriclist_vector_( lhs.m_listOfLists ) ) ) ,
326 m_listFilled( false ) ,
327 m_conjugationKnown( false )
328{
329 m_listOfLists.push_back( &rhs ) ;
330}

◆ CombinatoricList() [4/6]

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::CombinatoricList ( const ConjugateList< CandidateClass > & lhs,
const CombinatoricList< CandidateClass > & rhs )
protected

Definition at line 333 of file CombinatoricList.cc.

334 :
335 m_listOfLists( *(new _combinatoriclist_vector_( 1 ,
336 &lhs ) ) ) ,
337 m_listFilled( false ) ,
338 m_conjugationKnown( false )
339{
340 m_listOfLists.insert( m_listOfLists.end() ,
341 (rhs.m_listOfLists).begin() ,
342 (rhs.m_listOfLists).end() ) ;
343}

◆ CombinatoricList() [5/6]

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::CombinatoricList ( const CombinatoricList< CandidateClass > & lhs,
const CombinatoricList< CandidateClass > & rhs )
protected

Definition at line 346 of file CombinatoricList.cc.

347 :
348 m_listOfLists( *(new _combinatoriclist_vector_( lhs.m_listOfLists ) ) ) ,
349 m_listFilled( false ) ,
350 m_conjugationKnown( false )
351{
352 m_listOfLists.insert( m_listOfLists.end() ,
353 (rhs.m_listOfLists).begin() ,
354 (rhs.m_listOfLists).end() ) ;
355}

◆ CombinatoricList() [6/6]

template<class CandidateClass >
dchain::CombinatoricList< CandidateClass >::CombinatoricList ( const CombinatoricList< CandidateClass > & aOtherList)

Definition at line 284 of file CombinatoricList.cc.

284 :
285 m_listOfLists( *(new _combinatoriclist_vector_() ) ),
286 m_listFilled( iRHS.m_listFilled ) ,
287 m_conjugationKnown( iRHS.m_conjugationKnown )
288{
289 m_listOfLists.swap(const_cast<CombinatoricList<CandidateClass>&>(iRHS).m_listOfLists);
290}

Member Function Documentation

◆ bar()

template<class CandidateClass >
const dchain::DecayList< typename CombinatoricList< CandidateClass >::DecayClass, CandidateClass > dchain::CombinatoricList< CandidateClass >::bar ( ) const
virtual

Definition at line 436 of file CombinatoricList.cc.

437{
438 fill() ;
439 // Need to cast away 'const' to get the right type of LabelList returned
441 (*(CombinatoricList< CandidateClass >*)this).labeledParticleList() ,
442 otherLabel( label() ) ) ) ;
443}
virtual conjugation::Label label() const
virtual LabeledParticleList< DecayClass, CandidateClass > & labeledParticleList()
Definition DecayList.cc:188
conjugation::Label otherLabel(const conjugation::Label &aLabel)
Definition conjugation.h:51

◆ begin() [1/2]

template<class CandidateClass >
dchain::CandidateList< CandidateClass >::iterator dchain::CombinatoricList< CandidateClass >::begin ( )
virtual

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 395 of file CombinatoricList.cc.

396{
397 fill() ;
399}

◆ begin() [2/2]

template<class CandidateClass >
dchain::CandidateList< CandidateClass >::const_iterator dchain::CombinatoricList< CandidateClass >::begin ( ) const
virtual

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 465 of file CombinatoricList.cc.

466{
467 fill() ;
469}

◆ conjugation_iterate()

template<class CandidateClass >
template<class TAnalyzer >
void dchain::CombinatoricList< CandidateClass >::conjugation_iterate ( const TAnalyzer & analyze) const
inline

Definition at line 169 of file CombinatoricList.h.

170 {
171 fill();
173 }
void conjugation_iterate(const TAnalyzer &analyzer) const
Definition DecayList.h:159

◆ end() [1/2]

template<class CandidateClass >
dchain::CandidateList< CandidateClass >::iterator dchain::CombinatoricList< CandidateClass >::end ( )
virtual

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 402 of file CombinatoricList.cc.

403{
404 fill() ;
406}

◆ end() [2/2]

template<class CandidateClass >
dchain::CandidateList< CandidateClass >::const_iterator dchain::CombinatoricList< CandidateClass >::end ( ) const
virtual

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 472 of file CombinatoricList.cc.

473{
474 fill() ;
476}

◆ isSelfConjugate()

template<class CandidateClass >
bool dchain::CombinatoricList< CandidateClass >::isSelfConjugate ( ) const
virtual

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 458 of file CombinatoricList.cc.

459{
460 determineConjugation() ;
462}

◆ iterate()

template<class CandidateClass >
template<class TAnalyze >
void dchain::CombinatoricList< CandidateClass >::iterate ( const TAnalyze & analyze) const
inline

Definition at line 163 of file CombinatoricList.h.

163 {
164 fill();
166 }
void iterate(const TAnalyze &analyze) const
Definition DecayList.h:149

◆ label()

template<class CandidateClass >
conjugation::Label dchain::CombinatoricList< CandidateClass >::label ( ) const
virtual

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 528 of file CombinatoricList.cc.

529{
530 determineConjugation() ;
532}

◆ labeledCandidateList() [1/2]

template<class CandidateClass >
dchain::LabeledCandidateList< CandidateClass > & dchain::CombinatoricList< CandidateClass >::labeledCandidateList ( )
protectedvirtual

◆ labeledCandidateList() [2/2]

template<class CandidateClass >
const dchain::LabeledCandidateList< CandidateClass > & dchain::CombinatoricList< CandidateClass >::labeledCandidateList ( ) const
protectedvirtual

◆ operator()()

template<class CandidateClass >
const dchain::DecayList< typename CombinatoricList< CandidateClass >::DecayClass, CandidateClass > & dchain::CombinatoricList< CandidateClass >::operator() ( ) const
virtual

Definition at line 447 of file CombinatoricList.cc.

448{
449 fill() ;
450 // // Need to cast away 'const' to get the right type of LabelList returned
451 // return ( dchain::DecayList< DecayClass , CandidateClass >( (*(CombinatoricList< CandidateClass >*)this).labeledDecayList() ,
452 // label() ) ) ;
453 return ( *this ) ;
454}

◆ operator=()

template<class CandidateClass >
CombinatoricList< CandidateClass > & dchain::CombinatoricList< CandidateClass >::operator= ( const CombinatoricList< CandidateClass > & aOtherList)

Definition at line 364 of file CombinatoricList.cc.

365{
366 if( this != &another)
367 {
368 // std::cout<<"operator="<<std::endl;
369 // // std::cout<<"lv#"<<(this)<<", A#"<<(&m_listOfLists)<<std::endl;
370 // // std::cout<<"rv#"<<(&another)<<", A#"<<&(another.m_listOfLists)<<std::endl;
371 m_listOfLists.erase(m_listOfLists.begin(), m_listOfLists.end());
372 m_listOfLists.insert(m_listOfLists.end(),
373 another.m_listOfLists.begin(),
374 another.m_listOfLists.end());
375 //m_listOfLists = another.m_listOfLists ;
376 m_listFilled = another.m_listFilled;
377 m_conjugationKnown = another.m_conjugationKnown;
378 }
379 return *this;
380}

◆ partial_begin()

template<class CandidateClass >
dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricList< CandidateClass >::partial_begin ( ) const
virtual

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 479 of file CombinatoricList.cc.

480{
481 fill() ;
483}

◆ partial_end()

template<class CandidateClass >
dchain::CandidateList< CandidateClass >::const_partial_iterator dchain::CombinatoricList< CandidateClass >::partial_end ( ) const
virtual

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 486 of file CombinatoricList.cc.

487{
488 fill() ;
490}

◆ partial_iterate()

template<class CandidateClass >
template<class TAnalyze >
void dchain::CombinatoricList< CandidateClass >::partial_iterate ( TAnalyze & analyze) const
inline

Definition at line 176 of file CombinatoricList.h.

177 {
178 fill();
180 }
void partial_iterate(TAnalyze &analyze) const
Definition DecayList.h:181

◆ partial_particle_begin()

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::const_partial_iterator dchain::CombinatoricList< CandidateClass >::partial_particle_begin ( ) const
virtual

◆ partial_particle_end()

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::const_partial_iterator dchain::CombinatoricList< CandidateClass >::partial_particle_end ( ) const
virtual

◆ particle_begin() [1/2]

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::iterator dchain::CombinatoricList< CandidateClass >::particle_begin ( )
virtual

Reimplemented from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >.

Definition at line 409 of file CombinatoricList.cc.

410{
411 //std::cout << "@CombinatoricList::particle_begin() -- iterator" << std::endl;
412 fill() ;
414}

◆ particle_begin() [2/2]

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::const_iterator dchain::CombinatoricList< CandidateClass >::particle_begin ( ) const
virtual

Reimplemented from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >.

Definition at line 494 of file CombinatoricList.cc.

495{
496 //std::cout << "@CombinatoricList::particle_begin() -- iterator" << std::endl;
497 fill() ;
499}

◆ particle_end() [1/2]

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::iterator dchain::CombinatoricList< CandidateClass >::particle_end ( )
virtual

Reimplemented from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >.

Definition at line 417 of file CombinatoricList.cc.

417 {
418 //std::cout << "@CombinatoricList::particle_end() -- iterator" << std::endl;
419 fill() ;
421}

◆ particle_end() [2/2]

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::const_iterator dchain::CombinatoricList< CandidateClass >::particle_end ( ) const
virtual

Reimplemented from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >.

Definition at line 503 of file CombinatoricList.cc.

504{
505 //std::cout << "@CombinatoricList::particle_end() -- const_iterator" << std::endl;
506 fill() ;
508}

Friends And Related Symbol Documentation

◆ dchain::DecayList< DecayClass, CandidateClass >

template<class CandidateClass >
friend class dchain::DecayList< DecayClass, CandidateClass >
friend

Definition at line 102 of file CombinatoricList.h.

◆ operator* [1/4]

template<class CandidateClass >
CombinatoricList< CandidateClass > operator* ( const CombinatoricList< CandidateClass > & lhs,
const CombinatoricList< CandidateClass > & rhs )
friend

Definition at line 271 of file CombinatoricList.h.

273{
274 return CombinatoricList<CandidateClass>( lhs, rhs);
275}

◆ operator* [2/4]

template<class CandidateClass >
CombinatoricList< CandidateClass > operator* ( const CombinatoricList< CandidateClass > & lhs,
const ConjugateList< CandidateClass > & rhs )
friend

Definition at line 253 of file CombinatoricList.h.

255{
256 return CombinatoricList<CandidateClass>( lhs, rhs);
257}

◆ operator* [3/4]

template<class CandidateClass >
CombinatoricList< CandidateClass > operator* ( const ConjugateList< CandidateClass > & lhs,
const CombinatoricList< CandidateClass > & rhs )
friend

Definition at line 262 of file CombinatoricList.h.

264{
265 return CombinatoricList<CandidateClass>( lhs, rhs);
266}

◆ operator* [4/4]

template<class CandidateClass >
CombinatoricList< CandidateClass > operator* ( const ConjugateList< CandidateClass > & lhs,
const ConjugateList< CandidateClass > & rhs )
friend

Definition at line 244 of file CombinatoricList.h.

246{
247 return CombinatoricList<CandidateClass>( lhs, rhs);
248}

The documentation for this class was generated from the following files: