Changeset View
Changeset View
Standalone View
Standalone View
EvtGenBase/EvtMassAmp.hh
Show All 20 Lines | |||||
#ifndef EVT_MASSAMP_HH | #ifndef EVT_MASSAMP_HH | ||||
#define EVT_MASSAMP_HH | #define EVT_MASSAMP_HH | ||||
#include "EvtGenBase/EvtAmplitude.hh" | #include "EvtGenBase/EvtAmplitude.hh" | ||||
#include "EvtGenBase/EvtPoint1D.hh" | #include "EvtGenBase/EvtPoint1D.hh" | ||||
#include "EvtGenBase/EvtPropBreitWignerRel.hh" | #include "EvtGenBase/EvtPropBreitWignerRel.hh" | ||||
#include "EvtGenBase/EvtTwoBodyVertex.hh" | #include "EvtGenBase/EvtTwoBodyVertex.hh" | ||||
#include <memory> | |||||
// Relativistic lineshape for a two-body decay of a resonance to two | // Relativistic lineshape for a two-body decay of a resonance to two | ||||
// pseudoscalars. The mass dependence of the width and the vertex factors | // pseudoscalars. The mass dependence of the width and the vertex factors | ||||
// are included in the calculation. | // are included in the calculation. | ||||
class EvtMassAmp : public EvtAmplitude<EvtPoint1D> { | class EvtMassAmp : public EvtAmplitude<EvtPoint1D> { | ||||
public: | public: | ||||
EvtMassAmp( const EvtPropBreitWignerRel& prop, const EvtTwoBodyVertex& vd ); | EvtMassAmp( const EvtPropBreitWignerRel& prop, const EvtTwoBodyVertex& vd ); | ||||
EvtMassAmp( const EvtMassAmp& other ); | EvtMassAmp( const EvtMassAmp& other ); | ||||
EvtMassAmp& operator=( const EvtMassAmp& other ); | EvtMassAmp& operator=( const EvtMassAmp& other ); | ||||
EvtComplex amplitude( const EvtPoint1D& p ) const override; | EvtComplex amplitude( const EvtPoint1D& p ) const override; | ||||
EvtAmplitude<EvtPoint1D>* clone() const override | EvtAmplitude<EvtPoint1D>* clone() const override | ||||
{ | { | ||||
return new EvtMassAmp( *this ); | return new EvtMassAmp( *this ); | ||||
} | } | ||||
void setBirthVtx( const EvtTwoBodyVertex& vb ) | void setBirthVtx( const EvtTwoBodyVertex& vb ) | ||||
{ | { | ||||
_vb = std::make_unique<EvtTwoBodyVertex>( vb ); | m_vb = std::make_unique<EvtTwoBodyVertex>( vb ); | ||||
} | } | ||||
void addBirthFact() { _useBirthFact = true; } | void addBirthFact() { m_useBirthFact = true; } | ||||
void addDeathFact() { _useDeathFact = true; } | void addDeathFact() { m_useDeathFact = true; } | ||||
void addBirthFactFF() { _useBirthFactFF = true; } | void addBirthFactFF() { m_useBirthFactFF = true; } | ||||
void addDeathFactFF() { _useDeathFactFF = true; } | void addDeathFactFF() { m_useDeathFactFF = true; } | ||||
private: | private: | ||||
EvtPropBreitWignerRel _prop; | EvtPropBreitWignerRel m_prop; | ||||
EvtTwoBodyVertex _vd; | EvtTwoBodyVertex m_vd; | ||||
std::unique_ptr<EvtTwoBodyVertex> _vb; | std::unique_ptr<EvtTwoBodyVertex> m_vb; | ||||
bool _useBirthFact; | bool m_useBirthFact; | ||||
bool _useDeathFact; | bool m_useDeathFact; | ||||
bool _useBirthFactFF; | bool m_useBirthFactFF; | ||||
bool _useDeathFactFF; | bool m_useDeathFactFF; | ||||
}; | }; | ||||
#endif | #endif |