Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/development' into feature-SMtower
Browse files Browse the repository at this point in the history
Conflicts:
	src/standard_model.hpp
	templates/mass_eigenstates.hpp.in
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Aug 8, 2016
2 parents 95aae2d + 3584c64 commit a148146
Show file tree
Hide file tree
Showing 15 changed files with 285 additions and 277 deletions.
33 changes: 22 additions & 11 deletions meta/EWSB.m
Expand Up @@ -45,6 +45,12 @@
CreateEWSBParametersInitializationList::usage="Creates initialization
list with EWSB output parameters";

CreateEWSBParametersInitializationComma::usage="Creates initialization
list with EWSB output parameters";

CreateEWSBParametersInitialization::usage="Creates initialization
of EWSB output parameters";

Begin["`Private`"];

DebugPrint[msg___] :=
Expand Down Expand Up @@ -657,8 +663,11 @@
Quit[1];
];

MakeUniquePtr[str_String, obj_String] :=
"std::unique_ptr<" <> obj <> ">(" <> str <> ")";

CreateEWSBRootFinders[rootFinders_List] :=
Utils`StringJoinWithSeparator[CreateEWSBRootFinder /@ rootFinders, ",\n"];
Utils`StringJoinWithSeparator[MakeUniquePtr[#,"EWSB_solver"]& /@ (CreateEWSBRootFinder /@ rootFinders), ",\n"];

WrapPhase[phase_ /; phase === Null, str_String] :=
str;
Expand Down Expand Up @@ -785,17 +794,19 @@
Return[result];
];

CreateEWSBParametersInitializationComma[{}] := "";

CreateEWSBParametersInitializationComma[parameters_List] :=
Utils`StringJoinWithSeparator[ConvertToReal /@ parameters, ", "];

CreateEWSBParametersInitializationList[parameters_List] :=
Module[{result = "{}"},
If[Length[parameters] > 0,
result = Utils`StringJoinWithSeparator[
ConvertToReal /@ parameters,
", "
];
result = "{ " <> result <> " }";
];
result
];
"{" <> CreateEWSBParametersInitializationComma[parameters] <> "}";

SetEWSBParameter[par_, idx_, array_String] :=
array <> "[" <> ToString[idx] <> "] = " <> ConvertToReal[par] <> ";\n";

