flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
scan_HSSUSY_SM_uncertainty.m
Go to the documentation of this file.
1Get["models/HSSUSY/HSSUSY_librarylink.m"];
2
3(* generate logarithmically spaced range [start, stop] *)
4LogRange[start_, stop_, steps_] :=
5 Exp /@ Range[Log[start], Log[stop],
6 (Log[stop] - Log[start])/steps];
7
8(* generate logarithmically spaced range [2 Q, Q / 2] *)
9GenerateScales[Q_] := LogRange[Q/2, 2 Q, 10];
10
11CalcMh[MS_, TB_, Xt_, ytLoops_, asLoops_, Qpole_] :=
12 Module[{handle, spec},
13 handle = FSHSSUSYOpenHandle[
14 fsSettings -> {
15 precisionGoal -> 1.*^-5,
16 calculateStandardModelMasses -> 1,
17 poleMassLoopOrder -> 2,
18 ewsbLoopOrder -> 2,
19 betaFunctionLoopOrder -> 3,
20 thresholdCorrectionsLoopOrder -> 3,
21 poleMassScale -> Qpole,
22 thresholdCorrections -> 120111021 +
23 ytLoops * 10^6 + asLoops * 10^2
24 },
25 fsModelParameters -> {
26 TanBeta -> TB,
27 MEWSB -> 173.34,
28 MSUSY -> MS,
29 M1Input -> MS,
30 M2Input -> MS,
31 M3Input -> MS,
32 MuInput -> MS,
33 mAInput -> MS,
34 AtInput -> (Xt + 1/TB) * MS,
35 msq2 -> MS^2 IdentityMatrix[3],
36 msu2 -> MS^2 IdentityMatrix[3],
37 msd2 -> MS^2 IdentityMatrix[3],
38 msl2 -> MS^2 IdentityMatrix[3],
39 mse2 -> MS^2 IdentityMatrix[3],
40 LambdaLoopOrder -> 2,
41 TwoLoopAtAs -> 1,
42 TwoLoopAbAs -> 1,
43 TwoLoopAtAb -> 1,
44 TwoLoopAtauAtau -> 1,
45 TwoLoopAtAt -> 1
46 }
47 ];
48 spec = FSHSSUSYCalculateSpectrum[handle];
49 FSHSSUSYCloseHandle[handle];
50 If[spec =!= $Failed, Pole[M[hh]] /. (HSSUSY /. spec), 0]
51];
52
53(* calculate Higgs mass with uncertainty estimate *)
54CalcDMh[MS_, TB_, Xt_] :=
56 Mh = CalcMh[MS, TB, Xt, 2, 2, 0];
57 MhYt3L = CalcMh[MS, TB, Xt, 3, 2, 0];
58 MhAs3L = CalcMh[MS, TB, Xt, 2, 3, 0];
59 varyQpole = CalcMh[MS, TB, Xt, 2, 2, #]& /@
60 GenerateScales[173.34];
61 (* combine uncertainty estimates *)
62 DMh = Max[Abs[Max[varyQpole] - Mh],
63 Abs[Min[varyQpole] - Mh]] +
64 Abs[Mh - MhYt3L] + Abs[Mh - MhAs3L];
65 { Mh, DMh }
66 ];
67
70
72 ParallelMap[{#, Sequence @@ CalcDMh[1000 , 5, #]}&, Range[-3.5, 3.5, 0.1]],
73 ParallelMap[{#, Sequence @@ CalcDMh[2000 , 5, #]}&, Range[-3.5, 3.5, 0.1]],
74 ParallelMap[{#, Sequence @@ CalcDMh[10000, 5, #]}&, Range[-3.5, 3.5, 0.1]]
75};
76
77Export["HSSUSY_uncertainty_Mh_Xt_MS-1000.dat", data[[1]]];
78Export["HSSUSY_uncertainty_Mh_Xt_MS-2000.dat", data[[2]]];
79Export["HSSUSY_uncertainty_Mh_Xt_MS-10000.dat", data[[3]]];
LinearRange[start_, stop_, steps_] stop
T Max(T &&t) noexcept
Definition: wrappers.hpp:430
T Min(T &&t) noexcept
Definition: wrappers.hpp:445
T Exp(T z) noexcept
Definition: wrappers.hpp:187
int Abs(int x) noexcept
Definition: wrappers.hpp:62
std::size_t combine(std::size_t seed, std::size_t h) noexcept
Definition: json.hpp:6004
generate CalcMh[MS_, TB_, Xt_, ytLoops_, asLoops_, Qpole_]
Export["HSSUSY_uncertainty_Mh_Xt_MS-1000.dat", data[[1]]]
calculate Mh
calculate DMh
calculate varyQpole
id steps()
generate LogRange[start_, stop_, steps_]
DistributeDefinitions[CalcDMh]
calculate MhYt3L
generate GenerateScales[Q_]
Get["models/HSSUSY/HSSUSY_librarylink.m"]
generate Q
calculate CalcDMh[MS_, TB_, Xt_]
generate Log[stop]
calculate MhAs3L