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

#include <Bsmumu.h>

+ Inheritance diagram for Bsmumu:

Detailed Description

Definition at line 19 of file Bsmumu.h.

Public Member Functions

 Bsmumu (const StandardModel &SM_i, int obsFlag, QCD::lepton lep_i=QCD::MU)
 
double computeAmumu (orders order)
 
double computeSmumu (orders order)
 
double computeThValue ()
 hep-ph/9512380v2 More...
 
- 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
 
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
 
double coupling
 
std::unique_ptr< EvolBsmmevolbsmm
 
QCD::lepton lep
 
int leptonindex
 
double mb
 
double mBs
 
double mlep
 
double ms
 
double mW
 
int obs
 
double phiNP
 
double Smumu
 
double timeInt
 

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

◆ Bsmumu()

Bsmumu::Bsmumu ( const StandardModel SM_i,
int  obsFlag,
QCD::lepton  lep_i = QCD::MU 
)

constructor

Parameters
Flavour

Definition at line 14 of file Bsmumu.cpp.

15: ThObservable(SM_i),
17{
18 lep = lep_i;
19 if(lep == QCD::MU) leptonindex = 1;
20 else if(lep == QCD::ELECTRON) leptonindex = 0;
21 else if(lep == QCD::TAU) leptonindex = 2;
22 else throw std::runtime_error("Bsmumu::Bsmumu(): lepton type not defined. Can be only MU or ELECTRON");
23 if (obsFlag > 0 and obsFlag < 5) obs = obsFlag;
24 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)");
26};
@ NNLO
Definition: OrderScheme.h:36
@ NDR
Definition: OrderScheme.h:21
@ NLO_QED22
Definition: OrderScheme.h:63
int leptonindex
Definition: Bsmumu.h:71
QCD::lepton lep
Definition: Bsmumu.h:51
int obs
Definition: Bsmumu.h:70
std::unique_ptr< EvolBsmm > evolbsmm
Definition: Bsmumu.h:79
@ B_S
Definition: QCD.h:346
@ MU
Definition: QCD.h:314
@ ELECTRON
Definition: QCD.h:312
@ TAU
Definition: QCD.h:316
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280
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 Bsmumu::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 80 of file Bsmumu.cpp.

