Skip to content

Commit

Permalink
help FS finding the soft Higgs masses
Browse files Browse the repository at this point in the history
I introduces the new user variable FSSoftHiggsMasses where the user
can specify the list of soft Higgs masses.

For the calculation of the Higgs masses, the tree-level EWSB
eqs. substitution must be done in the Higgs mass matrix.  In FS this
substitution is done like this:

 0) save the soft Higgs masses in temporary varibles

 1) solve the tree-level EWSB eqs. for the soft Higgs masses
    (thereby the soft Higgs masse are overwritten)

 2) calculate the Higgs mass matrix

 3) reset the soft Higgs masses to the saved values from 0)

For these steps, FS needs to know which model parameters are the soft
Higgs masses.  In some models (for example in the munuSSM), this is
difficult to find out.  If FS fails to find the soft Higgs masses, the
user can assist by setting them in the variable FSSoftHiggsMasses.
  • Loading branch information
Alexander Voigt committed Nov 4, 2014
1 parent 642e2ac commit 28c094c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
2 changes: 1 addition & 1 deletion meta/EWSB.m
Expand Up @@ -383,7 +383,7 @@
If[Length[equations] =!= Length[parameters],
Print["Error: SolveTreeLevelEwsbVia: trying to solve ",
Length[equations], " equations for ", Length[parameters],
" parameters ", parameters];
" parameters ", InputForm[parameters]];
Quit[1];
];
simplifiedEqs = (# == 0)& /@ equations;
Expand Down
21 changes: 18 additions & 3 deletions meta/FlexibleSUSY.m
Expand Up @@ -70,6 +70,9 @@
FSSimplifyBetaFunctionsTimeConstraint = 120;
FSSolveWeinbergAngleTimeConstraint = 120;

(* list of soft breaking Higgs masses for solving EWSB eqs. *)
FSSoftHiggsMasses = {};

(* EWSB solvers *)
GSLHybrid; (* hybrid method *)
GSLHybridS; (* hybrid method with dynamic step size *)
Expand Down Expand Up @@ -221,6 +224,11 @@
If[Head[FlexibleSUSY`ExtraSLHAOutputBlocks] =!= List,
FlexibleSUSY`ExtraSLHAOutputBlocks = {};
];
If[Head[FlexibleSUSY`EWSBOutputParameters] =!= List,
Print["Error: EWSBOutputParameters has to be set to a list",
" of model parameters chosen to be output of the EWSB eqs."];
Quit[1];
];
];

ReplaceIndicesInUserInput[] :=
Expand Down Expand Up @@ -582,8 +590,14 @@
softScalarMasses = DeleteDuplicates[SARAH`ListSoftBreakingScalarMasses];,
softScalarMasses = {};
];
softHiggsMasses = Select[softScalarMasses, (!FreeQ[ewsbEquations, #])&];
softHiggsMasses = Parameters`ExpandExpressions[Parameters`AppendGenerationIndices[softHiggsMasses]];
(* find soft Higgs masses that appear in tree-level EWSB eqs. *)
If[Head[FlexibleSUSY`FSSoftHiggsMasses] =!= List ||
FlexibleSUSY`FSSoftHiggsMasses === {},
softHiggsMasses = Select[softScalarMasses, (!FreeQ[ewsbEquations, #])&];
,
softHiggsMasses = FlexibleSUSY`FSSoftHiggsMasses;
];
softHiggsMasses = Parameters`DecreaseIndexLiterals[Parameters`ExpandExpressions[Parameters`AppendGenerationIndices[softHiggsMasses]]];
saveSoftHiggsMasses = Parameters`SaveParameterLocally[softHiggsMasses, "old_", ""];
restoreSoftHiggsMasses = Parameters`RestoreParameter[softHiggsMasses, "old_", ""];
If[Head[softHiggsMasses] === List && Length[softHiggsMasses] > 0,
Expand Down Expand Up @@ -1213,12 +1227,13 @@
];

ewsbEquations = Parameters`ExpandExpressions[ewsbEquations];
FlexibleSUSY`EWSBOutputParameters = Parameters`DecreaseIndexLiterals[FlexibleSUSY`EWSBOutputParameters];

If[FlexibleSUSY`TreeLevelEWSBSolution === {},
(* trying to find an analytic solution for the EWSB eqs. *)
treeLevelEwsbOutputFile = FileNameJoin[{Global`$flexiblesusyOutputDir,
FlexibleSUSY`FSModelName <> "_tree_level_EWSB_solution.m"}];
Print["Solving EWSB equations ..."];
Print["Solving EWSB equations for ", FlexibleSUSY`EWSBOutputParameters," ..."];
{ewsbSolution, freePhases} = EWSB`FindSolutionAndFreePhases[ewsbEquations,
FlexibleSUSY`EWSBOutputParameters,
treeLevelEwsbOutputFile];
Expand Down
2 changes: 2 additions & 0 deletions model_files/munuSSM/FlexibleSUSY.m.in
Expand Up @@ -23,6 +23,8 @@ EXTPAR = {

EWSBOutputParameters = {mlHd2[1], mlHd2[2], mlHd2[3], mHd2, mHu2, mv2};

FSSoftHiggsMasses = EWSBOutputParameters;

SUSYScale = Sqrt[Product[M[Su[i]]^(Abs[ZU[i,3]]^2 + Abs[ZU[i,6]]^2), {i,6}]];

SUSYScaleFirstGuess = Sqrt[m0^2 + 4 m12^2];
Expand Down

0 comments on commit 28c094c

Please sign in to comment.