EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtDToKpienu.hh
Go to the documentation of this file.
1
2/***********************************************************************
3* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4* *
5* This file is part of EvtGen. *
6* *
7* EvtGen is free software: you can redistribute it and/or modify *
8* it under the terms of the GNU General Public License as published by *
9* the Free Software Foundation, either version 3 of the License, or *
10* (at your option) any later version. *
11* *
12* EvtGen is distributed in the hope that it will be useful, *
13* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15* GNU General Public License for more details. *
16* *
17* You should have received a copy of the GNU General Public License *
18* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19***********************************************************************/
20
21#ifndef EVTDTOKPIENU_HH
22#define EVTDTOKPIENU_HH
23
27
28#include <array>
29
30class EvtParticle;
31
32class EvtDToKpienu : public EvtDecayProb {
33 public:
34 std::string getName() const override;
35 EvtDecayBase* clone() const override;
36
37 void init() override;
38 void initProbMax() override;
39 void decay( EvtParticle* p ) override;
40
41 private:
42 void KinVGen( const EvtVector4R& vp4_K, const EvtVector4R& vp4_Pi,
43 const EvtVector4R& vp4_Lep, const EvtVector4R& vp4_Nu,
44 const int charm, double& m2, double& q2, double& cosV,
45 double& cosL, double& chi ) const;
46 double calPDF( const double m2, const double q2, const double cosV,
47 const double cosL, const double chi ) const;
48 void ResonanceP( const double m, const double q, const double mV,
49 const double mA, const double V_0, const double A1_0,
50 const double A2_0, const double m0, const double width0,
51 const double rBW, double& amplitude, double& delta,
52 EvtComplex& F11, EvtComplex& F21, EvtComplex& F31 ) const;
53 void NRS( const double m, const double q, const double rS, const double rS1,
54 const double a_delta, const double b_delta, const double mA,
55 const double m0, const double width0, double& amplitude,
56 double& delta, EvtComplex& F10 ) const;
57 void ResonanceD( const double m, const double q, const double mV,
58 const double mA, const double TV_0, const double T1_0,
59 const double T2_0, const double m0, const double width0,
60 const double rBW, double& amplitude, double& delta,
61 EvtComplex& F12, EvtComplex& F22, EvtComplex& F32 ) const;
62 double getPStar( const double m, const double m1, const double m2 ) const;
63 double getF1( const double m, const double m0, const double m_c1,
64 const double m_c2, const double rBW ) const;
65 double getF2( const double m, const double m0, const double m_c1,
66 const double m_c2, const double rBW ) const;
67 double getWidth0( const double m, const double m0, const double m_c1,
68 const double m_c2, const double width0 ) const;
69 double getWidth1( const double m, const double m0, const double m_c1,
70 const double m_c2, const double width0,
71 const double rBW ) const;
72 double getWidth2( const double m, const double m0, const double m_c1,
73 const double m_c2, const double width0,
74 const double rBW ) const;
75 EvtComplex getCoef( const double rho, const double phi ) const;
76
78 std::array<int, 5> m_type;
79
80 double m_rS;
81 double m_rS1;
82 double m_a_delta;
83 double m_b_delta;
86
87 double m_mV;
88 double m_mA;
89 double m_V_0;
90 double m_A1_0;
91 double m_A2_0;
92 double m_m0;
93 double m_width0;
94 double m_rBW;
95 double m_rho;
96 double m_phi;
97 double m_m0_1410;
99 double m_rho_1410;
101 double m_TV_0;
102 double m_T1_0;
103 double m_T2_0;
104 double m_m0_1430;
108
109 double m_mD;
110 double m_mPi;
111 double m_mK;
112 double m_Pi;
113 double m_root2;
114 double m_root2d3;
115 double m_root1d2;
116 double m_root3d2;
117};
118
119#endif
double m_width0_1430_S
double getWidth0(const double m, const double m0, const double m_c1, const double m_c2, const double width0) const
double m_rho_1410
double getPStar(const double m, const double m1, const double m2) const
void initProbMax() override
void KinVGen(const EvtVector4R &vp4_K, const EvtVector4R &vp4_Pi, const EvtVector4R &vp4_Lep, const EvtVector4R &vp4_Nu, const int charm, double &m2, double &q2, double &cosV, double &cosL, double &chi) const
void ResonanceD(const double m, const double q, const double mV, const double mA, const double TV_0, const double T1_0, const double T2_0, const double m0, const double width0, const double rBW, double &amplitude, double &delta, EvtComplex &F12, EvtComplex &F22, EvtComplex &F32) const
double m_width0_1410
double getWidth2(const double m, const double m0, const double m_c1, const double m_c2, const double width0, const double rBW) const
void init() override
EvtDecayBase * clone() const override
double getF2(const double m, const double m0, const double m_c1, const double m_c2, const double rBW) const
double m_m0_1430_S
double getWidth1(const double m, const double m0, const double m_c1, const double m_c2, const double width0, const double rBW) const
void ResonanceP(const double m, const double q, const double mV, const double mA, const double V_0, const double A1_0, const double A2_0, const double m0, const double width0, const double rBW, double &amplitude, double &delta, EvtComplex &F11, EvtComplex &F21, EvtComplex &F31) const
void decay(EvtParticle *p) override
void NRS(const double m, const double q, const double rS, const double rS1, const double a_delta, const double b_delta, const double mA, const double m0, const double width0, double &amplitude, double &delta, EvtComplex &F10) const
std::array< int, 5 > m_type
double getF1(const double m, const double m0, const double m_c1, const double m_c2, const double rBW) const
double m_width0_1430
double calPDF(const double m2, const double q2, const double cosV, const double cosL, const double chi) const
EvtComplex getCoef(const double rho, const double phi) const
std::string getName() const override
EvtDecayBase()=default