17#include "FeynHiggsWrapper.h"
23 "m1r",
"m1i",
"m2r",
"m2i",
"m3" ,
"muHr",
"muHi",
"mHptree",
"tanb",
"Q_SUSY"
28 msQhat2(3,3,0.), msUhat2(3,3,0.), msDhat2(3,3,0.),msLhat2(3,3,0.), msNhat2(3,3,0.), msEhat2(3,3,0.),
29 TUhat(3,3,0.), TDhat(3,3,0.), TNhat(3,3,0.), TEhat(3,3,0.),
30 mch(2,0.), mneu(4,0.), m_su2(6,0.), m_sd2(6,0.), m_sdresum2(6,0.), m_sn2(6,0.), m_se2(6,0.),
31 U(2,2,0.), V(2,2,0.), N(4,4,0.),
32 Ru(6,6,0.), Rd(6,6,0.), Rdresum(6,6,0.), Rn(6,6,0.), Rl(6,6,0.),SUSYM(*this)
106 for (std::map<std::string, double>::const_iterator it =
DPars.begin(); it !=
DPars.end(); it++)
124 if(
m1.abs() == 0. &&
m2.abs() == 0.) {
133 if(!
myFH->SetFeynHiggsPars())
return (
false);
134 if(!
myFH->CalcHiggsSpectrum())
return (
false);
135 if(!
myFH->CalcSpectrum())
return (
false);
142 for (
int i = 0; i < 6; i++) {
148 for (
int j = 0; j < 6; j++) {
160 for (
int i = 0; i < 2; i++) {
162 for (
int j = 0; j < 2; j++) {
171 for (
int i = 0; i < 4; i++) {
173 for (
int j = 0; j < 4; j++)
196 if (
mh[0] < 10. ||
mh[0] > 1000.) {
197 std::stringstream out;
199 throw std::runtime_error(
"SUSY::PostUpdate(): mh=" + out.str() +
" is out of range for EWSMApproximateFormulae");
211 SUSYM.getObj().updateSMParameters();
212 SUSYM.getObj().updateSUSYParameters();
214 SUSYM.getObj().Comp_mySUSYMQ();
221 SUSYM.getObj().Comp_DeltaMd();
222 SUSYM.getObj().Comp_DeltaDL();
223 SUSYM.getObj().Comp_Eps_J();
224 SUSYM.getObj().Comp_Lambda0EpsY();
225 SUSYM.getObj().Comp_mySUSY_CKM();
228 SUSYM.getObj().Comp_PHLR();
229 SUSYM.getObj().Comp_VUDHH();
230 SUSYM.getObj().Comp_PHRL();
233 SUSYM.getObj().Comp_VdDNL(1);
234 SUSYM.getObj().Comp_VdDNR(1);
235 SUSYM.getObj().Comp_VuUN();
238 SUSYM.getObj().Comp_VdUCR(1);
239 SUSYM.getObj().Comp_VuDCL();
240 SUSYM.getObj().Comp_VuDCR();
248 if (
name.compare(
"m1r") == 0)
250 else if (
name.compare(
"m1i") == 0)
252 else if (
name.compare(
"m2r") == 0)
254 else if (
name.compare(
"m2i") == 0)
256 else if (
name.compare(
"m3") == 0)
258 else if (
name.compare(
"muHr") == 0)
260 else if (
name.compare(
"muHi") == 0)
262 else if (
name.compare(
"mHptree") == 0)
264 else if (
name.compare(
"tanb") == 0)
266 else if (
name.compare(
"Q_SUSY") == 0)
276 std::cout <<
"ERROR: missing mandatory SUSY parameter " <<
SUSYvars[i] << std::endl;
287 throw std::runtime_error(
"SUSY::setTanb(): Negative tanb is not allowed");
297 Yu = gslpp::matrix<gslpp::complex>::Id(3);
298 Yd = gslpp::matrix<gslpp::complex>::Id(3);
299 Ye = gslpp::matrix<gslpp::complex>::Id(3);
300 Yn = gslpp::matrix<gslpp::complex>::Id(3);
305 double Q_SUSY_temp =
Q_SUSY;
308 for (
int i = 0; i < 3; i++) {
324 Yu.assign(i, i,
mu_Q[i] /
v2() * sqrt(2.));
325 Yd.assign(i, i,
md_Q[i] /
v1() * sqrt(2.));
326 Ye.assign(i, i,
me_Q[i] /
v1() * sqrt(2.));
327 Yn.assign(i, i,
mn_Q[i] /
v2() * sqrt(2.));
350 if(
name.compare(
"Flag_H") == 0) {
354 else if(
name.compare(
"Flag_g") == 0) {
358 else if(
name.compare(
"Flag_Chi") == 0) {
362 else if(
name.compare(
"Flag_Chi0") == 0) {
366 else if(
name.compare(
"Flag_FH") == 0) {
417 double cW2_SM = Mw_SM*Mw_SM/
Mz/
Mz;
418 double sW2_SM = 1.0 - cW2_SM;
419 if (
IsFlag_FH())
return ( Mw_SM*(1.0 + cW2_SM/2.0/(cW2_SM - sW2_SM)*
myFH->getFHdeltarho()) );
420 throw std::runtime_error(
"SUSY::Mw_dRho(): set Flag_FH to true to use Mw_dRho()");
std::map< std::string, double > DPars
const gslpp::matrix< gslpp::complex > getCKM() const
A member for returning the CKM matrix.
A class for SUSY contributions to the EW precision observables.
void SetRosiekParameters()
Sets parameters in Rosiek's notation.
void addMissingModelParameter(const std::string &missingParameterName)
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
bool IsModelInitialized() const
A method to check if the model is initialized.
std::string name
The name of the model.
bool UpdateError
A boolean set to false if update is successful.
void raiseMissingModelParameterCount()
gslpp::matrix< gslpp::complex > getPMNS() const
A member for returning the PMNS matrix.
const double & getMass() const
A get method to access the particle mass.
const double MS2DRqmass(const double MSscale, const double MSbar) const
Converts a quark mass from the scheme to the scheme.
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
quark
An enum type for quarks.
const double Mp2Mbar(const double mp, const quark q, orders order=FULLNNLO) const
Converts a quark pole mass to the corresponding mass .
lepton
An enum type for leptons.
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
virtual const double Mw() const
The W boson mass.
gslpp::matrix< gslpp::complex > N
gslpp::vector< double > m_se2
double Mw_dRho() const
The W boson mass in the approximation.
gslpp::vector< double > m_sd2
gslpp::vector< double > mch
gslpp::matrix< gslpp::complex > msUhat2
friend class SUSYSpectrum
Friend classes of SUSY class.
gslpp::vector< double > mneu
gslpp::matrix< gslpp::complex > msQhat2
static const std::string SUSYvars[NSUSYvars]
gslpp::vector< double > m_sn2
gslpp::matrix< gslpp::complex > Rdresum
gslpp::matrix< gslpp::complex > Rl
SUSY()
A SUSY constructor.
virtual bool setFlag(const std::string, const bool)
virtual void computeYukawas()
const double getMGl() const
Gets the gluino mass obtained from FHGetPara().
Matching< SUSYMatching, SUSY > SUSYM
gslpp::matrix< gslpp::complex > U
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of SUSY.
gslpp::vector< double > m_su2
gslpp::vector< double > m_sdresum2
SUSYSpectrum * mySUSYSpectrum
virtual void SetSoftTerms()
gslpp::matrix< gslpp::complex > Rn
gslpp::matrix< gslpp::complex > Rd
~SUSY()
A SUSY destructor.
gslpp::matrix< gslpp::complex > V
virtual bool PostUpdate()
virtual bool Update(const std::map< std::string, double > &DPars)
friend class FeynHiggsWrapper
gslpp::matrix< gslpp::complex > Ru
virtual bool Init(const std::map< std::string, double > &DPars)
virtual bool InitializeModel()
static const int NSUSYvars
virtual void SetTanb(const double tanb)
bool CalcNeutralino(gslpp::matrix< gslpp::complex > &N_i, gslpp::vector< double > &mneu_i)
Computes the neutralino spectrum at tree level.
bool CalcSup(gslpp::matrix< gslpp::complex > &Ru_i, gslpp::vector< double > &m_su2_i)
Computes the up-type squark spectrum at tree level.
bool CalcSelectron(gslpp::matrix< gslpp::complex > &Rl_i, gslpp::vector< double > &m_se2_i)
Computes the charged-slepton spectrum at tree level.
bool CalcChargino(gslpp::matrix< gslpp::complex > &U_i, gslpp::matrix< gslpp::complex > &V_i, gslpp::vector< double > &mch_i)
Computes the chargino spectrum at tree level.
void SortSfermionMasses(gslpp::vector< double > &m_sf2, gslpp::matrix< gslpp::complex > &Rf) const
bool CalcSdown(gslpp::matrix< gslpp::complex > &Rd_i, gslpp::vector< double > &m_sd2_i)
Computes the down-type squark spectrum at tree level.
bool CalcHiggs(double mh[4], gslpp::complex &saeff_i)
Computes the Higgs spectrum at tree level.
bool CalcSneutrino(gslpp::matrix< gslpp::complex > &Rn_i, gslpp::vector< double > &m_sn2_i)
Computes the sneutrino spectrum at tree level.
A model class for the Standard Model.
virtual bool PreUpdate()
The pre-update method for StandardModel.
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
double Mz
The mass of the boson in GeV.
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
CKM myCKM
An object of type CKM.
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of StandardModel.
gslpp::matrix< gslpp::complex > Yn
The Yukawa matrix of the neutrinos.
Matching< StandardModelMatching, StandardModel > SMM
An object of type Matching.
gslpp::matrix< gslpp::complex > Yu
The Yukawa matrix of the up-type quarks.
gslpp::matrix< gslpp::complex > Yd
The Yukawa matrix of the down-type quarks.
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
double mHl
The Higgs mass in GeV.
gslpp::matrix< gslpp::complex > Ye
The Yukawa matrix of the charged leptons.
virtual bool PostUpdate()
The post-update method for StandardModel.
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
const double v() const
The Higgs vacuum expectation value.
virtual bool InitializeModel()
A method to initialize the model.
A class for the matching in the Standard Model.
A class for , the pole mass of the top quark.