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

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

#include <BR_Kp0nunu.h>

+ Inheritance diagram for BR_Kp0nunu:

Detailed Description

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

Author
HEPfit Collaboration

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

Model parameters

The model parameters of BR_Kppnunu are summarized below:

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

Definition at line 74 of file BR_Kp0nunu.h.

Public Member Functions

 BR_Kp0nunu (const StandardModel &SM_i)
 
double BRKp0nunu (orders order, orders_qed order_qed)
 
double computeThValue ()
 
double k_zero ()
 
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_Kp0nunu()

BR_Kp0nunu::BR_Kp0nunu ( const StandardModel SM_i)

constructor

Parameters
Flavour

Definition at line 13 of file BR_Kp0nunu.cpp.

14: ThObservable(SM_i), mySM(SM_i)
15{
16
18
19 setParametersForObservable(make_vector<std::string>() << "PhSp_KL" << "IB_Kl" << "IB_Kp" << "IB_K0p" << "EpsK" << "DeltaP_cu" << "Vus_fpK0Pip");
20}
const StandardModel & mySM
Definition: BR_Kp0nunu.h:116
@ K_0
Definition: QCD.h:339
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

◆ BRKp0nunu()

double BR_Kp0nunu::BRKp0nunu ( orders  order,
orders_qed  order_qed 
)
Parameters
order
order_qed
Returns
the short distance contribution to the \( BR(K_{L} \rightarrow \pi^{0} \nu \bar{\nu}) \), See hep-ph/9607447v1 for the non approximate formula

Definition at line 27 of file BR_Kp0nunu.cpp.

28{
29 gslpp::vector<gslpp::complex>** c0_lamt_Xt = mySM.getFlavour().ComputeCoeffDS1pnunu();
30 gslpp::vector<gslpp::complex> ** c0_lamc_Xc = mySM.getFlavour().ComputeCoeffDS1pnunuC();
31 gslpp::complex eps(mySM.getOptionalParameter("EpsK")/sqrt(2.),mySM.getOptionalParameter("EpsK")/sqrt(2.));
32
33 if (mySM.getFlavour().getHDS1().getCoeffDS1pnunu().getOrder() < order){
34 std::stringstream out;
35 out << order;
36 throw std::runtime_error("BRKppnunu::computeThValue(): requires cofficient of "
37 "order" + out.str() + "not computed");
38 }
39
40 if (mySM.getFlavour().getHDS1().getCoeffDS1pnunu().getOrder_qed() < order_qed){
41 std::stringstream out2;
42 out2 << order_qed;
43 throw std::runtime_error("BRKppnunu::computeThValue(): requires cofficient of "
44 " qed order " + out2.str() + " not computed");
45 }
46 gslpp::complex c0_Xi;
47 double br = 0.;
48 switch(order_qed) {
49 case NLO_QED11:
50 c0_Xi =( (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) + (*(c0_lamt_Xt[NLO_QED11]))(0) +
51 (*(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() );
52 br = ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
53 c0_Xi =( (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) + (*(c0_lamt_Xt[NLO_QED11]))(1) );
54 br += ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
55 return br;
56 case LO_QED:{
57 switch(order) {
58 case NNLO:{
59 c0_Xi = (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) +
60 (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + (*(c0_lamc_Xc[NNLO]))(0) + LongDistance() ;
61 br = ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
62 c0_Xi = (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) ;
63 br += ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
64 return br;
65 }
66 case NLO:{
67 c0_Xi = (*(c0_lamt_Xt[LO]))(0) + (*(c0_lamt_Xt[NLO]))(0) +
68 (*(c0_lamc_Xc[LO]))(0) + (*(c0_lamc_Xc[NLO]))(0) + LongDistance() ;
69 br = ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
70 c0_Xi = (*(c0_lamt_Xt[LO]))(1) + (*(c0_lamt_Xt[NLO]))(1) ;
71 br += ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
72 return br;
73 }
74 case LO:{
75 c0_Xi = (*(c0_lamt_Xt[LO]))(0) +
76 (*(c0_lamc_Xc[LO]))(0) + LongDistance() ;
77 br = ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
78 c0_Xi = (*(c0_lamt_Xt[LO]))(1) ;
79 br += ( 0.5*(c0_Xi - c0_Xi.conjugate()*(1-eps)/(1+eps)).abs2() / (1+((1-eps)/(1+eps)).abs2()) );
80 return br;
81 }
82 default:
83 std::stringstream out;
84 out << order;
85 throw std::runtime_error("BRKp0nunu::BRKp0nunu(): order " + out.str() + "not implemented");
86 }
87 }
88 default:
89 std::stringstream out;
90 out << order_qed;
91 throw std::runtime_error("BRKp0nunu::BRKp0nunu(): order_qed " + out.str() + "not implemented");
92 }
93}
@ 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
gslpp::complex LongDistance()
Definition: BR_Kp0nunu.cpp:104
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 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 Flavour & getFlavour() const
orders_qed getOrder_qed() const
orders getOrder() const

◆ computeThValue()

double BR_Kp0nunu::computeThValue ( )
virtual
Returns
theoretical value of \( BR(K_L \rightarrow \pi^{0} \nu \bar{\nu}) \), for example see hep-ph/0603079 section 2.3

Implements ThObservable.

Definition at line 22 of file BR_Kp0nunu.cpp.

23{
24 return( k_zero() * BRKp0nunu(NLO, NLO_QED11) );
25}
double BRKp0nunu(orders order, orders_qed order_qed)
Definition: BR_Kp0nunu.cpp:27
double k_zero()
Definition: BR_Kp0nunu.cpp:96

◆ k_zero()

double BR_Kp0nunu::k_zero ( )
Returns
The prefactor of the branching ratio. The inclusion of the factor c0 (prefactor of the Wilson Coefficients) is done in this function. See hep-ph/9607447v1

Definition at line 96 of file BR_Kp0nunu.cpp.

97{
99 mySM.getOptionalParameter("Vus_fpK0Pip") * mySM.getOptionalParameter("Vus_fpK0Pip") * mySM.getOptionalParameter("PhSp_KL") *
100 pow(mySM.getMesons(QCD::K_0).getMass(),5.) * mySM.getMesons(QCD::K_0).getLifetime() / HCUT / 512 / M_PI / M_PI / M_PI / mySM.getCKM().getLambda() / mySM.getCKM().getLambda());
101
102}
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_Kp0nunu::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 104 of file BR_Kp0nunu.cpp.

105{
106 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.) ;
107}
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_Kp0nunu::mySM
private

Definition at line 116 of file BR_Kp0nunu.h.


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