Himalaya
Public Member Functions | Private Member Functions | Private Attributes | List of all members
himalaya::HierarchyCalculator Class Reference

#include <HierarchyCalculator.hpp>

Collaboration diagram for himalaya::HierarchyCalculator:
Collaboration graph
[legend]

Public Member Functions

 HierarchyCalculator (const Parameters &p_, bool verbose_=true)
 
HierarchyObject calculateDMh3L (bool isAlphab)
 
int compareHierarchies (HierarchyObject &ho)
 
Eigen::Matrix2d calculateHierarchy (himalaya::HierarchyObject &ho, int oneLoopFlagIn, int twoLoopFlagIn, int threeLoopFlagIn) const
 
Eigen::Matrix2d calcDRbarToMDRbarShift (const HierarchyObject &ho, bool shiftOneLoop, bool shiftTwoLoop) const
 
Eigen::Matrix2d getMt41L (const HierarchyObject &ho, unsigned shiftOneLoop, unsigned shiftTwoLoop) const
 
Eigen::Matrix2d getMt42L (const HierarchyObject &ho, unsigned shiftOneLoop, unsigned shiftTwoLoop) const
 
double shiftMst1ToMDR (const HierarchyObject &ho, unsigned oneLoopFlag, unsigned twoLoopFlag) const
 
double shiftMst2ToMDR (const HierarchyObject &ho, unsigned oneLoopFlag, unsigned twoLoopFlag) const
 
double getExpansionUncertainty (const himalaya::HierarchyObject &ho, const Eigen::Matrix2d &massMatrix, int oneLoopFlag, int twoLoopFlag, int threeLoopFlag)
 

Private Member Functions

bool isHierarchySuitable (const HierarchyObject &ho) const
 
Eigen::Matrix2d shiftH3mToDRbarPrime (const HierarchyObject &ho) const
 
double shiftH3mToDRbarPrimeMh2 (const himalaya::HierarchyObject &ho, int omitLogs) const
 
void calcDeltaLambda3L (HierarchyObject &ho, bool omitXtOrders) const
 
double calcSinBeta () const
 calculate sin(beta) More...
 
double calcCosBeta () const
 calculate cos(beta) More...
 
double calcTanBeta () const
 calculate tan(beta) More...
 
double calcBeta () const
 calculate beta from tan(beta) More...
 
double calcV () const
 calculate v = sqrt(vu^2 + vd^2) More...
 
double calcV2 () const
 calculate v^2 = vu^2 + vd^2 More...
 
double calcHiggsMassMatrixPrefactor () const
 calculate prefactor of the Higgs mass matrix More...
 
double calcAsOver4Pi () const
 calculate prefactor as/(4 Pi) More...
 
double calcMeanMsq () const
 mean (non-squared) light squark mass More...
 
std::array< double, 2 > calcMsfMDRFlag (const HierarchyObject &ho, int loopOrder) const
 calculate sfermion masses shifted to MDR More...
 

Private Attributes

Parameters p {}
 Himalaya input parameters. More...
 
bool verbose {true}
 enable/disable verbose output More...
 
std::array< int, 12 > expansionDepth {}
 hierarchy expansion depth More...
 

Detailed Description

The HierarchyCalculatur class

Definition at line 29 of file HierarchyCalculator.hpp.

Constructor & Destructor Documentation

◆ HierarchyCalculator()

himalaya::HierarchyCalculator::HierarchyCalculator ( const Parameters p_,
bool  verbose_ = true 
)

Constructor

Parameters
p_Himalaya input parameters
verbose_suppress informative output during the calculation, if set to false

Constructor

Parameters
p_a HimalayaInterface struct
verbose_suppress informative output during the calculation, if set to false

Definition at line 153 of file HierarchyCalculator.cpp.

Member Function Documentation

◆ calcAsOver4Pi()

double himalaya::HierarchyCalculator::calcAsOver4Pi ( ) const
private

calculate prefactor as/(4 Pi)

Definition at line 1314 of file HierarchyCalculator.cpp.

◆ calcBeta()

double himalaya::HierarchyCalculator::calcBeta ( ) const
private

calculate beta from tan(beta)

Definition at line 1282 of file HierarchyCalculator.cpp.

◆ calcCosBeta()

double himalaya::HierarchyCalculator::calcCosBeta ( ) const
private

calculate cos(beta)

Definition at line 1270 of file HierarchyCalculator.cpp.

