36 return static_cast<int>(
r);
44 Eigen::Vector2d sortVector(
const Eigen::Vector2d& v)
47 if (vector(0) > vector(1)) {
48 std::swap(vector(0), vector(1));
61 , renormalizationScheme(toInt(mh2_eft::
RenSchemes::DRBARPRIME))
132 if (loops > 0 && loops <= 3) {
135 throw std::runtime_error(
"Expansion uncertainty for " 136 + std::to_string(loops) +
" loop(s) is not available.");
146 if (loops > 0 && loops <= 3) {
150 throw std::runtime_error(
"Expansion uncertainty for " 151 + std::to_string(loops)
152 +
" loop(s) is not available.");
163 if (loops >= 0 && loops <= 3) {
166 throw std::runtime_error(
"Higgs mass matrix for " 167 + std::to_string(loops)
168 +
" loop(s) is not available.");
179 if (loops >= 0 && loops <= 3) {
182 throw std::runtime_error(
"squared Higgs mass correction for " 183 + std::to_string(loops)
184 +
" loop(s) is not available.");
194 if (loops >= 0 && loops <= 3) {
198 throw std::runtime_error(
"Higgs mass matrix for " + std::to_string(loops)
199 +
" loop(s) is not available.");
208 if (loops >= 0 && loops <= 3) {
212 throw std::runtime_error(
"Higgs mass correction for " + std::to_string(loops)
213 +
" loop(s) is not available.");
250 this->mdrMasses = sortVector(mdrMasses);
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) +
".");
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) +
".");
372 if (loops >= 0 && loops <= 2) {
380 throw std::runtime_error(
"Δλ uncertainty " + std::to_string(loops) +
381 " loop(s) is not available.");
390 if (loops >= 0 && loops <= 3) {
394 throw std::runtime_error(
"Δλ for " + std::to_string(loops) +
395 " loop(s) is not available.");
405 if (loops >= 0 && loops <= 3) {
408 throw std::runtime_error(
"Δλ for " + std::to_string(loops) +
409 " loop(s) is not available.");
419 if (loops >= 0 && loops <= 3) {
423 throw std::runtime_error(
"Higgs mass for " + std::to_string(loops) +
" loop(s) is not available.");
432 if (loops >= 0 && loops <= 3) {
436 throw std::runtime_error(
"Higgs mass for " + std::to_string(loops) +
" loop(s) is not available.");
445 if (loops >= 0 && loops <= 3) {
449 throw std::runtime_error(
"Higgs mass for " + std::to_string(loops) +
" loop(s) is not available.");
459 if (loops >= 0 && loops <= 3) {
462 throw std::runtime_error(
"Higgs mass for " + std::to_string(loops) +
463 " loop(s) is not available.");
474 if (loops >= 0 && loops <= 3) {
477 throw std::runtime_error(
"Higgs mass for " + std::to_string(loops) +
478 " loop(s) is not available.");
489 if (loops >= 0 && loops <= 3) {
492 throw std::runtime_error(
"Higgs mass for " + std::to_string(loops) +
493 " loop(s) is not available.");
503 if (loops >= 0 && loops <= 3) {
507 throw std::runtime_error(
"Δ_DR' -> MS shift for " + std::to_string(loops) +
508 " loop(s) is not available.");
518 if (loops >= 0 && loops <= 3) {
521 throw std::runtime_error(
"Δ_DR' -> MS shift for " +
522 std::to_string(loops) +
523 " loop(s) is not available.");
566 return "Hierarchy " + std::to_string(hierarchy) +
" not included";
576 const std::string renSchemeString =
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" 587 << massString <<
"_1" << spaces <<
"= " << ho.
getMDRMasses()(0) <<
" GeV (MDR')\n" 588 << massString <<
"_2" << spaces <<
"= " << ho.
getMDRMasses()(1) <<
" GeV (MDR')\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" 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" 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" void setSuitableHierarchy(int hierarchy)
[4] number of actual renormalization schemes
Eigen::Matrix2d getDMhDRbarPrimeToMDRbarPrimeShift() const
void setDLambdaEFT(double deltaLambda)
Eigen::Vector2d mdrMasses
the 'array' which holds the MDR masses
int hierarchy
the suitable hierarchy
HimalayaCalculateDMh3L [a___,(settings|parameters) -> s_List, r___] Sequence r
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
double getDLambdaH3m() const
void setDMh(int loops, const Eigen::Matrix2d &dMh)
himalaya::HierarchyObject ho
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' -> H3m shift which should be added to the DR' result.
Eigen::Matrix2d getDMhDRbarPrimeToH3mShift() const
double absDiff2L
the absolute difference of the two loop Higgs masses
void setRenormalizationScheme(int renScheme)
double getDLambdaNonLog() const
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
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.
int getRenormalizationScheme() const
double getAbsDiff2L() const
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.
double getDLambdaEFT() const
std::array< double, 4 > dLambdaDRbarPrimeToMSbarShiftMap
holds all DR' -> MS shifts for delta_lambda corrections multiplied with prefactors ...
void setRelDiff2L(double relDiff2L)
void setDMh2FO(int loops, double deltaMh2)
void setAbsDiff2L(double absDiff2L)
int getSuitableHierarchy() const
HierarchyObject(bool isAlphab)
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
double getRelDiff2L() const