90 const double lambda = get_nmssm_parameter(1, 61,
"lambda");
91 const double kappa_nmssm = get_nmssm_parameter(2, 62,
"kappa");
92 const double A_lambda = get_nmssm_parameter(3, 63,
"A_lambda");
93 const double lambda_s = get_nmssm_parameter(5, 65,
"lambda*<S> = mu_eff",
true);
94 require_nonzero(lambda,
"lambda");
96 const double singlet_vev = lambda_s / lambda;
97 require_nonzero(singlet_vev,
"<S>");
100 const double v = std::sqrt(1.0 / std::sqrt(2.0) / gf);
101 const double vdeltam_den = SQRT2 * A_lambda + kappa_nmssm * singlet_vev;
102 require_nonzero(vdeltam_den,
"sqrt(2) A_lambda + kappa <S>");
103 const double v_deltam_s = v / singlet_vev
104 * (SQRT2 * A_lambda - 2.0 * kappa_nmssm * singlet_vev) / vdeltam_den;
118 require_nonzero(mW,
"M_W");
119 require_nonzero(mHc,
"M_H+");
120 require_nonzero(g2,
"g2");
121 require_nonzero(epsfac,
"epsilon factor");
123 const std::array<double, 3> mh = {
128 const std::array<double, 2> ma = {
132 const std::array<double, 3> mstop = {
137 const double m_snutau = get_required(
ParameterType::BSM,
"MASS",
LhaID(1000016),
"MASS 1000016 (tau sneutrino)");
140 std::array<double, 2> mch {};
141 for (
int j = 0; j < 2; ++j) {
143 require_nonzero(mch[j],
"chargino mass");
146 M22 U {},
V {}, stopmix {};
149 for (
int i = 0; i < 2; ++i) {
150 for (
int j = 0; j < 2; ++j) {
156 for (
int a = 0; a < 3; ++a) {
157 for (
int c = 0; c < 3; ++c) {
161 for (
int a = 0; a < 2; ++a) {
162 for (
int c = 0; c < 3; ++c) {
168 for (
int i = 0; i < 2; ++i) {
169 for (
int j = 0; j < 2; ++j) {
170 TU[i + 1][j + 1] = stopmix[i][j];
174 const double beta = std::atan(tanb);
175 const double sinb = std::sin(beta);
176 const double cosb = std::cos(beta);
177 require_nonzero(sinb,
"sin(beta)");
178 require_nonzero(cosb,
"cos(beta)");
179 const double vu = std::sqrt(sqr(sinb) / std::sqrt(2.0) / gf);
180 const double vd = vu / tanb;
186 std::array<std::array<std::array<double, 3>, 3>, 2>
T1 {};
188 for (
int a = 0; a < 2; ++a) {
189 for (
int l = 0; l < 2; ++l) {
190 for (
int j = 0; j < 2; ++j) {
191 R[a][l][j] = -g2 / SQRT2
192 * (A[a][0] * U[1][l] *
V[1][j] + A[a][1] * U[0][l] *
V[1][j])
193 - lambda / SQRT2 * A[a][2] * U[1][l] *
V[1][j];
197 for (
int a = 0; a < 3; ++a) {
198 for (
int l = 0; l < 2; ++l) {
199 for (
int j = 0; j < 2; ++j) {
200 Q[a][l][j] = g2 / SQRT2
201 * (H[a][0] * U[1][l] *
V[1][j] + H[a][1] * U[0][l] *
V[1][j])
202 - lambda / SQRT2 * H[a][2] * U[1][l] *
V[1][j];
206 for (
int i = 0; i < 3; ++i) {
207 for (
int k = 0; k < 3; ++k) {
208 for (
int j = 0; j < 2; ++j) {
209 for (
int l = 0; l < 2; ++l) {
210 G1[i][k][j][l] = (TU[i][1] * TU[k][1] - delta(i, 0) * delta(k, 0)) *
V[0][l] * U[1][j]
211 - mt_muW / SQRT2 / sinb / mW * TU[i][2] * TU[k][1] *
V[1][l] * U[1][j];
216 for (
int a = 0; a < 2; ++a) {
217 for (
int i = 0; i < 3; ++i) {
218 for (
int k = 0; k < 3; ++k) {
219 T1[a][i][k] = (TU[i][2] * TU[k][1] - TU[i][1] * TU[k][2])
220 * ((lambda / SQRT2 * (vd * A[a][2] + singlet_vev * A[a][0])) - Au * A[a][1]);
224 for (
int a = 0; a < 3; ++a) {
225 for (
int i = 0; i < 3; ++i) {
226 for (
int k = 0; k < 3; ++k) {
227 T2[a][i][k] = -mt_muW / (2.0 * mW)
228 * (2.0 * mt_muW * H[a][1] * (TU[i][1] * TU[k][1] + TU[i][2] * TU[k][2])
229 + ((lambda / SQRT2 * (vd * H[a][2] + singlet_vev * H[a][0])) + Au * H[a][1])
230 * (TU[i][2] * TU[k][1] + TU[i][1] * TU[k][2]))
231 + mZ / 2.0 / std::sqrt(1.0 - sw2) * (1.0 - 4.0 / 3.0 * sw2) * H[a][1]
232 * (TU[i][0] * TU[k][0] + TU[i][1] * TU[k][1])
233 + 2.0 / 3.0 * mW * sw2 / (1.0 - sw2) * H[a][1] * TU[i][2] * TU[k][2];
239 for (
int a = 0; a < 3; ++a) {
240 require_nonzero(mh[a],
"CP-even Higgs mass");
241 cq1_h += (sqr(mHc / mW) * sqr(H[a][0]) *
f30(sqr(mHc / mt_muW), sqr(mW / mt_muW))
242 + sqr(mt_muW) * sqr(mh[a]) / sqr(mW) / sqr(mHc)
243 *
f30(sqr(mt_muW / mHc), sqr(mt_muW / mW))) / sqr(mh[a]);
245 cq1_h *= -ml / 4.0 * sqr(tanb);
248 for (
int a = 0; a < 2; ++a) {
249 require_nonzero(ma[a],
"CP-odd Higgs mass");
250 cq2_h += ((sqr(mHc / mW) * sqr(A[a][0]) + delta(a, 1) * A[a][0])
251 *
f30(sqr(mHc / mt_muW), sqr(mW / mt_muW))
252 + sqr(mt_muW) * sqr(ma[a]) / sqr(mW) / sqr(mHc)
253 *
f30(sqr(mt_muW / mHc), sqr(mt_muW / mW))) / sqr(ma[a]);
255 cq2_h *= ml / 4.0 * sqr(tanb);
258 const complex_t ca_h = -
I * lambda * A_lambda / g2 / mW * tanb
259 *
f30(sqr(mHc / mt_muW), sqr(mW / mt_muW));
262 for (
int a = 0; a < 3; ++a) {
263 for (
int i = 0; i < 3; ++i) {
264 for (
int k = 0; k < 3; ++k) {
265 for (
int j = 0; j < 2; ++j) {
266 for (
int l = 0; l < 2; ++l) {
267 cq1_c += G1[i][k][j][l] / sqr(mh[a]) * (
268 SQRT2 * sqr(H[a][0]) * mch[j] / mW / cosb * delta(i, k) * delta(l, j)
269 *
f80(sqr(mstop[i] / mch[j]))
270 - 2.0 * SQRT2 * H[a][0] / g2 * delta(i, k)
271 * (Q[a][l][j] *
f40(sqr(mstop[i] / mch[l]), sqr(mch[j] / mch[l]))
272 + mch[j] / mch[l] * Q[a][j][l]
273 *
f30(sqr(mstop[i] / mch[l]), sqr(mch[j] / mch[l])))
274 + 2.0 * SQRT2 * H[a][0] *
T2[a][i][k] * mch[j] / sqr(mstop[k]) * delta(l, j)
275 *
f30(sqr(mstop[i] / mstop[k]), sqr(mch[j] / mstop[k]))
276 + sqr(mh[a] / mch[j]) * delta(i, k)
278 *
f50(sqr(mstop[i] / mch[j]), sqr(mch[l] / mch[j]), sqr(m_snutau / mch[l]))
279 - mch[l] / mch[j] * U[1][l] *
V[0][j]
280 *
f60(sqr(mstop[i] / mch[j]), sqr(mch[l] / mch[j]), sqr(m_snutau / mch[l])))
287 cq1_c *= ml / 4.0 * sqr(tanb);
290 for (
int a = 0; a < 2; ++a) {
291 for (
int i = 0; i < 3; ++i) {
292 for (
int k = 0; k < 3; ++k) {
293 for (
int j = 0; j < 2; ++j) {
294 for (
int l = 0; l < 2; ++l) {
295 cq2_c += G1[i][k][j][l] / sqr(ma[a]) * (
296 SQRT2 * sqr(A[a][0]) * mch[j] / mW / cosb * delta(i, k) * delta(l, j)
297 *
f80(sqr(mstop[i] / mch[j]))
298 - 2.0 * SQRT2 * A[a][0] / g2 * delta(i, k)
299 * (-R[a][l][j] *
f40(sqr(mstop[i] / mch[l]), sqr(mch[j] / mch[l]))
300 + mch[j] / mch[l] * R[a][j][l]
301 *
f30(sqr(mstop[i] / mch[l]), sqr(mch[j] / mch[l])))
302 - SQRT2 * A[a][0] *
T1[a][i][k] * mt_muW * mch[j] / sqr(mstop[k]) * delta(l, j)
303 *
f30(sqr(mstop[i] / mstop[k]), sqr(mch[j] / mstop[k]))
304 + sqr(ma[a] / mch[j]) * delta(i, k)
306 *
f50(sqr(mstop[i] / mch[j]), sqr(mch[l] / mch[j]), sqr(m_snutau / mch[l]))
307 - mch[l] / mch[j] * U[1][l] *
V[0][j]
308 *
f60(sqr(mstop[i] / mch[j]), sqr(mch[l] / mch[j]), sqr(m_snutau / mch[l])))
315 cq2_c *= -ml / 4.0 * sqr(tanb);
318 for (
int i = 0; i < 3; ++i) {
319 for (
int j = 0; j < 2; ++j) {
320 for (
int l = 0; l < 2; ++l) {
321 ca_c +=
I * tanb / SQRT2 * G1[i][i][j][l]
322 * (v_deltam_s * delta(l, j) * std::abs(mch[j] / mW) *
f80(sqr(mstop[i] / mch[j]))
323 - (R[0][j][l] * std::abs(mch[j] / mch[l])
324 *
f30(sqr(mstop[i] / mch[l]), sqr(mch[j] / mch[l]))
325 - R[0][l][j] *
f40(sqr(mstop[i] / mch[l]), sqr(mch[j] / mch[l]))));
330 complex_t cq1 = (cq1_h + cq1_c) * mb_muW / sw2 / epsfac;
331 complex_t cq2 = (cq2_h + cq2_c) * mb_muW / sw2 / epsfac;
336 if (ma[0] > Qmatch) {
337 cq2 += -v_deltam_s / 2.0 * mb_muW / sw2 * ml * ca / sqr(ma[0]);
340 LOG_INFO(
"NMSSM scalar matching enabled:",
341 "lambda=", lambda,
"kappa=", kappa_nmssm,
342 "A_lambda=", A_lambda,
"mu_eff=", lambda_s,
343 "M_h3=", mh[2],
"M_a2=", ma[1]);