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 >
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);
240 dchain::SelectAll<DecayClass> selectAll;
241 this->fill(aList,selectAll );
250 bool ( * m_function )( DecayClass& ) ;
251 DCSelectionFunction< DecayClass >* m_functionalObject ;
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)
void fill(NTuple::Array< double > &nt_p4, const HepLorentzVector &p4)
DCDecayList(const DCDecayList< DecayClass, CandidateClass > &aOtherList, bool(*pFunction)(DecayClass &))
const DCDecayList< DecayClass, CandidateClass > & operator=(const DCDecayList< DecayClass, CandidateClass > &aOtherList)
DCDecayList(const dchain::DecayList< DecayClass, CandidateClass > &iList)
DCDecayList(DCSelectionFunction< DecayClass > &aFunctionalObject)
const DCDecayList< DecayClass, CandidateClass > & operator=(const dchain::CombinatoricList< CandidateClass > &aOtherList)
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(dchain::LabeledParticleList< DecayClass, CandidateClass > &aLabeledDecayList, dchain::conjugation::Label aLabel)
DCDecayList(bool(*pFunction)(DecayClass &)=0)
void operator+=(const TList &aOtherList)
virtual bool isSelfConjugate() const
WholeItr< ParticleClass > const_iterator
iterator particle_begin()