Himalaya
HierarchyObject.cpp
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 
9 
12 
13 #include <cmath>
14 #include <iostream>
15 #include <stdexcept>
16 #include <string>
17 #include <utility>
18 
19 /**
20  * @file HierarchyObject.cpp
21  *
22  * @brief Implementation of the HierarchyObject, which contains all
23  * the calculational results.
24  */
25 
26 namespace himalaya {
27 namespace {
28 
29 mh2_eft::RenSchemes toRenSchemes(int r)
30 {
31  return static_cast<mh2_eft::RenSchemes>(r);
32 }
33 
34 int toInt(mh2_eft::RenSchemes r)
35 {
36  return static_cast<int>(r);
37 }
38 
39 /**
40  * Sorts a vector.
41  * @param v The vector which should be sorted.
42  * @return Returns a vector the lightest entry at position 0.
43  */
44 Eigen::Vector2d sortVector(const Eigen::Vector2d& v)
45 {
46  auto vector = v;
47  if (vector(0) > vector(1)) {
48  std::swap(vector(0), vector(1));
49  }
50  return vector;
51 }
52 
53 } // anonymous namespace
54 
55 /**
56  * A constructor.
57  * @param isAlphab the boolean which determines wether the members are proportinal to alpha_b or alpha_t.
58  */
60  : isAlphab(isAlphab)
61  , renormalizationScheme(toInt(mh2_eft::RenSchemes::DRBARPRIME))
62 {
63 }
64 
65 /**
66  * @return The value of isAlphab.
67  */
69 {
70  return isAlphab;
71 }
72 
73 /**
74  * Sets the suitable hierarchy
75  * @param hierarchy the integer key of the hierarchy.
76  */
78 {
79  this->hierarchy = hierarchy;
80 }
81 
82 /**
83  * @return The key to the suitable hierarchy
84  */
86 {
87  return hierarchy;
88 }
89 
90 /**
91  * Sets the absolute difference of the Higgs masses at two-loop level
92  * @param absDiff2L the absolute difference of the Higgs masses as a double.
93  */
95 {
96  this->absDiff2L = absDiff2L;
97 }
98 
99 /**
100  * @return The absolute difference of the exact and expanded Higgs masses at two-loop level at the order O(alpha_x + alpha_x*alpha_s).
101  */
103 {
104  return absDiff2L;
105 }
106 
107 /**
108  * Sets the relative difference ot the Higgs masses at two-loop level
109  * @param relDiff2L the relative difference of the Higgs masses as a double.
110  */
112 {
113  this->relDiff2L = relDiff2L;
114 }
115 
116 /**
117  * @return The relative difference of the exact and expanded Higgs masses at two-loop level at the order O(alpha_x + alpha_x*alpha_s).
118  */
120 {
121  return relDiff2L;
122 }
123 
124 
125 /**
126  * Sets the uncertainty of the expansion at a given loop level.
127  * @param loops the integer value of the corresponding loops. Can be 1, 2 or 3.
128  * @param uncertainty the expansion untertainty at the given loop order as a double.
129  */
130 void HierarchyObject::setDMhExpUncertainty(int loops, double uncertainty)
131 {
132  if (loops > 0 && loops <= 3) {
133  expUncertainties.at(loops) = uncertainty;
134  } else {
135  throw std::runtime_error("Expansion uncertainty for "
136  + std::to_string(loops) + " loop(s) is not available.");
137  }
138 }
139 
140 /**
141  * @param loops an integer which can be 1, 2 or 3.
142  * @return A double which is the expansion uncertainty for the given loop order.
143  */
145 {
146  if (loops > 0 && loops <= 3) {
147  return expUncertainties.at(loops);
148  }
149 
150  throw std::runtime_error("Expansion uncertainty for "
151  + std::to_string(loops)
152  + " loop(s) is not available.");
153 
154 }
155 
156 /**
157  * Sets the delta of the CP-even Higgs mass matrix
158  * @param loops the integer value of the corresponding loops. Can be 0, 1, 2 or 3. 0 corresponds to the tree-level.
159  * @param dMh the delta of the mass matrix.
160  */
161 void HierarchyObject::setDMh(int loops, const Eigen::Matrix2d& dMh)
162 {
163  if (loops >= 0 && loops <= 3) {
164  dMhMap.at(loops) = dMh;
165  } else {
166  throw std::runtime_error("Higgs mass matrix for "
167  + std::to_string(loops)
168  + " loop(s) is not available.");
169  }
170 }
171 
172 /**
173  * Sets the delta of the squared CP-even Higgs mass
174  * @param loops the integer value of the corresponding loops. Can be 0, 1, 2 or 3. 0 corresponds to the tree-level.
175  * @param dMh2 the delta of the squared mass.
176  */
177 void HierarchyObject::setDMh2(int loops, double dMh2)
178 {
179  if (loops >= 0 && loops <= 3) {
180  dMh2Map.at(loops) = dMh2;
181  } else {
182  throw std::runtime_error("squared Higgs mass correction for "
183  + std::to_string(loops)
184  + " loop(s) is not available.");
185  }
186 }
187 
188 /**
189  * @param loops an integer which can be 0, 1, 2, 3. Here, 0 corresponds to the tree-level matrix.
190  * @return The CP-even Higgs mass matrix at the given loop order.
191  */
192 Eigen::Matrix2d HierarchyObject::getDMh(int loops) const
193 {
194  if (loops >= 0 && loops <= 3) {
195  return dMhMap.at(loops);
196  }
197 
198  throw std::runtime_error("Higgs mass matrix for " + std::to_string(loops)
199  + " loop(s) is not available.");
200 }
201 
202 /**
203  * @param loops an integer which can be 0, 1, 2, 3. Here, 0 corresponds to the tree-level matrix.
204  * @return The correction to squared CP-even Higgs mass at the given loop order.
205  */
206 double HierarchyObject::getDMh2(int loops) const
207 {
208  if (loops >= 0 && loops <= 3) {
209  return dMh2Map.at(loops);
210  }
211 
212  throw std::runtime_error("Higgs mass correction for " + std::to_string(loops)
213  + " loop(s) is not available.");
214 }
215 
216 /**
217  * Sets the DR' -> MDR' shift
218  * @param mdrShift the DR' -> MDR' shiftet matrix of the form M(MDR') - M(DR').
219  */
221 {
222  this->mdrShift = mdrShift;
223 }
224 
225 /**
226  * @return The matrix M(MDR') - M(DR') at the order O(alpha_x + alpha_x*alpha_s)
227  */
229 {
230  return mdrShift;
231 }
232 
233 void HierarchyObject::setDMhDRbarPrimeToH3mShift(const Eigen::Matrix2d& shift)
234 {
235  h3mShift = shift;
236 }
237 
239 {
240  return h3mShift;
241 }
242 
243 
244 /**
245  * Sets the MDR masses
246  * @param mdrMasses a vector containting the MDR masses with the lightest particle at position 0.
247  */
248 void HierarchyObject::setMDRMasses(const Eigen::Vector2d& mdrMasses)
249 {
250  this->mdrMasses = sortVector(mdrMasses);
251 }
252 
253 /**
254  * @return A vector of the MDR stop/sbottom masses. The 0th entry corresponds to the lighter particle.
255  */
256 Eigen::Vector2d HierarchyObject::getMDRMasses() const
257 {
258  return mdrMasses;
259 }
260 
261 /**
262  * Sets the mdrFlag to calculate the corretions in without MDR (0) or with MDR (1) shifts.
263  * @param mdrFlag an int. (0) for H3m (DR')- and (1) for MDR-scheme.
264  * @throws runtime_exception if the flag is neither 0 or 1 an exception is thrown.
265  */
267 {
268  if (mdrFlag != 0 && mdrFlag != 1) {
269  throw std::runtime_error(
270  "The MDR-flag has to be 0 (DR-scheme) or 1 (MDR-scheme). Input: " +
271  std::to_string(mdrFlag) + ".");
272  }
273  this->mdrFlag = mdrFlag;
274 }
275 
276 /**
277  * @return the MDRFlag integer.
278  */
280 {
281  return mdrFlag;
282 }
283 
284 /**
285  * Sets the renormalization scheme accodring to the RenScheme enum
286  * @param renScheme an int according to the RenScheme enum.
287  * @throws runtime_exception if the flag is not in {0,1,2,3} an exception is thrown
288  */
290 {
291  if (renScheme < toInt(mh2_eft::RenSchemes::FIRST) ||
292  renScheme >= toInt(mh2_eft::RenSchemes::NUMBER_OF_REN_SCHEMES)) {
293  throw std::runtime_error(
294  "The renormalization scheme has to be 0 (H3m), 1 (DR'), 2 (H3m"
295  " with MDR), 3 (MDR'). Input: " +
296  std::to_string(renScheme) + ".");
297  }
298  renormalizationScheme = renScheme;
299 }
300 
301 /**
302  * @return Renormalization scheme key
303  */
305 {
306  return renormalizationScheme;
307 }
308 
309 
310 /**
311  * Sets the delta_lambda at 3-loop order with H3m logs.
312  * @param deltaLambda delta_lambda at 3-loop order.
313  */
314 void HierarchyObject::setDLambdaH3m(double deltaLambda)
315 {
316  dLambdaH3m = deltaLambda;
317 }
318 
319 /**
320  * @return 3-loop delta_lambda with H3m logs
321  */
323 {
324  return dLambdaH3m;
325 }
326 
327 /**
328  * Sets the delta_lambda at 3-loop order with EFT logs.
329  * @param deltaLambda delta_lambda at 3-loop order.
330  */
331 void HierarchyObject::setDLambdaEFT(double deltaLambda)
332 {
333  dLambdaEFT = deltaLambda;
334 }
335 
336 /**
337  * @return 3-loop delta_lambda with EFT logs
338  */
340 {
341  return dLambdaEFT;
342 }
343 
344 /**
345  * Sets the constant part of delta_lambda at 3-loop order.
346  * @param deltaLambda constant part of delta_lambda at 3-loop order.
347  */
348 void HierarchyObject::setDLambdaNonLog(double deltaLambda)
349 {
350  dLambdaNonLog = deltaLambda;
351 }
352 
353 /**
354  * @return 3-loop delta_lambda for the degenerated mass case with EFT logs
355  */
357 {
358  return dLambdaNonLog;
359 }
360 
361 /**
362  * Sets the Xt parts of the uncertainty of delta_lambda
363  * @param uncertainty of 3-loop delta_lambda
364  */
366 {
367  dLambdaXtUncertainty = uncertainty;
368 }
369 
371 {
372  if (loops >= 0 && loops <= 2) {
373  return 0.;
374  }
375  if (loops == 3) {
376  return std::abs(dLambdaXtUncertainty) +
377  std::abs(getDLambdaEFT() - getDLambdaH3m());
378  }
379 
380  throw std::runtime_error("Δλ uncertainty " + std::to_string(loops) +
381  " loop(s) is not available.");
382 }
383 
384 /**
385  * @return delta_lambda
386  * @param loops an integer, could be 0 (tree), 1 (1L), ..., 3 (3L)
387  */
388 double HierarchyObject::getDLambda(int loops) const
389 {
390  if (loops >= 0 && loops <= 3) {
391  return dLambdaMap.at(loops);
392  }
393 
394  throw std::runtime_error("Δλ for " + std::to_string(loops) +
395  " loop(s) is not available.");
396 }
397 
398 /**
399  * Sets the Delta_lambda at loops-loop
400  * @param loops an integer, could be 0 (tree), ..., 3 (3L)
401  * @param deltaLambda delta_lambda at tree-level
402  */
403 void HierarchyObject::setDLambda(int loops, double deltaLambda)
404 {
405  if (loops >= 0 && loops <= 3) {
406  dLambdaMap.at(loops) = deltaLambda;
407  } else {
408  throw std::runtime_error("Δλ for " + std::to_string(loops) +
409  " loop(s) is not available.");
410  }
411 }
412 
413 /**
414  * @return Delta_Mh2_EFT (only contributions that go with αt)
415  * @param loops an integer, could be 0 (tree), 1 (1L), ..., 3 (3L)
416  */
417 double HierarchyObject::getDMh2EFTAt(int loops) const
418 {
419  if (loops >= 0 && loops <= 3) {
420  return dMh2EFTMap.at(loops);
421  }
422 
423  throw std::runtime_error("Higgs mass for " + std::to_string(loops) + " loop(s) is not available.");
424 }
425 
426 /**
427  * @return Delta_Mh2_FO
428  * @param loops an integer, could be 0 (tree), 1 (1L), ..., 3 (3L)
429  */
430 double HierarchyObject::getDMh2FO(int loops) const
431 {
432  if (loops >= 0 && loops <= 3) {
433  return dMh2FOMap.at(loops);
434  }
435 
436  throw std::runtime_error("Higgs mass for " + std::to_string(loops) + " loop(s) is not available.");
437 }
438 
439 /**
440  * @return Delta_Mh2_FO (only contributions that go with αt)
441  * @param loops an integer, could be 0 (tree), 1 (1L), ..., 3 (3L)
442  */
443 double HierarchyObject::getDMh2FOAt(int loops) const
444 {
445  if (loops >= 0 && loops <= 3) {
446  return dMh2FOAtMap.at(loops);
447  }
448 
449  throw std::runtime_error("Higgs mass for " + std::to_string(loops) + " loop(s) is not available.");
450 }
451 
452 /**
453  * Sets Delta_Mh2_EFT at loops-loop (only contributions that go with αt)
454  * @param loops an integer, could be 0 (tree), ..., 3 (3L)
455  * @param deltaMh2 delta_Mh^2
456  */
457 void HierarchyObject::setDMh2EFT(int loops, double deltaMh2)
458 {
459  if (loops >= 0 && loops <= 3) {
460  dMh2EFTMap.at(loops) = deltaMh2;
461  } else {
462  throw std::runtime_error("Higgs mass for " + std::to_string(loops) +
463  " loop(s) is not available.");
464  }
465 }
466 
467 /**
468  * Sets Delta_Mh2_FO at loops-loop
469  * @param loops an integer, could be 0 (tree), ..., 3 (3L)
470  * @param deltaMh2 delta_Mh^2
471  */
472 void HierarchyObject::setDMh2FO(int loops, double deltaMh2)
473 {
474  if (loops >= 0 && loops <= 3) {
475  dMh2FOMap.at(loops) = deltaMh2;
476  } else {
477  throw std::runtime_error("Higgs mass for " + std::to_string(loops) +
478  " loop(s) is not available.");
479  }
480 }
481 
482 /**
483  * Sets Delta_Mh2_FO at loops-loop (only contributions that go with αt)
484  * @param loops an integer, could be 0 (tree), ..., 3 (3L)
485  * @param deltaMh2 delta_Mh^2
486  */
487 void HierarchyObject::setDMh2FOAt(int loops, double deltaMh2)
488 {
489  if (loops >= 0 && loops <= 3) {
490  dMh2FOAtMap.at(loops) = deltaMh2;
491  } else {
492  throw std::runtime_error("Higgs mass for " + std::to_string(loops) +
493  " loop(s) is not available.");
494  }
495 }
496 
497 /**
498  * @return shift to convert delta_lambda from DR' to MS scheme. This shift has to be added to the 1L result
499  * @param loops an integer, could be 0 (tree), 1 (1L), ..., 3 (3L)
500  */
502 {
503  if (loops >= 0 && loops <= 3) {
504  return dLambdaDRbarPrimeToMSbarShiftMap.at(loops);
505  }
506 
507  throw std::runtime_error("Δ_DR' -> MS shift for " + std::to_string(loops) +
508  " loop(s) is not available.");
509 }
510 
511 /**
512  * Sets the DR' to MS shift for delta_lambda at loops-loop
513  * @param loops an integer, could be 0(tree), ..., 3 (3L shift)
514  * @param shift the shift
515  */
517 {
518  if (loops >= 0 && loops <= 3) {
519  dLambdaDRbarPrimeToMSbarShiftMap.at(loops) = shift;
520  } else {
521  throw std::runtime_error("Δ_DR' -> MS shift for " +
522  std::to_string(loops) +
523  " loop(s) is not available.");
524  }
525 }
526 
527 /**
528  * Returns the H3m notation of a given hierarchy.
529  * @param hierarchy An integer of a Himalaya hierarchy.
530  * @return Returns the corresponding H3m notation of the given hierarchy as a string.
531  */
533 {
534  using namespace himalaya::hierarchies;
535 
536  switch (hierarchy){
537  case Hierarchies::h3:
538  return "h3";
539  case Hierarchies::h32q2g:
540  return "h32q2g";
541  case Hierarchies::h3q22g:
542  return "h3q22g";
543  case Hierarchies::h4:
544  return "h4";
545  case Hierarchies::h5:
546  return "h5";
547  case Hierarchies::h5g1:
548  return "h5g1";
549  case Hierarchies::h6:
550  return "h6";
551  case Hierarchies::h6b:
552  return "h6b";
554  return "h6b2qg2";
556  return "h6bq22g";
558  return "h6bq2g2";
559  case Hierarchies::h6g2:
560  return "h6g2";
561  case Hierarchies::h9:
562  return "h9";
563  case Hierarchies::h9q2:
564  return "h9q2";
565  default:
566  return "Hierarchy " + std::to_string(hierarchy) + " not included";
567  }
568 }
569 
570 /**
571  * Prints out all information of the HierarchyObject
572  */
573 std::ostream& operator<<(std::ostream& ostr, const HierarchyObject& ho)
574 {
575  const int suitableHierarchy = ho.getSuitableHierarchy();
576  const std::string renSchemeString =
577  (toRenSchemes(ho.getRenormalizationScheme()) == mh2_eft::RenSchemes::H3m ||
579  ? "H3m scheme" : "DR'";
580  const std::string massString = ho.getIsAlphab() ? "Msbottom" : "Mstop";
581  const std::string spaces = ho.getIsAlphab() ? " " : " ";
582  ostr << "===================================\n"
583  << "Himalaya HierarchyObject parameters\n"
584  << "===================================\n"
585  << "Ren. scheme = " << renSchemeString << "\n"
586  << "Hierarchy = " << suitableHierarchy << " (" << ho.getH3mHierarchyNotation(suitableHierarchy) << ")\n"
587  << massString << "_1" << spaces << "= " << ho.getMDRMasses()(0) << " GeV (MDR')\n"
588  << massString << "_2" << spaces << "= " << ho.getMDRMasses()(1) << " GeV (MDR')\n"
589  << "Abs. diff 2L = " << ho.getAbsDiff2L() << " GeV\n"
590  << "Rel. diff 2L = " << ho.getRelDiff2L()*100 << " %\n"
591  << "Mh^2_0L = {{" << ho.getDMh(0).row(0)(0) << ", " << ho.getDMh(0).row(0)(1)
592  << "}, {" << ho.getDMh(0).row(1)(0) << ", " << ho.getDMh(0).row(1)(1) << "}} GeV^2\n"
593  << "ΔMh^2_1L = {{" << ho.getDMh(1).row(0)(0) << ", " << ho.getDMh(1).row(0)(1)
594  << "}, {" << ho.getDMh(1).row(1)(0) << ", " << ho.getDMh(1).row(1)(1) << "}} GeV^2\n"
595  << "ΔMh^2_2L = {{" << ho.getDMh(2).row(0)(0) << ", " << ho.getDMh(2).row(0)(1)
596  << "}, {" << ho.getDMh(2).row(1)(0) << ", " << ho.getDMh(2).row(1)(1) << "}} GeV^2\n"
597  << "ΔMh^2_3L = {{" << ho.getDMh(3).row(0)(0) << ", " << ho.getDMh(3).row(0)(1)
598  << "}, {" << ho.getDMh(3).row(1)(0) << ", " << ho.getDMh(3).row(1)(1) << "}} GeV^2\n"
599  << "Exp. uncert. 1L = " << ho.getDMhExpUncertainty(1) << " GeV\n"
600  << "Exp. uncert. 2L = " << ho.getDMhExpUncertainty(2) << " GeV\n"
601  << "Exp. uncert. 3L = " << ho.getDMhExpUncertainty(3) << " GeV\n"
602  << "DR' -> MDR' shift = {{" << ho.getDMhDRbarPrimeToMDRbarPrimeShift().row(0)(0) << ", " << ho.getDMhDRbarPrimeToMDRbarPrimeShift().row(0)(1)
603  << "}, {" << ho.getDMhDRbarPrimeToMDRbarPrimeShift().row(1)(0) << ", " << ho.getDMhDRbarPrimeToMDRbarPrimeShift().row(1)(1) << "}} GeV^2\n"
604  << "DR' -> H3m shift = {{" << ho.getDMhDRbarPrimeToH3mShift().row(0)(0) << ", " << ho.getDMhDRbarPrimeToH3mShift().row(0)(1)
605  << "}, {" << ho.getDMhDRbarPrimeToH3mShift().row(1)(0) << ", " << ho.getDMhDRbarPrimeToH3mShift().row(1)(1) << "}} GeV^2\n"
606  << "Δλ_0L = " << ho.getDLambda(0) << " O(g1^2, g2^2)\n"
607  << "Δλ_1L = " << ho.getDLambda(1) << " O(αt)\n"
608  << "Δλ_2L = " << ho.getDLambda(2) << " O(αt*αs)\n"
609  << "Δλ_3L = " << ho.getDLambda(3) << " +/- " << ho.getDLambdaUncertainty(3) << " O(αt*αs^2)\n"
610  << "Δλ_0L DR' -> MS shift = " << ho.getDLambdaDRbarPrimeToMSbarShift(0) << "\n"
611  << "Δλ_1L DR' -> MS shift = " << ho.getDLambdaDRbarPrimeToMSbarShift(1) << "\n"
612  << "Δλ_2L DR' -> MS shift = " << ho.getDLambdaDRbarPrimeToMSbarShift(2) << "\n"
613  << "Δλ_3L DR' -> MS shift = " << ho.getDLambdaDRbarPrimeToMSbarShift(3) << "\n"
614  << "Mh^2_EFT_0L = " << ho.getDMh2EFTAt(0) << " GeV^2 O(g1^2, g2^2)\n"
615  << "ΔMh^2_EFT_1L = " << ho.getDMh2EFTAt(1) << " GeV^2 O(αt)\n"
616  << "ΔMh^2_EFT_2L = " << ho.getDMh2EFTAt(2) << " GeV^2 O(αt*αs + αt^2)\n"
617  << "ΔMh^2_EFT_3L = " << ho.getDMh2EFTAt(3) << " GeV^2 O(αt*αs^2)\n"
618  << "Mh^2_FO_0L = " << ho.getDMh2FO(0) << " GeV^2 O(g1^2, g2^2)\n"
619  << "ΔMh^2_FO_1L = " << ho.getDMh2FOAt(1) << " GeV^2 O(αt)\n"
620  << "ΔMh^2_FO_2L = " << ho.getDMh2FOAt(2) << " GeV^2 O(αt*αs + αt^2)\n"
621  << "ΔMh^2_FO_3L = " << ho.getDMh2FOAt(3) << " GeV^2 O(αt*αs^2)\n"
622  << "ΔMh^2_FO_1L = " << ho.getDMh2FO(1) << " GeV^2 O(full)\n"
623  << "ΔMh^2_FO_2L = " << ho.getDMh2FO(2) << " GeV^2 O((αt+ab)*αs + (αt+αb)^2 + ab*aτ + aτ^2)\n"
624  << "ΔMh^2_FO_3L = " << ho.getDMh2FO(3) << " GeV^2 O(αt*αs^2)\n"
625  ;
626 
627  return ostr;
628 }
629 
630 } // namespace himalaya
void setSuitableHierarchy(int hierarchy)
[4] number of actual renormalization schemes
Eigen::Matrix2d getDMhDRbarPrimeToMDRbarPrimeShift() const
void setDLambdaEFT(double deltaLambda)
Eigen::Vector2d mdrMasses
the &#39;array&#39; which holds the MDR masses
int hierarchy
the suitable hierarchy
Definition: H3.cpp:14
std::array< double, 4 > expUncertainties
holds the expansion uncertainties, the keys are the loop order: 0, 1, 2, 3
Eigen::Vector2d getMDRMasses() const
double getDMhExpUncertainty(int loops) const
int mdrFlag
the MDR-scheme flag
std::array< double, 4 > dLambdaMap
holds all delta_lambda corrections multiplied with prefactors
std::array< double, 4 > dMh2EFTMap
holds all delta_Mh2_EFT corrections
double dLambdaEFT
delta_lambda 3-loop with EFT logs
double relDiff2L
the relative difference of the two loop Higgs masses
void setDMh(int loops, const Eigen::Matrix2d &dMh)
void setMDRMasses(const Eigen::Vector2d &mdrMasses)
std::array< double, 4 > dMh2FOMap
holds all delta_Mh2_FO corrections
double getDMh2FO(int loops) const
double dLambdaNonLog
delta_lambda 3-loop, non-logarithmic part
void setMDRFlag(int mdrFlag)
Eigen::Matrix2d h3mShift
The DR&#39; -> H3m shift which should be added to the DR&#39; result.
Eigen::Matrix2d getDMhDRbarPrimeToH3mShift() const
enum definitions
double absDiff2L
the absolute difference of the two loop Higgs masses
void setRenormalizationScheme(int renScheme)
std::string getH3mHierarchyNotation(int hierarchy) const
int renormalizationScheme
the renormalization scheme flag
double getDMh2FOAt(int loops) const
void setDLambda(int loops, double deltaLambda)
double getDLambdaDRbarPrimeToMSbarShift(int loops) const
void setDLambdaH3m(double deltaLambda)
bool isAlphab
the bool isAlphab
RenSchemes
renormalization schemes
Definition: EFTFlags.hpp:21
void setDMhDRbarPrimeToH3mShift(const Eigen::Matrix2d &shift)
double getDLambdaUncertainty(int loops) const
void setDMh2EFT(int loops, double deltaMh2)
void setDMh2(int loops, double dMh2)
void setDMhExpUncertainty(int loops, double uncertainty)
Definition of the HierarchyObject, which contains all the calculational results.
void setDLambdaDRbarPrimeToMSbarShift(int loops, double shift)
std::ostream & operator<<(std::ostream &ostr, const HierarchyObject &ho)
void setDLambdaXtUncertainty(double uncertainty)
Eigen::Matrix2d getDMh(int loops) const
double dLambdaXtUncertainty
The uncertainty of delta_lambda_EFT due to mising Xt terms.
std::array< double, 4 > dLambdaDRbarPrimeToMSbarShiftMap
holds all DR&#39; -> MS shifts for delta_lambda corrections multiplied with prefactors ...
void setRelDiff2L(double relDiff2L)
void setDMh2FO(int loops, double deltaMh2)
void setAbsDiff2L(double absDiff2L)
void setDMh2FOAt(int loops, double deltaMh2)
void setDLambdaNonLog(double deltaLambda)
void setDMhDRbarPrimeToMDRbarPrimeShift(const Eigen::Matrix2d &mdrShift)
double getDMh2(int loops) const
double getDLambda(int loops) const
std::array< double, 4 > dMh2Map
holds loop corretions to squared CP-even Higgs mass
std::array< double, 4 > dMh2FOAtMap
holds all delta_Mh2_FO corrections (only contributions that go with αt)
Eigen::Matrix2d mdrShift
the mass matrix of the difference of the MDR - DR contributions of the order alpha_x + alpha_x*alpha_...
double getDMh2EFTAt(int loops) const
[2] MDRbar with H3m renormalization
double dLambdaH3m
delta_lambda 3-loop with H3m logs
std::array< Eigen::Matrix2d, 4 > dMhMap
holds all mass matrices at the given loop order