File indexing completed on 2026-08-06 09:20:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVT_PTO3P_AMP_HH
0022 #define EVT_PTO3P_AMP_HH
0023
0024 #include "EvtGenBase/EvtCyclic3.hh"
0025 #include "EvtGenBase/EvtSpinType.hh"
0026
0027 #include <vector>
0028 using std::vector;
0029 #include "EvtGenBase/EvtAmplitude.hh"
0030 #include "EvtGenBase/EvtDalitzPoint.hh"
0031 #include "EvtGenBase/EvtPropagator.hh"
0032 #include "EvtGenBase/EvtTwoBodyVertex.hh"
0033
0034 class EvtComplex;
0035 class EvtBlattWeisskopf;
0036
0037 class EvtPto3PAmp : public EvtAmplitude<EvtDalitzPoint> {
0038 public:
0039
0040 enum NumType
0041 {
0042 NBW = 0,
0043 RBW_ZEMACH = 1,
0044 RBW_KUEHN = 2,
0045 RBW_CLEO = 3,
0046 FLATTE,
0047 GAUSS,
0048 DOUBLE_GAUSS,
0049 NONRES,
0050 NONRES_LIN,
0051 NONRES_EXP,
0052 NONRES_EXP_ADD,
0053 NONRES_CCS,
0054 NONRES_LAURA,
0055 LASS,
0056 LASS_ELASTIC,
0057 LASS_RESONANT,
0058 GS
0059 };
0060
0061 EvtPto3PAmp( EvtDalitzPlot dp, EvtCyclic3::Pair pairAng,
0062 EvtCyclic3::Pair pairRes, EvtSpinType::spintype spin,
0063 const EvtPropagator& prop, NumType typeN );
0064
0065 EvtPto3PAmp( const EvtPto3PAmp& other );
0066
0067 ~EvtPto3PAmp();
0068
0069 EvtAmplitude<EvtDalitzPoint>* clone() const override
0070 {
0071 return new EvtPto3PAmp( *this );
0072 }
0073
0074 EvtComplex amplitude( const EvtDalitzPoint& p ) const override;
0075 EvtComplex numerator( const EvtDalitzPoint& p ) const;
0076 double angDep( const EvtDalitzPoint& p ) const;
0077
0078 void set_fd( double R );
0079 void set_fb( double R );
0080
0081 void setmin( double min ) { _min = min; }
0082 void setmax( double max ) { _max = max; }
0083
0084 virtual EvtComplex evalPropagator( double m ) const
0085 {
0086 return _prop->evaluate( m );
0087 }
0088
0089 private:
0090
0091
0092 EvtCyclic3::Pair _pairAng;
0093 EvtCyclic3::Pair _pairRes;
0094
0095
0096
0097 EvtSpinType::spintype _spin;
0098
0099
0100
0101 NumType _typeN;
0102
0103
0104
0105 EvtPropagator* _prop;
0106 double _g0;
0107 double _min;
0108 double _max;
0109
0110
0111
0112 EvtTwoBodyVertex _vb;
0113 EvtTwoBodyVertex _vd;
0114 };
0115
0116 #endif