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.
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 
28 class 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() override;
36 
37  EvtDecayBase* clone() 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 mBB;
48  double lambda2;
49 
50  // Shape function parameters
51  double b;
52  double Lambda;
53  double Ecut;
54  double wzero;
55 
56  // SF and SSF modes
57  int itype;
58  double dtype;
59  int isubl;
60 
61  // flags
62  int flag1;
63  int flag2;
64  int flag3;
65 
66  // Quark mass
67  double mb;
68 
69  // Matching scales
70  double muh;
71  double mui;
72  double mubar;
73 
74  // Perturbative quantities
75  double CF;
76  double CA;
77 
78  double beta0;
79  double beta1;
80  double beta2;
81 
82  double zeta3;
83 
84  double Gamma0;
85  double Gamma1;
86  double Gamma2;
87 
88  double gp0;
89  double gp1;
90 
91  double Lbar;
92  double mupisq;
93  double moment2;
94 
95  int flagpower;
96  int flag2loop;
97 
98  int maxLoop;
99  double precision;
100 
101  std::vector<double> 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> _pf;
148 };
149 
150 #endif
double mui
Definition: EvtVubBLNP.hh:71
static double gamser(double a, double x, double LogGamma)
Definition: EvtVubBLNP.cpp:970
double mupisq
Definition: EvtVubBLNP.hh:92
double DoneJS(double Pp, double Pm, double mui)
Definition: EvtVubBLNP.cpp:489
static double Int3(double what, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:567
double lambda2
Definition: EvtVubBLNP.hh:48
double aGamma(double mu1, double mu2, double epsilon)
Definition: EvtVubBLNP.cpp:877
int flag2loop
Definition: EvtVubBLNP.hh:96
double gp0
Definition: EvtVubBLNP.hh:88
double gp1
Definition: EvtVubBLNP.hh:89
static double Int1(double what, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:557
double moment2
Definition: EvtVubBLNP.hh:93
double findBLNPWhat()
double Lbar
Definition: EvtVubBLNP.hh:91
std::string getName() override
Definition: EvtVubBLNP.cpp:48
double myfunction(double w, double Lbar, double mom2)
Definition: EvtVubBLNP.cpp:784
double S2(double a1, double r)
Definition: EvtVubBLNP.cpp:863
static double Mzero(double muf, double mu, double mupisq, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:703
static double Shat(double w, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:653
double Ecut
Definition: EvtVubBLNP.hh:53
double v(double w)
Definition: EvtVubBLNP.cpp:763
double F3(double Pp, double Pm, double muh, double mui, double mubar, double done2)
Definition: EvtVubBLNP.cpp:466
double Done2(double Pp, double Pm, double mui)
Definition: EvtVubBLNP.cpp:523
double beta0
Definition: EvtVubBLNP.hh:78
static double g2(double w, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:606
double Gamma2
Definition: EvtVubBLNP.hh:86
std::vector< double > gvars
Definition: EvtVubBLNP.hh:101
static double alphas(double mu, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:912
double S1(double a1, double r)
Definition: EvtVubBLNP.cpp:855
double mb
Definition: EvtVubBLNP.hh:67
double beta2
Definition: EvtVubBLNP.hh:80
static double g3(double w, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:628
double muh
Definition: EvtVubBLNP.hh:70
void init() override
Definition: EvtVubBLNP.cpp:58
const double a1
double CA
Definition: EvtVubBLNP.hh:76
double alo(double muh, double mui)
Definition: EvtVubBLNP.cpp:897
double dtype
Definition: EvtVubBLNP.hh:58
double Done3(double Pp, double Pm, double mui)
Definition: EvtVubBLNP.cpp:540
double beta1
Definition: EvtVubBLNP.hh:79
double S0(double a1, double r)
Definition: EvtVubBLNP.cpp:848
double F2(double Pp, double Pm, double muh, double mui, double mubar, double done3)
Definition: EvtVubBLNP.cpp:438
double mBB
Definition: EvtVubBLNP.hh:47
static double g1(double w, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:585
double wzero
Definition: EvtVubBLNP.hh:54
double U1lo(double muh, double mui)
Definition: EvtVubBLNP.cpp:830
static double IntJS(double what, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:572
double Gamma0
Definition: EvtVubBLNP.hh:84
double Done1(double Pp, double Pm, double mui)
Definition: EvtVubBLNP.cpp:506
void decay(EvtParticle *Bmeson) override
Definition: EvtVubBLNP.cpp:189
void initProbMax() override
Definition: EvtVubBLNP.cpp:184
static double Gamma(double z)
Definition: EvtVubBLNP.cpp:943
double t(double w)
Definition: EvtVubBLNP.cpp:721
double b
Definition: EvtVubBLNP.hh:51
double wS(double w)
Definition: EvtVubBLNP.cpp:715
double u(double w)
Definition: EvtVubBLNP.cpp:742
double myfunctionBIK(double w, double Lbar, double mom2)
Definition: EvtVubBLNP.cpp:794
double dU1nlo(double muh, double mui)
Definition: EvtVubBLNP.cpp:808
double PolyLog(double v, double z)
Definition: EvtVubBLNP.cpp:931
double Lambda
Definition: EvtVubBLNP.hh:52
double precision
Definition: EvtVubBLNP.hh:99
double F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1)
Definition: EvtVubBLNP.cpp:398
std::vector< double > _pf
Definition: EvtVubBLNP.hh:147
double zeta3
Definition: EvtVubBLNP.hh:82
double Sfun(double mu1, double mu2, double epsilon)
Definition: EvtVubBLNP.cpp:839
double CF
Definition: EvtVubBLNP.hh:75
double agp(double mu1, double mu2, double epsilon)
Definition: EvtVubBLNP.cpp:887
EvtDecayBase * clone() override
Definition: EvtVubBLNP.cpp:53
double rate3(double Pp, double Pl, double Pm)
Definition: EvtVubBLNP.cpp:365
double anlo(double muh, double mui)
Definition: EvtVubBLNP.cpp:902
static double Int2(double what, const std::vector< double > &vars)
Definition: EvtVubBLNP.cpp:562
static double gammcf(double a, double x, double LogGamma)
Definition: EvtVubBLNP.cpp:992
double mubar
Definition: EvtVubBLNP.hh:72
int flagpower
Definition: EvtVubBLNP.hh:95
double Gamma1
Definition: EvtVubBLNP.hh:85