#include <EvtAmplitudeSum.hh>
Inheritance diagram for EvtAmplitudeSum< T >:
Public Member Functions | |
EvtAmplitudeSum () | |
EvtAmplitudeSum (const EvtAmplitudeSum< T > &other) | |
virtual | ~EvtAmplitudeSum () |
virtual EvtAmplitude< T > * | clone () const |
void | addTerm (EvtComplex c, const EvtAmplitude< T > &) |
void | addOwnedTerm (EvtComplex c, EvtAmplitude< T > *amp) |
int | nTerms () const |
void | print () const |
EvtComplex | c (int i) const |
EvtAmplitude< T > * | getTerm (int i) const |
EvtComplex | evaluate (const T &p) const |
Protected Member Functions | |
virtual EvtComplex | amplitude (const T &p) const |
Private Attributes | |
std::vector< EvtComplex > | _c |
std::vector< EvtAmplitude< T > * > | _term |
Definition at line 19 of file EvtAmplitudeSum.hh.
EvtAmplitudeSum< T >::EvtAmplitudeSum | ( | ) | [inline] |
EvtAmplitudeSum< T >::EvtAmplitudeSum | ( | const EvtAmplitudeSum< T > & | other | ) | [inline] |
Definition at line 24 of file EvtAmplitudeSum.hh.
00025 : EvtAmplitude<T>(other) 00026 { 00027 int i; 00028 for(i=0;i<other.nTerms();i++) { 00029 00030 EvtComplex c = other.c(i); 00031 _c.push_back(c); 00032 EvtAmplitude<T>* amp = other.getTerm(i); 00033 assert(amp); 00034 EvtAmplitude<T>* amp1 = amp->clone(); 00035 assert(amp1); 00036 _term.push_back(amp1); 00037 } 00038 }
virtual EvtAmplitudeSum< T >::~EvtAmplitudeSum | ( | ) | [inline, virtual] |
Definition at line 40 of file EvtAmplitudeSum.hh.
00041 { 00042 int i; 00043 for(i=0;i<_term.size();i++) { 00044 00045 delete _term[i]; 00046 } 00047 }
void EvtAmplitudeSum< T >::addOwnedTerm | ( | EvtComplex | c, | |
EvtAmplitude< T > * | amp | |||
) | [inline] |
void EvtAmplitudeSum< T >::addTerm | ( | EvtComplex | c, | |
const EvtAmplitude< T > & | amp | |||
) | [inline] |
virtual EvtComplex EvtAmplitudeSum< T >::amplitude | ( | const T & | p | ) | const [inline, protected, virtual] |
Implements EvtAmplitude< T >.
Definition at line 87 of file EvtAmplitudeSum.hh.
00088 { 00089 if(_term.size() == 0) 00090 printf("Warning: amplitude sum has zero terms\n"); 00091 00092 EvtComplex value = 0.; 00093 int i; 00094 for(i=0;i<_term.size();i++) { 00095 00096 value+=_c[i]*_term[i]->evaluate(p); 00097 } 00098 return value; 00099 }
EvtComplex EvtAmplitudeSum< T >::c | ( | int | i | ) | const [inline] |
Definition at line 82 of file EvtAmplitudeSum.hh.
Referenced by EvtAmplitudeSum< EvtDalitzPoint >::addOwnedTerm(), EvtAmplitudeSum< EvtDalitzPoint >::addTerm(), and EvtAmplitudeSum< EvtDalitzPoint >::EvtAmplitudeSum().
virtual EvtAmplitude<T>* EvtAmplitudeSum< T >::clone | ( | ) | const [inline, virtual] |
Implements EvtAmplitude< T >.
Definition at line 49 of file EvtAmplitudeSum.hh.
00050 { 00051 return new EvtAmplitudeSum<T>(*this); 00052 }
EvtComplex EvtAmplitude< T >::evaluate | ( | const T & | p | ) | const [inline, inherited] |
Definition at line 26 of file EvtAmplitude.hh.
Referenced by EvtPto3PAmp::amplitude(), EvtAmplitudeSum< EvtDalitzPoint >::amplitude(), and EvtKstarstargamma::decay().
00027 { 00028 EvtComplex ret(0.,0.); 00029 if(p.isValid()) ret = amplitude(p); 00030 return ret; 00031 }
EvtAmplitude<T>* EvtAmplitudeSum< T >::getTerm | ( | int | i | ) | const [inline] |
int EvtAmplitudeSum< T >::nTerms | ( | ) | const [inline] |
Definition at line 68 of file EvtAmplitudeSum.hh.
Referenced by EvtAmplitudeSum< EvtDalitzPoint >::print().
00068 { return _term.size(); } // number of terms
void EvtAmplitudeSum< T >::print | ( | void | ) | const [inline] |
std::vector<EvtComplex> EvtAmplitudeSum< T >::_c [private] |
Definition at line 103 of file EvtAmplitudeSum.hh.
Referenced by EvtAmplitudeSum< EvtDalitzPoint >::addOwnedTerm(), EvtAmplitudeSum< EvtDalitzPoint >::addTerm(), EvtAmplitudeSum< EvtDalitzPoint >::amplitude(), EvtAmplitudeSum< EvtDalitzPoint >::c(), EvtAmplitudeSum< EvtDalitzPoint >::EvtAmplitudeSum(), and EvtAmplitudeSum< EvtDalitzPoint >::print().
std::vector<EvtAmplitude<T>*> EvtAmplitudeSum< T >::_term [private] |
Definition at line 104 of file EvtAmplitudeSum.hh.
Referenced by EvtAmplitudeSum< EvtDalitzPoint >::addOwnedTerm(), EvtAmplitudeSum< EvtDalitzPoint >::addTerm(), EvtAmplitudeSum< EvtDalitzPoint >::amplitude(), EvtAmplitudeSum< EvtDalitzPoint >::EvtAmplitudeSum(), EvtAmplitudeSum< EvtDalitzPoint >::getTerm(), EvtAmplitudeSum< EvtDalitzPoint >::nTerms(), EvtAmplitudeSum< EvtDalitzPoint >::print(), and EvtAmplitudeSum< EvtDalitzPoint >::~EvtAmplitudeSum().