◆ calcDeltaLambda3L()

void himalaya::HierarchyCalculator::calcDeltaLambda3L ( himalaya::HierarchyObject ho,
bool  omitXtOrders 
) const
private

Fills in delta_lambda @ 3L to the given HierarchyObject

Parameters
hoa HierrachyObject
omitXtOrdersa bool to omit xtOrders of delta_lambda_EFT

Fills in delta_lambda @ 3L to the given HierarchyObject

Parameters
hoa HierrachyObject

Definition at line 1330 of file HierarchyCalculator.cpp.

◆ calcDRbarToMDRbarShift()

Eigen::Matrix2d himalaya::HierarchyCalculator::calcDRbarToMDRbarShift ( const HierarchyObject ho,
bool  shiftOneLoop,
bool  shiftTwoLoop 
) const

Calculates the contribution to the order (alpha_x) and (alpha_s alpha_x) as the difference of the Higgs mass matrices of the MDR and DR scheme. Here, x can be t or b.

Parameters
hoa HierarchyObject with constant isAlphab.
shiftOneLoopa bool to shift the terms at one-loop level.
shiftTwoLoopa bool to shift the terms at two-loop level.
Returns
The loop corrected Higgs mass matrix difference of the MDR and DR scheme at the given order.

Definition at line 1246 of file HierarchyCalculator.cpp.

◆ calcHiggsMassMatrixPrefactor()

double himalaya::HierarchyCalculator::calcHiggsMassMatrixPrefactor ( ) const
private

calculate prefactor of the Higgs mass matrix

Prefactor of self-energy from Section 3 from [1005.5709].

GF = 1/(Sqrt[2] (vu^2 + vd^2)) is defined in the DR'-bar scheme. Sin[beta]^2 = vu^2 / (vu^2 + vd^2)

Returns
3 Sqrt[2] GF / (2 Pi^2 Sin[beta]^2)

Definition at line 1308 of file HierarchyCalculator.cpp.

◆ calcMeanMsq()

double himalaya::HierarchyCalculator::calcMeanMsq ( ) const
private

mean (non-squared) light squark mass

Definition at line 1320 of file HierarchyCalculator.cpp.

◆ calcMsfMDRFlag()

std::array< double, 2 > himalaya::HierarchyCalculator::calcMsfMDRFlag ( const HierarchyObject ho,
int  loopOrder 
) const
private

calculate sfermion masses shifted to MDR

Definition at line 436 of file HierarchyCalculator.cpp.

◆ calcSinBeta()

double himalaya::HierarchyCalculator::calcSinBeta ( ) const
private

calculate sin(beta)

Definition at line 1264 of file HierarchyCalculator.cpp.

◆ calcTanBeta()

double himalaya::HierarchyCalculator::calcTanBeta ( ) const
private

calculate tan(beta)

Definition at line 1276 of file HierarchyCalculator.cpp.

◆ calculateDMh3L()

himalaya::HierarchyObject himalaya::HierarchyCalculator::calculateDMh3L ( bool  isAlphab)

Calculates the 3-loop mass matrix and other information of the hierarchy selection process.

Parameters
isAlphaba bool which determines if the returned object is proportinal to alpha_b.
Returns
A HierarchyObject which holds all information of the calculation.

Definition at line 171 of file HierarchyCalculator.cpp.

◆ calculateHierarchy()

Eigen::Matrix2d himalaya::HierarchyCalculator::calculateHierarchy ( himalaya::HierarchyObject ho,
int  oneLoopFlagIn,
int  twoLoopFlagIn,
int  threeLoopFlagIn 
) const

Calculates the hierarchy contributions for a specific hierarchy at a specific loop order.

Parameters
hoa HierarchyObject with constant isAlphab.
oneLoopFlagInan integer flag which is 0 or 1 in order to add or omit the expanded one-loop results to the returned value, respectivley.
twoLoopFlagInan integer flag which is 0 or 1 in order to add or omit the expanded two-loop results to the returned value, respectivley.
threeLoopFlagInan integer flag which is 0 or 1 in order to add or omit the expanded three-loop results to the returned value, respectivley.
Exceptions
runtime_errorThrows a runtime_error if the tree-level is requested in terms of hierarchies.
Returns
The loop corrected Higgs mass matrix which contains the expanded corrections at the given order.

Calculates the hierarchy contributions for a specific hierarchy at a specific loop order.

