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

#include <THDMWEWPO.h>

+ Inheritance diagram for Rb0THDMW:

Detailed Description

Definition at line 21 of file THDMWEWPO.h.

Public Member Functions

double computeThValue ()
 
 Rb0THDMW (const StandardModel &SM_i)
 Constructor. 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...
 

Private Attributes

const THDMWmyTHDMW
 

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

◆ Rb0THDMW()

Rb0THDMW::Rb0THDMW ( const StandardModel SM_i)

Constructor.

Definition at line 17 of file THDMWEWPO.cpp.

18 : ThObservable(SM_i),myTHDMW(static_cast<const THDMW&> (SM_i))
19 {}

Member Function Documentation

◆ computeThValue()

double Rb0THDMW::computeThValue ( )
virtual
Returns
Rb0GTHDM

Implements ThObservable.

Definition at line 24 of file THDMWEWPO.cpp.

25 {
26  //Review this at some point -> use HEP-FIT values, not the ones included by hand. For doing so a SM fit should be done
27  // For the implementation we follow the reference arxiv:1002.1071v2
28  double as = myTHDMW.getAlsMz();
29  double a = myTHDMW.getAle();
30  //double a=1/127.916;//fine-structure at the mass of the Z boson
31  double MW=myTHDMW.Mw();
34  double CF=4./3.;
35  double CR1=CF;
36  //double CR1=1;
37  double CR2=3.;
38  //double CR2=0;
39  double Cb=1.0086;
40  double Rb=0.;
41  //double rho_SM=1.00578;//up and charm value
42  //double rho_SM=1.00675;//down and strange value
43  //double rhob_SM=0.99426;
44  double rhob_SM=myTHDMW.getTHDMW_rho_b();
45  double Sb=myTHDMW.getTHDMW_S_b();
46  //double sW2_SM=myTHDMW.sW2();
47  double sW2b_SM= 0.23298;
48  double mSpsq=myTHDMW.getMyTHDMWCache() -> mSpsq;
49 
50  double eta_U=myTHDMW.getTHDMW_etaU();
51  double eta_D=myTHDMW.getTHDMW_etaD();
52  double MZ = myTHDMW.getMz();
53  double mu=MZ;
54  double mtMZ = myTHDMW.Mrun(mu, myTHDMW.getQuarks(QCD::TOP).getMass_scale(),
58  double x=pow(mtMZ,2)/mSpsq;
59 
60  //std::cout<<"orders_EW_size="<< SM.orders_EW_size << std::endl;
61  //std::cout<<"mu="<< mu << std::endl;
62  //std::cout<<"log "<< log(10) << std::endl;
63  //std::cout<<"fine-structure "<< a << std::endl;
64  //std::cout<<"mSpsq= "<< mSpsq << std::endl;
65 
66  double f1=x/(x-1.)- x*log(x)/pow((x-1.),2);
67  double f2=-6.*x*(x-2.)*gsl_sf_dilog(1.0-1./x)/pow((x-1.),2)+x*(-27.+11.*x)/pow((x-1.),2)+x*(25.-9.*x)*log(x)/pow(x-1.,3)+(6.*x*(3.-x)/pow(x-1.,2)-12.*x*log(x)/pow(x-1.,3))*log(pow(mtMZ,2)/pow(mu,2))-3.*f1;
68  double f3=3.*x*gsl_sf_dilog(1.0-1./x)/(x-1.)+3.*x*(1.-2.*x+pow(x,2)+pow(log(x),2))/pow(x-1.,3)-6.*x*log(x)/pow(x-1.,2);
69  //std::cout<<"x= "<< x << std::endl;
70  //std::cout<<"(1.0-1./x)= "<< (1.0-1./x) << std::endl;
71  //std::cout<<"gsl_sf_dilog(1.0-1./x)= "<< gsl_sf_dilog(1.0-1./x) << std::endl;
72 
73 
74  double delrhob=(1/T3b)*(a/(4*M_PI*sW2b_SM))*CR1*(pow(sqrt(pow(eta_U,2))*mtMZ/(sqrt(2)*MW),2)+pow(sqrt(pow(eta_D,2))*mbMZ/(sqrt(2)*MW),2))*(f1+(as/(4*M_PI))*(CF*f2+CR2*f3));
75  double delsW2b=-0.5*delrhob*sW2b_SM+(1/(2*Qb))*(a/(4*M_PI*sW2b_SM))*CR1*pow(sqrt(pow(eta_D,2))*mbMZ/(sqrt(2)*MW),2)*(f1+(as/(4*M_PI))*(CF*f2+CR2*f3));
76 
77  //double rhob=rho_SM+delrhob;
78  //double sW2b=sW2_SM+delsW2b;
79 
80 
81 
82 
83 
84 
85  //double gLu=sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::UP).getIsospin()-myTHDMW.getQuarks(QCD::UP).getCharge()*sW2_SM);
86  //double gRu = -sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::UP).getCharge()*sW2_SM);
87 
88  //double gLd=sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::DOWN).getIsospin()-myTHDMW.getQuarks(QCD::DOWN).getCharge()*sW2_SM);
89  //double gRd = -sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::DOWN).getCharge()*sW2_SM);
90 
91  //double gLc=sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::CHARM).getIsospin()-myTHDMW.getQuarks(QCD::CHARM).getCharge()*sW2_SM);
92  //double gRc = -sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::CHARM).getCharge()*sW2_SM);
93 
94  //double gLs=sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::STRANGE).getIsospin()-myTHDMW.getQuarks(QCD::STRANGE).getCharge()*sW2_SM);
95  //double gRs = -sqrt(rho_SM)*(myTHDMW.getQuarks(QCD::STRANGE).getCharge()*sW2_SM);
96 
97  double gLb=sqrt(rhob_SM)*(T3b-Qb*(sW2b_SM+delsW2b))+sqrt(rhob_SM)*(delrhob/(2.*rhob_SM))*(T3b-Qb*sW2b_SM);
98  double gRb = -sqrt(rhob_SM)*Qb*(sW2b_SM+delsW2b+sW2b_SM*delrhob/(2.*rhob_SM));
99 
100 
101 
102 
103 
104  //Values taken from https://arxiv.org/pdf/hep-ex/0509008.pdf
105 // double gLu=0.34674;
106 // double gRu = -0.15470;
107 //
108 // double gLd=-0.42434;
109 // double gRd =0.077345;
110 //
111 // double gLc=0.34674;
112 // double gRc = -0.15470;
113 //
114 // double gLs=-0.42434;
115 // double gRs =0.077345;
116 
117 
118 
119 
120 
121 
122 
123 // double su= (pow(gLu,2)+pow(gRu,2))*(1.+pow(myTHDMW.getQuarks(QCD::UP).getCharge(),2)*3.*a/(4.*M_PI));
124 // double sd= (pow(gLd,2)+pow(gRd,2))*(1.+pow(myTHDMW.getQuarks(QCD::DOWN).getCharge(),2)*3.*a/(4.*M_PI));
125 // double sc= (pow(gLc,2)+pow(gRc,2))*(1.+pow(myTHDMW.getQuarks(QCD::CHARM).getCharge(),2)*3.*a/(4.*M_PI));
126 // double ss= (pow(gLs,2)+pow(gRs,2))*(1.+pow(myTHDMW.getQuarks(QCD::STRANGE).getCharge(),2)*3.*a/(4.*M_PI));
127  //double Sb=su+sd+sc+ss;
128  //std::cout<<"glu= "<< gLu << std::endl;
129  //std::cout<<"gru= "<< gRu << std::endl;
130  //std::cout<<"gld= "<< gLd << std::endl;
131  //std::cout<<"grd= "<< gRd << std::endl;
132  //std::cout<<"glc= "<< gLc << std::endl;
133  //std::cout<<"grc= "<< gRc << std::endl;
134  //std::cout<<"gls= "<< gLs << std::endl;
135  //std::cout<<"grs= "<< gRs << std::endl;
136  //std::cout<<"glb= "<< gLb << std::endl;
137  //std::cout<<"grb= "<< gRb << std::endl;
138  //std::cout<<"sW2= "<< sW2_SM << std::endl;
139  //std::cout<<"Sb= "<< Sb << std::endl;
140  double sb= (pow(gLb,2)+pow(gRb,2))*(1.+pow(Qb,2)*3.*a/(4.*M_PI));
141 
142  Rb=1/(1+Sb*Cb/sb);
143 
144 
145 
146  return Rb;
147 }

Member Data Documentation

◆ myTHDMW

const THDMW& Rb0THDMW::myTHDMW
private

Definition at line 34 of file THDMWEWPO.h.


The documentation for this class was generated from the following files:
THDMW::getTHDMW_rho_b
double getTHDMW_rho_b() const
A getter for .
Definition: THDMW.h:721
QCD::BOTTOM
Definition: QCD.h:329
Rb0THDMW::myTHDMW
const THDMW & myTHDMW
Definition: THDMWEWPO.h:34
StandardModel::getAlsMz
double getAlsMz() const
A get method to access the value of .
Definition: StandardModel.h:727
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
Particle::getMass_scale
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
Particle::getIsospin
double getIsospin() const
A get method to access the particle isospin.
Definition: Particle.h:115
THDMW::getTHDMW_etaU
double getTHDMW_etaU() const
A getter for .
Definition: THDMW.h:704
ThObservable::ThObservable
ThObservable(const StandardModel &SM_i)
Constructor.
Definition: ThObservable.h:32
THDMW::getTHDMW_etaD
double getTHDMW_etaD() const
A getter for .
Definition: THDMW.h:712
Particle::getMass
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
QCD::TOP
Definition: QCD.h:328
THDMW::getMyTHDMWCache
THDMWcache * getMyTHDMWCache() const
A method get the THDMWCache.
Definition: THDMW.h:318
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
Particle::getCharge
double getCharge() const
A get method to access the particle charge.
Definition: Particle.h:97
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
THDMW::getTHDMW_S_b
double getTHDMW_S_b() const
A getter for .
Definition: THDMW.h:729
THDMW::Mw
virtual double Mw() const
Definition: THDMW.cpp:493
StandardModel::getMz
double getMz() const
A get method to access the mass of the boson .
Definition: StandardModel.h:718
QCD::Mrun
double Mrun(const double mu, const double m, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1064
FULLNNLO
Definition: OrderScheme.h:38
StandardModel::getAle
double getAle() const
A get method to retrieve the fine-structure constant .
Definition: StandardModel.h:745