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
EvtBtoXsgammaKagan.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 EVTBTOXSGAMMAKAGAN_HH
22
#define EVTBTOXSGAMMAKAGAN_HH
23
24
#include "
EvtGenModels/EvtBtoXsgammaAbsModel.hh
"
25
26
#include <vector>
27
28
// Description:
29
// Implimentation of the Kagan-Neubert model for non-resonant
30
// B->Xs,gamma decays.
31
// Description:
32
// Routine to perform two-body non-resonant B->Xs,gamma decays.
33
// The X_s mass spectrum generated is based on the Kagan-Neubert model.
34
// See hep-ph/9805303 for the model details and input parameters.
35
//
36
// The input parameters are 1:fermi_model, 2:mB, 3:mb, 4:mu, 5:lam1,
37
// 6:delta, 7:z, 8:nIntervalS, 9:nIntervalmH. Choosing fermi_model=1
38
// uses an exponential shape function, fermi_model=2 uses a gaussian
39
// shape function and fermi_model=3 a roman shape function. The complete mass
40
// spectrum for a given set of input parameters is calculated from
41
// scratch in bins of nIntervalmH. The s22, s27 and s28 coefficients are calculated
42
// in bins of nIntervalS. As the program includes lots of integration, the
43
// theoretical hadronic mass spectra is computed for the first time
44
// the init method is called. Then, all the other times (eg if we want to decay a B0
45
// as well as an anti-B0) the vector mass info stored the first time is used again.
46
47
class
EvtBtoXsgammaKagan
:
public
EvtBtoXsgammaAbsModel
{
48
public
:
49
void
init
(
int
,
double
* )
override
;
50
51
void
computeHadronicMass
(
int
,
double
* );
52
53
void
getDefaultHadronicMass
();
54
55
double
GetMass
(
int
code )
override
;
56
57
double
CalcAlphaS
(
double
);
58
59
void
CalcWilsonCoeffs
();
60
void
CalcDelta
();
61
double
Fz
(
double
);
62
63
private
:
64
//Input parameters
65
double
m_mb
;
66
double
m_mB
;
67
double
m_delta
;
68
double
m_nIntervalS
;
69
double
m_nIntervalmH
;
70
double
m_lambdabar
;
71
double
m_lam1
;
72
double
m_mHmin
;
73
double
m_mHmax
;
74
//Other parameters
75
double
m_r7
;
76
double
m_gam77
;
77
double
m_gam27
;
78
double
m_gam87
;
79
double
m_beta0
;
80
double
m_beta1
;
81
double
m_alphasmZ
;
82
double
m_mZ
;
83
double
m_z
;
84
double
m_fz
;
85
double
m_lam2
;
86
double
m_kappabar
;
87
double
m_rer2
;
88
double
m_rer8
;
89
double
m_kSLemmu
;
90
double
m_mW
;
91
double
m_mt
;
92
double
m_ms
;
93
double
m_mu
;
94
95
double
m_c2mu
;
96
double
m_c70mu
;
97
double
m_c80mu
;
98
double
m_c71mu
;
99
double
m_c7emmu
;
100
101
double
m_cDeltatot
;
102
103
double
m_alpha
;
104
double
m_alphasmW
;
105
double
m_alphasmt
;
106
double
m_alphasmu
;
107
double
m_alphasmubar
;
108
double
m_etamu
;
109
110
std::vector<double>
m_mHVect
;
111
112
static
double
ReG
(
double
);
113
static
double
ImG
(
double
);
114
static
double
s77
(
double
);
115
static
double
s88
(
double
,
double
,
double
);
116
static
double
s78
(
double
);
117
static
double
s22Func
(
double
var,
const
std::vector<double>& coeffs );
118
static
double
s27Func
(
double
var,
const
std::vector<double>& coeffs );
119
120
static
double
Delta
(
double
,
double
);
121
static
double
DeltaFermiFunc
(
double
,
const
std::vector<double>& coeffs1,
122
const
std::vector<double>& coeffs2,
123
const
std::vector<double>& coeffs3 );
124
static
double
s77FermiFunc
(
double
,
const
std::vector<double>& coeffs1,
125
const
std::vector<double>& coeffs2 );
126
static
double
s88FermiFunc
(
double
,
const
std::vector<double>& coeffs1,
127
const
std::vector<double>& coeffs2,
128
const
std::vector<double>& coeffs3 );
129
static
double
s78FermiFunc
(
double
,
const
std::vector<double>& coeffs1,
130
const
std::vector<double>& coeffs2 );
131
static
double
s22FermiFunc
(
double
, std::vector<double>& coeffs );
132
static
double
s27FermiFunc
(
double
, std::vector<double>& coeffs );
133
static
double
s28FermiFunc
(
double
, std::vector<double>& coeffs );
134
static
double
GetArrayVal
(
double
,
double
,
double
,
double
,
135
std::vector<double> );
136
static
double
sFermiFunc
(
double
,
const
std::vector<double>& coeffs1,
137
const
std::vector<double>& coeffs2,
138
const
std::vector<double>& coeffs3,
139
const
std::vector<double>& coeffs4 );
140
static
double
FermiFunc
(
double
,
const
std::vector<double>& coeffs );
141
static
double
diLogFunc
(
double
);
142
static
double
diLogMathematica
(
double
);
143
std::vector<double>
m_massHad
,
m_brHad
;
144
static
double
m_intervalMH
;
145
static
bool
m_bbprod
;
146
};
147
148
#endif
EvtBtoXsgammaAbsModel.hh
EvtBtoXsgammaAbsModel
Definition
EvtBtoXsgammaAbsModel.hh:27
EvtBtoXsgammaKagan
Definition
EvtBtoXsgammaKagan.hh:47
EvtBtoXsgammaKagan::m_mb
double m_mb
Definition
EvtBtoXsgammaKagan.hh:65
EvtBtoXsgammaKagan::s77
static double s77(double)
Definition
EvtBtoXsgammaKagan.cpp:679
EvtBtoXsgammaKagan::getDefaultHadronicMass
void getDefaultHadronicMass()
Definition
EvtBtoXsgammaKagan.cpp:104
EvtBtoXsgammaKagan::ImG
static double ImG(double)
Definition
EvtBtoXsgammaKagan.cpp:720
EvtBtoXsgammaKagan::m_lam2
double m_lam2
Definition
EvtBtoXsgammaKagan.hh:85
EvtBtoXsgammaKagan::s27FermiFunc
static double s27FermiFunc(double, std::vector< double > &coeffs)
EvtBtoXsgammaKagan::m_intervalMH
static double m_intervalMH
Definition
EvtBtoXsgammaKagan.hh:144
EvtBtoXsgammaKagan::Fz
double Fz(double)
Definition
EvtBtoXsgammaKagan.cpp:803
EvtBtoXsgammaKagan::m_gam27
double m_gam27
Definition
EvtBtoXsgammaKagan.hh:77
EvtBtoXsgammaKagan::ReG
static double ReG(double)
Definition
EvtBtoXsgammaKagan.cpp:710
EvtBtoXsgammaKagan::m_alphasmubar
double m_alphasmubar
Definition
EvtBtoXsgammaKagan.hh:107
EvtBtoXsgammaKagan::DeltaFermiFunc
static double DeltaFermiFunc(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2, const std::vector< double > &coeffs3)
Definition
EvtBtoXsgammaKagan.cpp:745
EvtBtoXsgammaKagan::s77FermiFunc
static double s77FermiFunc(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2)
Definition
EvtBtoXsgammaKagan.cpp:757
EvtBtoXsgammaKagan::m_mt
double m_mt
Definition
EvtBtoXsgammaKagan.hh:91
EvtBtoXsgammaKagan::s78FermiFunc
static double s78FermiFunc(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2)
Definition
EvtBtoXsgammaKagan.cpp:779
EvtBtoXsgammaKagan::m_nIntervalmH
double m_nIntervalmH
Definition
EvtBtoXsgammaKagan.hh:69
EvtBtoXsgammaKagan::m_mZ
double m_mZ
Definition
EvtBtoXsgammaKagan.hh:82
EvtBtoXsgammaKagan::m_delta
double m_delta
Definition
EvtBtoXsgammaKagan.hh:67
EvtBtoXsgammaKagan::CalcAlphaS
double CalcAlphaS(double)
Definition
EvtBtoXsgammaKagan.cpp:457
EvtBtoXsgammaKagan::m_kappabar
double m_kappabar
Definition
EvtBtoXsgammaKagan.hh:86
EvtBtoXsgammaKagan::m_z
double m_z
Definition
EvtBtoXsgammaKagan.hh:83
EvtBtoXsgammaKagan::m_bbprod
static bool m_bbprod
Definition
EvtBtoXsgammaKagan.hh:145
EvtBtoXsgammaKagan::m_lam1
double m_lam1
Definition
EvtBtoXsgammaKagan.hh:71
EvtBtoXsgammaKagan::m_mu
double m_mu
Definition
EvtBtoXsgammaKagan.hh:93
EvtBtoXsgammaKagan::s27Func
static double s27Func(double var, const std::vector< double > &coeffs)
Definition
EvtBtoXsgammaKagan.cpp:739
EvtBtoXsgammaKagan::m_cDeltatot
double m_cDeltatot
Definition
EvtBtoXsgammaKagan.hh:101
EvtBtoXsgammaKagan::m_fz
double m_fz
Definition
EvtBtoXsgammaKagan.hh:84
EvtBtoXsgammaKagan::s88
static double s88(double, double, double)
Definition
EvtBtoXsgammaKagan.cpp:689
EvtBtoXsgammaKagan::m_alphasmu
double m_alphasmu
Definition
EvtBtoXsgammaKagan.hh:106
EvtBtoXsgammaKagan::m_nIntervalS
double m_nIntervalS
Definition
EvtBtoXsgammaKagan.hh:68
EvtBtoXsgammaKagan::m_r7
double m_r7
Definition
EvtBtoXsgammaKagan.hh:75
EvtBtoXsgammaKagan::m_gam87
double m_gam87
Definition
EvtBtoXsgammaKagan.hh:78
EvtBtoXsgammaKagan::s78
static double s78(double)
Definition
EvtBtoXsgammaKagan.cpp:700
EvtBtoXsgammaKagan::GetMass
double GetMass(int code) override
Definition
EvtBtoXsgammaKagan.cpp:414
EvtBtoXsgammaKagan::m_alphasmt
double m_alphasmt
Definition
EvtBtoXsgammaKagan.hh:105
EvtBtoXsgammaKagan::GetArrayVal
static double GetArrayVal(double, double, double, double, std::vector< double >)
Definition
EvtBtoXsgammaKagan.cpp:809
EvtBtoXsgammaKagan::m_gam77
double m_gam77
Definition
EvtBtoXsgammaKagan.hh:76
EvtBtoXsgammaKagan::m_brHad
std::vector< double > m_brHad
Definition
EvtBtoXsgammaKagan.hh:143
EvtBtoXsgammaKagan::init
void init(int, double *) override
Definition
EvtBtoXsgammaKagan.cpp:49
EvtBtoXsgammaKagan::FermiFunc
static double FermiFunc(double, const std::vector< double > &coeffs)
Definition
EvtBtoXsgammaKagan.cpp:850
EvtBtoXsgammaKagan::m_mHmin
double m_mHmin
Definition
EvtBtoXsgammaKagan.hh:72
EvtBtoXsgammaKagan::m_alphasmZ
double m_alphasmZ
Definition
EvtBtoXsgammaKagan.hh:81
EvtBtoXsgammaKagan::m_c70mu
double m_c70mu
Definition
EvtBtoXsgammaKagan.hh:96
EvtBtoXsgammaKagan::s22Func
static double s22Func(double var, const std::vector< double > &coeffs)
Definition
EvtBtoXsgammaKagan.cpp:729
EvtBtoXsgammaKagan::sFermiFunc
static double sFermiFunc(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2, const std::vector< double > &coeffs3, const std::vector< double > &coeffs4)
Definition
EvtBtoXsgammaKagan.cpp:789
EvtBtoXsgammaKagan::m_mW
double m_mW
Definition
EvtBtoXsgammaKagan.hh:90
EvtBtoXsgammaKagan::m_rer2
double m_rer2
Definition
EvtBtoXsgammaKagan.hh:87
EvtBtoXsgammaKagan::diLogMathematica
static double diLogMathematica(double)
Definition
EvtBtoXsgammaKagan.cpp:867
EvtBtoXsgammaKagan::s28FermiFunc
static double s28FermiFunc(double, std::vector< double > &coeffs)
EvtBtoXsgammaKagan::m_rer8
double m_rer8
Definition
EvtBtoXsgammaKagan.hh:88
EvtBtoXsgammaKagan::computeHadronicMass
void computeHadronicMass(int, double *)
Definition
EvtBtoXsgammaKagan.cpp:143
EvtBtoXsgammaKagan::m_etamu
double m_etamu
Definition
EvtBtoXsgammaKagan.hh:108
EvtBtoXsgammaKagan::m_ms
double m_ms
Definition
EvtBtoXsgammaKagan.hh:92
EvtBtoXsgammaKagan::m_mB
double m_mB
Definition
EvtBtoXsgammaKagan.hh:66
EvtBtoXsgammaKagan::m_c80mu
double m_c80mu
Definition
EvtBtoXsgammaKagan.hh:97
EvtBtoXsgammaKagan::m_alpha
double m_alpha
Definition
EvtBtoXsgammaKagan.hh:103
EvtBtoXsgammaKagan::m_alphasmW
double m_alphasmW
Definition
EvtBtoXsgammaKagan.hh:104
EvtBtoXsgammaKagan::diLogFunc
static double diLogFunc(double)
Definition
EvtBtoXsgammaKagan.cpp:862
EvtBtoXsgammaKagan::s22FermiFunc
static double s22FermiFunc(double, std::vector< double > &coeffs)
EvtBtoXsgammaKagan::m_kSLemmu
double m_kSLemmu
Definition
EvtBtoXsgammaKagan.hh:89
EvtBtoXsgammaKagan::m_mHVect
std::vector< double > m_mHVect
Definition
EvtBtoXsgammaKagan.hh:110
EvtBtoXsgammaKagan::m_c7emmu
double m_c7emmu
Definition
EvtBtoXsgammaKagan.hh:99
EvtBtoXsgammaKagan::m_massHad
std::vector< double > m_massHad
Definition
EvtBtoXsgammaKagan.hh:143
EvtBtoXsgammaKagan::CalcWilsonCoeffs
void CalcWilsonCoeffs()
Definition
EvtBtoXsgammaKagan.cpp:466
EvtBtoXsgammaKagan::m_beta0
double m_beta0
Definition
EvtBtoXsgammaKagan.hh:79
EvtBtoXsgammaKagan::Delta
static double Delta(double, double)
Definition
EvtBtoXsgammaKagan.cpp:667
EvtBtoXsgammaKagan::m_lambdabar
double m_lambdabar
Definition
EvtBtoXsgammaKagan.hh:70
EvtBtoXsgammaKagan::m_beta1
double m_beta1
Definition
EvtBtoXsgammaKagan.hh:80
EvtBtoXsgammaKagan::m_c71mu
double m_c71mu
Definition
EvtBtoXsgammaKagan.hh:98
EvtBtoXsgammaKagan::s88FermiFunc
static double s88FermiFunc(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2, const std::vector< double > &coeffs3)
Definition
EvtBtoXsgammaKagan.cpp:767
EvtBtoXsgammaKagan::m_mHmax
double m_mHmax
Definition
EvtBtoXsgammaKagan.hh:73
EvtBtoXsgammaKagan::CalcDelta
void CalcDelta()
Definition
EvtBtoXsgammaKagan.cpp:642
EvtBtoXsgammaKagan::m_c2mu
double m_c2mu
Definition
EvtBtoXsgammaKagan.hh:95
Generated by
1.17.0