a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Kmunu_o_Pmunu.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2023 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8
9
10#include "Kmunu_o_Pmunu.h"
11#include "StandardModel.h"
12#include "std_make_vector.h"
13
14
15
17: ThObservable(SM_i)
18{
19
20
21 setParametersForObservable(make_vector<std::string>() << "fKofP" << "delKl2Pl2em");
24
25};
26
27
29{
30 //The WC are written in the LEFT basis of arxiv:1709.04486 the expressions can be found in arxiv:1706.00410 and arxiv:1605.07114
31 gslpp::vector<gslpp::complex> ** allcoeff_K_mu_nu = SM.getFlavour().ComputeCoeffdiujlknu(1,0,1,SM.getQuarks(QCD::UP).getMass_scale());
32 gslpp::vector<gslpp::complex> ** allcoeff_P_mu_nu = SM.getFlavour().ComputeCoeffdiujlknu(0,0,1,SM.getQuarks(QCD::UP).getMass_scale());
33
34
35 double mK = SM.getMesons(QCD::K_P).getMass();
36 double mP = SM.getMesons(QCD::P_P).getMass();
37
38
39 double mu = SM.getQuarks(QCD::UP).getMass();
40 double md = SM.getQuarks(QCD::DOWN).getMass();
41 double ms = SM.getQuarks(QCD::STRANGE).getMass();
42 double mmu = SM.getLeptons(StandardModel::MU).getMass();
43
44
45
46
47 //double delKl2Pl2em = -0.0070;
48 //double fKofP = 1.1932;
49
50
51 double fKofP = SM.getOptionalParameter("fKofP"); // this is the ratio of charged meson decay constants in the SU(2)-symmetric limit
52 double delKl2Pl2em = SM.getOptionalParameter("delKl2Pl2em"); //this is the non-perturbative EM + strong isospin violation correction to the ratio of decay rates
53
54
55 double num = ((*(allcoeff_K_mu_nu[LO]))(0) -(*(allcoeff_K_mu_nu[LO]))(1) + mK * mK / (ms+mu) / mmu * ((*(allcoeff_K_mu_nu[LO]))(2) - (*(allcoeff_K_mu_nu[LO]))(3))).abs2();
56 double den = ((*(allcoeff_P_mu_nu[LO]))(0) -(*(allcoeff_P_mu_nu[LO]))(1) + mP * mP / (md+mu) / mmu * ((*(allcoeff_P_mu_nu[LO]))(2) - (*(allcoeff_P_mu_nu[LO]))(3))).abs2();
57
58 //double WCnum = 1.0;
59 //double WCden = 1.0;
60
61 //return 1.;
62 return mK/mP * (1-mmu*mmu/mK/mK) * (1-mmu*mmu/mK/mK)/(1-mmu*mmu/mP/mP)/(1-mmu*mmu/mP/mP)*fKofP*fKofP*(1+delKl2Pl2em)*num/den;
63
64}
@ LO
Definition: OrderScheme.h:34
gslpp::vector< gslpp::complex > ** ComputeCoeffdiujlknu(int i, int j, int k, double mu) const
Computes the Wilson coefficient for the Hamiltonian transitions in the JMS basis ordered as CnueduVL...
Definition: Flavour.cpp:152
double computeThValue()
arXiv:1206.2634v2
Kmunu_o_Pmunu(const StandardModel &SM_i)
Constructor.
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
@ K_P
Definition: QCD.h:340
@ P_P
Definition: QCD.h:338
const double getOptionalParameter(std::string name) const
A method to get parameters that are specific to only one set of observables.
Definition: QCD.h:450
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
@ UP
Definition: QCD.h:324
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
@ MU
Definition: QCD.h:314
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
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280
A model class for the Standard Model.
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const Flavour & getFlavour() const
A class for a model prediction of an observable.
Definition: ThObservable.h:25
void setParametersForObservable(std::vector< std::string > parametersForObservable_i)
A set method to get the parameters for the specific observable.
Definition: ThObservable.h:109
const StandardModel & SM
A reference to an object of StandardMode class.
Definition: ThObservable.h:121