Himalaya
Himalaya_LibraryLink.m
Go to the documentation of this file.
1 InitializeHimalaya::usage = "Loads the Himalaya LibraryLink. After
2  InitializeHimalaya[] has been called, the function
3  HimalayaCalculateDMh3L[] is available.
4 
5 Usage:
6 
7  InitializeHimalaya[libraryLink];
8 
9 Arguments:
10 
11  - libraryLink - The path to the Himalaya LibraryLink, 'Himalaya_LibraryLink.so'
12 
13 ";
14 
15 HimalayaCalculateDMh3L::usage = "Runs Himalaya, given a set of input
16 parameters, and returns a list with all calculated loop corrections.
17 
18 Usage:
19 
20  output = HimalayaCalculateDMh3L[settings -> {...}, parameters -> {...}];
21 
22 Arguments:
23 
24  - settings - List of replacement rules with calculational settings.
25  Allowed settings are:
26 
27  - bottom -> (True | False): calculate alpha_bottom (True) or
28  alpha_top (False) corrections. Default: False
29 
30  - loopOrder -> (0 | 1 | 2 | 3): calculate corrections up to
31  (including) this loop order, skip all higher orders. Default: 3
32 
33  - verbose -> (True | False): print verbose output. Default: True
34 
35  - parameters - List of replacement rules for the running MSSM input
36  parameters. Same definition as in Himalaya_interface.hpp.
37  Allowed parameters are:
38 
39  - scale: renormalization scale
40  - mu: superpotential mu parameter
41  - g1: GUT-normalized Hypercharge gauge coupling (gY = Sqrt[3/5] g1)
42  - g2: SU(2)_L gauge coupling
43  - g3: strong gauge coupling
44  - vd: neutral down-type Higgs VEV (Sqrt[vu^2 + vd^2] ~ 246 GeV)
45  - vu: neutral up-type Higgs VEV (Sqrt[vu^2 + vd^2] ~ 246 GeV)
46  - mq2: 3x3 matrix of soft-breaking left-handed squark squared mass parameters
47  - md2: 3x3 matrix of soft-breaking right-handed down-type squark squared mass parameters
48  - mu2: 3x3 matrix of soft-breaking right-handed up-type squark squared mass parameters
49  - ml2: 3x3 matrix of soft-breaking left-handed slepton squared mass parameters
50  - me2: 3x3 matrix of soft-breaking right-handed down-type slepton squared mass parameters
51  - Au: 3x3 matrix of trilinear up-type squark coupling
52  - Ad: 3x3 matrix of trilinear down-type squark coupling
53  - Ae: 3x3 matrix of trilinear down-type slepton coupling
54  - Yu: 3x3 matrix of up-type quark Yukawa coupling
55  - Yd: 3x3 matrix of down-type quark Yukawa coupling
56  - Ye: 3x3 matrix of down-type lepton Yukawa coupling
57  - MA: CP-odd Higgs boson mass
58  - M1: bino mass
59  - M2: wino mass
60  - M3: gluino mass
61  - MW: (optional) W boson mass
62  - MZ: (optional) Z boson mass
63  - Mt: (optional) top quark mass
64  - Mb: (optional) bottom quark mass
65  - Mtau: (optional) tau lepton mass
66  - MSt: (optional) 2-vector with stop masses
67  - MSb: (optional) 2-vector with sbottom masses
68  - MStau: (optional) 2-vector with stau masses
69  - s2t: (optional) sine of 2 times stop mixing angle
70  - s2b: (optional) sine of 2 times sbottom mixing angle
71  - s2tau: (optional) sine of 2 times stau mixing angle
72 
73 Output: A list of replacement rules with
74 
75  - hierarchyID: ID of the used (best fitting) mass hierarchy
76  - hierarchyName: name of the used (best fitting) mass hierarchy
77  - MstopMDRPrime: used stop masses, defined in the MDR' scheme [only available if bottom == False]
78  - MsbottomMDRPrime: used sbottom masses, defined in the MDR' scheme [only available if bottom == True]
79  - Mh2: list with {0L, 1L, 2L, 3L} CP-even Higgs mass matrix corrections (DR' scheme)
80  - Mh2ShiftDRbarPrimeToMDRPrime: list with {0L, 1L, 2L, 3L} shifts from DR' -> MDR' scheme
81  - Mh2ShiftDRbarPrimeToH3m: list with {0L, 1L, 2L, 3L} shifts from DR' -> H3m scheme
82  - expansionUncertainty: uncertainty from mass expansion for 0-, 1-, 2- and 3-loop correction
83  - Mh2EFTAt: list with {0L, 1L, 2L, 3L} squared light CP-even Higgs mass contribution in the decoupling limit (DR' scheme) (only at-enhanced contributions)
84  - Mh2FO: list with {0L, 1L, 2L, 3L} squared light CP-even Higgs mass contribution (DR' scheme)
85  - Mh2FOAt: list with {0L, 1L, 2L, 3L} squared light CP-even Higgs mass contribution (DR' scheme) (only at-enhanced contributions)
86  - lambda: {0L, 1L, 2L, 3L} correction to lambda, in DR' scheme, w/ full logarithms
87  - lambdaUncertainty: uncertainty of lambda {0L, 1L, 2L, 3L}
88  - lambdaShiftDRbarPrimeToMSbar: shifts from DR' -> MS scheme for lambda {0L, 1L, 2L, 3L}
89 
90 Example:
91 
92 MS = 2000;
93 TB = 20;
94 Xt = Sqrt[6]*MS;
95 
96 output = HimalayaCalculateDMh3L[
97  settings -> {
98  bottom -> False,
99  loopOrder -> 3,
100  verbose -> True
101  },
102  parameters -> {
103  scale -> MS,
104  mu -> MS,
105  g1 -> 0.46,
106  g2 -> 0.65,
107  g3 -> 1.166,
108  vd -> 246*Cos[ArcTan[TB]],
109  vu -> 246*Sin[ArcTan[TB]],
110  mq2 -> MS^2 IdentityMatrix[3],
111  md2 -> MS^2 IdentityMatrix[3],
112  mu2 -> MS^2 IdentityMatrix[3],
113  ml2 -> MS^2 IdentityMatrix[3],
114  me2 -> MS^2 IdentityMatrix[3],
115  Au -> {{0,0,0},
116  {0,0,0},
117  {0,0, Xt + MS/TB }},
118  Ad -> 0 IdentityMatrix[3],
119  Ae -> 0 IdentityMatrix[3],
120  Yu -> {{0,0,0},
121  {0,0,0},
122  {0,0, 0.862 }},
123  Yd -> {{0,0,0},
124  {0,0,0},
125  {0,0, 0.133 }},
126  Ye -> {{0,0,0},
127  {0,0,0},
128  {0,0, 0.101 }},
129  MA -> MS,
130  M1 -> MS,
131  M2 -> MS,
132  M3 -> MS
133  }
134 ];
135 ";
136 
137 (* function arguments *)
138 { parameters, settings };
139 
140 (* settings *)
142 
143 (* input parameters *)
144 { scale, mu, g1, g2, g3, vd, vu,
145  mq2, md2, mu2, ml2, me2, Au, Ad, Ae, Yu, Yd, Ye,
146  MA, M1, M2, M3, MW, MZ, Mt, Mb, Mtau, MSt, MSb, MStau,
147  s2t, s2b, s2tau };
148 
149 (* output parameters *)
150 { hierarchyID, hierarchyName,
151  MstopMDRPrime, MsbottomMDRPrime,
152  Mh2,
153  Mh2ShiftDRbarPrimeToMDRPrime,
154  Mh2ShiftDRbarPrimeToH3m,
155  expansionUncertainty,
156  Mh2EFTAt, Mh2FO, Mh2FOAt,
157  lambda, lambdaUncertainty, lambdaShiftDRbarPrimeToMSbar };
158 
159 Himalaya::nonum = "Error: `1` is not a numeric input value!";
160 Himalaya::error = "`1`";
161 Himalaya::info = "`1`";
162 HimalayaErrorMessage[s_] := Message[Himalaya::error, s];
163 HimalayaInfoMessage[s_] := Message[Himalaya::info, s];
164 
165 Begin["`Private`"];
166 
167 InitializeHimalaya[libName_String] := (
168  HimalayaCalculateDMh3LLibInterface =
169  LibraryFunctionLoad[libName, "HimalayaCalculateDMh3L", LinkObject, LinkObject];
170  );
171 
173  bottom -> False,
174  loopOrder -> 3,
175  verbose -> True
176 };
177 
179  scale -> 0,
180  mu -> 0,
181  g1 -> 0,
182  g2 -> 0,
183  g3 -> 0,
184  vd -> 0,
185  vu -> 0,
186  mq2 -> {{0,0,0},{0,0,0},{0,0,0}},
187  md2 -> {{0,0,0},{0,0,0},{0,0,0}},
188  mu2 -> {{0,0,0},{0,0,0},{0,0,0}},
189  ml2 -> {{0,0,0},{0,0,0},{0,0,0}},
190  me2 -> {{0,0,0},{0,0,0},{0,0,0}},
191  Ad -> {{0,0,0},{0,0,0},{0,0,0}},
192  Au -> {{0,0,0},{0,0,0},{0,0,0}},
193  Ae -> {{0,0,0},{0,0,0},{0,0,0}},
194  Yd -> {{0,0,0},{0,0,0},{0,0,0}},
195  Yu -> {{0,0,0},{0,0,0},{0,0,0}},
196  Ye -> {{0,0,0},{0,0,0},{0,0,0}},
197  MA -> 0,
198  M1 -> 0,
199  M2 -> 0,
200  M3 -> 0,
201  MW -> -1, (* invalid input *)
202  MZ -> -1, (* invalid input *)
203  Mt -> -1, (* invalid input *)
204  Mb -> -1, (* invalid input *)
205  Mtau -> -1, (* invalid input *)
206  MSt -> {-1, -1}, (* invalid input *)
207  MSb -> {-1, -1}, (* invalid input *)
208  MStau -> {-1, -1}, (* invalid input *)
209  s2t -> -2, (* invalid input *)
210  s2b -> -2, (* invalid input *)
211  s2tau -> -2 (* invalid input *)
212 };
213 
214 Options[HimalayaCalculateDMh3L] = {
215  Sequence @@ himalayaDefaultSettings,
216  Sequence @@ himalayaDefaultParameters
217 };
218 
219 HimalayaNumericQ[a_?NumericQ] := N[a];
220 HimalayaNumericQ[a_] := (Message[Himalaya::nonum, a]; Abort[]);
221 
222 HimalayaCalculateDMh3L[a___, (settings | parameters) -> s_List, r___] :=
223  HimalayaCalculateDMh3L[a, Sequence @@ s, r];
224 
225 HimalayaCalculateDMh3L[OptionsPattern[]] :=
226  HimalayaCalculateDMh3LLibInterface[
227  HimalayaNumericQ /@ {
228  (* settings *)
229  Boole[OptionValue[bottom]],
230  OptionValue[loopOrder],
231  Boole[OptionValue[verbose]],
232  (* parameters *)
233  OptionValue[scale],
234  OptionValue[mu],
235  OptionValue[g1],
236  OptionValue[g2],
237  OptionValue[g3],
238  OptionValue[vd],
239  OptionValue[vu],
240 
241  OptionValue[mq2][[1,1]],
242  OptionValue[mq2][[1,2]],
243  OptionValue[mq2][[1,3]],
244  OptionValue[mq2][[2,1]],
245  OptionValue[mq2][[2,2]],
246  OptionValue[mq2][[2,3]],
247  OptionValue[mq2][[3,1]],
248  OptionValue[mq2][[3,2]],
249  OptionValue[mq2][[3,3]],
250 
251  OptionValue[md2][[1,1]],
252  OptionValue[md2][[1,2]],
253  OptionValue[md2][[1,3]],
254  OptionValue[md2][[2,1]],
255  OptionValue[md2][[2,2]],
256  OptionValue[md2][[2,3]],
257  OptionValue[md2][[3,1]],
258  OptionValue[md2][[3,2]],
259  OptionValue[md2][[3,3]],
260 
261  OptionValue[mu2][[1,1]],
262  OptionValue[mu2][[1,2]],
263  OptionValue[mu2][[1,3]],
264  OptionValue[mu2][[2,1]],
265  OptionValue[mu2][[2,2]],
266  OptionValue[mu2][[2,3]],
267  OptionValue[mu2][[3,1]],
268  OptionValue[mu2][[3,2]],
269  OptionValue[mu2][[3,3]],
270 
271  OptionValue[ml2][[1,1]],
272  OptionValue[ml2][[1,2]],
273  OptionValue[ml2][[1,3]],
274  OptionValue[ml2][[2,1]],
275  OptionValue[ml2][[2,2]],
276  OptionValue[ml2][[2,3]],
277  OptionValue[ml2][[3,1]],
278  OptionValue[ml2][[3,2]],
279  OptionValue[ml2][[3,3]],
280 
281  OptionValue[me2][[1,1]],
282  OptionValue[me2][[1,2]],
283  OptionValue[me2][[1,3]],
284  OptionValue[me2][[2,1]],
285  OptionValue[me2][[2,2]],
286  OptionValue[me2][[2,3]],
287  OptionValue[me2][[3,1]],
288  OptionValue[me2][[3,2]],
289  OptionValue[me2][[3,3]],
290 
291  OptionValue[Au][[1,1]],
292  OptionValue[Au][[1,2]],
293  OptionValue[Au][[1,3]],
294  OptionValue[Au][[2,1]],
295  OptionValue[Au][[2,2]],
296  OptionValue[Au][[2,3]],
297  OptionValue[Au][[3,1]],
298  OptionValue[Au][[3,2]],
299  OptionValue[Au][[3,3]],
300 
301  OptionValue[Ad][[1,1]],
302  OptionValue[Ad][[1,2]],
303  OptionValue[Ad][[1,3]],
304  OptionValue[Ad][[2,1]],
305  OptionValue[Ad][[2,2]],
306  OptionValue[Ad][[2,3]],
307  OptionValue[Ad][[3,1]],
308  OptionValue[Ad][[3,2]],
309  OptionValue[Ad][[3,3]],
310 
311  OptionValue[Ae][[1,1]],
312  OptionValue[Ae][[1,2]],
313  OptionValue[Ae][[1,3]],
314  OptionValue[Ae][[2,1]],
315  OptionValue[Ae][[2,2]],
316  OptionValue[Ae][[2,3]],
317  OptionValue[Ae][[3,1]],
318  OptionValue[Ae][[3,2]],
319  OptionValue[Ae][[3,3]],
320 
321  OptionValue[Yu][[1,1]],
322  OptionValue[Yu][[1,2]],
323  OptionValue[Yu][[1,3]],
324  OptionValue[Yu][[2,1]],
325  OptionValue[Yu][[2,2]],
326  OptionValue[Yu][[2,3]],
327  OptionValue[Yu][[3,1]],
328  OptionValue[Yu][[3,2]],
329  OptionValue[Yu][[3,3]],
330 
331  OptionValue[Yd][[1,1]],
332  OptionValue[Yd][[1,2]],
333  OptionValue[Yd][[1,3]],
334  OptionValue[Yd][[2,1]],
335  OptionValue[Yd][[2,2]],
336  OptionValue[Yd][[2,3]],
337  OptionValue[Yd][[3,1]],
338  OptionValue[Yd][[3,2]],
339  OptionValue[Yd][[3,3]],
340 
341  OptionValue[Ye][[1,1]],
342  OptionValue[Ye][[1,2]],
343  OptionValue[Ye][[1,3]],
344  OptionValue[Ye][[2,1]],
345  OptionValue[Ye][[2,2]],
346  OptionValue[Ye][[2,3]],
347  OptionValue[Ye][[3,1]],
348  OptionValue[Ye][[3,2]],
349  OptionValue[Ye][[3,3]],
350 
351  OptionValue[MA],
352  OptionValue[M1],
353  OptionValue[M2],
354  OptionValue[M3],
355  OptionValue[MW],
356  OptionValue[MZ],
357  OptionValue[Mt],
358  OptionValue[Mb],
359  OptionValue[Mtau],
360  OptionValue[MSt][[1]],
361  OptionValue[MSt][[2]],
362  OptionValue[MSb][[1]],
363  OptionValue[MSb][[2]],
364  OptionValue[MStau][[1]],
365  OptionValue[MStau][[2]],
366  OptionValue[s2t],
367  OptionValue[s2b],
368  OptionValue[s2tau]
369  }
370  ];
371 
372 End[];