8#include <gsl/gsl_sf_zeta.h>
15:
RGEvolutor(dim_i, scheme, order), model(model),
16 v(dim_i,0.), vi(dim_i,0.), js(dim_i,0.), h(dim_i,0.), gg(dim_i,0.), s_s(dim_i,0.),
17 jssv(dim_i,0.), jss(dim_i,0.), jv(dim_i,0.), vij(dim_i,0.), e(dim_i,0.), dim(dim_i)
22 for(
int L=2; L>-1; L--){
27 if(L == 1){
nd = 3;
nu = 2;}
28 if(L == 0){
nd = 3;
nu = 3;}
32 for(
unsigned int i = 0; i <
dim; i++){
33 a[L][i] =
e(i).real();
34 for (
unsigned int j = 0; j <
dim; j++) {
35 for (
unsigned int k = 0; k <
dim; k++) {
36 b[L][i][j][k] =
v(i, k).real() *
vi(k, j).real();
46 for (
unsigned int i = 0; i <
dim; i++){
47 for (
unsigned int j = 0; j <
dim; j++){
48 s_s.assign( i, j, (b1 / b0) * (i==j) *
e(i).real() -
gg(i,j));
49 if(fabs(
e(i).real() -
e(j).real() + 2. * b0)>0.00000000001){
50 h.assign( i, j,
s_s(i,j) / (2. * b0 +
e(i) -
e(j)));
59 for (
unsigned int i = 0; i <
dim; i++){
60 for (
unsigned int j = 0; j <
dim; j++){
61 if(fabs(
e(i).real() -
e(j).real() + 2. * b0) > 0.00000000001){
62 for(
unsigned int k = 0; k <
dim; k++){
63 c[L][i][j][k] =
jv(i, k).real() *
vi(k, j).real();
64 d[L][i][j][k] = -
v(i, k).real() *
vij(k, j).real();
68 for(
unsigned int k = 0; k <
dim; k++){
69 c[L][i][j][k] = (1./(2. * b0)) *
jssv(i, k).real() *
vi(k, j).real();
88 unsigned int nf = n_u + n_d;
89 gslpp::matrix<double> gammaDF1(
dim, 0.);
102 gammaDF1(1,2) = -2./9.;
103 gammaDF1(1,3) = 2./3.;
104 gammaDF1(1,4) = -2./9.;
105 gammaDF1(1,5) = 2./3.;
109 gammaDF1(2,2) = -22./9.;
110 gammaDF1(2,3) = 22./3.;
111 gammaDF1(2,4) = -4./9.;
112 gammaDF1(2,5) = 4./3.;
114 gammaDF1(3,2) = 6.-2./9.*nf;
115 gammaDF1(3,3) = -2.+2./3.*nf;
116 gammaDF1(3,4) = -2./9.*nf;
117 gammaDF1(3,5) = 2./3.*nf;
122 gammaDF1(5,2) = -2./9.*nf;
123 gammaDF1(5,3) = 2./3.*nf;
124 gammaDF1(5,4) = -2./9.*nf;
125 gammaDF1(5,5) = -16.+2./3.*nf;
131 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
132 throw std::runtime_error(
"EvolDF1nlep::AnomalousDimension_B(): wrong number of flavours");
137 gammaDF1(0,0) = -21./2.-2./9.*nf;
138 gammaDF1(0,1) = 7./2.+2./3.*nf;
140 gammaDF1(1,0) = 7./2.+2./3.*nf;
141 gammaDF1(1,1) = -21./2.-2./9.*nf;
145 gammaDF1(0,2) = 79./9.;
146 gammaDF1(0,3) = -7./3.;
147 gammaDF1(0,4) = -65./9.;
148 gammaDF1(0,5) = -7./3.;
150 gammaDF1(1,2) = -202./243.;
151 gammaDF1(1,3) = 1354./81.;
152 gammaDF1(1,4) = -1192./243.;
153 gammaDF1(1,5) = 904./81.;
157 gammaDF1(2,2) = -5911./486.+71./9.*nf;
158 gammaDF1(2,3) = 5983./162.+1./3.*nf;
159 gammaDF1(2,4) = -2384./243.-71./9.*nf;
160 gammaDF1(2,5) = 1808./81.-1./3.*nf;
163 gammaDF1(3,2) = 379./18.+56./243.*nf;
164 gammaDF1(3,3) = -91./6.+808./81.*nf;
165 gammaDF1(3,4) = -130./9.-502./243.*nf;
166 gammaDF1(3,5) = -14./3.+646./81.*nf;
168 gammaDF1(4,2) = -61./9.*nf;
169 gammaDF1(4,3) = -11./3.*nf;
170 gammaDF1(4,4) = 71./3.+61./9.*nf;
171 gammaDF1(4,5) = -99.+11./3.*nf;
173 gammaDF1(5,2) = -682./243.*nf;
174 gammaDF1(5,3) = 106./81.*nf;
175 gammaDF1(5,4) = -225./2.+1676./243.*nf;
176 gammaDF1(5,5) = -1343./6.+1348./81.*nf;
181 throw std::runtime_error(
"EvolDF1nlep::AnomalousDimensio_B_S(): order not implemented");
196 std::stringstream out;
198 throw std::runtime_error(
"EvolDC1::Df1EvolDC1(): scheme " + out.str() +
" not implemented ");
204 if (
mu == this-> mu &&
M == this->M &&
scheme == this->scheme)
211 std::stringstream out;
212 out <<
"M = " <<
M <<
" < mu = " <<
mu;
236 gslpp::matrix<double> resLO(
dim, 0.), resNLO(
dim, 0.), resNNLO(
dim, 0.);
238 int L = 6 - (int) nf;
242 double eta = alsM / alsmu;
244 for (
unsigned int k = 0; k <
dim; k++) {
245 double etap = pow(eta,
a[L][k] / 2. /
model.
Beta0(nf));
246 for (
unsigned int i = 0; i <
dim; i++){
247 for (
unsigned int j = 0; j <
dim; j++) {
250 if(fabs(
e(i).real() -
e(j).real() + 2. *
model.
Beta0(nf))>0.000000000001) {
251 resNLO(i, j) +=
c[L][i][j][k] * etap * alsmu;
252 resNLO(i, j) +=
d[L][i][j][k] * etap * alsM;
255 resNLO(i, j) += -
c[L][i][j][k] * etap * alsmu * log(eta);
257 resLO(i, j) +=
b[L][i][j][k] * etap;
272 throw std::runtime_error(
"Error in EvolDC1Buras::DC1EvolBuras()");
282gslpp::matrix<double> deltarsT(
dim,0.);
284deltarsT(2,3) = 5./27.;
285deltarsT(2,5) = 5./27.;
286deltarsT(3,3) = -5./9.;
287deltarsT(3,5) = -5./9.;
288deltarsT(4,3) = 5./27.;
289deltarsT(4,5) = 5./27.;
290deltarsT(5,3) = -5./9.;
291deltarsT(5,5) = -5./9.;
301 gslpp::matrix<double> drsT(
dim,0.);
gslpp::matrix< double > StrongThresholds() const
a method returning the matrix threshold for the QCD penguins at the NLO
gslpp::matrix< gslpp::complex > jssv
gslpp::matrix< gslpp::complex > vi
EvolDC1Buras(unsigned int dim_i, schemes scheme, orders order, const StandardModel &model)
EvolDC1Buras constructor.
gslpp::matrix< gslpp::complex > jss
gslpp::matrix< gslpp::complex > js
gslpp::matrix< gslpp::complex > v
gslpp::vector< gslpp::complex > e
gslpp::matrix< gslpp::complex > h
gslpp::matrix< gslpp::complex > s_s
const StandardModel & model
void DC1PenguinThresholds(double M, orders order)
a void type method for the implementation of the NLO threshold effects in the evolutor
gslpp::matrix< gslpp::complex > vij
gslpp::matrix< gslpp::complex > gg
gslpp::matrix< gslpp::complex > jv
virtual ~EvolDC1Buras()
EvolDC1Buras destructor.
gslpp::matrix< double > & DC1EvolBuras(double mu, double M, orders order, schemes scheme=NDR)
a method returning the evolutor related to the high scale and the low scale
gslpp::matrix< double > AnomalousDimension_DC1_Buras(orders order, unsigned int n_u, unsigned int n_d) const
a method returning the anomalous dimension matrix given in the standard basis
const double Beta1(const double nf) const
The coefficient for a certain number of flavours .
const double Beta0(const double nf) const
The coefficient for a certain number of flavours .
const double AboveTh(const double mu) const
The active flavour threshold above the scale as defined in QCD::Thresholds().
const double Nf(const double mu) const
The number of active flavour at scale .
A class for the RG evolutor of the Wilson coefficients.
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
A model class for the Standard Model.
const double getMz() const
A get method to access the mass of the boson .
const double getAlsMz() const
A get method to access the value of .
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.
gslpp::matrix< double > * elem[MAXORDER_QED+1]
orders
An enum type for orders in QCD.
schemes
An enum type for regularization schemes.