From 28c094c99af30c907db01b686465ff885245589a Mon Sep 17 00:00:00 2001 From: Alexander Voigt Date: Tue, 4 Nov 2014 15:28:11 +0100 Subject: [PATCH] help FS finding the soft Higgs masses 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. --- meta/EWSB.m | 2 +- meta/FlexibleSUSY.m | 21 ++++++++++++++++++--- model_files/munuSSM/FlexibleSUSY.m.in | 2 ++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/meta/EWSB.m b/meta/EWSB.m index e246fd568..d29538982 100644 --- a/meta/EWSB.m +++ b/meta/EWSB.m @@ -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; diff --git a/meta/FlexibleSUSY.m b/meta/FlexibleSUSY.m index d4f40d8ce..2eedf63e5 100644 --- a/meta/FlexibleSUSY.m +++ b/meta/FlexibleSUSY.m @@ -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 *) @@ -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[] := @@ -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, @@ -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]; diff --git a/model_files/munuSSM/FlexibleSUSY.m.in b/model_files/munuSSM/FlexibleSUSY.m.in index 0f55ca828..0dc071cb5 100644 --- a/model_files/munuSSM/FlexibleSUSY.m.in +++ b/model_files/munuSSM/FlexibleSUSY.m.in @@ -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];