BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtAmplitudeSum< T > Class Template Reference

#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 > &amp)
void addOwnedTerm (EvtComplex c, EvtAmplitude< T > *amp)
int nTerms () const
void print () const
EvtComplex c (int i) const
EvtAmplitude< T > * getTerm (int i) const
Public Member Functions inherited from EvtAmplitude< T >
 EvtAmplitude ()
 EvtAmplitude (const EvtAmplitude &)
virtual ~EvtAmplitude ()
EvtComplex evaluate (const T &p) const

Protected Member Functions

virtual EvtComplex amplitude (const T &p) const

Detailed Description

template<class T>
class EvtAmplitudeSum< T >

Definition at line 18 of file EvtAmplitudeSum.hh.

Constructor & Destructor Documentation

◆ EvtAmplitudeSum() [1/2]

template<class T>
EvtAmplitudeSum< T >::EvtAmplitudeSum ( )
inline

Definition at line 21 of file EvtAmplitudeSum.hh.

21{}

Referenced by clone(), and EvtAmplitudeSum().

◆ EvtAmplitudeSum() [2/2]

template<class T>
EvtAmplitudeSum< T >::EvtAmplitudeSum ( const EvtAmplitudeSum< T > & other)
inline

Definition at line 22 of file EvtAmplitudeSum.hh.

23 int i;
24 for ( i = 0; i < other.nTerms(); i++ )
25 {
26
27 EvtComplex c = other.c( i );
28 _c.push_back( c );
30 assert( amp );
32 assert( amp1 );
33 _term.push_back( amp1 );
34 }
35 }
virtual EvtAmplitude< T > * clone() const
EvtAmplitude< T > * getTerm(int i) const
EvtComplex c(int i) const

◆ ~EvtAmplitudeSum()

template<class T>
virtual EvtAmplitudeSum< T >::~EvtAmplitudeSum ( )
inlinevirtual

Definition at line 37 of file EvtAmplitudeSum.hh.

37 {
38 int i;
39 for ( i = 0; i < _term.size(); i++ ) { delete _term[i]; }
40 }

Member Function Documentation

◆ addOwnedTerm()

template<class T>
void EvtAmplitudeSum< T >::addOwnedTerm ( EvtComplex c,
EvtAmplitude< T > * amp )
inline

Definition at line 49 of file EvtAmplitudeSum.hh.

49 {
50 assert( amp );
51 _c.push_back( c );
52 _term.push_back( amp );
53 }

◆ addTerm()

template<class T>
void EvtAmplitudeSum< T >::addTerm ( EvtComplex c,
const EvtAmplitude< T > & amp )
inline

Definition at line 44 of file EvtAmplitudeSum.hh.

44 {
45 _c.push_back( c );
46 _term.push_back( amp.clone() );
47 }

◆ amplitude()

template<class T>
virtual EvtComplex EvtAmplitudeSum< T >::amplitude ( const T & p) const
inlineprotectedvirtual

Implements EvtAmplitude< T >.

Definition at line 73 of file EvtAmplitudeSum.hh.

73 {
74 if ( _term.size() == 0 ) printf( "Warning: amplitude sum has zero terms\n" );
75
76 EvtComplex value = 0.;
77 int i;
78 for ( i = 0; i < _term.size(); i++ ) { value += _c[i] * _term[i]->evaluate( p ); }
79 return value;
80 }
EvtComplex evaluate(const T &p) const

◆ c()

template<class T>
EvtComplex EvtAmplitudeSum< T >::c ( int i) const
inline

Definition at line 69 of file EvtAmplitudeSum.hh.

69{ return _c[i]; }

Referenced by addOwnedTerm(), addTerm(), and EvtAmplitudeSum().

◆ clone()

template<class T>
virtual EvtAmplitude< T > * EvtAmplitudeSum< T >::clone ( ) const
inlinevirtual

Implements EvtAmplitude< T >.

Definition at line 42 of file EvtAmplitudeSum.hh.

42{ return new EvtAmplitudeSum<T>( *this ); }

◆ getTerm()

template<class T>
EvtAmplitude< T > * EvtAmplitudeSum< T >::getTerm ( int i) const
inline

Definition at line 70 of file EvtAmplitudeSum.hh.

70{ return _term[i]; }

◆ nTerms()

template<class T>
int EvtAmplitudeSum< T >::nTerms ( ) const
inline

Definition at line 55 of file EvtAmplitudeSum.hh.

55{ return _term.size(); } // number of terms

Referenced by print().

◆ print()

template<class T>
void EvtAmplitudeSum< T >::print ( ) const
inline

Definition at line 57 of file EvtAmplitudeSum.hh.

57 {
58
59 int N = nTerms();
60 printf( "Amplitude has %d terms\n", N );
61 int i;
62 for ( i = 0; i < N; i++ )
63 {
64 printf( "c%d = (%f,%f)\n", i, real( _c[i] ), imag( _c[i] ) );
65 assert( _term[i] );
66 }
67 }
double imag(const EvtComplex &c)

The documentation for this class was generated from the following file: