File indexing completed on 2026-08-06 09:20:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTFLATTE_HH
0022 #define EVTFLATTE_HH
0023
0024 #include "EvtGenBase/EvtComplex.hh"
0025 #include "EvtGenBase/EvtVector4R.hh"
0026
0027 #include <vector>
0028
0029 using std::vector;
0030
0031
0032
0033 class EvtFlatteParam {
0034 public:
0035 EvtFlatteParam( double m1, double m2, double g ) :
0036 _m1( m1 ), _m2( m2 ), _g( g )
0037 {
0038 }
0039
0040 inline double m1() const { return _m1; }
0041 inline double m2() const { return _m2; }
0042 inline double g() const { return _g; }
0043
0044 private:
0045 double _m1, _m2, _g;
0046 };
0047
0048
0049
0050 class EvtFlatte final {
0051 public:
0052
0053 EvtFlatte& operator=( const EvtFlatte& );
0054
0055
0056 EvtFlatte( const EvtVector4R& p4_p, const EvtVector4R& p4_d1,
0057 const EvtVector4R& p4_d2, double ampl, double theta, double mass,
0058 vector<EvtFlatteParam>& params
0059
0060
0061 );
0062
0063
0064
0065 inline const EvtVector4R& p4_p() { return _p4_p; }
0066 inline const EvtVector4R& p4_d1() { return _p4_d1; }
0067 inline const EvtVector4R& p4_d2() { return _p4_d2; }
0068
0069
0070 inline double amplitude() { return _ampl; }
0071
0072
0073 inline double theta() { return _theta; }
0074
0075
0076 inline double mass() { return _mass; }
0077
0078
0079
0080
0081 EvtComplex resAmpl();
0082
0083 private:
0084 inline EvtComplex sqrtCplx( double in )
0085 {
0086 return ( in > 0 ) ? EvtComplex( sqrt( in ), 0 )
0087 : EvtComplex( 0, sqrt( -in ) );
0088 }
0089
0090 EvtVector4R _p4_p, _p4_d1, _p4_d2;
0091 double _ampl, _theta, _mass;
0092 vector<EvtFlatteParam> _params;
0093
0094
0095 };
0096
0097 #endif