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
EvtVubBLNP.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 EVTVUBBLNP_HH
22#define EVTVUBBLNP_HH
23
25
26#include <vector>
27
28class EvtParticle;
29
30// Description: Modeled on Riccardo Faccini's EvtVubNLO module
31// tripleDiff from BLNP's notebook (based on BLNP4, hep-ph/0504071)
32
34 public:
35 std::string getName() const override;
36
37 EvtDecayBase* clone() const override;
38
39 void initProbMax() override;
40
41 void init() override;
42
43 void decay( EvtParticle* Bmeson ) override;
44
45 private:
46 // Input parameters
47 double m_mBB;
48 double m_lambda2;
49
50 // Shape function parameters
51 double m_b;
52 double m_Lambda;
53 double m_Ecut;
54 double m_wzero;
55
56 // SF and SSF modes
58 double m_dtype;
60
61 // flags
65
66 // Quark mass
67 double m_mb;
68
69 // Matching scales
70 double m_muh;
71 double m_mui;
72 double m_mubar;
73
74 // Perturbative quantities
75 double m_CF;
76 double m_CA;
77
78 double m_beta0;
79 double m_beta1;
80 double m_beta2;
81
82 double m_zeta3;
83
84 double m_Gamma0;
85 double m_Gamma1;
86 double m_Gamma2;
87
88 double m_gp0;
89 double m_gp1;
90
91 double m_Lbar;
92 double m_mupisq;
93 double m_moment2;
94
97
100
101 std::vector<double> m_gvars;
102
103 double rate3( double Pp, double Pl, double Pm );
104 double F1( double Pp, double Pm, double muh, double mui, double mubar,
105 double doneJS, double done1 );
106 double F2( double Pp, double Pm, double muh, double mui, double mubar,
107 double done3 );
108 double F3( double Pp, double Pm, double muh, double mui, double mubar,
109 double done2 );
110 double DoneJS( double Pp, double Pm, double mui );
111 double Done1( double Pp, double Pm, double mui );
112 double Done2( double Pp, double Pm, double mui );
113 double Done3( double Pp, double Pm, double mui );
114 static double IntJS( double what, const std::vector<double>& vars );
115 static double Int1( double what, const std::vector<double>& vars );
116 static double Int2( double what, const std::vector<double>& vars );
117 static double Int3( double what, const std::vector<double>& vars );
118 static double g1( double w, const std::vector<double>& vars );
119 static double g2( double w, const std::vector<double>& vars );
120 static double g3( double w, const std::vector<double>& vars );
121 static double Shat( double w, const std::vector<double>& vars );
122 static double Mzero( double muf, double mu, double mupisq,
123 const std::vector<double>& vars );
124 double wS( double w );
125 double t( double w );
126 double u( double w );
127 double v( double w );
128 double myfunction( double w, double Lbar, double mom2 );
129 double myfunctionBIK( double w, double Lbar, double mom2 );
130 double dU1nlo( double muh, double mui );
131 double U1lo( double muh, double mui );
132 double Sfun( double mu1, double mu2, double epsilon );
133 double S0( double a1, double r );
134 double S1( double a1, double r );
135 double S2( double a1, double r );
136 double aGamma( double mu1, double mu2, double epsilon );
137 double agp( double mu1, double mu2, double epsilon );
138 double alo( double muh, double mui );
139 double anlo( double muh, double mui ); // d/depsilon of aGamma
140 static double alphas( double mu, const std::vector<double>& vars );
141 double PolyLog( double v, double z );
142 static double Gamma( double z );
143 static double Gamma( double a, double x );
144 static double gamser( double a, double x, double LogGamma );
145 static double gammcf( double a, double x, double LogGamma );
146 double findBLNPWhat();
147 std::vector<double> m_pf;
148};
149
150#endif
const double a1
EvtDecayBase()=default
double S0(double a1, double r)
double aGamma(double mu1, double mu2, double epsilon)
double F3(double Pp, double Pm, double muh, double mui, double mubar, double done2)
double Sfun(double mu1, double mu2, double epsilon)
double U1lo(double muh, double mui)
double v(double w)
double S2(double a1, double r)
double anlo(double muh, double mui)
double m_Lambda
Definition EvtVubBLNP.hh:52
double S1(double a1, double r)
double m_gp1
Definition EvtVubBLNP.hh:89
double PolyLog(double v, double z)
double rate3(double Pp, double Pl, double Pm)
double m_precision
Definition EvtVubBLNP.hh:99
double m_zeta3
Definition EvtVubBLNP.hh:82
static double Int2(double what, const std::vector< double > &vars)
double m_Gamma2
Definition EvtVubBLNP.hh:86
double t(double w)
double m_beta2
Definition EvtVubBLNP.hh:80
static double alphas(double mu, const std::vector< double > &vars)
double myfunction(double w, double Lbar, double mom2)
double u(double w)
double myfunctionBIK(double w, double Lbar, double mom2)
double m_Gamma1
Definition EvtVubBLNP.hh:85
double wS(double w)
double m_dtype
Definition EvtVubBLNP.hh:58
double m_beta0
Definition EvtVubBLNP.hh:78
double m_CF
Definition EvtVubBLNP.hh:75
double agp(double mu1, double mu2, double epsilon)
double m_mb
Definition EvtVubBLNP.hh:67
double m_moment2
Definition EvtVubBLNP.hh:93
double dU1nlo(double muh, double mui)
std::string getName() const override
int m_flag2loop
Definition EvtVubBLNP.hh:96
double m_lambda2
Definition EvtVubBLNP.hh:48
double m_wzero
Definition EvtVubBLNP.hh:54
static double Mzero(double muf, double mu, double mupisq, const std::vector< double > &vars)
double Done1(double Pp, double Pm, double mui)
static double Gamma(double z)
double m_mubar
Definition EvtVubBLNP.hh:72
double m_gp0
Definition EvtVubBLNP.hh:88
double m_mupisq
Definition EvtVubBLNP.hh:92
static double Shat(double w, const std::vector< double > &vars)
std::vector< double > m_pf
static double g2(double w, const std::vector< double > &vars)
double m_b
Definition EvtVubBLNP.hh:51
double m_muh
Definition EvtVubBLNP.hh:70
double F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1)
double m_Lbar
Definition EvtVubBLNP.hh:91
double m_Ecut
Definition EvtVubBLNP.hh:53
EvtDecayBase * clone() const override
double F2(double Pp, double Pm, double muh, double mui, double mubar, double done3)
static double gammcf(double a, double x, double LogGamma)
static double Int1(double what, const std::vector< double > &vars)
double m_mui
Definition EvtVubBLNP.hh:71
double m_Gamma0
Definition EvtVubBLNP.hh:84
void initProbMax() override
void decay(EvtParticle *Bmeson) override
double findBLNPWhat()
static double gamser(double a, double x, double LogGamma)
static double IntJS(double what, const std::vector< double > &vars)
void init() override
static double g3(double w, const std::vector< double > &vars)
double Done2(double Pp, double Pm, double mui)
double m_CA
Definition EvtVubBLNP.hh:76
double m_mBB
Definition EvtVubBLNP.hh:47
int m_flagpower
Definition EvtVubBLNP.hh:95
double DoneJS(double Pp, double Pm, double mui)
static double Int3(double what, const std::vector< double > &vars)
double m_beta1
Definition EvtVubBLNP.hh:79
static double g1(double w, const std::vector< double > &vars)
double Done3(double Pp, double Pm, double mui)
double alo(double muh, double mui)
std::vector< double > m_gvars