a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Pmunu.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2024 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8
9
10#include "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>() << "fK" << "delPl2em" << "fKofP");
23
24};
25
26
28{
29 //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
30 gslpp::vector<gslpp::complex> ** allcoeff_P_mu_nu = SM.getFlavour().ComputeCoeffdiujlknu(0,0,1,SM.getQuarks(QCD::UP).getMass_scale());
31
32 double mP = SM.getMesons(QCD::P_P).getMass();
33
34 double mu = SM.getQuarks(QCD::UP).getMass();
35 double md = SM.getQuarks(QCD::DOWN).getMass();
36 double mmu = SM.getLeptons(StandardModel::MU).getMass();
37
38 double fP = SM.getOptionalParameter("fK") / SM.getOptionalParameter("fKofP"); // this is the pion decay constant in the SU(2)-symmetric limit
39 double delPl2em = SM.getOptionalParameter("delPl2em"); //this is the non-perturbative EM + strong isospin violation correction to the decay rate
40
41 double amp2 = ((*(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();
42
43 //double WCnum = 1.0;
44 //double WCden = 1.0;
45
46 //return 1.;
47 return 1. / (64. * M_PI) * mmu * mmu * mP * (1-mmu*mmu/mP/mP) * (1-mmu*mmu/mP/mP) * fP * fP * (1+delPl2em) * amp2 / HCUT;
48
49}
@ 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 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
double computeThValue()
arXiv:1605.07114
Definition: Pmunu.cpp:27
Pmunu(const StandardModel &SM_i)
Constructor.
Definition: Pmunu.cpp:16
@ 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
@ 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