1#ifndef DCHAIN_DCDECAYLIST_H
2#define DCHAIN_DCDECAYLIST_H
121template <
class DecayClass ,
class Cand
idateClass >
124template <
class DecayClass ,
class Cand
idateClass >
128template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
132template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
137template <
class DecayClass ,
class Cand
idateClass >
152 DCDecayList(
bool ( * pFunction )( DecayClass& ) = 0 ) ;
155 bool ( * pFunction )( DecayClass& ) ) ;
161 m_function(0), m_functionalObject(0) {}
165 m_function(0), m_functionalObject(0) {}
169 template<
class TDecay>
177 template<
class TDecay>
192 template<
class TList>
195 if( this->
size() != 0 ) {
198 bool can_only_add_lists_with_same_conjugation =
200 assert(can_only_add_lists_with_same_conjugation);
212 }
else if(0!= m_functionalObject) {
232 template<
class TDecayList>
233 void fill(
const TDecayList& aList ) {
236 this->fill(aList, m_function);
237 }
else if(0!= m_functionalObject) {
238 this->fill(aList, *m_functionalObject);
241 this->fill(aList,selectAll );
250 bool ( * m_function )( DecayClass& ) ;
262template <
class DecayClass ,
class Cand
idateClass >
268 bool can_only_add_lists_with_same_conjugation =
270 assert(can_only_add_lists_with_same_conjugation);
273 if( &iList1 != &iList2 ) {
274 returnValue.fill( iList2 );
279template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
285 bool can_only_add_lists_with_same_conjugation =
287 assert(can_only_add_lists_with_same_conjugation);
295 NeutralClass* localCopy =
new NeutralClass( (*entry).particle() ) ;
302template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
309 returnValue = iList2 + iList1;
DCDecayList< DecayClass, CandidateClass > operator+(const DCDecayList< DecayClass, CandidateClass > &iList1, const DCDecayList< DecayClass, CandidateClass > &iList2)
const DCDecayList< DecayClass, CandidateClass > & operator=(const DCDecayList< DecayClass, CandidateClass > &aOtherList)
DCDecayList(const dchain::DecayList< DecayClass, CandidateClass > &iList)
DCDecayList(const DCDecayList< DecayClass, CandidateClass > &iList)
const DCDecayList< DecayClass, CandidateClass > & operator=(const dchain::DecayList< TDecay, CandidateClass > &aOtherList)
const DCDecayList< DecayClass, CandidateClass > & operator=(const DCDecayList< TDecay, CandidateClass > &aOtherList)
void attempt_insert(DecayClass *pPossible, const dchain::conjugation::Label aLabel)
DCDecayList(bool(*pFunction)(DecayClass &)=0)
void operator+=(const TList &aOtherList)
virtual bool isSelfConjugate() const
iterator particle_begin()