CreateEWSBParametersInitialization[parameters_List, array_String] :=
StringJoin[MapIndexed[SetEWSBParameter[#1,First[#2 - 1],array]&, parameters]];

End[];

Expand Down
11 changes: 10 additions & 1 deletion meta/FlexibleSUSY.m
Expand Up @@ -975,6 +975,8 @@ corresponding tadpole is real or imaginary (only in models with CP
getEWSBParametersFromGSLVector = "",
setEWSBParametersFromLocalCopies = "",
ewsbParametersInitializationList = "",
ewsbParametersInitializationComma = "",
ewsbParametersInitialization = "",
setEWSBParametersFromGSLVector = "",
convertMixingsToSLHAConvention = "",
convertMixingsToHKConvention = "",
Expand Down Expand Up @@ -1113,6 +1115,11 @@ corresponding tadpole is real or imaginary (only in models with CP
getEWSBParametersFromGSLVector = EWSB`GetEWSBParametersFromGSLVector[parametersFixedByEWSB, freePhases, "x"];
setEWSBParametersFromLocalCopies = EWSB`SetEWSBParametersFromLocalCopies[parametersFixedByEWSB, "model"];
ewsbParametersInitializationList = EWSB`CreateEWSBParametersInitializationList[parametersFixedByEWSB];
ewsbParametersInitializationComma = EWSB`CreateEWSBParametersInitializationComma[parametersFixedByEWSB];
If[Length[parametersFixedByEWSB] > 0,
ewsbParametersInitialization = IndentText[
EWSB`CreateEWSBParametersInitialization[parametersFixedByEWSB, "ewsb_parameters"]];
];
reorderDRbarMasses = TreeMasses`ReorderGoldstoneBosons[""];
reorderPoleMasses = TreeMasses`ReorderGoldstoneBosons["PHYSICAL"];
checkPoleMassesForTachyons = TreeMasses`CheckPoleMassesForTachyons["PHYSICAL"];
Expand Down Expand Up @@ -1185,12 +1192,14 @@ corresponding tadpole is real or imaginary (only in models with CP
"@solveTreeLevelEWSBviaSoftHiggsMasses@" -> IndentText[WrapLines[solveTreeLevelEWSBviaSoftHiggsMasses]],
"@solveEWSBTemporarily@" -> IndentText[solveEWSBTemporarily],
"@EWSBSolvers@" -> IndentText[IndentText[EWSBSolvers]],
"@fillArrayWithEWSBParameters@" -> IndentText[IndentText[fillArrayWithEWSBParameters]],
"@fillArrayWithEWSBParameters@" -> IndentText[fillArrayWithEWSBParameters],
"@solveEwsbWithTadpoles@" -> IndentText[WrapLines[solveEwsbWithTadpoles]],
"@getEWSBParametersFromGSLVector@" -> IndentText[getEWSBParametersFromGSLVector],
"@setEWSBParametersFromLocalCopies@" -> IndentText[setEWSBParametersFromLocalCopies],
"@setEWSBParametersFromGSLVector@" -> IndentText[setEWSBParametersFromGSLVector],
"@ewsbParametersInitializationList@" -> ewsbParametersInitializationList,
"@ewsbParametersInitializationComma@" -> ewsbParametersInitializationComma,
"@ewsbParametersInitialization@" -> ewsbParametersInitialization,
"@setEWSBSolution@" -> IndentText[setEWSBSolution],
"@convertMixingsToSLHAConvention@" -> IndentText[convertMixingsToSLHAConvention],
"@convertMixingsToHKConvention@" -> IndentText[convertMixingsToHKConvention],
Expand Down
46 changes: 13 additions & 33 deletions meta/LoopMasses.m
Expand Up @@ -62,25 +62,11 @@
"const double p = " <> momentum <> ";\n" <>
"double self_energy = Re(" <> selfEnergyFunction <> "(p));\n" <>
If[FlexibleSUSY`UseHiggs2LoopSM === True && particle === SARAH`HiggsBoson,
"\
if (pole_mass_loop_order > 1) {
" <> IndentText["\
double two_loop[1] = { 0. };
self_energy_" <> particleName <> "_2loop(two_loop);
self_energy += two_loop[0];
"] <> "}
"
, ""] <>
"if (pole_mass_loop_order > 1)\n" <>
IndentText["self_energy += self_energy_" <> particleName <> "_2loop();\n"], ""] <>
If[FlexibleSUSY`UseHiggs3LoopSplit === True && particle === SARAH`HiggsBoson,
"\
if (pole_mass_loop_order > 2) {
" <> IndentText["\
double three_loop[1] = { 0. };
self_energy_" <> particleName <> "_3loop(three_loop);
self_energy += three_loop[0];
"] <> "}
"
, ""] <>
"if (pole_mass_loop_order > 2)\n" <>
IndentText["self_energy += self_energy_" <> particleName <> "_3loop();\n"], ""] <>
"const double mass_sqr = " <> massMatrixName <> " - self_energy" <>
If[tadpole == "", "", " + " <> tadpole] <> ";\n\n" <>
"PHYSICAL(" <> massName <> ") = SignedAbsSqrt(mass_sqr);\n";
Expand Down Expand Up @@ -393,25 +379,19 @@ be set to the (positive) tree-level mass. M_tree
If[MemberQ[{SARAH`HiggsBoson, SARAH`PseudoScalar}, particle],
numberOfIndependentMatrixEntries = Parameters`NumberOfIndependentEntriesOfSymmetricMatrix[dim];
numberOfIndependentMatrixEntriesStr = ToString[numberOfIndependentMatrixEntries];
addTwoLoopHiggsContributions = "";
For[k = 0; n = 0, k < dim, k++,
For[l = k, l < dim, l++; n++,
addTwoLoopHiggsContributions = addTwoLoopHiggsContributions <>
"self_energy(" <> ToString[k] <> ", " <>
ToString[l] <> ") += two_loop[" <> ToString[n] <> "];\n";
];
];
addTwoLoopHiggsContributions = "\n" <> addTwoLoopHiggsContributions;
addTwoLoopHiggsContributions = "\nself_energy += self_energy_2l;\n";
calcTwoLoopHiggsContributions = "
// two-loop Higgs self-energy contributions
double two_loop[" <> numberOfIndependentMatrixEntriesStr <> "] = { 0. };
" <> selfEnergyMatrixCType <> " self_energy_2l(" <> selfEnergyMatrixCType <> "::Zero());
if (pole_mass_loop_order > 1) {
" <> IndentText["\
self_energy_" <> CConversion`ToValidCSymbolString[particle] <> "_2loop(two_loop);
for (unsigned i = 0; i < " <> numberOfIndependentMatrixEntriesStr <> "; i++) {
if (!std::isfinite(two_loop[i])) {
two_loop[i] = 0.;
problems.flag_bad_mass(" <> FlexibleSUSY`FSModelName <> "_info::" <> CConversion`ToValidCSymbolString[particle] <> ");
self_energy_2l = self_energy_" <> CConversion`ToValidCSymbolString[particle] <> "_2loop();
for (unsigned i = 0; i < " <> dimStr <> "; i++) {
for (unsigned k = 0; k < " <> dimStr <> "; k++) {
if (!std::isfinite(self_energy_2l(i,k))) {
self_energy_2l(i,k) = 0.;
problems.flag_bad_mass(" <> FlexibleSUSY`FSModelName <> "_info::" <> CConversion`ToValidCSymbolString[particle] <> ");
}
}
}
"] <> "}
Expand Down

0 comments on commit a148146

Please sign in to comment.