EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
EvtGenModels
EvtVubHybrid.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 EVTVUBHYBRID_HH
22
#define EVTVUBHYBRID_HH
23
24
#include "
EvtGenBase/EvtDecayIncoherent.hh
"
25
26
#include "
EvtGenModels/EvtVubdGamma.hh
"
27
28
#include <memory>
29
#include <vector>
30
31
class
EvtParticle
;
32
class
RandGeneral;
33
34
// Description:
35
// Class to generate inclusive B to X_u l nu decays.
36
// This class is based on EvtVub by Sven Menke with an update to
37
// generate the inclusive decays in such a way that the right
38
// mix of inclusive and exclusive decays is obtained:
39
// "Hybrid Model" by Dominique Fortin.
40
// NOTE:
41
// - A set of weights (for bins in the kinematic variables mX, q2, El)
42
// is read from DECAY.DEC. This set of weights must be consistent
43
// with the other parameters specified (excl. BF, non-res BF, mb, a).
44
// - If no binning/weights are specified in DECAY.DEC the hybrid
45
// reweighting is not activated
46
47
class
EvtVubHybrid
:
public
EvtDecayIncoherent
{
48
public
:
49
std::string
getName
()
const override
;
50
51
EvtDecayBase
*
clone
()
const override
;
52
53
void
initProbMax
()
override
;
54
55
void
init
()
override
;
56
57
void
decay
(
EvtParticle
* p )
override
;
58
59
void
readWeights
(
int
startArg = 0 );
60
61
double
getWeight
(
double
mX,
double
q2,
double
El );
62
63
private
:
64
double
findPFermi
();
65
66
enum
67
{
68
nParameters
= 3,
69
nVariables
= 3
70
};
71
72
bool
m_noHybrid
=
73
false
;
// m_noHybrid will be set TRUE if the DECAY.DEC file has no binning or weights
74
bool
m_storeQplus
=
75
true
;
// m_storeQplus should alwasy be TRUE: writes out Fermi motion parameter
76
77
double
m_mb
= 4.62;
// the b-quark pole mass in GeV (try 4.65 to 4.9)
78
double
m_a
= 2.27;
// Parameter for the Fermi Motion (1.29 is good)
79
double
m_alphas
= 0.22;
// Strong Coupling at m_b (around 0.24)
80
double
m_dGMax
= 3.;
// max dGamma*p2 value;
81
int
m_nbins
= 0;
82
double
m_masscut
= 0.28;
83
std::vector<double>
m_bins_mX
;
84
std::vector<double>
m_bins_q2
;
85
std::vector<double>
m_bins_El
;
86
std::vector<double>
m_weights
;
87
std::unique_ptr<EvtVubdGamma>
m_dGamma
;
// calculates the decay rate
88
std::vector<double>
m_pf
;
89
};
90
91
#endif
EvtDecayIncoherent.hh
EvtVubdGamma.hh
EvtDecayBase::EvtDecayBase
EvtDecayBase()=default
EvtDecayIncoherent
Definition
EvtDecayIncoherent.hh:31
EvtParticle
Definition
EvtParticle.hh:45
EvtVubHybrid
Definition
EvtVubHybrid.hh:47
EvtVubHybrid::nParameters
@ nParameters
Definition
EvtVubHybrid.hh:68
EvtVubHybrid::nVariables
@ nVariables
Definition
EvtVubHybrid.hh:69
EvtVubHybrid::readWeights
void readWeights(int startArg=0)
Definition
EvtVubHybrid.cpp:443
EvtVubHybrid::getWeight
double getWeight(double mX, double q2, double El)
Definition
EvtVubHybrid.cpp:411
EvtVubHybrid::findPFermi
double findPFermi()
Definition
EvtVubHybrid.cpp:380
EvtVubHybrid::m_nbins
int m_nbins
Definition
EvtVubHybrid.hh:81
EvtVubHybrid::m_alphas
double m_alphas
Definition
EvtVubHybrid.hh:79
EvtVubHybrid::clone
EvtDecayBase * clone() const override
Definition
EvtVubHybrid.cpp:46
EvtVubHybrid::m_mb
double m_mb
Definition
EvtVubHybrid.hh:77
EvtVubHybrid::m_noHybrid
bool m_noHybrid
Definition
EvtVubHybrid.hh:72
EvtVubHybrid::init
void init() override
Definition
EvtVubHybrid.cpp:51
EvtVubHybrid::m_masscut
double m_masscut
Definition
EvtVubHybrid.hh:82
EvtVubHybrid::m_storeQplus
bool m_storeQplus
Definition
EvtVubHybrid.hh:74
EvtVubHybrid::m_weights
std::vector< double > m_weights
Definition
EvtVubHybrid.hh:86
EvtVubHybrid::getName
std::string getName() const override
Definition
EvtVubHybrid.cpp:41
EvtVubHybrid::m_a
double m_a
Definition
EvtVubHybrid.hh:78
EvtVubHybrid::decay
void decay(EvtParticle *p) override
Definition
EvtVubHybrid.cpp:159
EvtVubHybrid::initProbMax
void initProbMax() override
Definition
EvtVubHybrid.cpp:154
EvtVubHybrid::m_bins_q2
std::vector< double > m_bins_q2
Definition
EvtVubHybrid.hh:84
EvtVubHybrid::m_dGamma
std::unique_ptr< EvtVubdGamma > m_dGamma
Definition
EvtVubHybrid.hh:87
EvtVubHybrid::m_bins_mX
std::vector< double > m_bins_mX
Definition
EvtVubHybrid.hh:83
EvtVubHybrid::m_pf
std::vector< double > m_pf
Definition
EvtVubHybrid.hh:88
EvtVubHybrid::m_bins_El
std::vector< double > m_bins_El
Definition
EvtVubHybrid.hh:85
EvtVubHybrid::m_dGMax
double m_dGMax
Definition
EvtVubHybrid.hh:80
Generated by
1.17.0