Himalaya
ThresholdCalculator.hpp
Go to the documentation of this file.
1 // ====================================================================
2 // This file is part of Himalaya.
3 //
4 // Himalaya is licenced under the GNU General Public License (GNU GPL)
5 // version 3.
6 // ====================================================================
7 
8 #pragma once
9 
12 
13 /**
14  * @file ThresholdCalculator.hpp
15  *
16  * @brief Definition of threshold corrections class to express the
17  * Higgs mass calculation in terms of SM MS-bar / MSSM DR'-bar
18  * parameters.
19  */
20 
21 namespace himalaya{
22 namespace mh2_eft{
23 
25 public:
26  /**
27  * Constructor
28  * @param p_ a HimalayaInterface struct
29  * @param verbose a bool enable the output of the parameter validation. Enabled by default
30  * @param check a boolean which indicates if the threshold corrections should be tested
31  */
32  ThresholdCalculator(const Parameters& p_, bool verbose = true, bool check = false);
33  /**
34  * Returns a specific threshold correction
35  * @param couplingOrder coupling order of threshold correction
36  * @param scheme an integer key to set the scheme. Choices are {MSbar, DRbar', DRbar}
37  * @param omitLogs an integer to omit all log mu terms
38  * @return a threshold correction for a given couplingOrder in a given scheme for a suitable mass limit
39  */
40  double getThresholdCorrection(ThresholdCouplingOrders couplingOrder, RenSchemes scheme, int omitLogs) const;
41  /**
42  * Returns the shift needed to convert the 3L threshold correction of lambda to the MSbar scheme
43  * @param xtOrder an integer key to omit the Xt contributions starting at xtOrder + 1
44  * @param omitLogs an integer key to omit all log mu terms
45  * @param omitXtLogs an integer key to omit all Xt^4*Log[mu] and Xt^5*Log[mu] terms
46  */
47  double getDRbarPrimeToMSbarShift(int xtOrder, int omitLogs, int omitXtLogs = 1) const;
48  /**
49  * Returns the DRbarPrime to MSbar shift of delta lambda 3L at a given xtOrder
50  * @param limit an integer key for a mass limit
51  * @param xtOrder an integer key to get a specific Xt order starting at 4
52  * @param omitLogs an integer key to omit all log mu terms
53  */
54  double getDRbarPrimeToMSbarXtTerms(Limits limit, int xtOrder, int omitLogs) const;
55  /**
56  * Sets the mass limit to check terms
57  * @param limit an integer key for a mass limit
58  */
59  void setLimit(Limits limit);
60  /**
61  * Get the mass limit determined by ThresholdCalculator
62  * @return The determined mass limit
63  */
64  Limits getLimit() const;
65  /**
66  * Sets the order of Xt for getDeltaLambdaAlphatAlphas2
67  * @param xtOrder an integer key to truncate delta_lambda_at_as2 at a given Xt order starting at 4
68  */
69  void setXtOrderOfDeltaLambdaAtAs2(int xtOrder);
70 private:
71  /**
72  * Returns delta g3_as in the MSbar scheme for a given mass limit
73  * @param omitLogs an integer key to omit all mu terms
74  * @return delta g3_as in the MSbar scheme for a given mass limit
75  */
76  double getDeltaG3Alphas(int omitLogs) const;
77  /**
78  * Returns delta yt_as in the MSbar scheme for a given mass limit
79  * @param limit an integer key for a mass limit
80  * @param omitLogs an integer key to omit all mu terms
81  * @return delta yt_as in the MSbar scheme for a given mass limit
82  */
83  double getDeltaYtAlphas(Limits limit, int omitLogs) const;
84  /**
85  * Returns delta yt_as^2 in the MSbar scheme for a given mass limit
86  * @param limit an integer key for a mass limit
87  * @param omitLogs an integer key to omit all mu terms
88  * @return delta yt_as^2 in the MSbar scheme for a given mass limit
89  */
90  double getDeltaYtAlphas2(Limits limit, int omitLogs) const;
91  /**
92  * Returns delta lambda_at in the MSbar scheme for a given mass limit
93  * @param limit an integer key for a mass limit
94  * @param omitLogs an integer key to omit all mu terms
95  * @return delta lambda_at in the MSbar scheme for a given mass limit
96  */
97  double getDeltaLambdaAlphat(Limits limit, int omitLogs) const;
98  /**
99  * Returns delta lambda_atas in the MSbar scheme for a given mass limit
100  * @param limit an integer key for a mass limit
101  * @param omitLogs an integer key to omit all mu terms
102  * @return delta lambda_atas in the MSbar scheme for a given mass limit
103  */
104  double getDeltaLambdaAlphatAlphas(Limits limit, int omitLogs) const;
105  /**
106  * Returns delta lambda_atas2 in the MSbar scheme for a given mass limit
107  * @param limit an integer key for a mass limit
108  * @param omitLogs an integer key to omit all mu terms
109  * @return delta lambda_atas2 in the MSbar scheme for a given mass limit
110  */
111  double getDeltaLambdaAlphatAlphas2(Limits limit, int omitLogs) const;
112  /**
113  * Returns delta_lambda_yb^2_g1^2
114  * @param omitLogs an integer key to omit all mu terms
115  * @return delta_lambda_yb^2_g1^2
116  */
117  double getDeltaLambdaYb2G12(int omitLogs) const;
118  /**
119  * Returns delta_lambda_g1^4
120  * @param omitLogs an integer key to omit all mu terms
121  * @return delta_lambda_g1^4
122  */
123  double getDeltaLambdaG14(int omitLogs) const;
124  /**
125  * Returns delta_lambda_reg_g1^4
126  * @return delta_lambda_reg_g1^4
127  */
128  double getDeltaLambdaRegG14() const;
129  /**
130  * Returns delta_lambda_chi_g1^4
131  * @param omitLogs an integer key to omit all mu terms
132  * @return delta_lambda_chi_g1^4
133  */
134  double getDeltaLambdaChiG14(int omitLogs) const;
135  /**
136  * Returns delta_lambda_chi_g2^4
137  * @param omitLogs an integer key to omit all mu terms
138  * @return delta_lambda_chi_g2^4
139  */
140  double getDeltaLambdaChiG24(int omitLogs) const;
141  /**
142  * Returns delta_lambda_g2^4
143  * @param omitLogs an integer key to omit all mu terms
144  * @return delta_lambda_g2^4
145  */
146  double getDeltaLambdaG24(int omitLogs) const;
147  /**
148  * Returns delta_lambda_reg_g2^4
149  * @return delta_lambda_reg_g2^4
150  */
151  double getDeltaLambdaRegG24() const;
152  /**
153  * Returns delta_lambda_g1^2_g2^2
154  * @param omitLogs an integer key to omit all mu terms
155  * @return delta_lambda_g1^2_g2^2
156  */
157  double getDeltaLambdaG12G22(int omitLogs) const;
158  /**
159  * Returns delta_lambda_reg_g1^2_g2^2
160  * @return delta_lambda_reg_g1^2_g2^2
161  */
162  double getDeltaLambdaRegG12G22() const;
163  /**
164  * Returns delta_lambda_chi_g1^2_g2^2
165  * @return delta_lambda_chi_g1^2_g2^2
166  */
167  double getDeltaLambdaChiG12G22(int omitLogs) const;
168  /**
169  * Returns delta_lambda_yb^2_g2^2
170  * @param omitLogs an integer key to omit all mu terms
171  * @return delta_lambda_yb^2_g2^2
172  */
173  double getDeltaLambdaYb2G22(int omitLogs) const;
174  /**
175  * Returns delta_lambda_yb^4
176  * @param omitLogs an integer key to omit all mu terms
177  * @return delta_lambda_yb^4
178  */
179  double getDeltaLambdaYb4(int omitLogs) const;
180  /**
181  * Returns delta_lambda_yt^2_g1^2
182  * @param omitLogs an integer key to omit all mu terms
183  * @return delta_lambda_yt^2_g1^2
184  */
185  double getDeltaLambdaYt2G12(int omitLogs) const;
186  /**
187  * Returns delta_lambda_yt^2_g2^2
188  * @param omitLogs an integer key to omit all mu terms
189  * @return delta_lambda_yt^2_g2^2
190  */
191  double getDeltaLambdaYt2G22(int omitLogs) const;
192  /**
193  * Returns delta_lambda_ytau^2_g1^2
194  * @param omitLogs an integer key to omit all mu terms
195  * @return delta_lambda_ytau^2_g1^2
196  */
197  double getDeltaLambdaYtau2G12(int omitLogs) const;
198  /**
199  * Returns delta_lambda_ytau^2_g2^2
200  * @param omitLogs an integer key to omit all mu terms
201  * @return delta_lambda_ytau^2_g2^2
202  */
203  double getDeltaLambdaYtau2G22(int omitLogs) const;
204  /**
205  * Returns delta_lambda_ytau^4
206  * @param omitLogs an integer key to omit all mu terms
207  * @return delta_lambda_ytau^4
208  */
209  double getDeltaLambdaYtau4(int omitLogs) const;
210  /**
211  * Returns delta_g1_g1
212  * @param omitLogs an integer key to omit all mu terms
213  * @return delta_g1_g1
214  */
215  double getDeltaG1G1(int omitLogs) const;
216  /**
217  * Returns delta_g2_g2
218  * @param omitLogs an integer key to omit all mu terms
219  * @return delta_g2_g2
220  */
221  double getDeltaG2G2(int omitLogs) const;
222  /**
223  * Returns delta_lambda_v_yt^2
224  * @param limit an integer key for a mass limit
225  * @return delta_lambda_v_yt^2
226  */
227  double getDeltaVevYt2(Limits limit) const;
228  /**
229  * Returns delta_lambda_v_yb^2
230  * @return delta_lambda_v_yb^2
231  */
232  double getDeltaVevYb2() const;
233  /**
234  * Returns delta_lambda_v_ytau^2
235  * @return delta_lambda_v_ytau^2
236  */
237  double getDeltaVevYtau2() const;
238  /**
239  * Returns delta_lambda_v_g1^2
240  * @param omitLogs an integer key to omit all mu terms
241  * @return delta_lambda_v_g1^2
242  */
243  double getDeltaVevG12(int omitLogs) const;
244  /**
245  * Returns delta_lambda_v_g2^2
246  * @param omitLogs an integer key to omit all mu terms
247  * @return delta_lambda_v_g2^2
248  */
249  double getDeltaVevG22(int omitLogs) const;
250  /**
251  * Returns delta_ytau_yb
252  * @return delta_ytau_yb
253  */
254  double getDeltaYtauYb() const;
255  /**
256  * Returns delta_yt_yt
257  * @param omitLogs an integer key to omit all mu terms
258  * @return delta_yt_yt
259  */
260  double getDeltaYtYt(int omitLogs) const;
261  /**
262  * Returns delta_ytau_ytau
263  * @param omitLogs an integer key to omit all mu terms
264  * @return delta_ytau_ytau
265  */
266  double getDeltaYtauYtau(int omitLogs) const;
267  /**
268  * Returns delta_yt_yb
269  * @param omitLogs an integer key to omit all mu terms
270  * @return delta_yt_yb
271  */
272  double getDeltaYtYb(int omitLogs) const;
273  /**
274  * Returns delta_yb_yt
275  * @param omitLogs an integer key to omit all mu terms
276  * @return delta_yb_yt
277  */
278  double getDeltaYbYt(int omitLogs) const;
279  /**
280  * Returns delta_yb_as
281  * @param omitLogs an integer key to omit all mu terms
282  * @return delta_yb_as
283  */
284  double getDeltaYbAs(int omitLogs) const;
285  /**
286  * Returns delta_yb_yb
287  * @param omitLogs an integer key to omit all mu terms
288  * @return delta_yb_yb
289  */
290  double getDeltaYbYb(int omitLogs) const;
291  /**
292  * Returns delta_lambda_yb4_g32
293  * @param omitLogs an integer key to omit all mu terms
294  * @return delta_lambda_yb4_g32
295  */
296  double getDeltaLambdaYb4G32(int omitLogs) const;
297  /**
298  * Returns delta_lambda_yb6
299  * @param omitLogs an integer key to omit all mu terms
300  * @return delta_lambda_yb6
301  */
302  double getDeltaLambdaYb6(int omitLogs) const;
303  /**
304  * Returns delta_lambda_yt6
305  * @param omitLogs an integer key to omit all mu terms
306  * @return delta_lambda_yt6
307  */
308  double getDeltaLambdaYt6(int omitLogs) const;
309  /**
310  * Returns delta_lambda_yt6 from SUSYHD
311  * @param omitLogs an integer key to omit all mu terms
312  * @return delta_lambda_yt6
313  */
314  double getDeltaLambdaYt6_SUSYHD(int omitLogs) const;
315  /**
316  * Returns delta_lambda_ytau6
317  * @param omitLogs an integer key to omit all mu terms
318  * @return delta_lambda_ytau6
319  */
320  double getDeltaLambdaYtau6(int omitLogs) const;
321  /**
322  * Returns delta_lambda_yt2_yb4
323  * @param omitLogs an integer key to omit all mu terms
324  * @return delta_lambda_yt2_yb4
325  */
326  double getDeltaLambdaYt2Yb4(int omitLogs) const;
327  /**
328  * Returns delta_lambda_yt4_yb2
329  * @param omitLogs an integer key to omit all mu terms
330  * @return delta_lambda_yt4_yb2
331  */
332  double getDeltaLambdaYt4Yb2(int omitLogs) const;
333  /**
334  * Returns delta_lambda_ytau4_yb2
335  * @param omitLogs an integer key to omit all mu terms
336  * @return delta_lambda_ytau4_yb2
337  */
338  double getDeltaLambdaYtau4Yb2(int omitLogs) const;
339  /**
340  * Returns delta_lambda_ytau2_yb4
341  * @param omitLogs an integer key to omit all mu terms
342  * @return delta_lambda_ytau2_yb4
343  */
344  double getDeltaLambdaYtau2Yb4(int omitLogs) const;
345  /// calculate beta
346  double calcBeta() const;
347  /// calculate tan(beta)
348  double calcTanBeta() const;
349  /// calculate v
350  double calcV() const;
351  /// calculate v^2
352  double calcV2() const;
353  /// calculate sin(beta)
354  double calcSinBeta() const;
355  /// calculate cos(beta)
356  double calcCosBeta() const;
357  /// calculate Xt
358  double calcXt() const;
359  /// calculate Xb
360  double calcXb() const;
361  /// calculate Xtau
362  double calcXtau() const;
363  /// calculate Yt
364  double calcYt() const;
365  /// calculate Yb
366  double calcYb() const;
367  /// calculate Ytau
368  double calcYtau() const;
369  Parameters p{}; ///< Himalaya input parameters
370  double msq2{}; ///< average squared squark mass of the first two generations
371  int xtOrderLambdaAtAs2 = 6; ///< flag to truncate the Xt order of delta_lambda_at_as2 at a given power starting at 4
372 };
373 
374 } // namespace mh2_eft
375 } // namespace himalaya
double getDeltaLambdaG14(int omitLogs) const
double getDeltaLambdaYb2G12(int omitLogs) const
double getDeltaLambdaYt4Yb2(int omitLogs) const
double calcTanBeta() const
calculate tan(beta)
double getDeltaLambdaYtau4Yb2(int omitLogs) const
double getThresholdCorrection(ThresholdCouplingOrders couplingOrder, RenSchemes scheme, int omitLogs) const
Definition: H3.cpp:14
ThresholdCouplingOrders
Coupling orders in threshold corrections.
Definition: EFTFlags.hpp:34
Definition of the MSSM input parameters.
int xtOrderLambdaAtAs2
flag to truncate the Xt order of delta_lambda_at_as2 at a given power starting at 4 ...
double getDeltaLambdaChiG12G22(int omitLogs) const
double getDeltaYtAlphas(Limits limit, int omitLogs) const
double calcSinBeta() const
calculate sin(beta)
double getDeltaLambdaYt6_SUSYHD(int omitLogs) const
double getDeltaLambdaYt2G22(int omitLogs) const
ThresholdCalculator(const Parameters &p_, bool verbose=true, bool check=false)
enum definitions
double getDeltaLambdaChiG14(int omitLogs) const
double getDeltaLambdaAlphat(Limits limit, int omitLogs) const
double getDeltaLambdaAlphatAlphas2(Limits limit, int omitLogs) const
Parameters p
Himalaya input parameters.
double calcCosBeta() const
calculate cos(beta)
double getDeltaLambdaChiG24(int omitLogs) const
double getDRbarPrimeToMSbarShift(int xtOrder, int omitLogs, int omitXtLogs=1) const
RenSchemes
renormalization schemes
Definition: EFTFlags.hpp:21
double getDeltaLambdaYtau4(int omitLogs) const
double getDeltaLambdaYt2G12(int omitLogs) const
double getDeltaLambdaYtau2G12(int omitLogs) const
double getDeltaLambdaG24(int omitLogs) const
double getDeltaLambdaYt2Yb4(int omitLogs) const
double getDeltaLambdaG12G22(int omitLogs) const
double getDeltaLambdaYb4(int omitLogs) const
double getDeltaLambdaAlphatAlphas(Limits limit, int omitLogs) const
double getDeltaLambdaYtau6(int omitLogs) const
double getDeltaLambdaYtau2Yb4(int omitLogs) const
double getDRbarPrimeToMSbarXtTerms(Limits limit, int xtOrder, int omitLogs) const
double msq2
average squared squark mass of the first two generations
double getDeltaLambdaYb4G32(int omitLogs) const
double getDeltaLambdaYtau2G22(int omitLogs) const
double getDeltaYtAlphas2(Limits limit, int omitLogs) const
double getDeltaLambdaYb2G22(int omitLogs) const