a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
AmpDB2.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "AmpDB2.h"
9 #include "StandardModel.h"
10 #include "EvolDF2.h"
11 #include "HeffDF2.h"
12 
14 : mySM(SM_i)
15 {
18 }
19 
21 {
23  if (mySM.getFlavour().getHDF2().getCoeffBs().getOrder() < order % 3)
24  throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
25 
27  mySM.getBBs().getMu(),
28  mySM.getBBs().getScheme(), true);
29 
30  C_1_SM = ((*(allcoeff_SM[LO]))(0) + (*(allcoeff_SM[NLO]))(0));
31 
33  mySM.getBBs().getMu(),
34  mySM.getBBs().getScheme());
35 
37  double MBs = mySM.getMesons(QCD::B_S).getMass();
38  double Mb = mySM.getQuarks(QCD::BOTTOM).getMass();
39  double Ms = mySM.Mrun(mySM.getBBs().getMu(),
42  double KBs = MBs/(Mb+Ms)*MBs/(Mb+Ms);
43  double Fbs = mySM.getMesons(QCD::B_S).getDecayconst();
44  me(0) *= 1./3.*MBs*Fbs*Fbs;
45  me(1) *= -5./24.*KBs*MBs*Fbs*Fbs;
46  me(2) *= 1./24.*KBs*MBs*Fbs*Fbs;
47  me(3) *= 1./4.*KBs*MBs*Fbs*Fbs;
48  me(4) *= 1./12.*KBs*MBs*Fbs*Fbs;
49 
50  /*std::cout << "low scale :" << std::endl << std::endl;
51  std::cout << "C1_SM :" << C_1_SM << std::endl << std::endl;
52 
53  std::cout << "C1 :" << ((*(allcoeff[LO]))(0) + (*(allcoeff[NLO]))(0)) << std::endl;
54  std::cout << "C2 :" << ((*(allcoeff[LO]))(1) + (*(allcoeff[NLO]))(1)) << std::endl;
55  std::cout << "C3 :" << ((*(allcoeff[LO]))(2) + (*(allcoeff[NLO]))(2)) << std::endl;
56  std::cout << "C4 :" << ((*(allcoeff[LO]))(3) + (*(allcoeff[NLO]))(3)) << std::endl;
57  std::cout << "C5 :" << ((*(allcoeff[LO]))(4) + (*(allcoeff[NLO]))(4)) << std::endl << std::endl;*/
58 
59  switch(order) {
60  case FULLNLO:
61  return (*(allcoeff[LO]) + *(allcoeff[NLO])) * me /
62  (C_1_SM * me(0));
63  case LO:
64  return((*(allcoeff[LO])) * me / HCUT);
65  default:
66  throw std::runtime_error("RBs::RBs(): order not implemented");
67  }
68 }
69 
71 {
72  if (mySM.getFlavour().getHDF2().getCoeffBd().getOrder() < order % 3)
73  throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
74 
76  mySM.getBBd().getMu(),
77  mySM.getBBd().getScheme());
78 
80  double MBd = mySM.getMesons(QCD::B_D).getMass();
81  double Mb = mySM.Mrun(mySM.getBBd().getMu(),
84  double Md = mySM.Mrun(mySM.getBBd().getMu(),
87  double KBd = MBd/(Mb+Md)*MBd/(Mb+Md);
88  double Fb = mySM.getMesons(QCD::B_D).getDecayconst();
89  me(0) *= 1./3.*MBd*Fb*Fb;
90  me(1) *= -5./24.*KBd*MBd*Fb*Fb;
91  me(2) *= 1./24.*KBd*MBd*Fb*Fb;
92  me(3) *= 1./4.*KBd*MBd*Fb*Fb;
93  me(4) *= 1./12.*KBd*MBd*Fb*Fb;
94 
95 #if SUSYFIT_DEBUG & 1
96  std::cout << "Bd: me(0) = " << me(0) << std::endl;
97 #endif
98 #if SUSYFIT_DEBUG & 2
99  std::cout << "coefficient Bd: " << (*(allcoeff[LO]) + *(allcoeff[NLO]))(0) << std::endl;
100  std::cout << "M: " << me << std::endl;
101  std::cout << "mu : " << mySM.getBBd().getMu() << ", mut: " << mySM.getMut() << ", scheme: " << mySM.getBBd().getScheme() << ", B par.: " << mySM.getBBd().getBpars()(0) << std::endl;
102  std::cout << "U (mut): " << (mySM.getFlavour().getHDF2().getUDF2().Df2Evol(mySM.getBBd().getMu(),mySM.getMut(),LO)(0,0) +
103  mySM.getFlavour().getHDF2().getUDF2().Df2Evol(mySM.getBBd().getMu(),mySM.getMut(),NLO)(0,0))<< std::endl;
104 #endif
105 
106  switch(order) {
107  case FULLNLO:
108  return((*(allcoeff[LO]) + *(allcoeff[NLO])) * me / HCUT);
109  case LO:
110  return((*(allcoeff[LO])) * me / HCUT);
111  default:
112  throw std::runtime_error("AmpDB2::AmpBd(): order not implemented");
113  }
114 }
115 
117 {
118  if (mySM.getFlavour().getHDF2().getCoeffBs().getOrder() < order % 3)
119  throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
120 
122  mySM.getBBs().getMu(),
123  mySM.getBBs().getScheme());
124 
126  double MBs = mySM.getMesons(QCD::B_S).getMass();
127  double Mb = mySM.getQuarks(QCD::BOTTOM).getMass();
128  double Ms = mySM.Mrun(mySM.getBBs().getMu(),
131  double KBs = MBs/(Mb+Ms)*MBs/(Mb+Ms);
132  double Fbs = mySM.getMesons(QCD::B_S).getDecayconst();
133  me(0) *= 1./3.*MBs*Fbs*Fbs;
134  me(1) *= -5./24.*KBs*MBs*Fbs*Fbs;
135  me(2) *= 1./24.*KBs*MBs*Fbs*Fbs;
136  me(3) *= 1./4.*KBs*MBs*Fbs*Fbs;
137  me(4) *= 1./12.*KBs*MBs*Fbs*Fbs;
138 #if SUSYFIT_DEBUG & 1
139  std::cout << "Bs: me(0) = " << me(0) << std::endl;
140 #endif
141 
142  switch(order) {
143  case FULLNLO:
144  return((*(allcoeff[LO]) + *(allcoeff[NLO])) * me / HCUT);
145  case LO:
146  return((*(allcoeff[LO])) * me / HCUT);
147  default:
148  throw std::runtime_error("AmpDB2::AmpBs(): order not implemented");
149  }
150 }
151 
153 {
154  double mbpole = mySM.Mbar2Mp(mySM.getQuarks(QCD::BOTTOM).getMass());
155  double Mw = mySM.Mw();
156  double kappa = -2. * M_PI * mbpole * mbpole /
157  (3. * Mw * Mw * mySM.getFlavour().getHDF2().getUDF2().etabS0(mySM.getBBd().getMu()));
158 
159  double n[13] = {0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.};
160 
161  n[0] = 0.1797;
162  n[1] = 0.1391;
163  n[5] = 1.0116;
164  n[6] = 0.0455;
165  n[8] = -0.0714;
166  n[10] = -0.3331;
167 
168  double B1 = mySM.getBBd().getBpars()(0);
169  double B2 = mySM.getBBd().getBpars()(1);
170 
171  gslpp::complex PBd = -2. * kappa / mySM.getCBd() *
172  (gslpp::complex(1,2.*mySM.getPhiBd(),true) * (n[0] + (n[5] * B2 + n[10])/B1)
174  * (n[1] + (n[6] * B2 + n[11])/B1)
176  * (n[2] + (n[7] * B2 + n[12])/B1));
177 
178  return PBd;
179 }
180 
182 {
183  double mbpole = mySM.Mbar2Mp(mySM.getQuarks(QCD::BOTTOM).getMass());
184  double Mw = mySM.Mw();
185  double kappa = -2. * M_PI * mbpole * mbpole /
186  (3. * Mw * Mw * mySM.getFlavour().getHDF2().getUDF2().etabS0(mySM.getBBs().getMu()));
187 
188  double n[13] = {0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.};
189 
190  n[0] = 0.1797;
191  n[1] = 0.1391;
192  n[5] = 1.0116;
193  n[6] = 0.0455;
194  n[8] = -0.0714;
195  n[10] = -0.3331;
196 
197  double B1 = mySM.getBBs().getBpars()(0);
198  double B2 = mySM.getBBs().getBpars()(1);
199 
200  gslpp::complex PBs = -2. * kappa / mySM.getCBs() *
201  (gslpp::complex(1,2.*mySM.getPhiBs(),true) * (n[0] + (n[5] * B2 + n[10])/B1)
203  * (n[1] + (n[6] * B2 + n[11])/B1)
205  * (n[2] + (n[7] * B2 + n[12])/B1));
206 
207  return PBs;
208 }
209 
QCD::BOTTOM
Definition: QCD.h:329
AmpDB2::PBs
gslpp::complex PBs()
Definition: AmpDB2.cpp:181
CKM::computeBeta
double computeBeta() const
The CKM angle .
Definition: CKM.cpp:82
QCD::B_S
Definition: QCD.h:345
QCD::initializeBParameter
void initializeBParameter(std::string name_i) const
A method to initialize B Parameter and the corresponding meson.
Definition: QCD.cpp:192
BParameter::getBpars
const gslpp::vector< double > & getBpars() const
A get method for the vector of the bag parameters.
Definition: BParameter.h:176
LO
Definition: OrderScheme.h:33
StandardModel.h
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
StandardModel::getPhiBs
virtual double getPhiBs() const
Half the relative phase of the $B_s$ mixing amplitude w.r.t. the Standard Model one.
Definition: StandardModel.h:2456
Flavour::ComputeCoeffBs
gslpp::vector< gslpp::complex > ** ComputeCoeffBs(double mu, schemes scheme=NDR, bool SM=false) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:58
Particle::getMass_scale
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
EvolDF2::etabS0
double etabS0(double mu) const
Buras et al, hep-ph/9512380.
Definition: EvolDF2.cpp:419
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
QCD::Mbar2Mp
double Mbar2Mp(const double mbar, const orders order=FULLNNLO) const
Converts the mass to the pole mass.
Definition: QCD.cpp:1221
HeffDF2::getCoeffBd
WilsonCoefficient getCoeffBd() const
Definition: HeffDF2.h:100
WilsonTemplate::getOrder
orders getOrder() const
Definition: WilsonTemplate.h:65
AmpDB2.h
Flavour::getHDF2
HeffDF2 & getHDF2() const
The member that returns an object of the class HeffDF2.
Definition: Flavour.cpp:43
Particle::getMass
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
QCD::getBBs
BParameter getBBs() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:619
QCD::getMesons
Meson getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:524
QCD::getMut
double getMut() const
A get method to access the threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:561
Meson::getDecayconst
const double & getDecayconst() const
A get method for the decay constant of the meson.
Definition: Meson.h:360
HeffDF2::getUDF2
EvolDF2 & getUDF2() const
Definition: HeffDF2.h:120
HeffDF2.h
StandardModel::getCBs
virtual double getCBs() const
The ratio of the absolute value of the $B_s$ mixing amplitude over the Standard Model value.
Definition: StandardModel.h:2429
AmpDB2::mySM
const StandardModel & mySM
Definition: AmpDB2.h:97
QCD::getQuarks
Particle getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:534
CKM::computeBetas
double computeBetas() const
The CKM angle .
Definition: CKM.cpp:97
QCD::getBBd
BParameter getBBd() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:608
CKM::computeRts
double computeRts() const
.
Definition: CKM.cpp:156
CKM::computeRt
double computeRt() const
.
Definition: CKM.cpp:152
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
StandardModel::getFlavour
const Flavour & getFlavour() const
Definition: StandardModel.h:1006
StandardModel::getPhiBd
virtual double getPhiBd() const
Half the relative phase of the $B_d$ mixing amplitude w.r.t. the Standard Model one.
Definition: StandardModel.h:2465
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
EvolDF2.h
AmpDB2::C_1_SM
gslpp::complex C_1_SM
Definition: AmpDB2.h:99
AmpDB2::AmpBs
gslpp::complex AmpBs(orders order)
A method to compute .
Definition: AmpDB2.cpp:116
BParameter::getScheme
schemes getScheme() const
A get method for the scheme of the bag parameters.
Definition: BParameter.h:222
AmpDB2::AmpBd
gslpp::complex AmpBd(orders order)
A method to compute .
Definition: AmpDB2.cpp:70
Flavour::ComputeCoeffBd
gslpp::vector< gslpp::complex > ** ComputeCoeffBd(double mu, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:53
Mw
An observable class for the -boson mass.
Definition: Mw.h:22
QCD::Mrun
double Mrun(const double mu, const double m, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1064
QCD::STRANGE
Definition: QCD.h:327
HeffDF2::getCoeffBs
WilsonCoefficient getCoeffBs() const
Definition: HeffDF2.h:104
AmpDB2::RBs
gslpp::complex RBs(orders order)
A method to compute the ratio of the absolute value of the $B_s$ mixing amplitude over the Standard M...
Definition: AmpDB2.cpp:20
QCD::B_D
Definition: QCD.h:343
AmpDB2::AmpDB2
AmpDB2(const StandardModel &SM_i)
Constructor.
Definition: AmpDB2.cpp:13
NLO
Definition: OrderScheme.h:34
StandardModel::Mw
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
Definition: StandardModel.cpp:944
EvolDF2::Df2Evol
gslpp::matrix< double > & Df2Evol(double mu, double M, orders order, schemes scheme=NDR)
Definition: EvolDF2.cpp:148
FULLNNLO
Definition: OrderScheme.h:38
StandardModel::getCBd
virtual double getCBd() const
The ratio of the absolute value of the $B_d$ mixing amplitude over the Standard Model value.
Definition: StandardModel.h:2420
QCD::DOWN
Definition: QCD.h:325
FULLNLO
Definition: OrderScheme.h:37
gslpp::vector< gslpp::complex >
AmpDB2::PBd
gslpp::complex PBd()
Definition: AmpDB2.cpp:152
BParameter::getMu
const double & getMu() const
A get method for the scale of the bag parameters.
Definition: BParameter.h:204
StandardModel::getCKM
CKM getCKM() const
A get method to retrieve the member object of type CKM.
Definition: StandardModel.h:876