a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Dleptonnu.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#include "Dleptonnu.h"
9#include "StandardModel.h"
10
11
12Dleptonnu::Dleptonnu(const StandardModel& SM_i, QCD::meson meson_i, QCD::lepton lepton_i)
13: ThObservable(SM_i)
14{
15 lepton = lepton_i;
16 meson = meson_i;
17 SM.initializeMeson(meson);
18
19};
20
21
23{
24 double mlight, mlepton;
25 int i,k;
26
27 switch (lepton){
28 case QCD::TAU:
29 mlepton = SM.getLeptons(StandardModel::TAU).getMass();
30 k = 2;
31 break;
32 case QCD::MU:
33 mlepton = SM.getLeptons(StandardModel::MU).getMass();
34 k = 1;
35 break;
36 default:
37 std::runtime_error("The observable Dleptonnu is not added for that lepton " );
38 }
39
40 switch(meson) {
41 case QCD::D_P:
42 mlight=SM.getQuarks(QCD::DOWN).getMass();
43 i = 0;
44 break;
45 case QCD::D_S:
46 mlight=SM.getQuarks(QCD::STRANGE).getMass();
47 i = 1;
48 break;
49 default:
50 throw std::runtime_error("The observable Dleptonnu is only implemented for QCD::D_P,S " );
51}
52
53 double mD = SM.getMesons(meson).getMass();
54 double mc = SM.getQuarks(QCD::CHARM).getMass();
55
56 //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 in a similar basis
57 gslpp::vector<gslpp::complex> ** allcoeff = SM.getFlavour().ComputeCoeffdiujlknu(i,1,k,mD);
58
59 double fact = 1.; /*factor introduced to scale the decay constant from that of the neutral B to the charged B.*/
60 //double fact = 0.989;
61
62 //std::cout<< "SM value for D_S = "<< 1. / (64. * M_PI) * mlepton * mlepton * pow(fact * SM.getMesons(meson).getDecayconst(), 2.) * mD * pow(1. - mlepton * mlepton / mD / mD, 2.) / SM.getMesons(meson).computeWidth() * (4.*SM.getGF() * SM.getCKM().getV_cs() / sqrt(2.)).abs2() <<std::endl;
63
64 return 1. / (64. * M_PI) * mlepton * mlepton * pow(fact * SM.getMesons(meson).getDecayconst(), 2.) * mD * pow(1. - mlepton * mlepton / mD / mD, 2.) / SM.getMesons(meson).computeWidth() * ((*(allcoeff[LO]))(0)
65 -(*(allcoeff[LO]))(1) + mD * mD / (mc+mlight) / mlepton * ((*(allcoeff[LO]))(2) - (*(allcoeff[LO]))(3))).abs2(); // PLEASE NOTE THE DECAY CONST
66
67
68}
double computeThValue()
@ LO
Definition: OrderScheme.h:34
meson
An enum type for mesons.
Definition: QCD.h:336
@ D_P
Definition: QCD.h:342
@ D_S
Definition: QCD.h:343
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
@ CHARM
Definition: QCD.h:326
lepton
An enum type for leptons.
Definition: QCD.h:310
@ MU
Definition: QCD.h:314
@ TAU
Definition: QCD.h:316
A model class for the Standard Model.
A class for a model prediction of an observable.
Definition: ThObservable.h:25