Note: The hierarchy files containing 1-, 2- and 3-loop terms (αs^0 αt/b, αs αt/b, αs^2 αt/b).

Todo:
If one is interested in the expansion at one- and two-loop, choose a unified choice for the MDR scheme.
Parameters
hoa HierarchyObject with constant isAlphab.
oneLoopFlagInan integer flag which is 0 or 1 in order to add or omit the expanded one-loop results to the returned value, respectivley.
twoLoopFlagInan integer flag which is 0 or 1 in order to add or omit the expanded two-loop results to the returned value, respectivley.
threeLoopFlagInan integer flag which is 0 or 1 in order to add or omit the expanded three-loop results to the returned value, respectivley.
Exceptions
runtime_errorThrows a runtime_error if the tree-level is requested in terms of hierarchies.
Returns
The loop corrected Higgs mass matrix which contains the expanded corrections at the given order.

Definition at line 470 of file HierarchyCalculator.cpp.

◆ calcV()

double himalaya::HierarchyCalculator::calcV ( ) const
private

calculate v = sqrt(vu^2 + vd^2)

Definition at line 1288 of file HierarchyCalculator.cpp.

◆ calcV2()

double himalaya::HierarchyCalculator::calcV2 ( ) const
private

calculate v^2 = vu^2 + vd^2

Definition at line 1294 of file HierarchyCalculator.cpp.

◆ compareHierarchies()

int himalaya::HierarchyCalculator::compareHierarchies ( himalaya::HierarchyObject ho)

Compares deviation of all hierarchies with the exact two-loop result and returns the hierarchy which minimizes the error.

Parameters
hoa HierarchyObject with constant isAlphab.
Returns
An integer which is identified with the suitable hierarchy.

Definition at line 300 of file HierarchyCalculator.cpp.

◆ getExpansionUncertainty()

double himalaya::HierarchyCalculator::getExpansionUncertainty ( const himalaya::HierarchyObject ho,
const Eigen::Matrix2d &  massMatrix,
int  oneLoopFlag,
int  twoLoopFlag,
int  threeLoopFlag 
)

Estimates the uncertainty of the expansion at a given order.

Parameters
hoa HierarchyObject with constant isAlphab.
massMatrixthe CP-even Higgs mass matrix without the corrections whose uncertainty should be estimated.
oneLoopFlagan integer flag which is 0 or 1 in order to estimate the uncertainty of the one-loop expansion terms.
twoLoopFlagan integer flag which is 0 or 1 in order to estimate the uncertainty of the two-loop expansion terms.
threeLoopFlagan integer flag which is 0 or 1 in order to estimte the uncertainty of the three-loop expansion terms.
Returns
A double which is the estimated uncertainty.

Definition at line 1426 of file HierarchyCalculator.cpp.

◆ getMt41L()

Eigen::Matrix2d himalaya::HierarchyCalculator::getMt41L ( const HierarchyObject ho,
unsigned  shiftOneLoop,
unsigned  shiftTwoLoop 
) const

Calculates the loop corrected Higgs mass matrix at the order O(alpha_x). Here, x can be t or b.

Parameters
hoa HierarchyObject with constant isAlphab.
shiftOneLoopAn integer flag which is 0 or 1 in order to shift the one-loop terms to the MDR scheme.
shiftTwoLoopAn integer flag which is 0 or 1 in order to shift the two-loop terms to the MDR scheme.
Returns
The loop corrected Higgs mass matrix at the order O(alpha_x).

Definition at line 1140 of file HierarchyCalculator.cpp.

◆ getMt42L()

Eigen::Matrix2d himalaya::HierarchyCalculator::getMt42L ( const HierarchyObject ho,
unsigned  shiftOneLoop,
unsigned  shiftTwoLoop 
) const

Calculates the loop corrected Higgs mass matrix at the order O(alpha_x*alpha_s). Here, x can be t or b.

Parameters
hoa HierarchyObject with constant isAlphab.
shiftOneLoopAn integer flag which is 0 or 1 in order to shift the one-loop terms to the MDR scheme.
shiftTwoLoopAn integer flag which is 0 or 1 in order to shift the two-loop terms to the MDR scheme.
Returns
The loop corrected Higgs mass matrix at the order O(alpha_x*alpha_s).

Definition at line 1212 of file HierarchyCalculator.cpp.

◆ isHierarchySuitable()

