Himalaya
H4.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 
11 #include "himalaya/misc/Powers.hpp"
12 #include <cmath>
13 
14 namespace himalaya {
15 namespace hierarchies {
16 
17 /**
18  * Constructor
19  * @param expansionDepth the flagMap for the truncation of expansion variables
20  * @param Al4p a double alpha_s/4/Pi
21  * @param At a double tri-linear breaking term
22  * @param beta a double which is the mixing angle beta
23  * @param lmMt a double log((<renormalization scale> / Mt)^2)
24  * @param lmMsq a double log((<renormalization scale> / Msq)^2)
25  * @param lmMsusy a double log((<renormalization scale> / Msusy)^2)
26  * @param Mt a double top/bottom quark mass
27  * @param Msusy a double (Mst1 + Mst2 + Mgl) / 3.
28  * @param Msq a double the average squark mass w/o the top squark
29  * @param mdrFlag an int 0 for DR and 1 for MDR scheme
30  * @param oneLoopFlag an int flag to consider the one-loop expansion terms
31  * @param twoLoopFlag an int flag to consider the two-loop expansion terms
32  * @param threeLoopFlag an int flag to consider the three-loop expansion terms
33  */
34 H4::H4(const ExpansionFlags_t& expansionDepth, double Al4p, double At, double beta,
35  double lmMt, double lmMsq, double lmMsusy, double Mt, double Msusy, double Msq,
36  int mdrFlag, int oneLoopFlag, int twoLoopFlag, int threeLoopFlag){
37  // abbrev for cos(beta) and sin(beta)
38  Cbeta = cos(beta);
39  Sbeta = sin(beta);
40  this -> At = At;
41  this -> lmMt = lmMt;
42  this -> lmMsq = lmMsq;
43  this -> lmMsusy = lmMsusy;
44  this -> Mt = Mt;
45  this -> Msusy = Msusy;
46  this -> Msq = Msq;
47  // mdr flags, indicates if one wants to shift the dr stop mass to the mdr stop mass
48  shiftst1 = mdrFlag;
49  shiftst2 = mdrFlag;
50  shiftst3 = mdrFlag;
51  this -> oneLoopFlag = oneLoopFlag;
52  this -> twoLoopFlag = twoLoopFlag;
53  this -> threeLoopFlag = threeLoopFlag;
54  this -> Al4p = Al4p;
55  // expansion flags
56  xAt = expansionDepth.at(ExpansionDepth::At);
57  xMsq = expansionDepth.at(ExpansionDepth::Msq);
58  xlmMsusy = expansionDepth.at(ExpansionDepth::lmMsusy);
59  xMsusy = expansionDepth.at(ExpansionDepth::Msusy);
60 }
61 
62 /**
63  * @return The diagonal (1, 1) matrix element of the Higgs mass matrix as a double for the hierarchy 'H4'
64  */
65 double H4::getS1() const {
66  return (2*threeLoopFlag*xAt*pow2(Al4p)*pow2(At)*(349 - 56*lmMsusy + 24*lmMt -
67  282*z3 - 32*pow2(lmMsusy))*pow4(Mt)*(pow12(Sbeta) + pow2(Cbeta)*(pow2(
68  Sbeta) + pow4(Sbeta) + pow6(Sbeta) + pow8(Sbeta) + power10(Sbeta))))/(
69  27.*pow2(Cbeta)*pow2(Msusy));
70 }
71 
72 /**
73  * @return The diagonal (2, 2) matrix element of the Higgs mass matrix as a double for the hierarchy 'H4'
74  */
75 double H4::getS2() const {
76  return -(pow4(Mt)*((lmMsusy - lmMt)*oneLoopFlag + (8*Al4p*twoLoopFlag*(At*(1 +
77  lmMsusy + lmMt) + Msusy*(1 + lmMsusy - lmMt + 2*lmMsusy*lmMt + pow2(
78  lmMsusy) - 3*pow2(lmMt))))/(3.*Msusy) + threeLoopFlag*pow2(Al4p)*(
79  204.74074074074073 + (800*lmMsq)/9. + (4*(1 - 2*lmMsusy)*shiftst3)/3. -
80  (400*pow2(lmMsq))/9. + (8*lmMsusy*(-554 + 270*lmMsq + 135*pow2(lmMsq)))
81  /81. - (1288*pow2(lmMsusy))/27. - (8*lmMt*(125 - 71*lmMsusy + 30*lmMsq*
82  (-7 + 3*lmMsusy) + 39*pow2(lmMsusy)))/27. + (8*(-18 + 5*lmMsq + 23*
83  lmMsusy)*pow2(lmMt))/3. + (8*(10589 + lmMsusy*(4910 - 3750*lmMt) -
84  2250*lmMt + 10*lmMsq*(-266 + 285*lmMsusy + 375*lmMt) - 3300*pow2(lmMsq)
85  + 450*pow2(lmMsusy))*pow2(Msusy))/(675.*pow2(Msq)) + (2*(-636*At*Msusy*
86  z3 + xAt*pow2(At)*(-349 + 56*lmMsusy - 24*lmMt + 282*z3 + 32*pow2(
87  lmMsusy)) - 180*(-1 + 2*lmMsq)*(-2 + shiftst1 + shiftst2)*xMsq*pow2(
88  Msq) - 24*(-1 + 6*lmMsusy - 6*lmMt)*z3*pow2(Msusy)))/(27.*pow2(Msusy))
89  - (40*pow3(lmMsq))/9. + 16*xlmMsusy*pow3(lmMsusy) - (184*pow3(lmMt))/3.
90  - (4*(-85750*At*(-33 + 2*lmMsusy*(-11 + 6*lmMt) - 2*lmMsq*(-11 + 6*
91  lmMsusy + 6*lmMt) + 12*pow2(lmMsq)) + Msusy*(-5638838 + 385875*lmMt -
92  70*lmMsq*(-47521 + 20685*lmMsusy + 25725*lmMt) + 35*lmMsusy*(-106067 +
93  51450*lmMt) + 1624350*pow2(lmMsq) - 176400*pow2(lmMsusy)))*pow3(Msusy))
94  /(231525.*pow4(Msq)) - (10*(-222264*At*(-17 + 2*lmMsusy*(-7 + 3*lmMt) -
95  2*lmMsq*(-7 + 3*lmMsusy + 3*lmMt) + 6*pow2(lmMsq)) + Msusy*(-6262157 +
96  222264*lmMt + 252*lmMsusy*(-20233 + 7938*lmMt) - 252*lmMsq*(-19351 +
97  6678*lmMsusy + 7938*lmMt) + 1841616*pow2(lmMsq) - 158760*pow2(lmMsusy))
98  )*pow5(Msusy))/(750141.*pow6(Msq)) + (xMsusy*(76.53372960293683 - (
99  687056*lmMsq)/9801. + (71.76726864605652 + (700*lmMsq)/33.)*lmMsusy + (
100  5*(-3 + 44*lmMsq - 44*lmMsusy)*lmMt)/9. - (2260*pow2(lmMsq))/99. + (
101  160*pow2(lmMsusy))/99.)*pow8(Msusy) + (2*At*(240*(-9 + lmMsq*(4 - 3*
102  lmMsusy - 3*lmMt) + lmMsusy*(-4 + 3*lmMt) + 3*pow2(lmMsq))*pow2(Msusy)*
103  pow6(Msq) + 8*(104 + 157*lmMsusy + 84*lmMt + 24*lmMsusy*lmMt - 30*
104  lmMsq*(5 + 6*lmMsusy + 3*lmMt) + 135*pow2(lmMsq) + 228*pow2(lmMsusy) +
105  108*pow2(lmMt))*pow8(Msq) + 5*(-419 + 36*lmMsusy*(-11 + 4*lmMt) - 36*
106  lmMsq*(-11 + 4*lmMsusy + 4*lmMt) + 144*pow2(lmMsq))*pow8(Msusy)))/(81.*
107  Msusy) - (8*z2*(100*pow4(Msusy)*pow6(Msq) + 70*pow4(Msq)*pow6(Msusy) +
108  3*(30 + 20*lmMsq - 10*(lmMsusy + lmMt) + shiftst3)*pow2(Msusy)*pow8(
109  Msq) - 20*At*(2*pow3(Msusy)*(pow2(Msusy)*pow4(Msq) + pow2(Msq)*pow4(
110  Msusy) + pow6(Msq) + pow6(Msusy)) + 3*Msusy*pow8(Msq)) + 60*pow2(Msq)*
111  pow8(Msusy) + 30*(-2 + shiftst1 + shiftst2)*xMsq*power10(Msq) + 55*
112  xMsusy*power10(Msusy)))/(9.*pow2(Msusy)))/pow8(Msq))));
113 }
114 
115 /**
116  * @return The off-diagonal (1, 2) = (2, 1) matrix element of the Higgs mass matrix as a double for the hierarchy 'H4'
117  */
118 double H4::getS12() const {
119  return (Al4p*At*Sbeta*pow4(Mt)*(108*(1 + lmMsusy + lmMt)*Msusy*twoLoopFlag*pow8(
120  Msq) - Al4p*threeLoopFlag*(60*(33 - 22*lmMsq + 2*lmMsusy*(11 - 6*lmMt)
121  + 12*lmMsq*(lmMsusy + lmMt) - 24*z2 - 12*pow2(lmMsq))*pow4(Msq)*pow5(
122  Msusy) + 240*(9 - 4*lmMsq + lmMsusy*(4 - 3*lmMt) + 3*lmMsq*(lmMsusy +
123  lmMt) - 6*z2 - 3*pow2(lmMsq))*pow3(Msusy)*pow6(Msq) + 120*(17 - 14*
124  lmMsq + 2*lmMsusy*(7 - 3*lmMt) + 6*lmMsq*(lmMsusy + lmMt) - 12*z2 - 6*
125  pow2(lmMsq))*pow2(Msq)*pow7(Msusy) - 2*(3*At*xAt*(-349 + 56*lmMsusy -
126  24*lmMt + 282*z3 + 32*pow2(lmMsusy)) + 2*Msusy*(208 + 314*lmMsusy + 24*
127  (7 + 2*lmMsusy)*lmMt - 60*lmMsq*(5 + 6*lmMsusy + 3*lmMt) + 540*z2 -
128  477*z3 + 270*pow2(lmMsq) + 456*pow2(lmMsusy) + 216*pow2(lmMt)))*pow8(
129  Msq) + 5*(419 + 36*lmMsusy*(11 - 4*lmMt) + 36*lmMsq*(-11 + 4*lmMsusy +
130  4*lmMt) - 288*z2 - 144*pow2(lmMsq))*pow9(Msusy))))/(81.*Cbeta*pow2(
131  Msusy)*pow8(Msq));
132 }
133 
134 /**
135  * @return returns the susy log^0 term of Mh^2 @ O(at*as^2) without any log(mu^2) terms normalized to DO (H3m*12/Mt^4/Sbeta^2)
136  */
138 
139  const double result =
140  (-(pow4(Mt)*(-591666768*(-10589 + 7500*z2)*pow4(Msusy)*pow6(
141  Msq) - 1724976*(-2819419 + 1800750*z2)*pow4(Msq)*pow6(Msusy) -
142  14791669200*(-691 + 270*z2 - 6*z3)*pow2(Msusy)*pow8(Msq) +
143  221875038000*pow2(Msusy)*pow3(log(pow2(Msq)/pow2(Msusy)))*pow8(Msq) -
144  665500*(-6262157 + 4000752*z2)*pow2(Msq)*pow8(Msusy) - 96049800*pow2(
145  Msusy)*pow2(log(pow2(Msq)/pow2(Msusy)))*(14586*pow4(Msq)*pow4(Msusy) +
146  20328*pow2(Msusy)*pow6(Msq) + 12760*pow2(Msq)*pow6(Msusy) + 23100*pow8(
147  Msq) + 11865*pow8(Msusy)) + 1331250228000*(-1 + 2*z2)*power10(Msq) -
148  55440*log(pow2(Msq)/pow2(Msusy))*(-28388052*pow4(Msusy)*pow6(Msq) -
149  51750369*pow4(Msq)*pow6(Msusy) - 16008300*(-5 + 3*z2)*pow2(Msusy)*pow8(
150  Msq) - 58536775*pow2(Msq)*pow8(Msusy) + 48024900*power10(Msq) -
151  63123270*power10(Msusy)) - 5145*(-742606013 + 474368400*z2)*power10(
152  Msusy)))/(4.992188355e10*pow2(Msusy)*pow8(Msq)))/pow4(Mt)*
153  12.;
154 
155  return result;
156 }
157 
158 /**
159  * @return returns the susy log^1 term of Mh^2 @ O(at*as^2) without any log(mu^2) terms normalized to DO (H3m*12/Mt^4/Sbeta^2)
160  */
162 
163  const double result =
164  (-(pow4(Mt)*(2160*pow4(Msusy)*pow6(Msq) + 540*pow4(Msq)*pow6(
165  Msusy) - 16*(-173 + 135*z2 + 54*z3)*pow2(Msusy)*pow8(Msq) + 240*pow2(
166  Msq)*pow8(Msusy) + 180*log(pow2(Msq)/pow2(Msusy))*pow2(Msusy)*(14*pow4(
167  Msq)*pow4(Msusy) + 20*pow2(Msusy)*pow6(Msq) + 12*pow2(Msq)*pow6(Msusy)
168  + 28*pow8(Msq) + 11*pow8(Msusy)) + 4320*power10(Msq) + 135*power10(
169  Msusy)))/(81.*pow2(Msusy)*pow8(Msq)))/pow4(Mt)*12.;
170 
171  return result;
172 }
173 
174 /**
175  * @return returns the susy log^2 term of Mh^2 @ O(at*as^2) without any log(mu^2) terms normalized to DO (H3m*12/Mt^4/Sbeta^2)
176  */
178 
179  const double result =
180  ((8*(221 + 45*log(pow2(Msq)/pow2(Msusy)))*pow4(Mt))/27.)/
181  pow4(Mt)*12.;
182 
183  return result;
184 }
185 
186 /**
187  * @return returns the susy log^3 term of Mh^2 @ O(at*as^2) without any log(mu^2) terms normalized to DO (H3m*12/Mt^4/Sbeta^2)
188  */
190 
191  const double result =
192  ((-224*pow4(Mt))/9.)/pow4(Mt)*12.;
193 
194  return result;
195 }
196 
197 } // namespace hierarchies
198 } // namespace himalaya
truncate the expansion depth in At/Ab by one order
double getS1() const
Definition: H4.cpp:65
std::array< int, ExpansionDepth::NUMBER_OF_EXPANSIONS > ExpansionFlags_t
Definition: H3.cpp:14
double calc_coef_at_as2_no_sm_logs_log0() const
Definition: H4.cpp:137
double Al4p
common variables
Definition: H4.hpp:65
truncate the expansion depth in log(Msusy) by one order
double getS12() const
Definition: H4.cpp:118
truncate the expansion depth in the average SUSY mass by one order
truncate the expansion depth in the average squark mass by one order
double calc_coef_at_as2_no_sm_logs_log3() const
Definition: H4.cpp:189
double getS2() const
Definition: H4.cpp:75
double calc_coef_at_as2_no_sm_logs_log1() const
Definition: H4.cpp:161
Complex< T > log(const Complex< T > &z_) noexcept
Definition: complex.hpp:45
double calc_coef_at_as2_no_sm_logs_log2() const
Definition: H4.cpp:177
H4(const ExpansionFlags_t &expansionDepth, double Al4p, double At, double beta, double lmMt, double lmMsq, double lmMsusy, double Mt, double Msusy, double Msq, int mdrFlag, int oneLoopFlag, int twoLoopFlag, int threeLoopFlag)
Definition: H4.cpp:34
double xMsusy
MDR and truncation flags.
Definition: H4.hpp:66
int threeLoopFlag
loop flags
Definition: H4.hpp:67