21#ifndef EVT_AMPLITUDE_SUM_HH
22#define EVT_AMPLITUDE_SUM_HH
38 for ( i = 0; i < other.nTerms(); i++ ) {
51 for (
size_t i = 0; i <
m_term.size(); i++ ) {
71 m_term.push_back( amp.release() );
79 printf(
"Amplitude has %d terms\n", N );
81 for ( i = 0; i < N; i++ ) {
94 printf(
"Warning: amplitude sum has zero terms\n" );
98 for (
size_t i = 0; i <
m_term.size(); i++ ) {
99 value +=
m_c[i] *
m_term[i]->evaluate( p );
105 std::vector<EvtComplex>
m_c;
double imag(const EvtComplex &c)
double real(const EvtComplex &c)
std::vector< EvtAmplitude< T > * > m_term
EvtAmplitude< T > * getTerm(int i) const
void addOwnedTerm(EvtComplex c, std::unique_ptr< EvtAmplitude< T > > amp)
virtual ~EvtAmplitudeSum()
void addTerm(EvtComplex c, const EvtAmplitude< T > &)
EvtComplex amplitude(const T &p) const override
EvtAmplitudeSum(const EvtAmplitudeSum< T > &other)
std::vector< EvtComplex > m_c
EvtAmplitudeSum< T > * clone() const override
EvtComplex c(int i) const
virtual EvtAmplitude< T > * clone() const =0