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) setParametersForObservable({ "C10_SM" });
22 };

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 81 of file Mll.cpp.

82 {
83  if (SM.getFlavour().getHDB1().getCoeffsmumu().getOrder() < order % 3){
84  std::stringstream out;
85  out << order;
86  throw std::runtime_error("Bsmumu::computeAmpSq(): required cofficient of "
87  "order " + out.str() + " not computed");
88  }
89  /* Temporary usage of MVll class here below */
90 // gslpp::vector<gslpp::complex> ** allcoeffmumu; /* Double GF for including EW corrections*/
91 // if (meson == QCD::B_S) allcoeffmumu = SM.getFlavour().ComputeCoeffsmumu(mu, NDR); /* Double GF for including EW corrections*/
92 // if (meson == QCD::B_D) allcoeffmumu = SM.getFlavour().ComputeCoeffdmumu(mu, NDR); /* Double GF for including EW corrections*/
93 
94  allcoeff = SM.getFlavour().ComputeCoeffBMll(mu, lep); /* Single GF for excluding EW corrections*/
95  allcoeffprime = SM.getFlavour().ComputeCoeffprimeBMll(mu, lep); /* Single GF for excluding EW corrections*/
96 
97 // double alsmu = SM.Als(mu, FULLNNLO, true)/4./M_PI; /* tilde */ /* Double GF for including EW corrections*/
98 // double alemu = SM.Ale(mu, FULLNNLO)/4./M_PI; /* tilde */ /* Double GF for including EW corrections*/
99 
100 // double sw = sqrt( (M_PI * SM.getAle() ) / ( sqrt(2.) * SM.getGF() * SM.Mw() * SM.Mw()) ); /* Spurious sw */
101 
102  C_10p = (*(allcoeffprime[LO]))(9) + (*(allcoeffprime[NLO]))(9);
103  C_S = (*(allcoeff[LO]))(10) + (*(allcoeff[NLO]))(10);
104  C_Sp = (*(allcoeffprime[LO]))(10) + (*(allcoeffprime[NLO]))(10);
105  C_P = (*(allcoeff[LO]))(11) + (*(allcoeff[NLO]))(11);
106  C_Pp = (*(allcoeffprime[LO]))(11) + (*(allcoeffprime[NLO]))(11);
107 
108  if (FixedWCbtos) {
109  allcoeff_noSM = SM.getFlavour().ComputeCoeffBMll(mu, lep, true); /* Single GF for excluding EW corrections*/
110  C_10 = SM.getOptionalParameter("C10_SM") + ((*(allcoeff_noSM[LO]))(9) + (*(allcoeff_noSM[NLO]))(9));
111  }
112  else C_10 = ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9));
113 
114  if ((order == FULLNLO) && (order_qed == FULLNLO_QED)) {
115 
116  switch (order_qed) {
117  case FULLNLO_QED:
118  {
119  /* Implementation to be corrected and updated with new EVO: At present better to use MVll!*/ /* Double GF for including EW corrections*/
120  // gslpp::complex C10_SM = (*(allcoeffmumu[LO]))(7) /alemu + (*(allcoeffmumu[NLO]))(7) * alsmu/alemu
121  // + (*(allcoeffmumu[NNLO]))(7) * alsmu * alsmu/alemu + (*(allcoeffmumu[LO_QED ]))(7) /alsmu
122  // + (*(allcoeffmumu[NLO_QED11]))(7) + (*(allcoeffmumu[NLO_QED02]))(7) * alemu /alsmu /alsmu
123  // + (*(allcoeffmumu[NLO_QED21]))(7) * alsmu
124  // + (*(allcoeffmumu[NLO_QED12]))(7) * alemu /alsmu+ (*(allcoeffmumu[NLO_QED22]))(7) * alemu;
125 
126  /* Temporary usage of MVll result */
127  // std::cout << " C10_SM " << C10_SM << std::endl;
128  // gslpp::complex C10_SM_plus_NP = CKM_factor * sw * sw * ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9));
129  // std::cout << " C10_SM_plus_NP " << C10_SM_plus_NP / sw / sw / CKM_factor << std::endl;
130 
131  // gslpp::complex CC_P = C10_SM; /* Double GF for including EW corrections*/
132  // gslpp::complex CC_P = CKM_factor * sw * sw * ( C_10 - C_10p + mBs*mBs / ( 2.*mlep*(mb+ms) ) * (C_P - C_Pp) ); /* Spurious sw */
133  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*/
134 
135  absP = CC_P.abs(); //contains only SM contributions (P, P', S, S' not added)
136  argP = CC_P.arg();
137 
138  // gslpp::complex CC_S = CKM_factor * sw * sw * ( beta * mBs*mBs / ( 2.*mlep*(mb+ms) ) * (C_S - C_Sp) ); /* Spurious sw */
139  gslpp::complex CC_S = CKM_factor * (beta * mBs * mBs / (2. * mlep * (mb + ms)) * (C_S - C_Sp)); /* Single GF for excluding EW corrections*/
140 
141  absS = CC_S.abs();
142  argS = CC_S.arg();
143 
144  phiNP = 0.;
145 
146  ampSq = absP * absP + absS * absS;
147 
148  }
149  break;
150  default:
151  std::stringstream out;
152  out << order;
153  throw std::runtime_error("Bsmumu::computeAmpSq(): order " + out.str() + " not implemented");
154  }
155  }
156 
157 }

