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

#include <Mll.h>

+ Inheritance diagram for Mll:

Detailed Description

Definition at line 16 of file Mll.h.

Public Member Functions

double computeAmumu (orders order)
 
double computeSmumu (orders order)
 
double computeThValue ()
 hep-ph/9512380v2 More...
 
 Mll (const StandardModel &SM_i, int obsFlag, QCD::meson meson_i, QCD::lepton lep_i)
 
- 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...
 

Protected Member Functions

void computeAmpSq (orders order, orders_qed order_qed, double mu)
 
void computeObs (orders order, orders_qed order_qed)
 

Private Attributes

double absP
 
double absS
 
gslpp::vector< gslpp::complex > ** allcoeff
 
gslpp::vector< gslpp::complex > ** allcoeff_noSM
 
gslpp::vector< gslpp::complex > ** allcoeffprime
 
double ampSq
 
double Amumu
 
double argP
 
double argS
 
double beta
 
gslpp::complex C_10
 
gslpp::complex C_10p
 
gslpp::complex C_P
 
gslpp::complex C_Pp
 
gslpp::complex C_S
 
gslpp::complex C_Sp
 
double chiral
 
gslpp::complex CKM_factor
 
bool FixedWCbtos
 
QCD::lepton lep
 
double mb
 
double mBs
 
QCD::meson meson
 
double mlep
 
double ms
 
double mW
 
int obs
 
double phiNP
 
double Smumu
 
double timeInt
 
double ys
 

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

◆ Mll()

Mll::Mll ( const StandardModel SM_i,
int  obsFlag,
QCD::meson  meson_i,
QCD::lepton  lep_i 
)

constructor

Parameters
Flavour

Definition at line 12 of file Mll.cpp.

13: ThObservable(SM_i)
14{
15 meson = meson_i;
16 lep = lep_i;
17 if (obsFlag > 0 and obsFlag < 5) obs = obsFlag;
18 else throw std::runtime_error("obsFlag in Bsmumu(myFlavour, obsFlag) called from ThFactory::ThFactory() can only be 1 (BR) or 2 (BRbar) or 3 (Amumu) or 4 (Smumu)");
21 if (FixedWCbtos){
22 std::vector<std::string> pars;
23 pars.push_back("C10_SM");
25 }
26};
bool getFlagFixedWCbtos() const
Definition: Flavour.h:352
QCD::lepton lep
Definition: Mll.h:48
bool FixedWCbtos
Definition: Mll.h:75
int obs
Definition: Mll.h:68
QCD::meson meson
Definition: Mll.h:49
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280
const Flavour & getFlavour() const
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
const StandardModel & SM
A reference to an object of StandardMode class.
Definition: ThObservable.h:121

Member Function Documentation

◆ computeAmpSq()

void Mll::computeAmpSq ( orders  order,
orders_qed  order_qed,
double  mu 
)
protected
Parameters
order
order_qed
Returns
the short distance contribution to the | \( BR(B_s \rightarrow \mu \bar{\mu}) \)|

Definition at line 85 of file Mll.cpp.

