evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
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 
24 #include "EvtGenBase/EvtComplex.hh"
27 
28 #include <array>
29 
30 class EvtParticle;
31 
32 class EvtDToKpienu : public EvtDecayProb {
33  public:
34  std::string getName() override;
35  EvtDecayBase* clone() 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 
77  int nAmps;
78  std::array<int, 5> type;
79 
80  double rS;
81  double rS1;
82  double a_delta;
83  double b_delta;
84  double m0_1430_S;
85  double width0_1430_S;
86 
87  double mV;
88  double mA;
89  double V_0;
90  double A1_0;
91  double A2_0;
92  double m0;
93  double width0;
94  double rBW;
95  double rho;
96  double phi;
97  double m0_1410;
98  double width0_1410;
99  double rho_1410;
100  double phi_1410;
101  double TV_0;
102  double T1_0;
103  double T2_0;
104  double m0_1430;
105  double width0_1430;
106  double rho_1430;
107  double phi_1430;
108 
109  double mD;
110  double mPi;
111  double mK;
112  double Pi;
113  double root2;
114  double root2d3;
115  double root1d2;
116  double root3d2;
117 };
118 
119 #endif
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
double getWidth2(const double m, const double m0, const double m_c1, const double m_c2, const double width0, const double rBW) const
double calPDF(const double m2, const double q2, const double cosV, const double cosL, const double chi) const
double width0_1410
Definition: EvtDToKpienu.hh:98
std::array< int, 5 > type
Definition: EvtDToKpienu.hh:78
double a_delta
Definition: EvtDToKpienu.hh:82
double rho_1410
Definition: EvtDToKpienu.hh:99
double width0_1430_S
Definition: EvtDToKpienu.hh:85
EvtDecayBase * clone() override
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
void decay(EvtParticle *p) override
double getF1(const double m, const double m0, const double m_c1, const double m_c2, const double rBW) const
void init() override
double getWidth0(const double m, const double m0, const double m_c1, const double m_c2, const double width0) const
double b_delta
Definition: EvtDToKpienu.hh:83
double getF2(const double m, const double m0, const double m_c1, const double m_c2, const double rBW) const
void initProbMax() override
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
double m0_1410
Definition: EvtDToKpienu.hh:97
EvtComplex getCoef(const double rho, const double phi) const
double getPStar(const double m, const double m1, const double m2) const
std::string getName() override
double width0_1430
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
double m0_1430_S
Definition: EvtDToKpienu.hh:84