File indexing completed on 2026-08-06 09:20:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTDTOKPIENU_HH
0022 #define EVTDTOKPIENU_HH
0023
0024 #include "EvtGenBase/EvtComplex.hh"
0025 #include "EvtGenBase/EvtDecayProb.hh"
0026 #include "EvtGenBase/EvtVector4R.hh"
0027
0028 #include <array>
0029
0030 class EvtParticle;
0031
0032 class EvtDToKpienu : public EvtDecayProb {
0033 public:
0034 std::string getName() override;
0035 EvtDecayBase* clone() override;
0036
0037 void init() override;
0038 void initProbMax() override;
0039 void decay( EvtParticle* p ) override;
0040
0041 private:
0042 void KinVGen( const EvtVector4R& vp4_K, const EvtVector4R& vp4_Pi,
0043 const EvtVector4R& vp4_Lep, const EvtVector4R& vp4_Nu,
0044 const int charm, double& m2, double& q2, double& cosV,
0045 double& cosL, double& chi ) const;
0046 double calPDF( const double m2, const double q2, const double cosV,
0047 const double cosL, const double chi ) const;
0048 void ResonanceP( const double m, const double q, const double mV,
0049 const double mA, const double V_0, const double A1_0,
0050 const double A2_0, const double m0, const double width0,
0051 const double rBW, double& amplitude, double& delta,
0052 EvtComplex& F11, EvtComplex& F21, EvtComplex& F31 ) const;
0053 void NRS( const double m, const double q, const double rS, const double rS1,
0054 const double a_delta, const double b_delta, const double mA,
0055 const double m0, const double width0, double& amplitude,
0056 double& delta, EvtComplex& F10 ) const;
0057 void ResonanceD( const double m, const double q, const double mV,
0058 const double mA, const double TV_0, const double T1_0,
0059 const double T2_0, const double m0, const double width0,
0060 const double rBW, double& amplitude, double& delta,
0061 EvtComplex& F12, EvtComplex& F22, EvtComplex& F32 ) const;
0062 double getPStar( const double m, const double m1, const double m2 ) const;
0063 double getF1( const double m, const double m0, const double m_c1,
0064 const double m_c2, const double rBW ) const;
0065 double getF2( const double m, const double m0, const double m_c1,
0066 const double m_c2, const double rBW ) const;
0067 double getWidth0( const double m, const double m0, const double m_c1,
0068 const double m_c2, const double width0 ) const;
0069 double getWidth1( const double m, const double m0, const double m_c1,
0070 const double m_c2, const double width0,
0071 const double rBW ) const;
0072 double getWidth2( const double m, const double m0, const double m_c1,
0073 const double m_c2, const double width0,
0074 const double rBW ) const;
0075 EvtComplex getCoef( const double rho, const double phi ) const;
0076
0077 int nAmps;
0078 std::array<int, 5> type;
0079
0080 double rS;
0081 double rS1;
0082 double a_delta;
0083 double b_delta;
0084 double m0_1430_S;
0085 double width0_1430_S;
0086
0087 double mV;
0088 double mA;
0089 double V_0;
0090 double A1_0;
0091 double A2_0;
0092 double m0;
0093 double width0;
0094 double rBW;
0095 double rho;
0096 double phi;
0097 double m0_1410;
0098 double width0_1410;
0099 double rho_1410;
0100 double phi_1410;
0101 double TV_0;
0102 double T1_0;
0103 double T2_0;
0104 double m0_1430;
0105 double width0_1430;
0106 double rho_1430;
0107 double phi_1430;
0108
0109 double mD;
0110 double mPi;
0111 double mK;
0112 double Pi;
0113 double root2;
0114 double root2d3;
0115 double root1d2;
0116 double root3d2;
0117 };
0118
0119 #endif