81{
82 if (SM.getFlavour().getHDB1().getCoeffsmumu().getOrder() < order % 3){
83 std::stringstream out;
84 out << order;
85 throw std::runtime_error("Bsmumu::computeAmpSq(): required cofficient of "
86 "order " + out.str() + " not computed");
87 }
89
90 double alsmu = evolbsmm->alphatilde_s(mu);
91 double alemu = evolbsmm->alphatilde_e(mu);
92// double alemu = SM.ale_OS(mu)/4./M_PI; // to be checked
93 gslpp::matrix<gslpp::complex> Vckm = SM.getVCKM();
94// double sw2 = (M_PI * SM.getAle() ) / ( sqrt(2.) * SM.getGF() * SM.Mw() * SM.Mw()) ;
95
96 C_10p = 0.;
97 C_S = 0.;
98 C_Sp = 0.;
99 C_P = 0.;
100 C_Pp = 0.;
101
102 if((order == FULLNLO) && (order_qed == FULLNLO_QED)){
103
104 switch(order_qed) {
105 case FULLNLO_QED:
106 {
107 C_10 = (*(allcoeff[LO]))(7) /alemu + (*(allcoeff[NLO]))(7) * alsmu/alemu
108 + (*(allcoeff[NNLO]))(7) * alsmu * alsmu/alemu + (*(allcoeff[LO_QED ]))(7) /alsmu
109 + (*(allcoeff[NLO_QED11]))(7) + (*(allcoeff[NLO_QED02]))(7) * alemu /alsmu /alsmu
110 + (*(allcoeff[NLO_QED21]))(7) * alsmu
111 + (*(allcoeff[NLO_QED12]))(7) * alemu /alsmu+ (*(allcoeff[NLO_QED22]))(7) * alemu;
112
113 gslpp::complex NPfactor = coupling;
114
115 if(SM.getModelName().compare("NPSMEFTd6U2") == 0 || SM.getModelName().compare("NPSMEFTd6U3") == 0)
116 {
117 C_10 = C_10 + (dynamic_cast<const NPSMEFTd6GeneralMatching&>(SM.getMatching()).getCdeVLR(1,2,leptonindex,leptonindex) -
118 dynamic_cast<const NPSMEFTd6GeneralMatching&>(SM.getMatching()).getCedVLL(leptonindex,leptonindex,0,2)) / NPfactor;
119 }
120
121 gslpp::complex CC_P = C_10 + NPfactor * ( /*C10_NP*/ - C_10p + mBs*mBs*mb / ( 2.*mlep*(mb+ms)*mW ) * (C_P - C_Pp) );
122
123
124 absP = CC_P.abs(); //contains only SM contributions (P, P', S, S' not added)
125 argP = CC_P.arg();
126
127 gslpp::complex CC_S = NPfactor * ( beta * mBs*mBs*mb / ( 2.*mlep*(mb+ms)*mW ) * (C_S - C_Sp) );
128
129 absS = CC_S.abs();
130 argS = CC_S.arg();
131
132 phiNP = 0.;
133
134 ampSq = absP * absP ;
135
136 }
137 break;
138 default:
139 std::stringstream out;
140 out << order;
141 throw std::runtime_error("Bsmumu::computeAmpSq(): order " + out.str() + " not implemented");;
142 }
143 }
144
145}
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ FULLNLO
Definition: OrderScheme.h:38
@ NLO_QED11
Definition: OrderScheme.h:59
@ FULLNLO_QED
Definition: OrderScheme.h:64
@ NLO_QED02
Definition: OrderScheme.h:61
@ NLO_QED12
Definition: OrderScheme.h:62
@ LO_QED
Definition: OrderScheme.h:58
@ NLO_QED21
Definition: OrderScheme.h:60
gslpp::complex C_S
Definition: Bsmumu.h:74
double mW
Definition: Bsmumu.h:54
double mlep
Definition: Bsmumu.h:55
double beta
Definition: Bsmumu.h:52
double absP
Definition: Bsmumu.h:59
double mb
Definition: Bsmumu.h:56
double ms
Definition: Bsmumu.h:57
double absS
Definition: Bsmumu.h:61
double phiNP
Definition: Bsmumu.h:66
gslpp::complex C_Sp
Definition: Bsmumu.h:75
double coupling
Definition: Bsmumu.h:69
gslpp::complex C_10
Definition: Bsmumu.h:72
gslpp::complex C_P
Definition: Bsmumu.h:76
gslpp::vector< gslpp::complex > ** allcoeff
Definition: Bsmumu.h:80
double mBs
Definition: Bsmumu.h:53
double argP
Definition: Bsmumu.h:60
gslpp::complex C_Pp
Definition: Bsmumu.h:77
double ampSq
Definition: Bsmumu.h:63
gslpp::complex C_10p
Definition: Bsmumu.h:73
double argS
Definition: Bsmumu.h:62
HeffDB1 & getHDB1() const
The member that returns an object of the class HeffDB1.
Definition: Flavour.cpp:96
gslpp::vector< gslpp::complex > ** ComputeCoeffsmumu(double mu, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:159
WilsonCoefficient getCoeffsmumu() const
Definition: HeffDB1.h:176
std::string getModelName() const
A method to fetch the name of the model.
Definition: Model.h:59
A class for the matching in the NPSMEFTd6_General model at the scale .
const gslpp::matrix< gslpp::complex > getVCKM() const
A get method to retrieve the CKM matrix.
const Flavour & getFlavour() const
virtual StandardModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
orders getOrder() const

◆ computeAmumu()

double Bsmumu::computeAmumu ( orders  order)

Definition at line 68 of file Bsmumu.cpp.

69{
71 return(Amumu);
72}
void computeObs(orders order, orders_qed order_qed)
Definition: Bsmumu.cpp:52
double Amumu
Definition: Bsmumu.h:64

◆ computeObs()

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

Definition at line 52 of file Bsmumu.cpp.

53{
54 double mu = SM.getMub();
55
58 mW = SM.Mw();
61 chiral = pow(mBs, 2.) / 2. / mlep * mb / (mb + ms);
62 beta = sqrt(1. - pow(2. * mlep / mBs, 2.));
63 computeAmpSq(order, order_qed, mu);
64 Amumu = (absP * absP * cos(2. * argP - phiNP) - absS * absS * cos(2. * argS - phiNP)) / (absP * absP + absS * absS);
65 Smumu = (absP * absP * sin(2. * argP - phiNP) - absS * absS * sin(2. * argS - phiNP)) / (absP * absP + absS * absS);
66}
void computeAmpSq(orders order, orders_qed order_qed, double mu)
Definition: Bsmumu.cpp:80
double Smumu
Definition: Bsmumu.h:65
double chiral
Definition: Bsmumu.h:58
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
@ BOTTOM
Definition: QCD.h:329
@ 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.
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .

◆ computeSmumu()

double Bsmumu::computeSmumu ( orders  order)

Definition at line 74 of file Bsmumu.cpp.

75{
77 return(Smumu);
78}

◆ computeThValue()

double Bsmumu::computeThValue ( )
virtual

hep-ph/9512380v2

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

Implements ThObservable.

Definition at line 28 of file Bsmumu.cpp.

29{
30 double FBs = SM.getMesons(QCD::B_S).getDecayconst();
31
32 double Mw = SM.Mw();
33 double GF = SM.getGF();
34 coupling = GF * GF * Mw * Mw /M_PI /M_PI ;
35 //convertFromSingletoDoubleGF = 2. * M_SQRT2 / GF * SM.getAle() / 4. * M_PI / Mw / Mw; /* Single GF for excluding EW corrections*/
36
38
39 double PRF = pow(coupling, 2.) / M_PI /8. / SM.getMesons(QCD::B_S).computeWidth() * pow(FBs, 2.) * pow(mlep, 2.) * mBs * beta;
40 double ys = SM.getMesons(QCD::B_S).getDgamma_gamma()/2.; // Using the experimental number here
41 timeInt = (1. + Amumu * ys) / (1. - ys * ys); // Note modification in form due to algorithm
42
43 if (obs == 1) return( PRF * ampSq);
44 if (obs == 2) return( PRF * ampSq * timeInt);
45 if (obs == 3) return( Amumu );
46 if (obs == 4) return( Smumu );
47
48 throw std::runtime_error("Bsmumu::computeThValue(): Observable type not defined. Can be only any of (1,2,3,4)");
49 return (EXIT_FAILURE);
50}
double timeInt
Definition: Bsmumu.h:67
const double & getDgamma_gamma() const
Definition: Meson.h:411
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
An observable class for the -boson mass.
Definition: Mw.h:22
const double getGF() const
A get method to retrieve the Fermi constant .

Member Data Documentation

◆ absP

double Bsmumu::absP
private

Definition at line 59 of file Bsmumu.h.

◆ absS

double Bsmumu::absS
private

Definition at line 61 of file Bsmumu.h.

◆ allcoeff

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

Definition at line 80 of file Bsmumu.h.

◆ ampSq

double Bsmumu::ampSq
private

Definition at line 63 of file Bsmumu.h.

◆ Amumu

double Bsmumu::Amumu
private

Definition at line 64 of file Bsmumu.h.

◆ argP

double Bsmumu::argP
private

Definition at line 60 of file Bsmumu.h.

◆ argS

double Bsmumu::argS
private

Definition at line 62 of file Bsmumu.h.

◆ beta

double Bsmumu::beta
private

Definition at line 52 of file Bsmumu.h.

◆ C_10

gslpp::complex Bsmumu::C_10
private

Definition at line 72 of file Bsmumu.h.

◆ C_10p

gslpp::complex Bsmumu::C_10p
private

Definition at line 73 of file Bsmumu.h.

◆ C_P

gslpp::complex Bsmumu::C_P
private

Definition at line 76 of file Bsmumu.h.

◆ C_Pp

gslpp::complex Bsmumu::C_Pp
private

Definition at line 77 of file Bsmumu.h.

◆ C_S

gslpp::complex Bsmumu::C_S
private

Definition at line 74 of file Bsmumu.h.

◆ C_Sp

gslpp::complex Bsmumu::C_Sp
private

Definition at line 75 of file Bsmumu.h.

◆ chiral

double Bsmumu::chiral
private

Definition at line 58 of file Bsmumu.h.

◆ coupling

double Bsmumu::coupling
private

Definition at line 69 of file Bsmumu.h.

◆ evolbsmm

std::unique_ptr<EvolBsmm> Bsmumu::evolbsmm
private

Definition at line 79 of file Bsmumu.h.

◆ lep

QCD::lepton Bsmumu::lep
private

Final leptons type.

Definition at line 51 of file Bsmumu.h.

◆ leptonindex

int Bsmumu::leptonindex
private

Definition at line 71 of file Bsmumu.h.

◆ mb

double Bsmumu::mb
private

Definition at line 56 of file Bsmumu.h.

◆ mBs

double Bsmumu::mBs
private

Definition at line 53 of file Bsmumu.h.

◆ mlep

double Bsmumu::mlep
private

Definition at line 55 of file Bsmumu.h.

◆ ms

double Bsmumu::ms
private

Definition at line 57 of file Bsmumu.h.

◆ mW

double Bsmumu::mW
private

Definition at line 54 of file Bsmumu.h.

◆ obs

int Bsmumu::obs
private

Definition at line 70 of file Bsmumu.h.

◆ phiNP

double Bsmumu::phiNP
private

Definition at line 66 of file Bsmumu.h.

◆ Smumu

double Bsmumu::Smumu
private

Definition at line 65 of file Bsmumu.h.

◆ timeInt

double Bsmumu::timeInt
private

Definition at line 67 of file Bsmumu.h.


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