BOSS 7.0.9
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< DCCandidateTraits< CandidateClass >::DecayClass > iterator
 
typedef WholeItr< DCCandidateTraits< CandidateClass >::DecayClass > const_iterator
 
typedef PartialItr< DCCandidateTraits< CandidateClass >::DecayClass > const_partial_iterator
 
typedef DCCandidateTraits< CandidateClass >::DecayClass value_type
 
typedef DecayList< DCCandidateTraits< CandidateClass >::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)
 
- Public Member Functions inherited from dchain::DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >
 DecayList ()
 
 DecayList (const self_type &aOtherList)
 
 DecayList (LabeledParticleList< DCCandidateTraits< CandidateClass >::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< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass > &aOtherList)
 
void operator+= (const TList &aOtherList)
 
FillListWithSelection< self_type, TSelector > operator[] (const TSelector &iSel)
 
virtual iterator particle_begin ()
 
virtual const_iterator particle_begin () const
 
virtual iterator particle_end ()
 
virtual const_iterator particle_end () const
 
const DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass > bar () const
 
const DecayList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass > & operator() () const
 
virtual const_partial_iterator partial_particle_begin () const
 
virtual const_partial_iterator partial_particle_end () 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 (DCCandidateTraits< CandidateClass >::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< DCCandidateTraits< CandidateClass >::DecayClass >())
 
- Public Member Functions inherited from dchain::ConjugateList< CandidateClass >
 ConjugateList (const conjugation::Label aLabel)
 
virtual ~ConjugateList ()
 
virtual bool isSelfConjugate () const
 
bool isConjugateOf (const ConjugateList< CandidateClass > &aList) const
 
int partial_size () const
 
virtual const_partial_iterator partial_begin () const
 
virtual const_partial_iterator partial_end () 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
 
virtual conjugation::Label label () const
 
- Public Member Functions inherited from dchain::CandidateList< CandidateClass >
 CandidateList ()
 
virtual ~CandidateList ()
 
virtual iterator begin ()
 
virtual iterator end ()
 
virtual bool empty () const
 
virtual int size () const
 
virtual const_iterator begin () const
 
virtual const_iterator end () 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 LabeledCandidateList< CandidateClass > & labeledCandidateList ()
 
virtual const LabeledCandidateList< CandidateClass > & labeledCandidateList () const
 
virtual LabeledParticleList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass > & labeledParticleList ()
 
virtual const LabeledParticleList< DCCandidateTraits< CandidateClass >::DecayClass, CandidateClass > & labeledParticleList () const
 
- Protected Member Functions inherited from dchain::ConjugateList< CandidateClass >
void setLabel (const conjugation::Label aLabel)
 
virtual dchain::LabeledCandidateList< CandidateClass > & labeledCandidateList ()=0
 
virtual const dchain::LabeledCandidateList< CandidateClass > & labeledCandidateList () const =0
 

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 96 of file CombinatoricList.h.

Member Typedef Documentation

◆ const_iterator

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

Definition at line 125 of file CombinatoricList.h.

◆ const_partial_iterator

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

Definition at line 126 of file CombinatoricList.h.

◆ DecayClass

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

Definition at line 99 of file CombinatoricList.h.

◆ iterator

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

Definition at line 124 of file CombinatoricList.h.

Constructor & Destructor Documentation

◆ ~CombinatoricList()

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

Definition at line 355 of file CombinatoricList.cc.

356{
357 delete &m_listOfLists ;
358}

◆ CombinatoricList() [1/6]

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

Definition at line 290 of file CombinatoricList.cc.

290 :
291 m_listOfLists( *(new _combinatoriclist_vector_( 1 ,
292 &aList ) ) ) ,
293 m_listFilled( false ) ,
294 m_conjugationKnown( false )
295{
296}
#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 299 of file CombinatoricList.cc.

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

◆ CombinatoricList() [3/6]

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

Definition at line 320 of file CombinatoricList.cc.

321 :
322 m_listOfLists( *(new _combinatoriclist_vector_( lhs.m_listOfLists ) ) ) ,
323 m_listFilled( false ) ,
324 m_conjugationKnown( false )
325{
326 m_listOfLists.push_back( &rhs ) ;
327}

◆ CombinatoricList() [4/6]

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

Definition at line 330 of file CombinatoricList.cc.

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

◆ CombinatoricList() [5/6]

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

Definition at line 343 of file CombinatoricList.cc.

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

◆ CombinatoricList() [6/6]

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

Definition at line 281 of file CombinatoricList.cc.

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

