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

An observable class to calculate the Rb0THDMW observable in the THDMW. More...

#include <THDMWEWPO.h>

+ Inheritance diagram for Rb0THDMW:

Detailed Description

An observable class to calculate the Rb0THDMW observable in the THDMW.

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{}
const THDMW & myTHDMW
Definition: THDMWEWPO.h:34
A base class for symmetric Two-Higgs-Doublet-Manohar-Wise models.
Definition: THDMW.h:233
ThObservable(const StandardModel &SM_i)
Constructor.
Definition: ThObservable.h:32

Member Function Documentation

◆ computeThValue()

double Rb0THDMW::computeThValue ( )
virtual
Returns
Rb0THDMW

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;
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}
@ FULLNNLO
Definition: OrderScheme.h:39
double getIsospin() const
A get method to access the particle isospin.
Definition: Particle.h:115
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
double getCharge() const
A get method to access the particle charge.
Definition: Particle.h:97
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1353
@ BOTTOM
Definition: QCD.h:329
@ TOP
Definition: QCD.h:328
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 getMz() const
A get method to access the mass of the boson .
const double getAlsMz() const
A get method to access the value of .
const double getAle() const
A get method to retrieve the fine-structure constant .
const double getTHDMW_S_b() const
A getter for .
Definition: THDMW.h:729
THDMWcache * getMyTHDMWCache() const
A method get the THDMWCache.
Definition: THDMW.h:318
const double getTHDMW_rho_b() const
A getter for .
Definition: THDMW.h:721
const double getTHDMW_etaU() const
A getter for .
Definition: THDMW.h:704
virtual const double Mw() const
Definition: THDMW.cpp:493
const double getTHDMW_etaD() const
A getter for .
Definition: THDMW.h:712

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: