forked from Expander/FlexibleSUSY
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adding SMtower testing model used as a consistency check
It checks whether the SM model yields the same as the SMtower, where the SM is matched to the SM at the high scale.
- Loading branch information
Alexander Voigt
authored and
Alexander Voigt
committed
Jul 25, 2016
1 parent
a217f17
commit 62a10ed
Showing
5 changed files
with
239 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
|
||
FSModelName = "@CLASSNAME@"; | ||
FSEigenstates = SARAH`EWSB; | ||
FSDefaultSARAHModel = SM; | ||
OnlyLowEnergyFlexibleSUSY = True; | ||
SMTower = True; | ||
|
||
(* SM input parameters *) | ||
|
||
MINPAR = { {1, LambdaIN} }; | ||
EXTPAR = { {0, Qin} }; | ||
|
||
EWSBOutputParameters = { mu2 }; | ||
|
||
SUSYScale = Qin; | ||
|
||
SUSYScaleFirstGuess = Qin; | ||
|
||
SUSYScaleInput = { | ||
{\[Lambda], LambdaIN} | ||
}; | ||
|
||
LowScale = LowEnergyConstant[MT]; | ||
|
||
LowScaleFirstGuess = LowEnergyConstant[MT]; | ||
|
||
LowScaleInput = { | ||
{v, 2 MZDRbar / Sqrt[GUTNormalization[g1]^2 g1^2 + g2^2]}, | ||
{Yu, Automatic}, | ||
{Yd, Automatic}, | ||
{Ye, Automatic}, | ||
FSSolveEWSBFor[EWSBOutputParameters] | ||
}; | ||
|
||
InitialGuessAtLowScale = { | ||
{v, LowEnergyConstant[vev]}, | ||
{Yu, Automatic}, | ||
{Yd, Automatic}, | ||
{Ye, Automatic} | ||
}; | ||
|
||
SUSYScaleUserMatching = { | ||
{v, vev} | ||
}; | ||
|
||
SMParticles = { | ||
Electron, TopQuark, BottomQuark, | ||
VectorP, VectorZ, VectorG, VectorW, Neutrino, | ||
Hp, Ah, (* goldstones *) | ||
hh (* Higgs *) | ||
}; | ||
|
||
UseSM3LoopRGEs = True; | ||
UseHiggs2LoopSM = True; | ||
|
||
DefaultPoleMassPrecision = HighPrecision; | ||
HighPoleMassPrecision = {hh}; | ||
MediumPoleMassPrecision = {}; | ||
LowPoleMassPrecision = {}; | ||
|
||
SARAH`ParameterDefinitions = Append[ | ||
Cases[SARAH`ParameterDefinitions, {p_ /; p =!= SARAH`\[Lambda], ___}], | ||
{SARAH`\[Lambda], { Description -> "SM Higgs Selfcouplings" } } | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
Block MODSEL # Select model | ||
# 12 1000 # parameter output scale (GeV) | ||
Block FlexibleSUSY | ||
0 1.000000000e-04 # precision goal | ||
1 0 # max. iterations (0 = automatic) | ||
2 0 # algorithm (0 = two_scale, 1 = lattice) | ||
3 1 # calculate SM pole masses | ||
4 2 # pole mass loop order | ||
5 2 # EWSB loop order | ||
6 3 # beta-functions loop order | ||
7 2 # threshold corrections loop order | ||
8 1 # Higgs 2-loop corrections O(alpha_t alpha_s) | ||
9 0 # Higgs 2-loop corrections O(alpha_b alpha_s) | ||
10 1 # Higgs 2-loop corrections O((alpha_t + alpha_b)^2) | ||
11 0 # Higgs 2-loop corrections O(alpha_tau^2) | ||
12 0 # force output | ||
13 1 # Top quark 2-loop corrections QCD | ||
14 1.000000000e-11 # beta-function zero threshold | ||
15 0 # calculate observables (a_muon, ...) | ||
Block SMINPUTS # Standard Model inputs | ||
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ) | ||
2 1.166370000e-05 # G_Fermi | ||
3 1.176000000e-01 # alpha_s(MZ) SM MSbar | ||
4 9.118760000e+01 # MZ(pole) | ||
5 4.200000000e+00 # mb(mb) SM MSbar | ||
6 1.733400000e+02 # mtop(pole) | ||
7 1.777000000e+00 # mtau(pole) | ||
8 0.000000000e+00 # mnu3(pole) | ||
9 80.404 # MW pole | ||
11 5.109989020e-04 # melectron(pole) | ||
12 0.000000000e+00 # mnu1(pole) | ||
13 1.056583570e-01 # mmuon(pole) | ||
14 0.000000000e+00 # mnu2(pole) | ||
21 4.750000000e-03 # md(2 GeV) MS-bar | ||
22 2.400000000e-03 # mu(2 GeV) MS-bar | ||
23 1.040000000e-01 # ms(2 GeV) MS-bar | ||
24 1.270000000e+00 # mc(mc) MS-bar | ||
Block MINPAR # Input parameters | ||
1 0.192 # Lambda(Qin) | ||
Block EXTPAR # Input parameters | ||
0 1000 # input scale Qin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
#!/bin/sh | ||
|
||
BASEDIR=$(dirname $0) | ||
MODELDIR=${BASEDIR}/../models | ||
|
||
. "$BASEDIR/test.sh" | ||
|
||
# prints SLHA block | ||
print_slha_block_awk=' | ||
BEGIN { | ||
is_block = 0; | ||
if (block == "") { | ||
print "Error: block name not defined"; | ||
print " Please define the block name with -v block=<block-name>"; | ||
exit 1 | ||
} | ||
} | ||
{ | ||
pattern = "^block[[:blank:]]*" tolower(block) "([^[:graph:]].*)?$"; | ||
not_pattern = "^block[[:blank:]]*.*$"; | ||
if (tolower($0) ~ pattern) { | ||
is_block = 1 | ||
} else if (tolower($0) ~ not_pattern) { | ||
is_block = 0 | ||
}; | ||
if (is_block) | ||
print $0 | ||
} | ||
' | ||
|
||
# prints block entry | ||
# expects block entry keys in the form x or x:y or x:y:z etc. | ||
print_block_entry_awk=' | ||
{ | ||
len = split(keys,k,":"); | ||
matches = 1; | ||
for (i in k) { | ||
if ($(i) != k[i]) | ||
matches = 0 | ||
} | ||
if (matches == 1) | ||
print $(len + 1) | ||
} | ||
' | ||
|
||
input=" | ||
Block MODSEL # Select model | ||
# 12 1000 # parameter output scale (GeV) | ||
Block FlexibleSUSY | ||
0 1.000000000e-04 # precision goal | ||
1 0 # max. iterations (0 = automatic) | ||
2 0 # algorithm (0 = two_scale, 1 = lattice) | ||
3 1 # calculate SM pole masses | ||
4 1 # pole mass loop order | ||
5 1 # EWSB loop order | ||
6 3 # beta-functions loop order | ||
7 2 # threshold corrections loop order | ||
8 1 # Higgs 2-loop corrections O(alpha_t alpha_s) | ||
9 0 # Higgs 2-loop corrections O(alpha_b alpha_s) | ||
10 1 # Higgs 2-loop corrections O((alpha_t + alpha_b)^2) | ||
11 0 # Higgs 2-loop corrections O(alpha_tau^2) | ||
12 0 # force output | ||
13 1 # Top quark 2-loop corrections QCD | ||
14 1.000000000e-11 # beta-function zero threshold | ||
15 0 # calculate observables (a_muon, ...) | ||
Block SMINPUTS # Standard Model inputs | ||
1 1.279340000e+02 # alpha^(-1) SM MSbar(MZ) | ||
2 1.166370000e-05 # G_Fermi | ||
3 1.176000000e-01 # alpha_s(MZ) SM MSbar | ||
4 9.118760000e+01 # MZ(pole) | ||
5 4.200000000e+00 # mb(mb) SM MSbar | ||
6 1.733400000e+02 # mtop(pole) | ||
7 1.777000000e+00 # mtau(pole) | ||
8 0.000000000e+00 # mnu3(pole) | ||
9 80.404 # MW pole | ||
11 5.109989020e-04 # melectron(pole) | ||
12 0.000000000e+00 # mnu1(pole) | ||
13 1.056583570e-01 # mmuon(pole) | ||
14 0.000000000e+00 # mnu2(pole) | ||
21 4.750000000e-03 # md(2 GeV) MS-bar | ||
22 2.400000000e-03 # mu(2 GeV) MS-bar | ||
23 1.040000000e-01 # ms(2 GeV) MS-bar | ||
24 1.270000000e+00 # mc(mc) MS-bar | ||
Block MINPAR # Input parameters | ||
1 0.192 # Lambda(Qin) | ||
Block EXTPAR # Input parameters | ||
0 1000 # input scale Qin | ||
1 173.34 # scale QEWSB | ||
" | ||
|
||
run_sg() { | ||
local SG="$1" | ||
local slha_input="$2" | ||
local slha_output= | ||
local block= | ||
local value= | ||
local output_block=MASS | ||
local output_entry=25 | ||
|
||
# run the spectrum generator | ||
slha_output=$(echo "$slha_input" | $SG --slha-input-file=- 2>/dev/null) | ||
|
||
block=$(echo "$slha_output" | awk -v block="$output_block" "$print_slha_block_awk") | ||
value=$(echo "$block" | awk -v keys="$output_entry" "$print_block_entry_awk" | tail -n 1) | ||
|
||
[ "x$value" = "x" ] && value="-" | ||
|
||
echo $value | ||
} | ||
|
||
error=0 | ||
|
||
MhSM=$(run_sg "$MODELDIR/SM/run_SM.x" "$input") | ||
MhSMtower=$(run_sg "$MODELDIR/SMtower/run_SMtower.x" "$input") | ||
|
||
echo "Mh in the SM : $MhSM" | ||
echo "Mh in the SMtower: $MhSMtower" | ||
|
||
CHECK_EQUAL_FRACTION "$MhSM" "$MhSMtower" "0.0001" || error=$(expr $error + 1) | ||
|
||
if [ "x$error" != "x0" ] ; then | ||
echo "Test FAILED: There were $error errors." | ||
else | ||
echo "All tests passed." | ||
fi | ||
|
||
exit $error |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters