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
18gslpp::complex AmpDK2::AmpDK(orders order)
19{
20 if (mySM.getFlavour().getHDF2().getCoeffK().getOrder() < order % 3)
21 throw std::runtime_error("AmpDK::computeThValue(): requires cofficient of order not computed");
22
23#if SUSYFIT_DEBUG & 4
24 std::cout << "alsmu" << mySM.Als(2.) << std::endl;
25#endif
26
27 gslpp::vector<gslpp::complex> ** allcoeff = mySM.getFlavour().ComputeCoeffK(
28 mySM.getBK().getMu(),
29 mySM.getBK().getScheme());
30
31 gslpp::vector<double> me(mySM.getBK().getBpars());
32#if SUSYFIT_DEBUG & 2
33 std::cout << "B-parameter: " << me(0) << std::endl;
34#endif
35#if SUSYFIT_DEBUG & 4
36 std::cout << "alsmu" << mySM.Als(2.) << std::endl;
37#endif
38
39 double MK = mySM.getMesons(QCD::K_0).getMass();
40 double Ms = mySM.Mrun(mySM.getBK().getMu(),
43 double Md = mySM.Mrun(mySM.getBK().getMu(),
46 double KK = MK/(Ms+Md)*MK/(Ms+Md);
47 double FK = mySM.getMesons(QCD::K_0).getDecayconst();
48 double mm = MK*FK*FK;
49 KK *= mm;
50 me(0) *= 1./3.*mm;
51 me(1) *= -5./24.*KK;
52 me(2) *= 1./24.*KK;
53 me(3) *= 1./4.*KK;
54 me(4) *= 1./12.*KK;
55
56#if SUSYFIT_DEBUG & 2
57 std::cout << "matrix element: " << me(0) << std::endl;
58#endif
59#if SUSYFIT_DEBUG & 4
60 std::cout << "alsmu" << mySM.Als(2.) << std::endl;
61#endif
62 switch(order) {
63 case FULLNLO:
64 return(((*(allcoeff[LO]) + *(allcoeff[NLO])) * me) / HCUT * 1.e3); // ns^-1
65 case LO:
66 return(((*(allcoeff[LO])) * me) / HCUT * 1.e3); // ns^-1
67 default:
68 throw std::runtime_error("AmpDK2::AmpDK(): order not implemented");
69 }
70}
71
72gslpp::complex AmpDK2::AmpDMKNP(orders order)
73{
74 if (mySM.getFlavour().getHDF2().getCoeffmK().getOrder() < order % 3)
75 throw std::runtime_error("AmpDMKNP::computeThValue(): requires cofficient of order not computed");
76
77 gslpp::vector<gslpp::complex> ** allcoeff = mySM.getFlavour().ComputeCoeffmK(
78 mySM.getBK().getMu(),
79 mySM.getBK().getScheme());
80
81 gslpp::vector<double> me(mySM.getBK().getBpars());
82 double MK = mySM.getMesons(QCD::K_0).getMass();
83 double Ms = mySM.Mrun(mySM.getBK().getMu(),
86 double Md = mySM.Mrun(mySM.getBK().getMu(),
89 double KK = MK/(Ms+Md)*MK/(Ms+Md);
90 double FK = mySM.getMesons(QCD::K_0).getDecayconst();
91 double mm = MK*FK*FK;
92 KK *= mm;
93 me(0) *= 1./3.*mm;
94 me(1) *= -5./24.*KK;
95 me(2) *= 1./24.*KK;
96 me(3) *= 1./4.*KK;
97 me(4) *= 1./12.*KK;
98
99 switch(order) {
100 case FULLNLO:
101 return(((*(allcoeff[LO]) + *(allcoeff[NLO])) * me) / HCUT * 1.e3); // ns^-1
102 case LO:
103 return(((*(allcoeff[LO])) * me) / HCUT * 1.e3); // ns^-1
104 default:
105 throw "AmpDM2::AmpDMKNP(): order not implemented";
106 }
107}
108
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ FULLNNLO
Definition: OrderScheme.h:39
@ FULLNLO
Definition: OrderScheme.h:38
gslpp::complex AmpDK(orders order)
compute the amplitude for kaon oscillations
Definition: AmpDK2.cpp:18
AmpDK2(const StandardModel &SM_i)
Constructor.
Definition: AmpDK2.cpp:12
const StandardModel & mySM
Definition: AmpDK2.h:55
gslpp::complex AmpDMKNP(orders order)
compute the NP part of the amplitude for kaon oscillations
Definition: AmpDK2.cpp:72
const double & getMu() const
A get method for the scale of the bag parameters.
Definition: BParameter.h:204
schemes getScheme() const
A get method for the scheme of the bag parameters.
Definition: BParameter.h:222
const gslpp::vector< double > & getBpars() const
A get method for the vector of the bag parameters.
Definition: BParameter.h:176
HeffDF2 & getHDF2() const
The member that returns an object of the class HeffDF2.
Definition: Flavour.cpp:81
gslpp::vector< gslpp::complex > ** ComputeCoeffmK(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:121
gslpp::vector< gslpp::complex > ** ComputeCoeffK(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:116
WilsonCoefficient getCoeffmK() const
Definition: HeffDF2.h:116
WilsonCoefficient getCoeffK() const
Definition: HeffDF2.h:112
const double & getDecayconst() const
A get method for the decay constant of the meson.
Definition: Meson.h:360
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
const BParameter & getBK() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:684
@ K_0
Definition: QCD.h:339
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:526
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1353
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
void initializeBParameter(std::string name_i) const
A method to initialize B Parameter and the corresponding meson.
Definition: QCD.cpp:211
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:536
A model class for the Standard Model.
const Flavour & getFlavour() const
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.
orders getOrder() const
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33