◆ computeAmumu()

double Mll::computeAmumu ( orders  order)

Definition at line 69 of file Mll.cpp.

70 {
72  return(Amumu);
73 }

◆ computeObs()

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

Definition at line 45 of file Mll.cpp.

46 {
47  double mu = SM.getMub();
48 
51  mW = SM.Mw();
53  if (meson == QCD::B_S) {
56  ys = SM.getMesons(meson).getDgamma_gamma()/2.; // For now. To be explicitly calculated.
57  } else if (meson == QCD::B_D) {
60  ys = 0.;
61  }
62  chiral = pow(mBs, 2.) / 2. / mlep * mb / (mb + ms);
63  beta = sqrt(1. - pow(2. * mlep / mBs, 2.));
64  computeAmpSq(order, order_qed, mu);
65  Amumu = (absP * absP * cos(2. * argP - phiNP) - absS * absS * cos(2. * argS - phiNP)) / (absP * absP + absS * absS);
66  Smumu = (absP * absP * sin(2. * argP - phiNP) - absS * absS * sin(2. * argS - phiNP)) / (absP * absP + absS * absS);
67 }

◆ computeSmumu()

double Mll::computeSmumu ( orders  order)

Definition at line 75 of file Mll.cpp.

76 {
78  return(Smumu);
79 }

◆ computeThValue()

double Mll::computeThValue ( )
virtual

hep-ph/9512380v2

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

Implements ThObservable.

Definition at line 24 of file Mll.cpp.

