Skip to content

Commit

Permalink
Merge branch 'development' into weinberg_angle
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus-Bach committed Jun 8, 2016
2 parents c9c32f9 + ba6c34a commit c9f1129
Show file tree
Hide file tree
Showing 74 changed files with 556 additions and 173 deletions.
13 changes: 13 additions & 0 deletions ChangeLog
@@ -1,3 +1,16 @@
FlexibleSUSY-1.4.3 [not released yet]

* Feature: Write phases to SLHA output if a SLHA output block is
defined for them in the SARAH model file.
Thanks to Dylan Harries.

* Feature: Allow the user to calculate the pole masses at a fixed
renormalisation scale at run-time, which is different from the one
set by the SUSYScale model file variable. The fixed
renormalisation scale can be given via the FlexibleSUSY[17] entry
in the SLHA input. FlexibleSUSY[17] is equivalent to
SPhenoInput[33] in SPheno.

FlexibleSUSY-1.4.2 [May, 09 2016]

* Bugfix: Correcting handling of spaces in configure script if
Expand Down
1 change: 1 addition & 0 deletions examples/customized-betas/LesHouches.in.MSSMcbs
Expand Up @@ -21,6 +21,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block SMINPUTS # Standard Model inputs
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ)
2 1.166370000e-05 # G_Fermi
Expand Down
1 change: 1 addition & 0 deletions examples/tower/LesHouches.in.tower
Expand Up @@ -21,6 +21,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block SMINPUTS # Standard Model inputs
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ)
2 1.166370000e-05 # G_Fermi
Expand Down
8 changes: 5 additions & 3 deletions meta/FlexibleSUSY.m
Expand Up @@ -1286,9 +1286,9 @@ corresponding tadpole is real or imaginary (only in models with CP
isSupersymmetricModel = "false",
fillInputParametersFromMINPAR = "", fillInputParametersFromEXTPAR = "",
writeSLHAMassBlock = "", writeSLHAMixingMatricesBlocks = "",
writeSLHAModelParametersBlocks = "", writeSLHAMinparBlock = "",
writeSLHAExtparBlock = "", readLesHouchesInputParameters,
writeExtraSLHAOutputBlock = "",
writeSLHAModelParametersBlocks = "", writeSLHAPhasesBlocks = "",
writeSLHAMinparBlock = "", writeSLHAExtparBlock = "",
readLesHouchesInputParameters, writeExtraSLHAOutputBlock = "",
readLesHouchesOutputParameters, readLesHouchesPhysicalParameters,
gaugeCouplingNormalizationDecls = "",
gaugeCouplingNormalizationDefs = "",
Expand Down Expand Up @@ -1328,6 +1328,7 @@ corresponding tadpole is real or imaginary (only in models with CP
writeSLHAMassBlock = WriteOut`WriteSLHAMassBlock[massMatrices];
writeSLHAMixingMatricesBlocks = WriteOut`WriteSLHAMixingMatricesBlocks[];
writeSLHAModelParametersBlocks = WriteOut`WriteSLHAModelParametersBlocks[];
writeSLHAPhasesBlocks = WriteOut`WriteSLHAPhasesBlocks[];
writeSLHAMinparBlock = WriteOut`WriteSLHAMinparBlock[minpar];
writeSLHAExtparBlock = WriteOut`WriteSLHAExtparBlock[extpar];
writeExtraSLHAOutputBlock = WriteOut`WriteExtraSLHAOutputBlock[extraSLHAOutputBlocks];
Expand Down Expand Up @@ -1359,6 +1360,7 @@ corresponding tadpole is real or imaginary (only in models with CP
"@writeSLHAMassBlock@" -> IndentText[writeSLHAMassBlock],
"@writeSLHAMixingMatricesBlocks@" -> IndentText[writeSLHAMixingMatricesBlocks],
"@writeSLHAModelParametersBlocks@" -> IndentText[writeSLHAModelParametersBlocks],
"@writeSLHAPhasesBlocks@" -> IndentText[writeSLHAPhasesBlocks],
"@writeSLHAMinparBlock@" -> IndentText[writeSLHAMinparBlock],
"@writeSLHAExtparBlock@" -> IndentText[writeSLHAExtparBlock],
"@writeExtraSLHAOutputBlock@" -> IndentText[writeExtraSLHAOutputBlock],
Expand Down
67 changes: 41 additions & 26 deletions meta/Parameters.m
@@ -1,6 +1,9 @@

BeginPackage["Parameters`", {"SARAH`", "CConversion`", "Utils`", "Phases`"}];

{ FSModelParameters, FSInputParameters, FSOutputParameters,
FSPhysicalOutputParameters, FSPhases, FSDerivedParameters };

FindSymbolDef::usage="";

CreateSetAssignment::usage="";
Expand Down Expand Up @@ -132,6 +135,9 @@
FindAllParameters::usage = "returns list of all parameters contained
in the given expression";

FindAllParametersClassified::usage = "returns list of all parameters
contained in the given expression, classified by their meaning.";

FindSLHABlock::usage = "returns SLHA input block name for given
parameter";

Expand Down Expand Up @@ -1208,26 +1214,46 @@
CalculateLocalPoleMasses[parameter_] :=
"MODEL->" <> PrivateCallLoopMassFunction[parameter];

CreateLocalConstRefs[expr_] :=
Module[{result = "", symbols, inputSymbols, modelPars, outputPars,
FindAllParametersClassified[expr_] :=
Module[{symbols = DeleteDuplicates[Flatten[FindAllParameters[expr]]],
inputPars, modelPars, outputPars,
poleMasses, phases, depNum, allOutPars},
allOutPars = DeleteDuplicates[Flatten[
Join[allOutputParameters,
allOutputParameters /. FlexibleSUSY`M[{a__}] :> FlexibleSUSY`M[a],
allOutputParameters /. FlexibleSUSY`M[{a__}] :> (FlexibleSUSY`M /@ {a})
]]];
symbols = FindAllParameters[expr];
poleMasses = {
Cases[expr, FlexibleSUSY`Pole[FlexibleSUSY`M[a_]] /; MemberQ[allOutputParameters,FlexibleSUSY`M[a]] :> FlexibleSUSY`M[a], {0,Infinity}],
Cases[expr, FlexibleSUSY`Pole[FlexibleSUSY`M[a_[__]]] /; MemberQ[allOutputParameters,FlexibleSUSY`M[a]] :> FlexibleSUSY`M[a], {0,Infinity}]
};
symbols = DeleteDuplicates[Flatten[symbols]];
poleMasses = DeleteDuplicates[Flatten[poleMasses]];
inputSymbols = DeleteDuplicates[Select[symbols, (MemberQ[allInputParameters,#])&]];
poleMasses = DeleteDuplicates[Flatten[poleMasses]];
inputPars = DeleteDuplicates[Select[symbols, (MemberQ[allInputParameters,#])&]];
modelPars = DeleteDuplicates[Select[symbols, (MemberQ[allModelParameters,#])&]];
outputPars = DeleteDuplicates[Select[symbols, (MemberQ[allOutPars,#])&]];
phases = DeleteDuplicates[Select[symbols, (MemberQ[Phases`GetArg /@ allPhases,#])&]];
depNum = DeleteDuplicates[Select[symbols, (MemberQ[GetDependenceSPhenoSymbols[],#])&]];
{
FSModelParameters -> modelPars,
FSInputParameters -> inputPars,
FSOutputParameters -> outputPars,
FSPhysicalOutputParameters -> poleMasses,
FSPhases -> phases,
FSDerivedParameters -> depNum
}
];

CreateLocalConstRefs[expr_] :=
Module[{result = "", pars, inputSymbols, modelPars, outputPars,
poleMasses, phases, depNum},
pars = FindAllParametersClassified[expr];
Print["pars = ", pars];
inputSymbols = FSInputParameters /. pars;
modelPars = FSModelParameters /. pars;
outputPars = FSOutputParameters /. pars;
phases = FSPhases /. pars;
depNum = FSDerivedParameters /. pars;
poleMasses = FSPhysicalOutputParameters /. pars;
(result = result <> DefineLocalConstCopy[#,"INPUTPARAMETER"])& /@ inputSymbols;
(result = result <> DefineLocalConstCopy[#,"MODELPARAMETER"])& /@ modelPars;
(result = result <> DefineLocalConstCopy[#,"MODELPARAMETER"])& /@ outputPars;
Expand All @@ -1238,36 +1264,25 @@
];

CreateLocalConstRefsForPhysicalParameters[expr_] :=
Module[{result = "", symbols, outputPars, compactExpr},
compactExpr = RemoveProtectedHeads[expr];
symbols = { Cases[compactExpr, _Symbol, {0,Infinity}],
Cases[compactExpr, a_[__] /; MemberQ[allOutputParameters,a] :> a, {0,Infinity}],
Cases[compactExpr, FlexibleSUSY`M[a_] /; MemberQ[allOutputParameters,FlexibleSUSY`M[a]], {0,Infinity}],
Cases[compactExpr, FlexibleSUSY`M[a_[__]] /; MemberQ[allOutputParameters,FlexibleSUSY`M[a]] :> FlexibleSUSY`M[a], {0,Infinity}]
};
symbols = DeleteDuplicates[Flatten[symbols]];
outputPars = DeleteDuplicates[Select[symbols, (MemberQ[allOutputParameters,#])&]];
Module[{result = "", pars, outputPars},
pars = FindAllParametersClassified[expr];
outputPars = FSOutputParameters /. pars;
(result = result <> DefineLocalConstCopy[#,"PHYSICAL"])& /@ outputPars;
Return[result];
];

CreateLocalConstRefsForBetas[expr_] :=
Module[{result = "", symbols, modelPars, compactExpr},
compactExpr = RemoveProtectedHeads[expr];
symbols = { Cases[compactExpr, _Symbol, {0,Infinity}],
Cases[compactExpr, a_[__] /; MemberQ[allModelParameters,a] :> a, {0,Infinity}] };
symbols = DeleteDuplicates[Flatten[symbols]];
modelPars = DeleteDuplicates[Select[symbols, (MemberQ[allModelParameters,#])&]];
Module[{result = "", pars, modelPars},
pars = FindAllParametersClassified[expr];
modelPars = FSModelParameters /. pars;
(result = result <> DefineLocalConstCopy[#, "BETAPARAMETER", "beta_"])& /@ modelPars;
Return[result];
];

CreateLocalConstRefsForInputParameters[expr_, head_String:"INPUT"] :=
Module[{result = "", symbols, inputPars, compactExpr},
compactExpr = RemoveProtectedHeads[expr];
symbols = Cases[compactExpr, _Symbol, {0,Infinity}];
symbols = DeleteDuplicates[Flatten[symbols]];
inputPars = DeleteDuplicates[Select[symbols, (MemberQ[allInputParameters,#])&]];
Module[{result = "", pars, inputPars},
pars = FindAllParametersClassified[expr];
inputPars = FSInputParameters /. pars;
(result = result <> DefineLocalConstCopy[#, head])& /@ inputPars;
Return[result];
];
Expand Down
4 changes: 2 additions & 2 deletions meta/ThreeLoopQCD.m
Expand Up @@ -91,8 +91,8 @@
d103 = -2353/7776 - 7/18 Zeta[3] - 13/108 Pi^2;

Get2LLogs[M_, Q_, CF_, CA_] := (
(-4*(-156 + 185*CA + 81*CF)*Log[Q^2/M^2] - 12*(-12 + 11*CA +
9*CF)*Log[Q^2/M^2]^2 - 576*CF*Log[M^2/Q^2] +
(4*(-156 + 185*CA + 81*CF)*Log[M^2/Q^2] - 12*(-12 + 11*CA +
9*CF)*Log[M^2/Q^2]^2 - 576*CF*Log[M^2/Q^2] +
216*CF*Log[M^2/Q^2]^2)/384
);

Expand Down
63 changes: 58 additions & 5 deletions meta/WriteOut.m
Expand Up @@ -10,6 +10,7 @@
WriteSLHAMassBlock::usage="";
WriteSLHAMixingMatricesBlocks::usage="";
WriteSLHAModelParametersBlocks::usage="";
WriteSLHAPhasesBlocks::usage="";
WriteSLHAMinparBlock::usage="";
WriteExtraSLHAOutputBlock::usage="";
CreateSLHAMassBlockStream::usage="creates ostringstream with masses";
Expand Down Expand Up @@ -246,6 +247,11 @@
MemberQ[Parameters`GetInputParameters[],#[[1]]]&],
{_,None}];

GetSLHAPhases[] :=
DeleteCases[Select[FlexibleSUSY`FSLesHouchesList,
MemberQ[Parameters`GetPhases[],#[[1]]]&],
{_,None}];

WriteSLHAMatrix[{mixingMatrix_, lesHouchesName_}, head_String, scale_String, setter_String:"set_block"] :=
Module[{str, strSLHA, lhs, wrapper},
If[SARAH`getDimParameters[mixingMatrix] === {} ||
Expand Down Expand Up @@ -311,12 +317,38 @@
LesHouchesNameToFront[{parameter_, lh_}] :=
{lh, parameter};

SplitRealAndImagPartBlocks[{block_, parameter_?Parameters`IsRealParameter}] := {{block, parameter}};

SplitRealAndImagPartBlocks[{block_, parameter_}] :=
{{block, Re[parameter]}, {CreateImaginaryPartBlockName[block], Im[parameter]}};

SplitRealAndImagPartBlocks[{block_, tuples_List}] :=
Module[{complexPars, realPars, result},
complexPars = Select[tuples, Parameters`IsComplexParameter[#[[1]]]&];
If[complexPars =!= {},
realPars = (If[Parameters`IsRealParameter[#[[1]]],
{#[[1]], #[[2]]},
{Re[#[[1]]], #[[2]]}])& /@ tuples;
complexPars = {Im[#[[1]]], #[[2]]}& /@ complexPars;
result = {{block, realPars},
{CreateImaginaryPartBlockName[block], complexPars}};,
result = {{block, tuples}};
];
result
];

SplitRealAndImagPartBlocks[{block_, {parameter_ /; Head[parameter] =!= List}}] :=
If[Parameters`IsRealParameter[parameter],
{{block, {parameter}}},
{{block, {Re[parameter]}}, {CreateImaginaryPartBlockName[block], {Im[parameter]}}}
];

SortBlocks[modelParameters_List] :=
Module[{reformed, allBlocks, collected},
reformed = LesHouchesNameToFront /@ modelParameters;
allBlocks = DeleteDuplicates[Transpose[reformed][[1]]];
collected = {#, Cases[reformed, {#, a_} :> a]}& /@ allBlocks;
Return[collected];
Flatten[SplitRealAndImagPartBlocks /@ collected, 1]
];

CreateRulesForProtectedHead[expr_, protectedHead_Symbol] :=
Expand Down Expand Up @@ -432,7 +464,8 @@
parStr = CConversion`RValueToCFormString[Parameters`IncreaseIndexLiterals[par]];
parVal = CConversion`RValueToCFormString[
WrapPreprocessorMacroAround[par, Join[Parameters`GetModelParameters[],
Parameters`GetOutputParameters[]],
Parameters`GetOutputParameters[],
Parameters`GetPhases[]],
Global`MODELPARAMETER]];
idx1Str = ToString[idx1];
idx2Str = ToString[idx2];
Expand All @@ -448,7 +481,8 @@
parStr = CConversion`RValueToCFormString[Parameters`IncreaseIndexLiterals[par]];
parVal = CConversion`RValueToCFormString[
WrapPreprocessorMacroAround[par, Join[Parameters`GetModelParameters[],
Parameters`GetOutputParameters[]],
Parameters`GetOutputParameters[],
Parameters`GetPhases[]],
Global`MODELPARAMETER]];
idx1Str = ToString[idx1];
idx2Str = ToString[idx2];
Expand All @@ -463,7 +497,8 @@
parStr = CConversion`RValueToCFormString[Parameters`IncreaseIndexLiterals[par]];
parVal = CConversion`RValueToCFormString[
WrapPreprocessorMacroAround[par, Join[Parameters`GetModelParameters[],
Parameters`GetOutputParameters[]],
Parameters`GetOutputParameters[],
Parameters`GetPhases[]],
Global`MODELPARAMETER]];
(* print unnormalized hypercharge gauge coupling *)
If[par === SARAH`hyperchargeCoupling,
Expand All @@ -484,7 +519,8 @@
parStr = CConversion`RValueToCFormString[Parameters`IncreaseIndexLiterals[par]];
parVal = CConversion`RValueToCFormString[
WrapPreprocessorMacroAround[par, Join[Parameters`GetModelParameters[],
Parameters`GetOutputParameters[]],
Parameters`GetOutputParameters[],
Parameters`GetPhases[]],
Global`MODELPARAMETER]];
commentStr = If[comment == "", parStr, comment];
(* result *)
Expand Down Expand Up @@ -513,6 +549,12 @@
Return[result];
];

WriteSLHABlock[{blockName_, Re[parameter_]}, scale_String:"model.get_scale()"] :=
WriteSLHABlock[{blockName, parameter}, scale];

WriteSLHABlock[{blockName_, Im[parameter_]}, scale_String:"model.get_scale()"] :=
WriteSLHAMatrix[{parameter, blockName}, "MODELPARAMETER", scale, "set_block_imag"];

WriteSLHABlock[{blockName_, parameter_}, scale_String:"model.get_scale()"] :=
WriteSLHAMatrix[{parameter, blockName}, "MODELPARAMETER", scale];

Expand All @@ -527,6 +569,14 @@
Return[result];
];

WriteSLHAPhasesBlocks[] :=
Module[{result = "", phases, blocks},
phases = GetSLHAPhases[];
blocks = SortBlocks[phases];
(result = result <> WriteSLHABlock[#])& /@ blocks;
Return[result]
];

GetExtraSLHAOutputBlockScale[scale_ /; scale === FlexibleSUSY`NoScale] := "";

GetExtraSLHAOutputBlockScale[scale_ /; scale === FlexibleSUSY`CurrentScale] := "model.get_scale()";
Expand Down Expand Up @@ -581,6 +631,9 @@
CreateInputBlockName[blockName_] :=
ToString[blockName] <> "IN";

CreateImaginaryPartBlockName[blockName_] :=
"IM" <> ToString[blockName];

ReadLesHouchesInputParameters[slhaInputParameters_List] :=
Module[{result = ""},
(result = result <> ReadSLHAInputBlock[#])& /@ slhaInputParameters;
Expand Down
1 change: 1 addition & 0 deletions model_files/BLSM/LesHouches.in.BLSM
Expand Up @@ -18,6 +18,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block FlexibleSUSYInput
0 0.00729735 # alpha_em(0)
1 125.09 # Mh pole
Expand Down
1 change: 1 addition & 0 deletions model_files/BLSMlightZp/LesHouches.in.BLSMlightZp
Expand Up @@ -18,6 +18,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block FlexibleSUSYInput
0 0.00729735 # alpha_em(0)
1 125.09 # Mh pole
Expand Down
1 change: 1 addition & 0 deletions model_files/CMSSM/LesHouches.in.CMSSM
Expand Up @@ -18,6 +18,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block FlexibleSUSYInput
0 0.00729735 # alpha_em(0)
1 125.09 # Mh pole
Expand Down
1 change: 1 addition & 0 deletions model_files/CMSSMCPV/LesHouches.in.CMSSMCPV
Expand Up @@ -18,6 +18,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block SMINPUTS # Standard Model inputs
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ)
2 1.166370000e-05 # G_Fermi
Expand Down
1 change: 1 addition & 0 deletions model_files/CMSSMNoFV/LesHouches.in.CMSSMNoFV
Expand Up @@ -18,6 +18,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block FlexibleSUSYInput
0 0.00729735 # alpha_em(0)
1 125.09 # Mh pole
Expand Down
1 change: 1 addition & 0 deletions model_files/DiracGauginos/LesHouches.in.DiracGauginos
Expand Up @@ -19,6 +19,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block SMINPUTS # Standard Model inputs
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ)
2 1.166370000e-05 # G_Fermi
Expand Down
1 change: 1 addition & 0 deletions model_files/E6SSM/LesHouches.in.E6SSM
Expand Up @@ -19,6 +19,7 @@ Block FlexibleSUSY
14 1.000000000e-11 # beta-function zero threshold
15 0 # calculate observables (a_muon, ...)
16 0 # force positive majorana masses
17 0 # pole mass renormalization scale (0 = SUSY scale)
Block SMINPUTS # Standard Model inputs
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ)
2 1.166370000e-05 # G_Fermi
Expand Down

0 comments on commit c9f1129

Please sign in to comment.