a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
AmpDK2.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 "AmpDK2.h"
9 #include "StandardModel.h"
10 #include "HeffDF2.h"
11 
13 : mySM(SM_i)
14 {
16 }
17 
19 {
20  if (mySM.getFlavour().getHDF2().getCoeffK().getOrder() < order % 3)
21  throw std::runtime_error("AmpDK::computeThValue(): requires cofficient of order not computed");
22 
24  mySM.getBK().getMu(),
25  mySM.getBK().getScheme());
26 
28 #if SUSYFIT_DEBUG & 2
29  std::cout << "B-parameter: " << me(0) << std::endl;
30 #endif
31 
32  double MK = mySM.getMesons(QCD::K_0).getMass();
33  double Ms = mySM.Mrun(mySM.getBK().getMu(),
36  double Md = mySM.Mrun(mySM.getBK().getMu(),
39  double KK = MK/(Ms+Md)*MK/(Ms+Md);
40  double FK = mySM.getMesons(QCD::K_0).getDecayconst();
41  double mm = MK*FK*FK;
42  KK *= mm;
43  me(0) *= 1./3.*mm;
44  me(1) *= -5./24.*KK;
45  me(2) *= 1./24.*KK;
46  me(3) *= 1./4.*KK;
47  me(4) *= 1./12.*KK;
48 
49 #if SUSYFIT_DEBUG & 2
50  std::cout << "matrix element: " << me(0) << std::endl;
51 #endif
52  switch(order) {
53  case FULLNLO:
54  return((*(allcoeff[LO]) + *(allcoeff[NLO])) * me);
55  case LO:
56  return((*(allcoeff[LO])) * me);
57  default:
58  throw std::runtime_error("AmpDK2::AmpDK(): order not implemented");
59  }
60 }
61 
63 {
64  if (mySM.getFlavour().getHDF2().getCoeffmK().getOrder() < order % 3)
65  throw std::runtime_error("AmpDMKNP::computeThValue(): requires cofficient of order not computed");
66 
68  mySM.getBK().getMu(),
69  mySM.getBK().getScheme());
70 
72  double MK = mySM.getMesons(QCD::K_0).getMass();
73  double Ms = mySM.Mrun(mySM.getBK().getMu(),
76  double Md = mySM.Mrun(mySM.getBK().getMu(),
79  double KK = MK/(Ms+Md)*MK/(Ms+Md);
80  double FK = mySM.getMesons(QCD::K_0).getDecayconst();
81  double mm = MK*FK*FK;
82  KK *= mm;
83  me(0) *= 1./3.*mm;
84  me(1) *= -5./24.*KK;
85  me(2) *= 1./24.*KK;
86  me(3) *= 1./4.*KK;
87  me(4) *= 1./12.*KK;
88 
89  switch(order) {
90  case FULLNLO:
91  return((*(allcoeff[LO]) + *(allcoeff[NLO])) * me);
92  case LO:
93  return((*(allcoeff[LO])) * me);
94  default:
95  throw "AmpDM2::AmpDMKNP(): order not implemented";
96  }
97 }
98 
QCD::initializeBParameter
void initializeBParameter(std::string name_i) const
A method to initialize B Parameter and the corresponding meson.
Definition: QCD.cpp:192
Flavour::ComputeCoeffK
gslpp::vector< gslpp::complex > ** ComputeCoeffK(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:68
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
HeffDF2::getCoeffmK
WilsonCoefficient getCoeffmK() const
Definition: HeffDF2.h:116
Flavour::ComputeCoeffmK
gslpp::vector< gslpp::complex > ** ComputeCoeffmK(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:73
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
AmpDK2.h
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
HeffDF2::getCoeffK
WilsonCoefficient getCoeffK() const
Definition: HeffDF2.h:112
AmpDK2::mySM
const StandardModel & mySM
Definition: AmpDK2.h:55
WilsonTemplate::getOrder
orders getOrder() const
Definition: WilsonTemplate.h:65
AmpDK2::AmpDMKNP
gslpp::complex AmpDMKNP(orders order)
compute the NP part of the amplitude for kaon oscillations
Definition: AmpDK2.cpp:62
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
AmpDK2::AmpDK
gslpp::complex AmpDK(orders order)
compute the amplitude for kaon oscillations
Definition: AmpDK2.cpp:18
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
Meson::getDecayconst
const double & getDecayconst() const
A get method for the decay constant of the meson.
Definition: Meson.h:360
HeffDF2.h
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
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
AmpDK2::AmpDK2
AmpDK2(const StandardModel &SM_i)
Constructor.
Definition: AmpDK2.cpp:12
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
QCD::getBK
BParameter getBK() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:641
BParameter::getScheme
schemes getScheme() const
A get method for the scheme of the bag parameters.
Definition: BParameter.h:222
QCD::K_0
Definition: QCD.h:339
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
NLO
Definition: OrderScheme.h:34
FULLNNLO
Definition: OrderScheme.h:38
QCD::DOWN
Definition: QCD.h:325
FULLNLO
Definition: OrderScheme.h:37
gslpp::vector< gslpp::complex >
BParameter::getMu
const double & getMu() const
A get method for the scale of the bag parameters.
Definition: BParameter.h:204