25 {
27  double FBs = SM.getMesons(meson).getDecayconst();
28 
29 // double coupling = SM.getGF() * SM.getGF() * SM.Mw() * SM.Mw() /M_PI /M_PI ; /* Double GF for including EW corrections*/
30  double coupling = SM.getGF() * SM.getAle() / 4. / M_PI; /* Single GF for excluding EW corrections*/
31 
32 // 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*/
33  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*/
34  timeInt = (1. + Amumu * ys) / (1. - ys * ys); // Note modification in form due to algorithm
35 
36  if (obs == 1) return( PRF * ampSq);
37  if (obs == 2) return( PRF * ampSq * timeInt);
38  if (obs == 3) return( Amumu );
39  if (obs == 4) return( Smumu );
40 
41  throw std::runtime_error("Bsmumu::computeThValue(): Observable type not defined. Can be only any of (1,2,3,4)");
42  return (EXIT_FAILURE);
43 }

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:
Mll::mb
double mb
Definition: Mll.h:56
gslpp::cos
complex cos(const complex &z)
Definition: gslpp_complex.cpp:429
Mll::Smumu
double Smumu
Definition: Mll.h:65
QCD::BOTTOM
Definition: QCD.h:329
Mll::mlep
double mlep
Definition: Mll.h:55
ThObservable::setParametersForObservable
void setParametersForObservable(std::vector< std::string > parametersForObservable_i)
A set method to get the parameters for the specific observable.
Definition: ThObservable.h:109
QCD::B_S
Definition: QCD.h:345
Mll::allcoeff_noSM
gslpp::vector< gslpp::complex > ** allcoeff_noSM
Definition: Mll.h:79
Mll::lep
QCD::lepton lep
Definition: Mll.h:48
HeffDB1::getCoeffsmumu
WilsonCoefficient getCoeffsmumu() const
Definition: HeffDB1.h:157
Mll::argS
double argS
Definition: Mll.h:62
CKM::computelamt_s
gslpp::complex computelamt_s() const
The product of the CKM elements .
Definition: CKM.cpp:136
Mll::ampSq
double ampSq
Definition: Mll.h:63
gslpp::sin
complex sin(const complex &z)
Definition: gslpp_complex.cpp:420
QCD::initializeMeson
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:236
FULLNLO_QED
Definition: OrderScheme.h:56
LO
Definition: OrderScheme.h:33
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
Mll::obs
int obs
Definition: Mll.h:68
Mll::allcoeffprime
gslpp::vector< gslpp::complex > ** allcoeffprime
Definition: Mll.h:78
Mll::computeObs
void computeObs(orders order, orders_qed order_qed)
Definition: Mll.cpp:45
Mll::absP
double absP
Definition: Mll.h:59
ThObservable::ThObservable
ThObservable(const StandardModel &SM_i)
Constructor.
Definition: ThObservable.h:32
Mll::C_10p
gslpp::complex C_10p
Definition: Mll.h:70
Meson::computeWidth
double computeWidth() const
A method to compute the width of the meson from its lifetime.
Definition: Meson.cpp:479
Mll::ys
double ys
Definition: Mll.h:50
Mll::chiral
double chiral
Definition: Mll.h:58
WilsonTemplate::getOrder
orders getOrder() const
Definition: WilsonTemplate.h:65
Particle::getMass
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
Mll::mW
double mW
Definition: Mll.h:54
Mll::argP
double argP
Definition: Mll.h:60
Mll::meson
QCD::meson meson
Definition: Mll.h:49
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
Mll::computeAmpSq
void computeAmpSq(orders order, orders_qed order_qed, double mu)
Definition: Mll.cpp:81
StandardModel::getGF
double getGF() const
A get method to retrieve the Fermi constant .
Definition: StandardModel.h:736
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
QCD::getMesons
Meson getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:524
Mll::FixedWCbtos
bool FixedWCbtos
Definition: Mll.h:75
Meson::getDecayconst
const double & getDecayconst() const
A get method for the decay constant of the meson.
Definition: Meson.h:360
CKM::computelamt_d
gslpp::complex computelamt_d() const
The product of the CKM elements .
Definition: CKM.cpp:120
Mll::phiNP
double phiNP
Definition: Mll.h:66
QCD::getQuarks
Particle getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:534
Mll::absS
double absS
Definition: Mll.h:61
ThObservable::SM
const StandardModel & SM
A reference to an object of StandardMode class.
Definition: ThObservable.h:121
Mll::C_Sp
gslpp::complex C_Sp
Definition: Mll.h:72
StandardModel::getFlavour
const Flavour & getFlavour() const
Definition: StandardModel.h:1006
Mll::mBs
double mBs
Definition: Mll.h:53
Mll::timeInt
double timeInt
Definition: Mll.h:67
Mll::C_S
gslpp::complex C_S
Definition: Mll.h:71
Mll::CKM_factor
gslpp::complex CKM_factor
Definition: Mll.h:51
Mll::C_P
gslpp::complex C_P
Definition: Mll.h:73
Mll::C_Pp
gslpp::complex C_Pp
Definition: Mll.h:74
Mll::Amumu
double Amumu
Definition: Mll.h:64
Flavour::ComputeCoeffBMll
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:113
QCD::getMub
double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:570
QCD::STRANGE
Definition: QCD.h:327
QCD::getOptionalParameter
double getOptionalParameter(std::string name) const
A method to get parameters that are specific to only one set of observables.
Definition: QCD.h:448
Mll::ms
double ms
Definition: Mll.h:57
QCD::B_D
Definition: QCD.h:343
Flavour::ComputeCoeffprimeBMll
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:118
NLO
Definition: OrderScheme.h:34
Meson::getDgamma_gamma
const double & getDgamma_gamma() const
Definition: Meson.h:411
StandardModel::Mw
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
Definition: StandardModel.cpp:944
QCD::DOWN
Definition: QCD.h:325
FULLNLO
Definition: OrderScheme.h:37
StandardModel::getAle
double getAle() const
A get method to retrieve the fine-structure constant .
Definition: StandardModel.h:745
Mll::C_10
gslpp::complex C_10
Definition: Mll.h:69
Flavour::getFlagFixedWCbtos
bool getFlagFixedWCbtos() const
Definition: Flavour.h:252
StandardModel::getCKM
CKM getCKM() const
A get method to retrieve the member object of type CKM.
Definition: StandardModel.h:876
Mll::allcoeff
gslpp::vector< gslpp::complex > ** allcoeff
Definition: Mll.h:77
Flavour::getHDB1
HeffDB1 & getHDB1() const
The member that returns an object of the class HeffDB1.
Definition: Flavour.cpp:48
Mll::beta
double beta
Definition: Mll.h:52
StandardModel::getLeptons
Particle getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
Definition: StandardModel.h:709