Member Function Documentation

◆ bar()

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

Definition at line 413 of file CombinatoricList.cc.

414{
415 fill() ;
416// Need to cast away 'const' to get the right type of LabelList returned
418 (*(CombinatoricList< CandidateClass >*)this).labeledParticleList() ,
419 otherLabel( label() ) ) ) ;
420}
virtual conjugation::Label label() const
virtual LabeledParticleList< DCCandidateTraits< CandidateClass >::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 372 of file CombinatoricList.cc.

373{
374 fill() ;
376}

◆ begin() [2/2]

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

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 442 of file CombinatoricList.cc.

443{
444 fill() ;
446}

◆ conjugation_iterate()

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

Definition at line 166 of file CombinatoricList.h.

167 {
168 fill();
170 }
void conjugation_iterate(const TAnalyzer &analyzer) const
Definition: DecayList.h:154

◆ end() [1/2]

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

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 379 of file CombinatoricList.cc.

380{
381 fill() ;
383}

◆ end() [2/2]

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

Reimplemented from dchain::CandidateList< CandidateClass >.

Definition at line 449 of file CombinatoricList.cc.

450{
451 fill() ;
453}

◆ isSelfConjugate()

template<class CandidateClass >
bool dchain::CombinatoricList< CandidateClass >::isSelfConjugate
virtual

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 435 of file CombinatoricList.cc.

436{
437 determineConjugation() ;
439}

◆ iterate()

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

Definition at line 160 of file CombinatoricList.h.

160 {
161 fill();
163 }
void iterate(const TAnalyze &analyze) const
Definition: DecayList.h:144

◆ label()

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

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 505 of file CombinatoricList.cc.

506{
507 determineConjugation() ;
509}

◆ 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
protectedvirtual

◆ operator()()

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

Definition at line 424 of file CombinatoricList.cc.

425{
426 fill() ;
427// // Need to cast away 'const' to get the right type of LabelList returned
428// return ( dchain::DecayList< DecayClass , CandidateClass >( (*(CombinatoricList< CandidateClass >*)this).labeledDecayList() ,
429// label() ) ) ;
430 return ( *this ) ;
431}

◆ partial_begin()

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

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 456 of file CombinatoricList.cc.

457{
458 fill() ;
460}

◆ partial_end()

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

Reimplemented from dchain::ConjugateList< CandidateClass >.

Definition at line 463 of file CombinatoricList.cc.

464{
465 fill() ;
467}

◆ partial_iterate()

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

Definition at line 173 of file CombinatoricList.h.

174 {
175 fill();
177 }
void partial_iterate(TAnalyze &analyze) const
Definition: DecayList.h:176

◆ partial_particle_begin()

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

◆ partial_particle_end()

template<class CandidateClass >
dchain::DecayList< typenameDCCandidateTraits< CandidateClass >::DecayClass, CandidateClass >::const_partial_iterator dchain::CombinatoricList< CandidateClass >::partial_particle_end
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 386 of file CombinatoricList.cc.

387{
388 //std::cout << "@CombinatoricList::particle_begin() -- iterator" << std::endl;
389 fill() ;
391}

◆ particle_begin() [2/2]

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

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

Definition at line 471 of file CombinatoricList.cc.

472{
473 //std::cout << "@CombinatoricList::particle_begin() -- iterator" << std::endl;
474 fill() ;
476}

◆ 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 394 of file CombinatoricList.cc.

394 {
395 //std::cout << "@CombinatoricList::particle_end() -- iterator" << std::endl;
396 fill() ;
398}

◆ particle_end() [2/2]

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

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

Definition at line 480 of file CombinatoricList.cc.

481{
482 //std::cout << "@CombinatoricList::particle_end() -- const_iterator" << std::endl;
483 fill() ;
485}

Friends And Related Function Documentation

◆ dchain::DecayList< DecayClass, CandidateClass >

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

Definition at line 99 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 268 of file CombinatoricList.h.

270{
271 return CombinatoricList<CandidateClass>( lhs, rhs);
272}

◆ operator* [2/4]

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

Definition at line 250 of file CombinatoricList.h.

252{
253 return CombinatoricList<CandidateClass>( lhs, rhs);
254}

◆ operator* [3/4]

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

Definition at line 259 of file CombinatoricList.h.

261{
262 return CombinatoricList<CandidateClass>( lhs, rhs);
263}

◆ operator* [4/4]

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

Definition at line 241 of file CombinatoricList.h.

243{
244 return CombinatoricList<CandidateClass>( lhs, rhs);
245}

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