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.
EvtVubAC.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 EVTVUBAC_HH
22 #define EVTVUBAC_HH
23 
25 
26 #include <vector>
27 
28 class EvtParticle;
29 
30 // Analytic Coupling Model (based on hep-ph/0608047 by Aglietti, Ferrera and Ricciardi)
31 
32 class EvtVubAC : public EvtDecayIncoherent {
33  public:
34  std::string getName() override;
35 
36  EvtDecayBase* clone() override;
37 
38  void initProbMax() override;
39 
40  void init() override;
41 
42  void decay( EvtParticle* Bmeson ) override;
43 
44  private:
45  // Input parameters
46  double mB;
47 
48  double alphaSmZ;
49  double alphaSmB;
50  double c;
51  double q;
52  double k;
53 
54  double CF;
55  double CA;
56 
57  double beta0;
58 
59  std::vector<double> gvars;
60 
61  double rate( double u, double w, double xb );
62  double wreg( double w );
63  double alphaS( double Q );
64  double PolyLog( double v, double z );
65  double ureg( double u );
66  double ularge( double u );
67  double Coeff( double u, double w, double xb );
68  double Coeff1( double w, double xb );
69  double Coeff0( double w, double xb );
70  double Sigma( double x1, double x2 );
71  double max( double ub, double lb );
72  double d1( double u, double w, double xb );
73  double d( double u, double w, double xb );
74  double f( double w );
75  double Lambda2( double x, double alphaSmZ );
76  int Bisect( double x1, double x2, double precision, double& root,
77  const double alphaSmZ );
78  double FindRoot( const double alphaSmZ );
79 };
80 
81 #endif
void decay(EvtParticle *Bmeson) override
Definition: EvtVubAC.cpp:91
double CF
Definition: EvtVubAC.hh:54
double k
Definition: EvtVubAC.hh:52
double d1(double u, double w, double xb)
Definition: EvtVubAC.cpp:368
double ureg(double u)
Definition: EvtVubAC.cpp:276
double FindRoot(const double alphaSmZ)
Definition: EvtVubAC.cpp:474
void initProbMax() override
Definition: EvtVubAC.cpp:86
double max(double ub, double lb)
Definition: EvtVubAC.cpp:257
double PolyLog(double v, double z)
Definition: EvtVubAC.cpp:245
double q
Definition: EvtVubAC.hh:51
double mB
Definition: EvtVubAC.hh:46
double Lambda2(double x, double alphaSmZ)
Definition: EvtVubAC.cpp:461
std::vector< double > gvars
Definition: EvtVubAC.hh:59
double alphaS(double Q)
Definition: EvtVubAC.cpp:296
double f(double w)
Definition: EvtVubAC.cpp:448
double alphaSmB
Definition: EvtVubAC.hh:49
double Sigma(double x1, double x2)
Definition: EvtVubAC.cpp:518
EvtDecayBase * clone() override
Definition: EvtVubAC.cpp:44
double CA
Definition: EvtVubAC.hh:55
void init() override
Definition: EvtVubAC.cpp:49
double Coeff(double u, double w, double xb)
Definition: EvtVubAC.cpp:310
double ularge(double u)
Definition: EvtVubAC.cpp:286
std::string getName() override
Definition: EvtVubAC.cpp:39
double Coeff0(double w, double xb)
Definition: EvtVubAC.cpp:326
double rate(double u, double w, double xb)
Definition: EvtVubAC.cpp:233
double wreg(double w)
Definition: EvtVubAC.cpp:265
double Coeff1(double w, double xb)
Definition: EvtVubAC.cpp:337
double c
Definition: EvtVubAC.hh:50
double beta0
Definition: EvtVubAC.hh:57
double d(double u, double w, double xb)
Definition: EvtVubAC.cpp:355
double alphaSmZ
Definition: EvtVubAC.hh:48
int Bisect(double x1, double x2, double precision, double &root, const double alphaSmZ)
Definition: EvtVubAC.cpp:486