86{
87 if (SM.getFlavour().getHDB1().getCoeffsmumu().getOrder() < order % 3){
88 std::stringstream out;
89 out << order;
90 throw std::runtime_error("Bsmumu::computeAmpSq(): required cofficient of "
91 "order " + out.str() + " not computed");
92 }
93 /* Temporary usage of MVll class here below */
94// gslpp::vector<gslpp::complex> ** allcoeffmumu; /* Double GF for including EW corrections*/
95// if (meson == QCD::B_S) allcoeffmumu = SM.getFlavour().ComputeCoeffsmumu(mu, NDR); /* Double GF for including EW corrections*/
96// if (meson == QCD::B_D) allcoeffmumu = SM.getFlavour().ComputeCoeffdmumu(mu, NDR); /* Double GF for including EW corrections*/
97
98 allcoeff = SM.getFlavour().ComputeCoeffBMll(mu, lep); /* Single GF for excluding EW corrections*/
99 allcoeffprime = SM.getFlavour().ComputeCoeffprimeBMll(mu, lep); /* Single GF for excluding EW corrections*/
100
101// double alsmu = SM.Als(mu, FULLNNLO, true)/4./M_PI; /* tilde */ /* Double GF for including EW corrections*/
102// double alemu = SM.Ale(mu, FULLNNLO)/4./M_PI; /* tilde */ /* Double GF for including EW corrections*/
103
104// double sw = sqrt( (M_PI * SM.getAle() ) / ( sqrt(2.) * SM.getGF() * SM.Mw() * SM.Mw()) ); /* Spurious sw */
105
106 C_10p = (*(allcoeffprime[LO]))(9) + (*(allcoeffprime[NLO]))(9);
107 C_S = (*(allcoeff[LO]))(10) + (*(allcoeff[NLO]))(10);
108 C_Sp = (*(allcoeffprime[LO]))(10) + (*(allcoeffprime[NLO]))(10);
109 C_P = (*(allcoeff[LO]))(11) + (*(allcoeff[NLO]))(11);
110 C_Pp = (*(allcoeffprime[LO]))(11) + (*(allcoeffprime[NLO]))(11);
111
112 if (FixedWCbtos) {
113 allcoeff_noSM = SM.getFlavour().ComputeCoeffBMll(mu, lep, true); /* Single GF for excluding EW corrections*/
114 C_10 = SM.getOptionalParameter("C10_SM") + ((*(allcoeff_noSM[LO]))(9) + (*(allcoeff_noSM[NLO]))(9));
115 }
116 else C_10 = ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9));
117
118 if ((order == FULLNLO) && (order_qed == FULLNLO_QED)) {
119
120 switch (order_qed) {
121 case FULLNLO_QED:
122 {
123 /* Implementation to be corrected and updated with new EVO: At present better to use MVll!*/ /* Double GF for including EW corrections*/
124 // gslpp::complex C10_SM = (*(allcoeffmumu[LO]))(7) /alemu + (*(allcoeffmumu[NLO]))(7) * alsmu/alemu
125 // + (*(allcoeffmumu[NNLO]))(7) * alsmu * alsmu/alemu + (*(allcoeffmumu[LO_QED ]))(7) /alsmu
126 // + (*(allcoeffmumu[NLO_QED11]))(7) + (*(allcoeffmumu[NLO_QED02]))(7) * alemu /alsmu /alsmu
127 // + (*(allcoeffmumu[NLO_QED21]))(7) * alsmu
128 // + (*(allcoeffmumu[NLO_QED12]))(7) * alemu /alsmu+ (*(allcoeffmumu[NLO_QED22]))(7) * alemu;
129
130 /* Temporary usage of MVll result */
131 // std::cout << " C10_SM " << C10_SM << std::endl;
132 // gslpp::complex C10_SM_plus_NP = CKM_factor * sw * sw * ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9));
133 // std::cout << " C10_SM_plus_NP " << C10_SM_plus_NP / sw / sw / CKM_factor << std::endl;
134
135 // gslpp::complex CC_P = C10_SM; /* Double GF for including EW corrections*/
136 // gslpp::complex CC_P = CKM_factor * sw * sw * ( C_10 - C_10p + mBs*mBs / ( 2.*mlep*(mb+ms) ) * (C_P - C_Pp) ); /* Spurious sw */
137 gslpp::complex CC_P = CKM_factor * (C_10 - C_10p + mBs * mBs / (2. * mlep * (mb + ms)) * (C_P - C_Pp)); /* Single GF for excluding EW corrections*/
138
139 absP = CC_P.abs(); //contains only SM contributions (P, P', S, S' not added)
140 argP = CC_P.arg();
141
142 // gslpp::complex CC_S = CKM_factor * sw * sw * ( beta * mBs*mBs / ( 2.*mlep*(mb+ms) ) * (C_S - C_Sp) ); /* Spurious sw */
143 gslpp::complex CC_S = CKM_factor * (beta * mBs * mBs / (2. * mlep * (mb + ms)) * (C_S - C_Sp)); /* Single GF for excluding EW corrections*/
144
145 absS = CC_S.abs();
146 argS = CC_S.arg();
147
148 phiNP = 0.;
149
150 ampSq = absP * absP + absS * absS;
151
152 }
153 break;
154 default:
155 std::stringstream out;
156 out << order;
157 throw std::runtime_error("Bsmumu::computeAmpSq(): order " + out.str() + " not implemented");
158 }
159 }
160
161}
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ FULLNLO
Definition: OrderScheme.h:38
@ FULLNLO_QED
Definition: OrderScheme.h:64
HeffDB1 & getHDB1() const
The member that returns an object of the class HeffDB1.
Definition: Flavour.cpp:96
gslpp::vector< gslpp::complex > ** ComputeCoeffprimeBMll(double mu, QCD::lepton lepton, schemes scheme=NDR) const
Computes the chirality flipped Wilson coefficient for the process .
Definition: Flavour.cpp:204
gslpp::vector< gslpp::complex > ** ComputeCoeffBMll(double mu, QCD::lepton lepton, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:194
WilsonCoefficient getCoeffsmumu() const
Definition: HeffDB1.h:176
gslpp::complex C_Pp
Definition: Mll.h:74
gslpp::vector< gslpp::complex > ** allcoeff_noSM
Definition: Mll.h:79
double absP
Definition: Mll.h:59
gslpp::complex C_10
Definition: Mll.h:69
gslpp::vector< gslpp::complex > ** allcoeff
Definition: Mll.h:77
double mBs
Definition: Mll.h:53
double mlep
Definition: Mll.h:55
double beta
Definition: Mll.h:52
gslpp::complex C_Sp
Definition: Mll.h:72
gslpp::vector< gslpp::complex > ** allcoeffprime
Definition: Mll.h:78
gslpp::complex C_P
Definition: Mll.h:73
double mb
Definition: Mll.h:56
double absS
Definition: Mll.h:61
gslpp::complex C_S
Definition: Mll.h:71
gslpp::complex CKM_factor
Definition: Mll.h:51
double ms
Definition: Mll.h:57
double phiNP
Definition: Mll.h:66
gslpp::complex C_10p
Definition: Mll.h:70
double ampSq
Definition: Mll.h:63
double argP
Definition: Mll.h:60
double argS
Definition: Mll.h:62
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
orders getOrder() const

◆ computeAmumu()

double Mll::computeAmumu ( orders  order)

Definition at line 73 of file Mll.cpp.

74{
76 return(Amumu);
77}
double Amumu
Definition: Mll.h:64
void computeObs(orders order, orders_qed order_qed)
Definition: Mll.cpp:49

◆ computeObs()

void Mll::computeObs ( orders  order,
orders_qed  order_qed 
)
protected

Definition at line 49 of file Mll.cpp.

50{
51 double mu = SM.getMub();
52
55 mW = SM.Mw();
57 if (meson == QCD::B_S) {
61 } else if (meson == QCD::B_D) {
64 ys = 0.;
65 }
66 chiral = pow(mBs, 2.) / 2. / mlep * mb / (mb + ms);
67 beta = sqrt(1. - pow(2. * mlep / mBs, 2.));
68 computeAmpSq(order, order_qed, mu);
69 Amumu = (absP * absP * cos(2. * argP - phiNP) - absS * absS * cos(2. * argS - phiNP)) / (absP * absP + absS * absS);
70 Smumu = (absP * absP * sin(2. * argP - phiNP) - absS * absS * sin(2. * argS - phiNP)) / (absP * absP + absS * absS);
71}
const gslpp::complex computelamt_s() const
The product of the CKM elements .
Definition: CKM.cpp:174
const gslpp::complex computelamt_d() const
The product of the CKM elements .
Definition: CKM.cpp:158
const double & getDgamma_gamma() const
Definition: Meson.h:411
double ys
Definition: Mll.h:50
double Smumu
Definition: Mll.h:65
double mW
Definition: Mll.h:54
double chiral
Definition: Mll.h:58
void computeAmpSq(orders order, orders_qed order_qed, double mu)
Definition: Mll.cpp:85
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
@ B_D
Definition: QCD.h:344
@ B_S
Definition: QCD.h:346
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
@ BOTTOM
Definition: QCD.h:329
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
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
const double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:582
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const CKM & getCKM() const
A get method to retrieve the member object of type CKM.
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .

◆ computeSmumu()

double Mll::computeSmumu ( orders  order)

Definition at line 79 of file Mll.cpp.

80{
82 return(Smumu);
83}

◆ computeThValue()

double Mll::computeThValue ( )
virtual

hep-ph/9512380v2

Returns
theoretical value of | \( BR(B_s \rightarrow \mu \bar{\mu}) \)|

Implements ThObservable.

Definition at line 28 of file Mll.cpp.

29{
31 double FBs = SM.getMesons(meson).getDecayconst();
32
33// double coupling = SM.getGF() * SM.getGF() * SM.Mw() * SM.Mw() /M_PI /M_PI ; /* Double GF for including EW corrections*/
34 double coupling = SM.getGF() * SM.getAle() / 4. / M_PI; /* Single GF for excluding EW corrections*/
35
36// double PRF = pow(coupling, 2.) / M_PI /8. / SM.getMesons(meson).computeWidth() * pow(FBs, 2.) * pow(mlep, 2.) * mBs * beta; /* Double GF for including EW corrections*/
37 double PRF = pow(coupling, 2.) / M_PI / SM.getMesons(meson).computeWidth() * pow(FBs, 2.) * pow(mlep, 2.) * mBs * beta; /* Single GF for excluding EW corrections*/
38 timeInt = (1. + Amumu * ys) / (1. - ys * ys); // Note modification in form due to algorithm
39
40 if (obs == 1) return( PRF * ampSq);
41 if (obs == 2) return( PRF * ampSq * timeInt);
42 if (obs == 3) return( Amumu );
43 if (obs == 4) return( Smumu );
44
45 throw std::runtime_error("Bsmumu::computeThValue(): Observable type not defined. Can be only any of (1,2,3,4)");
46 return (EXIT_FAILURE);
47}
double computeWidth() const
A method to compute the width of the meson from its lifetime.
Definition: Meson.cpp:521
const double & getDecayconst() const
A get method for the decay constant of the meson.
Definition: Meson.h:360
double timeInt
Definition: Mll.h:67
const double getGF() const
A get method to retrieve the Fermi constant .
const double getAle() const
A get method to retrieve the fine-structure constant .

Member Data Documentation

◆ absP

double Mll::absP
private

Definition at line 59 of file Mll.h.

◆ absS

double Mll::absS
private

Definition at line 61 of file Mll.h.

◆ allcoeff

gslpp::vector<gslpp::complex>** Mll::allcoeff
private

Definition at line 77 of file Mll.h.

◆ allcoeff_noSM

gslpp::vector<gslpp::complex>** Mll::allcoeff_noSM
private

Definition at line 79 of file Mll.h.

◆ allcoeffprime

gslpp::vector<gslpp::complex>** Mll::allcoeffprime
private

Definition at line 78 of file Mll.h.

◆ ampSq

double Mll::ampSq
private

Definition at line 63 of file Mll.h.

◆ Amumu

double Mll::Amumu
private

Definition at line 64 of file Mll.h.

◆ argP

double Mll::argP
private

Definition at line 60 of file Mll.h.

◆ argS

double Mll::argS
private

Definition at line 62 of file Mll.h.

◆ beta

double Mll::beta
private

Definition at line 52 of file Mll.h.

◆ C_10

gslpp::complex Mll::C_10
private

Definition at line 69 of file Mll.h.

◆ C_10p

gslpp::complex Mll::C_10p
private

Definition at line 70 of file Mll.h.

◆ C_P

gslpp::complex Mll::C_P
private

Definition at line 73 of file Mll.h.

◆ C_Pp

gslpp::complex Mll::C_Pp
private

Definition at line 74 of file Mll.h.

◆ C_S

gslpp::complex Mll::C_S
private

Definition at line 71 of file Mll.h.

◆ C_Sp

gslpp::complex Mll::C_Sp
private

Definition at line 72 of file Mll.h.

◆ chiral

double Mll::chiral
private

Definition at line 58 of file Mll.h.

◆ CKM_factor

gslpp::complex Mll::CKM_factor
private

Definition at line 51 of file Mll.h.

◆ FixedWCbtos

bool Mll::FixedWCbtos
private

Definition at line 75 of file Mll.h.

◆ lep

QCD::lepton Mll::lep
private

Final leptons type.

Definition at line 48 of file Mll.h.

◆ mb

double Mll::mb
private

Definition at line 56 of file Mll.h.

◆ mBs

double Mll::mBs
private

Definition at line 53 of file Mll.h.

◆ meson

QCD::meson Mll::meson
private

Definition at line 49 of file Mll.h.

◆ mlep

double Mll::mlep
private

Definition at line 55 of file Mll.h.

◆ ms

double Mll::ms
private

Definition at line 57 of file Mll.h.

◆ mW

double Mll::mW
private

Definition at line 54 of file Mll.h.

◆ obs

int Mll::obs
private

Definition at line 68 of file Mll.h.

◆ phiNP

double Mll::phiNP
private

Definition at line 66 of file Mll.h.

◆ Smumu

double Mll::Smumu
private

Definition at line 65 of file Mll.h.

◆ timeInt

double Mll::timeInt
private

Definition at line 67 of file Mll.h.

◆ ys

double Mll::ys
private

Definition at line 50 of file Mll.h.


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