a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
BR_Kppnunu Class Reference

A class for the branching ratio of \(K^+\to\pi^+\nu\bar{\nu}\). More...

#include <BR_Kppnunu.h>

+ Inheritance diagram for BR_Kppnunu:

Detailed Description

A class for the branching ratio of \(K^+\to\pi^+\nu\bar{\nu}\).

Author
HEPfit Collaboration

This class is used to compute the theoretical value of the branching ratio of \(K^+\to\pi^+\nu\bar{\nu}\).

Model parameters

The model parameters of BR_Kppnunu are summarized below:

Label LaTeX symbol Description
PhSp_KP \(\) The phase space integral of \(K^+\to\pi^+ \nu\bar{\nu}\) .
DeltaP_cu \(\) The long-distance correction to the charm contribution of \(K^+\to\pi^+\nu\bar{\nu}\).
IB_Kp \(\) Defined as \( f_+^{K^+\pi^+}/f_+^{K^0\pi^+}\)
Vus_fpK0Pip \(\) Defined as the norm of \( f_+^{K^0\pi^+} * V_{us}\)
Delta_EM \(\) Electromagnetic corrections to the decay.

Definition at line 67 of file BR_Kppnunu.h.

Public Member Functions

 BR_Kppnunu (const StandardModel &SM_i)
 
double BRKppnunu (orders order, orders_qed order_qed)
 
double computeThValue ()
 
double k_plus ()
 
gslpp::complex LongDistance ()
 
- Public Member Functions inherited from ThObservable
double getBinMax ()
 A get method to get the maximum value of the bin. More...
 
double getBinMin ()
 A get method to get the minimum value of the bin. More...
 
const StandardModelgetModel ()
 A get method to get the model. More...
 
const std::vector< std::string > getParametersForObservable ()
 A get method to get the parameters for the specific observable. More...
 
void setBinMax (double max)
 A set method to set the maximum value of the bin. More...
 
void setBinMin (double min)
 A set method to set the minimum value of the bin. More...
 
void setParametersForObservable (std::vector< std::string > parametersForObservable_i)
 A set method to get the parameters for the specific observable. More...
 
 ThObservable (const StandardModel &SM_i)
 Constructor. More...
 
 ThObservable (const ThObservable &orig)
 The copy constructor. More...
 
virtual ~ThObservable ()
 The default destructor. More...
 

Private Attributes

const StandardModelmySM
 

Additional Inherited Members

- Protected Attributes inherited from ThObservable
double max
 the bin maximum. More...
 
double min
 The bin minimum. More...
 
std::vector< std::string > parametersForObservable
 a vector of parameter namesfor the specific observable More...
 
const StandardModelSM
 A reference to an object of StandardMode class. More...
 

Constructor & Destructor Documentation

◆ BR_Kppnunu()

BR_Kppnunu::BR_Kppnunu ( const StandardModel SM_i)

constructor

Parameters
Flavour

Definition at line 12 of file BR_Kppnunu.cpp.

13: ThObservable(SM_i), mySM(SM_i)
14{
16
17 setParametersForObservable(make_vector<std::string>() << "DeltaP_cu" << "IB_Kp" << "Vus_fpK0Pip" << "PhSp_KP" << "Delta_EM");
18
19}
const StandardModel & mySM
Definition: BR_Kppnunu.h:108
@ K_P
Definition: QCD.h:340
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280
void setParametersForObservable(std::vector< std::string > parametersForObservable_i)
A set method to get the parameters for the specific observable.
Definition: ThObservable.h:109
ThObservable(const StandardModel &SM_i)
Constructor.
Definition: ThObservable.h:32

Member Function Documentation

◆ BRKppnunu()

double BR_Kppnunu::BRKppnunu ( orders  order,
orders_qed  order_qed 
)
Parameters
order
order_qed
Returns
the short distance contribution to the | \( BR(K^{+} \rightarrow \pi^{+} \nu \bar{\nu}) \)|, for example see 0805.4119 eq 4. Warning: There is no division by lambda^10 here

Definition at line 27 of file BR_Kppnunu.cpp.