bool himalaya::HierarchyCalculator::isHierarchySuitable ( const HierarchyObject ho) const
private

Checks if a hierarchy is suitable to the given mass spectrum.

Parameters
hoa HierarchyObject with constant isAlphab and a hierarchy candidate.
Returns
A bool if the hierarchy candidate is suitable to the given mass spectrum.

Definition at line 386 of file HierarchyCalculator.cpp.

◆ shiftH3mToDRbarPrime()

Eigen::Matrix2d himalaya::HierarchyCalculator::shiftH3mToDRbarPrime ( const HierarchyObject ho) const
private

Shifts the H3m renormalization scheme to DR' scheme

Parameters
hoa HierarchyObject with constant isAlphab
Returns
A matrix which shifts the H3m scheme to the DR' scheme at three-loop level

Shifts the H3m renormalization scheme to DR' scheme. This shift has to be added to the H3m result!

Parameters
hoa HierarchyObject with constant isAlphab.
Returns
A matrix which shifts the H3m scheme to the DR' scheme at three-loop level

Definition at line 925 of file HierarchyCalculator.cpp.

◆ shiftH3mToDRbarPrimeMh2()

double himalaya::HierarchyCalculator::shiftH3mToDRbarPrimeMh2 ( const himalaya::HierarchyObject ho,
int  omitLogs 
) const
private

Shifts the H3m renormalization scheme to DR' scheme

Parameters
hoa HierarchyObject with constant isAlphab
omitLogsa flag to omit logarithmic contributions: (0) omit logs, (1) add them
Returns
A double which shifts the H3m scheme to the DR' scheme at three-loop level

Shifts the H3m renormalization scheme to DR' scheme. This shift has to be added to the H3m result! Note: This shift is WITHOUT the three-loop pre-factor g3^4*k^3*Mt^2*yt^2*Sin[beta]^2 with k = 1 / (16 Pi^2)

Parameters
hoa HierarchyObject with constant isAlphab.
Returns
A double which shifts the H3m scheme to the DR' scheme at three-loop level

Definition at line 1043 of file HierarchyCalculator.cpp.

◆ shiftMst1ToMDR()

double himalaya::HierarchyCalculator::shiftMst1ToMDR ( const HierarchyObject ho,
unsigned  oneLoopFlag,
unsigned  twoLoopFlag 
) const

Shifts Msx1 according to the hierarchy to the MDR scheme.

Parameters
hoa HierarchyObject with constant isAlphab.
oneLoopFlagan integer flag which is 0 or 1 in order to shift the order O(alpha_s).
twoLoopFlagan integer flag which is 0 or 1 in order to shift the order O(alpha_s^2).
Returns
A double which is the MDR sx_1 mass.

Definition at line 817 of file HierarchyCalculator.cpp.

◆ shiftMst2ToMDR()

double himalaya::HierarchyCalculator::shiftMst2ToMDR ( const HierarchyObject ho,
unsigned  oneLoopFlag,
unsigned  twoLoopFlag 
) const

Shifts Mst2 according to the hierarchy to the MDR scheme.

Parameters
hoa HierarchyObject with constant isAlphab.
oneLoopFlagan integer flag which is 0 or 1 in order to shift the order O(alpha_s).
twoLoopFlagan integer flag which is 0 or 1 in order to shift the order O(alpha_s^2).
Returns
A double which is the MDR stop_2 mass.

Shifts Msx2 according to the hierarchy to the MDR scheme.

Parameters
hoa HierarchyObject with constant isAlphab.
oneLoopFlagan integer flag which is 0 or 1 in order to shift the order O(alpha_s).
twoLoopFlagan integer flag which is 0 or 1 in order to shift the order O(alpha_s^2).
Returns
A double which is the MDR sx_2 mass.

Definition at line 873 of file HierarchyCalculator.cpp.

Member Data Documentation

◆ expansionDepth

std::array<int, 12> himalaya::HierarchyCalculator::expansionDepth {}
private

hierarchy expansion depth

Definition at line 114 of file HierarchyCalculator.hpp.

◆ p

Parameters himalaya::HierarchyCalculator::p {}
private

Himalaya input parameters.

Definition at line 112 of file HierarchyCalculator.hpp.

◆ verbose

bool himalaya::HierarchyCalculator::verbose {true}
private

enable/disable verbose output

Definition at line 113 of file HierarchyCalculator.hpp.


The documentation for this class was generated from the following files: