/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/DecayChain/DecayChain-00-00-03-slc6tag/DecayChain/List/DCDecayList.h File Reference

#include <assert.h>
#include <iostream>
#include "DecayChain/List/DecayList.h"
#include "DecayChain/List/DCFillableNeutralList.h"
#include "DecayChain/Function/DCSelectionFunction.h"
#include "DecayChain/List/Template/DCDecayList.cc"

Go to the source code of this file.

Classes

class  DCDecayList< DecayClass, CandidateClass >

Functions

template<class DecayClass, class CandidateClass>
DCDecayList< DecayClass, CandidateClass > operator+ (const DCDecayList< DecayClass, CandidateClass > &iList1, const DCDecayList< DecayClass, CandidateClass > &iList2)
template<class DecayClass, class CandidateClass, class NeutralClass>
DCDecayList< DecayClass, CandidateClass > operator+ (const DCDecayList< DecayClass, CandidateClass > &iList1, const DCFillableNeutralList< NeutralClass > &iList2)
template<class DecayClass, class CandidateClass, class NeutralClass>
DCDecayList< DecayClass, CandidateClass > operator+ (const DCFillableNeutralList< NeutralClass > &iList1, const DCDecayList< DecayClass, CandidateClass > &iList2)


Function Documentation

template<class DecayClass, class CandidateClass, class NeutralClass>
DCDecayList< DecayClass, CandidateClass > operator+ ( const DCFillableNeutralList< NeutralClass > &  iList1,
const DCDecayList< DecayClass, CandidateClass > &  iList2 
) [inline]

Definition at line 301 of file DCDecayList.h.

00304 {
00305      DCDecayList< DecayClass, CandidateClass> returnValue;
00306      returnValue = iList2 + iList1;
00307      return returnValue;
00308 }

template<class DecayClass, class CandidateClass, class NeutralClass>
DCDecayList< DecayClass, CandidateClass > operator+ ( const DCDecayList< DecayClass, CandidateClass > &  iList1,
const DCFillableNeutralList< NeutralClass > &  iList2 
) [inline]

Definition at line 278 of file DCDecayList.h.

References DCDecayList< DecayClass, CandidateClass >::attempt_insert(), dchain::ConjugateList< Neutral::CandidateClass >::isSelfConjugate(), dchain::ConjugateList< CandidateClass >::isSelfConjugate(), dchain::NeutralVisibleList< Neutral, Neutral::CandidateClass >::particle_begin(), and dchain::NeutralVisibleList< Neutral, Neutral::CandidateClass >::particle_end().

00281 {
00282    bool can_only_add_lists_with_same_conjugation =
00283       iList1.isSelfConjugate()== iList2.isSelfConjugate();
00284    assert(can_only_add_lists_with_same_conjugation);
00285 
00286    
00287    DCDecayList< DecayClass, CandidateClass> returnValue( iList1 );
00288    typename dchain::LabeledParticleList< NeutralClass , CandidateClass >::const_iterator finished( iList2.particle_end() ) ;
00289    for( typename dchain::LabeledParticleList< NeutralClass , CandidateClass >::const_iterator entry(iList2.particle_begin()) ;
00290         entry != finished ;
00291         ++entry ){
00292      NeutralClass* localCopy = new NeutralClass( (*entry).particle() ) ;
00293      returnValue.attempt_insert( localCopy, (*entry).label() ) ;
00294    }
00295    return returnValue;
00296 }

template<class DecayClass, class CandidateClass>
DCDecayList< DecayClass, CandidateClass > operator+ ( const DCDecayList< DecayClass, CandidateClass > &  iList1,
const DCDecayList< DecayClass, CandidateClass > &  iList2 
) [inline]

Definition at line 261 of file DCDecayList.h.

References DCDecayList< DecayClass, CandidateClass >::fill(), and dchain::ConjugateList< CandidateClass >::isSelfConjugate().

00264 {
00265    bool can_only_add_lists_with_same_conjugation =
00266       iList1.isSelfConjugate()== iList2.isSelfConjugate();
00267    assert(can_only_add_lists_with_same_conjugation);
00268 
00269    DCDecayList< DecayClass, CandidateClass> returnValue( iList1 );
00270    if( &iList1 != &iList2 ) {
00271       returnValue.fill( iList2 );
00272    }
00273    return returnValue;
00274 }


Generated on Tue Nov 29 23:15:02 2016 for BOSS_7.0.2 by  doxygen 1.4.7