28{
29 if (mySM.getFlavour().getHDS1().getCoeffDS1pnunu().getOrder() < order){
30 std::stringstream out;
31 out << order;
32 throw std::runtime_error("BRKppnunu::computeThValue(): requires cofficient of "
33 "order" + out.str() + "not computed");
34 }
35
36 if (mySM.getFlavour().getHDS1().getCoeffDS1pnunu().getOrder_qed()< order_qed){
37 std::stringstream out2;
38 out2 << order_qed;
39 throw std::runtime_error("BRKppnunu::computeThValue(): requires cofficient of "
40 " qed order " + out2.str() + " not computed");
41 }
42
43
44 gslpp::vector<gslpp::complex> ** c0_lamt_Xt = mySM.getFlavour().ComputeCoeffDS1pnunu() ;
45 gslpp::vector<gslpp::complex> ** c0_lamc_Xc = mySM.getFlavour().ComputeCoeffDS1pnunuC();
46
47 switch(order_qed) {
48 case NLO_QED11:
49 //std::cout << "Pc: " << ( (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + (*(c0_lamc_Xc[NNLO]))(0) + (*(c0_lamc_Xc[LO_QED]))(0) + (*(c0_lamc_Xc[NLO_QED11]))(0)).real() / (4. * mySM.getGF() / sqrt(2.) * mySM.alphaMz() / 2. / M_PI / mySM.sW2_ND()) / pow(mySM.getCKM().getLambda(),4.) / mySM.getCKM().computelamc().real() << std::endl;
50 //std::cout << "deltaPC: " << LongDistance().real() / (4. * mySM.getGF() / sqrt(2.) * mySM.alphaMz() / 2. / M_PI / mySM.sW2_ND()) / pow(mySM.getCKM().getLambda(),4.) / mySM.getCKM().computelamc().real() << std::endl;
51 //std::cout << "Xt: " << ( ((*(c0_lamt_Xt[LO]))).imag() + ((*(c0_lamt_Xt[NLO]))).imag() + ((*(c0_lamt_Xt[NLO_QED11]))).imag() ) / (4. * mySM.getGF() / sqrt(2.) * mySM.alphaMz() / 2. / M_PI / mySM.sW2_ND()) / mySM.getCKM().computelamt().imag() << std::endl;
52 return (( (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) + (*(c0_lamt_Xt[NLO_QED11]))(0) + (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + (*(c0_lamc_Xc[NNLO]))(0) + (*(c0_lamc_Xc[LO_QED]))(0) + (*(c0_lamc_Xc[NLO_QED11]))(0) + LongDistance() ).abs2()
53 + ( (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) + (*(c0_lamt_Xt[NLO_QED11]))(1)).abs2() );
54 break;
55 case LO_QED:
56 return(( (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) + (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + (*(c0_lamc_Xc[NNLO]))(0) + (*(c0_lamc_Xc[LO_QED]))(0) + LongDistance() ).abs2()
57 + ( (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) ).abs2()) ;
58 break;
59 case NO_QED:
60 switch(order) {
61 case NNLO:
62 return (( (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) + (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + (*(c0_lamc_Xc[NNLO]))(0) + LongDistance() ).abs2()
63 + ( (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) ).abs2());
64 break;
65 case NLO:
66 return (( (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) + (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + (*(c0_lamc_Xc[LO_QED]))(0) + LongDistance() ).abs2()
67 + ( (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) ).abs2() );
68 break;
69 case LO:
70 return (( (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamc_Xc[LO]))(0) + LongDistance() ).abs2()
71 + ( (*(c0_lamt_Xt[LO]))(1) ).abs2() );
72 break;
73 default:
74 std::stringstream out;
75 out << order;
76 throw std::runtime_error("BRKppnunu::BRKppnunu(): order " + out.str() + "not implemented");
77 }
78 default:
79 std::stringstream out;
80 out << order_qed;
81 throw std::runtime_error("BRKppnunu::BRKppnunu(): order_qed " + out.str() + "not implemented");
82 }
83}
@ NNLO
Definition: OrderScheme.h:36
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ NLO_QED11
Definition: OrderScheme.h:59
@ LO_QED
Definition: OrderScheme.h:58
@ NO_QED
Definition: OrderScheme.h:57
gslpp::complex LongDistance()
Definition: BR_Kppnunu.cpp:93
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1pnunuC() const
Definition: Flavour.cpp:141
HeffDS1 & getHDS1() const
The member that returns an object of the class HeffDS1.
Definition: Flavour.cpp:91
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1pnunu() const
Definition: Flavour.cpp:136
WilsonCoefficient getCoeffDS1pnunu() const
Definition: HeffDS1.h:58
const Flavour & getFlavour() const
orders_qed getOrder_qed() const
orders getOrder() const

◆ computeThValue()

double BR_Kppnunu::computeThValue ( )
virtual
Returns
theoretical value of | \( BR(K^{+} \rightarrow \pi^+ \nu \bar{\nu}) \)|, See arxiv: 0705.2025v2 eq. 7

Implements ThObservable.

Definition at line 21 of file BR_Kppnunu.cpp.

22{
23 //std::cout <<" k+" << k_plus() * pow( 4. * mySM.getGF() / sqrt(2.) * mySM.alphaMz() / 2. / M_PI / mySM.sW2_ND(),2.) * pow(mySM.getCKM().getLambda() ,10. ) << std::endl;
24 return( k_plus() * (1. + mySM.getOptionalParameter("Delta_EM")) * BRKppnunu(NLO, NLO_QED11) );
25}
double BRKppnunu(orders order, orders_qed order_qed)
Definition: BR_Kppnunu.cpp:27
double k_plus()
Definition: BR_Kppnunu.cpp:86
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

◆ k_plus()

double BR_Kppnunu::k_plus ( )
Returns
The prefactor of the branching ratio. The inclusion of the factor c0 (prefactor of the Wilson Coefficients) is done in this function. See arxiv: 0705.2025v2 eq. 52

Definition at line 86 of file BR_Kppnunu.cpp.

86 {
87
88 return (mySM.getOptionalParameter("IB_Kp") * mySM.getOptionalParameter("IB_Kp") * mySM.getOptionalParameter("Vus_fpK0Pip") * mySM.getOptionalParameter("Vus_fpK0Pip") * mySM.getOptionalParameter("PhSp_KP") *
89 pow(mySM.getMesons(QCD::K_P).getMass(),5.) * mySM.getMesons(QCD::K_P).getLifetime() / HCUT / 512 / M_PI / M_PI / M_PI / mySM.getCKM().getLambda() / mySM.getCKM().getLambda());
90
91}
const double getLambda() const
A member for returning the value of the Wolfenstein parameter .
Definition: CKM.h:88
double getLifetime() const
A get method for the lifetime of the meson.
Definition: Meson.h:351
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
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 CKM & getCKM() const
A get method to retrieve the member object of type CKM.

◆ LongDistance()

gslpp::complex BR_Kppnunu::LongDistance ( )
Returns
the long distance contribution of the charm: c0 * \lambda_c * \delta P_c * \lambda^4 where co is the prefactor of the Wilson Coefficients: 4. * GF / sqrt(2.) * alphaMz / 2. / M_PI / sW2_ND

Definition at line 93 of file BR_Kppnunu.cpp.

94{
95 return 4. * mySM.getGF() / sqrt(2.) * mySM.alphaMz() / 2. / M_PI / mySM.sW2_ND() * mySM.getCKM().computelamc() * mySM.getOptionalParameter("DeltaP_cu") * pow(mySM.getCKM().getLambda(),4.) ;
96}
const gslpp::complex computelamc() const
The product of the CKM elements .
Definition: CKM.cpp:147
const double getGF() const
A get method to retrieve the Fermi constant .
const double sW2_ND() const
The square of the sine of the weak mixing angle in the MSbar-ND scheme (w/o decoupling $\alpha\ln(m_t...
virtual const double alphaMz() const
The electromagnetic coupling at the -mass scale, .

Member Data Documentation

◆ mySM

const StandardModel& BR_Kppnunu::mySM
private

Definition at line 108 of file BR_Kppnunu.h.


The documentation for this class was generated from the following files: