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.
EvtVubdGamma.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 EVTVUBDGAMMA_HH
22 #define EVTVUBDGAMMA_HH
23 
24 // Description:
25 // 3 2 2
26 // d Gamma / _ _ _2 mb _2 mb
27 // ---------- = 12 Gamma | (1+x-z)(z-x-p ) -- W + (1-z+p ) -- W
28 // _ 2 0 \ 2 1 2 2
29 // dx dz dp 2
30 // _ _ _2 mb 2 \.
31 // + [x(z-x)-p ] -- (W + 2mb W + mb W ) |
32 // 4 3 4 5 /
33 //
34 // with
35 // 2 E 2
36 // l _2 p 2 v.p _
37 // x = ------ , p = --- , z = ------ , x = 1-x
38 // mb 2 mb
39 // mb
40 //
41 // the triple differential decay rate according to
42 // hep-ph/9905351 v2
43 
44 class EvtVubdGamma final {
45  public:
46  // Constructors
47 
48  EvtVubdGamma( const double& alphas );
49 
50  // Operators
51 
52  // Selectors
53 
54  // Modifiers
55 
56  // Methods
57 
58  double getdGdxdzdp( const double& x, const double& z, const double& p2 );
59 
60  protected:
61  // Helper functions
62 
63  double delta( const double& x, const double& xmin, const double& xmax );
64 
65  double getW1nodelta( const double& x, const double& z, const double& p2 );
66 
67  double getW2nodelta( const double& x, const double& z, const double& p2 );
68 
69  double getW3nodelta( const double& x, const double& z, const double& p2 );
70 
71  double getW4nodelta( const double& x, const double& z, const double& p2 );
72 
73  double getW5nodelta( const double& x, const double& z, const double& p2 );
74 
75  double getW1delta( const double& x, const double& z );
76 
77  double getW4plus5delta( const double& x, const double& z );
78 
79  private:
80  // Friends
81 
82  // Data members
83 
84  double _alphas;
85  double _epsilon1;
86  double _epsilon2;
87  double _epsilon3;
88 };
89 
90 #endif // EVTVUBDGAMMA_HH
double getW2nodelta(const double &x, const double &z, const double &p2)
double delta(const double &x, const double &xmin, const double &xmax)
double _epsilon2
Definition: EvtVubdGamma.hh:86
EvtVubdGamma(const double &alphas)
double getW1nodelta(const double &x, const double &z, const double &p2)
double getW5nodelta(const double &x, const double &z, const double &p2)
double getW1delta(const double &x, const double &z)
double _alphas
Definition: EvtVubdGamma.hh:84
double getW4nodelta(const double &x, const double &z, const double &p2)
double getdGdxdzdp(const double &x, const double &z, const double &p2)
double getW4plus5delta(const double &x, const double &z)
double _epsilon1
Definition: EvtVubdGamma.hh:85
double _epsilon3
Definition: EvtVubdGamma.hh:87
double getW3nodelta(const double &x, const double &z, const double &p2)