From 8719c4d291d7c1915737b88a30799672a3222cf2 Mon Sep 17 00:00:00 2001 From: Dylan Harries Date: Tue, 13 Dec 2016 17:35:43 +1030 Subject: [PATCH] Add skeleton semi-analytic solver module --- meta/FlexibleSUSY.m | 2 +- meta/SemiAnalytic.m | 60 +++++++++++++++++++++++++++++++++++++++++++++ meta/module.mk | 1 + 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 meta/SemiAnalytic.m diff --git a/meta/FlexibleSUSY.m b/meta/FlexibleSUSY.m index e6f9b1725..b47f8467c 100644 --- a/meta/FlexibleSUSY.m +++ b/meta/FlexibleSUSY.m @@ -5,7 +5,7 @@ "Phases`", "LoopMasses`", "WriteOut`", "Constraint`", "ThresholdCorrections`", "ConvergenceTester`", "Utils`", "ThreeLoopSM`", "ThreeLoopMSSM`", "Observables`", - "GMuonMinus2`", "EffectiveCouplings`", + "GMuonMinus2`", "EffectiveCouplings`", "SemiAnalytic`", "FlexibleEFTHiggsMatching`", "FSMathLink`", "FlexibleTower`"}]; diff --git a/meta/SemiAnalytic.m b/meta/SemiAnalytic.m new file mode 100644 index 000000000..21d6f7bef --- /dev/null +++ b/meta/SemiAnalytic.m @@ -0,0 +1,60 @@ + +BeginPackage["SemiAnalytic`", {"SARAH`", "CConversion`", "Constraint`", "Parameters`", + "TextFormatting`", "WriteOut`"}]; + +Begin["`Private`"]; + +IsDimensionOne[par_] := + Module[{dimOnePars}, + dimOnePars = { SARAH`BetaTijk }; + If[SARAH`SupersymmetricModel, + dimOnePars = Append[dimOnePars, SARAH`BetaMi];, + dimOnePars = Append[dimOnePars, SARAH`BetaMuij]; + ]; + dimOnePars = (Parameters`StripIndices[#[[1]]])& /@ (Join @@ dimOnePars); + MemberQ[dimOnePars, Parameters`StripIndices[par]] + ]; + +IsDiracGauginoMass[par_] := + Module[{diracMasses = {}}, + If[SARAH`SupersymmetricModel, + diracMasses = Parameters`StripIndices[#[[1]]]& /@ SARAH`BetaDGi; + ]; + MemberQ[diracMasses, Parameters`StripIndices[par]] + ]; + +IsScalarMass[par_] := + Module[{scalarMasses}, + If[SARAH`SupersymmetricModel, + scalarMasses = Parameters`StripIndices[#[[1]]]& /@ SARAH`Betam2ij;, + scalarMasses = Parameters`StripIndices[#[[1]]]& /@ SARAH`BetaBij; + ]; + MemberQ[scalarMasses, Parameters`StripIndices[par]] + ]; + +IsSoftBilinear[par_] := + Module[{softBilinears = {}}, + If[SARAH`SupersymmetricModel, + softBilinears = Parameters`StripIndices[#[[1]]]& /@ SARAH`BetaBij; + ]; + MemberQ[softBilinears, Parameters`StripIndices[par]] + ]; + +IsSoftLinear[par_] := + Module[{softLinears = {}}, + If[SARAH`SupersymmetricModel, + softLinears = Parameters`StripIndices[#[[1]]]& /@ SARAH`BetaLSi; + ]; + MemberQ[softLinears, Parameters`StripIndices[par]] + ]; + +IsAllowedSemiAnalyticParameter[par_] := + Or[IsDimensionOne[par], + IsDiracGauginoMass[par], + IsScalarMass[par], + IsSoftBilinear[par], + IsSoftLinear[par]]; + +End[]; + +EndPackage[]; diff --git a/meta/module.mk b/meta/module.mk index 8a15a0985..bf9ec8cc5 100644 --- a/meta/module.mk +++ b/meta/module.mk @@ -68,6 +68,7 @@ META_SRC := \ $(DIR)/ReadSLHA.m \ $(DIR)/RGIntegrator.m \ $(DIR)/SelfEnergies.m \ + $(DIR)/SemiAnalytic.m \ $(DIR)/TestSuite.m \ $(DIR)/TextFormatting.m \ $(DIR)/ThreeLoopMSSM.m \