Skip to content

Commit

Permalink
use ApplyConstraints[] function from Constraint` module
Browse files Browse the repository at this point in the history
which is more versatile
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Jul 26, 2016
1 parent 331f946 commit 1ae9cda
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 28 deletions.
38 changes: 14 additions & 24 deletions meta/FlexibleSUSY.m
Expand Up @@ -883,20 +883,10 @@ corresponding tadpole is real or imaginary (only in models with CP
GetRenormalizationScheme[] :=
If[SARAH`SupersymmetricModel, FlexibleSUSY`DRbar, FlexibleSUSY`MSbar];

ApplyUserMatching[{par_, value_}] :=
"model.set_" <> CConversion`ToValidCSymbolString[par] <>
"(" <> CConversion`RValueToCFormString[value] <> ");";

ApplyUserMatching[arg___] := (
Print["Error: Invalid setting: ", InputForm[arg]];
""
);

WriteMatchingClass[files_List] :=
WriteMatchingClass[susyScaleMatching_List, files_List] :=
Module[ {scheme = GetRenormalizationScheme[], userMatching = ""},
If[SMTower && Head[SUSYScaleMatching] === List,
userMatching = Parameters`CreateLocalConstRefs[Rest /@ SUSYScaleMatching] <>
Utils`StringJoinWithSeparator[ApplyUserMatching /@ SUSYScaleMatching, "\n"];
If[SMTower && Head[susyScaleMatching] === List,
userMatching = Constraint`ApplyConstraints[susyScaleMatching];
];
WriteOut`ReplaceInFiles[files,
{ "@gauge1Linit@" -> IndentText[WrapLines[Parameters`CreateLocalConstRefs[
Expand All @@ -907,7 +897,7 @@ corresponding tadpole is real or imaginary (only in models with CP
"@alphaEM1Lmatching@" -> IndentText[WrapLines["const double delta_alpha_em = alpha_em/(2.*Pi)*(" <>
CConversion`RValueToCFormString[ThresholdCorrections`CalculateElectromagneticCoupling[scheme]] <> ");\n"]],
"@setYukawas@" -> IndentText[WrapLines[ThresholdCorrections`SetDRbarYukawaCouplings[]]],
"@applyUserMatching@" -> IndentText[WrapLines[userMatching]],
"@applyUserMatching@" -> IndentText[IndentText[WrapLines[userMatching]]],
Sequence @@ GeneralReplacementRules[]
} ];
];
Expand Down Expand Up @@ -2460,16 +2450,16 @@ corresponding tadpole is real or imaginary (only in models with CP
diagonalizationPrecision];

Print["Creating matching class ..."];
WriteMatchingClass[ {{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_matching.hpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_matching.hpp"}]},
{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_matching.cpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_matching.cpp"}]},
{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_two_scale_matching.hpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_two_scale_matching.hpp"}]},
{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_two_scale_matching.cpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_two_scale_matching.cpp"}]}
}
];
WriteMatchingClass[FlexibleSUSY`SUSYScaleMatching,
{{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_matching.hpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_matching.hpp"}]},
{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_matching.cpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_matching.cpp"}]},
{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_two_scale_matching.hpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_two_scale_matching.hpp"}]},
{FileNameJoin[{$flexiblesusyTemplateDir, "standard_model_two_scale_matching.cpp.in"}],
FileNameJoin[{FSOutputDir, FlexibleSUSY`FSModelName <> "_standard_model_two_scale_matching.cpp"}]}
}];

Print["Creating observables"];
(* @note separating this out for now for simplicity *)
Expand Down
13 changes: 9 additions & 4 deletions templates/standard_model_matching.cpp.in
Expand Up @@ -99,10 +99,12 @@ void @ModelName@_standard_model_matching::match_low_to_high_scale_model_tree_lev
model.set_@leftCoupling@(sm.get_g2()*standard_model_info::normalization_g2/@ModelName@_info::normalization_g2);
model.set_@strongCoupling@(sm.get_g3()*standard_model_info::normalization_g3/@ModelName@_info::normalization_g3);

// 'vev' is regarded as keyword for user-definied matching
const auto vev = sm.get_v();
{
@ModelName@_mass_eigenstates* MODEL = &model;
const auto vev = sm.get_v();

@applyUserMatching@
}

Eigen::Matrix<double, 3, 3> upQuarksDRbar = ZEROMATRIX(3,3);
Eigen::Matrix<double, 3, 3> downQuarksDRbar = ZEROMATRIX(3,3);
Expand Down Expand Up @@ -224,10 +226,13 @@ void @ModelName@_standard_model_matching::match_low_to_high_scale_model(
model.set_@leftCoupling@(g2_1L);
model.set_@strongCoupling@(g3_1L);

// 'vev' is a keyword for user-defined matching
const double vev = 2. * AbsSqrt(mZ2_1L/(Sqr(g1_1L*@ModelName@_info::normalization_g1) + Sqr(g2_1L*@ModelName@_info::normalization_g2)));
{
@ModelName@_mass_eigenstates* MODEL = &model;
const double vev = 2. * AbsSqrt(mZ2_1L/(Sqr(g1_1L*@ModelName@_info::normalization_g1) + Sqr(g2_1L*@ModelName@_info::normalization_g2)));

@applyUserMatching@
}

@setYukawas@

model.calculate_DRbar_masses();
Expand Down

0 comments on commit 1ae9cda

Please sign in to comment.