Changeset View
Changeset View
Standalone View
Standalone View
EvtGenBase/EvtAmpPdf.hh
Show All 24 Lines | |||||
#include "EvtGenBase/EvtMacros.hh" | #include "EvtGenBase/EvtMacros.hh" | ||||
#include "EvtGenBase/EvtPdf.hh" | #include "EvtGenBase/EvtPdf.hh" | ||||
template <class T> | template <class T> | ||||
class EvtAmpPdf : public EvtPdf<T> { | class EvtAmpPdf : public EvtPdf<T> { | ||||
public: | public: | ||||
EvtAmpPdf() {} | EvtAmpPdf() {} | ||||
EvtAmpPdf( const EvtAmplitude<T>& amp ) : EvtPdf<T>(), _amp( amp.clone() ) | EvtAmpPdf( const EvtAmplitude<T>& amp ) : EvtPdf<T>(), m_amp( amp.clone() ) | ||||
{ | { | ||||
} | } | ||||
EvtAmpPdf( const EvtAmpPdf<T>& other ) : | EvtAmpPdf( const EvtAmpPdf<T>& other ) : | ||||
EvtPdf<T>( other ), COPY_PTR( _amp ) | EvtPdf<T>( other ), COPY_PTR( m_amp ) | ||||
{ | { | ||||
} | } | ||||
virtual ~EvtAmpPdf() { delete _amp; } | virtual ~EvtAmpPdf() { delete m_amp; } | ||||
EvtAmpPdf<T>* clone() const override { return new EvtAmpPdf( *this ); } | EvtAmpPdf<T>* clone() const override { return new EvtAmpPdf( *this ); } | ||||
double pdf( const T& p ) const override | double pdf( const T& p ) const override | ||||
{ | { | ||||
EvtComplex amp = _amp->evaluate( p ); | EvtComplex amp = m_amp->evaluate( p ); | ||||
return real( amp ) * real( amp ) + imag( amp ) * imag( amp ); | return real( amp ) * real( amp ) + imag( amp ) * imag( amp ); | ||||
} | } | ||||
private: | private: | ||||
EvtAmplitude<T>* _amp; | EvtAmplitude<T>* m_amp; | ||||
}; | }; | ||||
#endif | #endif |