Skip to content

Commit

Permalink
Bugfix: use user defined value of Z pole mass for low-energy scale
Browse files Browse the repository at this point in the history
Before this commit, the hard-coded value of MZ = 91.1876 GeV was
always used as scale for the low-energy constraint.  This commit
allows the user to use the value of MZ given in the SLHA input file as
low-energy scale.

Note: The low-energy scale is still fixed to be MZ.  It cannot be set
to a scale != MZ.  The reason for this is, that the current
implementation of the calculation of the Weinberg angle at the
low-energy scale assumes that the renormalization scale is MZ.
  • Loading branch information
Alexander Voigt committed Sep 1, 2015
1 parent f5d77aa commit 2d6c0d2
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 1 deletion.
7 changes: 7 additions & 0 deletions meta/Constraint.m
Expand Up @@ -329,6 +329,13 @@
CalculateScale[True, _] :=
"WARNING(\"scale condition is allways true!\");\n";

(* Don't expand LowEnergyConstant[MZ] to the hard-coded value
LowEnergyConstant(MZ), because the pole MZ is an input parameter
and the user might want to vary it.
*)
CalculateScale[FlexibleSUSY`LowEnergyConstant[FlexibleSUSY`MZ], scaleName_String] :=
scaleName <> " = MZPole;";

CalculateScale[expr_, scaleName_String] :=
Module[{result},
result = Parameters`CreateLocalConstRefs[expr];
Expand Down
2 changes: 1 addition & 1 deletion src/lowe.cpp
Expand Up @@ -398,7 +398,7 @@ void QedQcd::toMz() {

double alphasMZ = displayAlpha(ALPHAS);
double alphaMZ = displayAlpha(ALPHA);
double mz = displayMu();
double mz = displayPoleMZ();
runGauge(mz, 1.0);
run(1.0, mz, tol);
// Reset alphas to erase numerical integration errors.
Expand Down
1 change: 1 addition & 0 deletions src/slha_io.cpp
Expand Up @@ -458,6 +458,7 @@ void SLHA_io::process_sminputs_tuple(QedQcd& oneset, int key, double value)
break;
case 4:
oneset.setPoleMZ(value);
softsusy::MZ = value;
break;
case 5:
oneset.setMass(mBottom, value);
Expand Down
1 change: 1 addition & 0 deletions templates/two_scale_low_scale_constraint.cpp.in
Expand Up @@ -40,6 +40,7 @@ namespace flexiblesusy {
#define BETAPARAMETER(p) beta_functions.get_##p()
#define BETA(p) beta_##p
#define LowEnergyConstant(p) Electroweak_constants::p
#define MZPole oneset.displayPoleMZ()
#define STANDARDDEVIATION(p) Electroweak_constants::Error_##p
#define Pole(p) model->get_physical().p
#define MODEL model
Expand Down

0 comments on commit 2d6c0d2

Please sign in to comment.