1#ifndef DCHAIN_DCDECAYLIST_H
2#define DCHAIN_DCDECAYLIST_H
118template <
class DecayClass ,
class Cand
idateClass >
121template <
class DecayClass ,
class Cand
idateClass >
125template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
129template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
134template <
class DecayClass ,
class Cand
idateClass >
149 DCDecayList(
bool ( * pFunction )( DecayClass& ) = 0 ) ;
152 bool ( * pFunction )( DecayClass& ) ) ;
158 m_function(0), m_functionalObject(0) {}
162 m_function(0), m_functionalObject(0) {}
166 template<
class TDecay>
174 template<
class TDecay>
189 template<
class TList>
192 if( this->
size() != 0 ) {
195 bool can_only_add_lists_with_same_conjugation =
197 assert(can_only_add_lists_with_same_conjugation);
209 }
else if(0!= m_functionalObject) {
229 template<
class TDecayList>
230 void fill(
const TDecayList& aList ) {
233 this->fill(aList, m_function);
234 }
else if(0!= m_functionalObject) {
235 this->fill(aList, *m_functionalObject);
238 this->fill(aList,selectAll );
247 bool ( * m_function )( DecayClass& ) ;
259template <
class DecayClass ,
class Cand
idateClass >
265 bool can_only_add_lists_with_same_conjugation =
267 assert(can_only_add_lists_with_same_conjugation);
270 if( &iList1 != &iList2 ) {
271 returnValue.fill( iList2 );
276template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
282 bool can_only_add_lists_with_same_conjugation =
284 assert(can_only_add_lists_with_same_conjugation);
292 NeutralClass* localCopy =
new NeutralClass( (*entry).particle() ) ;
299template <
class DecayClass ,
class Cand
idateClass,
class NeutralClass >
306 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()