Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
BWilsonTHDM.cpp
Go to the documentation of this file.
1#include "BWilsonTHDM.h"
2
5 {
6 {"WPARAM_SI_BSM", 7}, // lu
7 {"WPARAM_MATCH_BSM", 1}, // yt
8 {"EW_SCALE", 1}, // Q_match
9 {ParameterType::BSM, "MASS", 37} // m_H
10 },
13 };
14}
15
16double C3_THDM::compute_NNLO(const ParamSrc& src) {
17 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
18 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
19 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
20 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
21
22 return G3H(yt, lu) + Delta3H(yt, lu) * log(pow(Q / mH, 2.0));
23}
24
26 // NLO
28 {
29 {"WPARAM_SI_BSM", 7}, // lu
30 {"WPARAM_MATCH_BSM", 1} // yt
31 },
34 };
35
36 // NNLO
38 {
39 {"WPARAM_SI_BSM", 7}, // lu
40 {"WPARAM_MATCH_BSM", 1}, // yt
41 {"EW_SCALE", 1}, // Q_match
42 {ParameterType::BSM, "MASS", 37} // m_H
43 },
46 };
47}
48
49double C4_THDM::compute_NLO(const ParamSrc& src) {
50 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
51 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
52
53 return EH(yt, lu);
54}
55
56double C4_THDM::compute_NNLO(const ParamSrc& src) {
57 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
58 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
59 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
60 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
61
62 return G4H(yt, lu) + Delta4H(yt, lu) * log(pow(Q / mH, 2.0));
63}
64
67 {
68 {"WPARAM_SI_BSM", 7}, // lu
69 {"WPARAM_MATCH_BSM", 1}, // yt
70 {"EW_SCALE", 1}, // Q_match
71 {ParameterType::BSM, "MASS", 37} // m_H
72 },
75 };
76}
77
78double C5_THDM::compute_NNLO(const ParamSrc& src) {
79 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
80 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
81 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
82 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
83
84 double C4H_1 = EH(yt, lu);
85 double C3H_2 = G3H(yt, lu) + Delta3H(yt, lu) * log(pow(Q / mH, 2.0));
86
87 return -C3H_2 / 10. + 2. / 15. * C4H_1;
88}
89
92 {
93 {"WPARAM_SI_BSM", 7}, // lu
94 {"WPARAM_MATCH_BSM", 1}, // yt
95 {"EW_SCALE", 1}, // Q_match
96 {ParameterType::BSM, "MASS", 37} // m_H
97 },
100 };
101}
102
103double C6_THDM::compute_NNLO(const ParamSrc& src) {
104 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
105 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
106 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
107 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
108
109 double C4H_1 = EH(yt, lu);
110 double C3H_2 = G3H(yt, lu) + Delta3H(yt, lu) * log(pow(Q / mH, 2.0));
111
112 return -3. / 16. * C3H_2 + 1. / 4. * C4H_1;
113}
114
117 {
118 {"WPARAM_SI_BSM", 7}, // lu
119 {"WPARAM_SI_BSM", 8}, // ld
120 {"WPARAM_MATCH_BSM", 1} // yt
121 },
124 };
125
127 {
128 {"WPARAM_SI_BSM", 7}, // lu
129 {"WPARAM_SI_BSM", 8}, // ld
130 {"WPARAM_MATCH_BSM", 1}, // yt
131 {"EW_SCALE", 1}, // Q_match
132 {ParameterType::BSM, "MASS", 37} // m_H
133 },
136 };
137
139 {
140 {"WPARAM_SI_BSM", 7}, // lu
141 {"WPARAM_SI_BSM", 8}, // ld
142 {"WPARAM_MATCH_BSM", 1}, // yt
143 {"WPARAM_MATCH_SM", 6}, // mass_top_muW
144 {"EW_SCALE", 1} // Q_match
145 },
148 };
149}
150
151double C7_THDM::compute_LO(const ParamSrc& src) {
152 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
153 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
154 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
155
156 return 1. / 3. * lu * lu * F7_1(yt) - lu * ld * F7_2(yt);
157}
158
159double C7_THDM::compute_NLO(const ParamSrc& src) {
160 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
161 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
162 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
163 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
164 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
165
166 return G7H(yt, lu, ld)
167 + Delta7H(yt, lu, ld) * log(pow(Q / mH, 2.0))
168 - 4. / 9. * EH(yt, lu);
169}
170
171double C7_THDM::compute_NNLO(const ParamSrc& src) {
172 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
173 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
174 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
175 double mtop = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", 6);
176 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
177
178 return C7H2(yt, lu, ld, log(pow(Q / mtop, 2.0)));
179}
180
183 {
184 {"WPARAM_SI_BSM", 7}, // lu
185 {"WPARAM_SI_BSM", 8}, // ld
186 {"WPARAM_MATCH_BSM", 1} // yt
187 },
190 };
191
193 {
194 {"WPARAM_SI_BSM", 7}, // lu
195 {"WPARAM_SI_BSM", 8}, // ld
196 {"WPARAM_MATCH_BSM", 1}, // yt
197 {"EW_SCALE", 1}, // Q_match
198 {ParameterType::BSM, "MASS", 37} // m_H
199 },
202 };
203
205 {
206 {"WPARAM_SI_BSM", 7}, // lu
207 {"WPARAM_SI_BSM", 8}, // ld
208 {"WPARAM_MATCH_BSM", 1}, // yt
209 {"WPARAM_MATCH_SM", 6}, // mtop(muW)
210 {"EW_SCALE", 1} // Q_match
211 },
214 };
215}
216
217double C8_THDM::compute_LO(const ParamSrc& src) {
218 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
219 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
220 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
221
222 return 1. / 3. * lu * lu * F8_1(yt) - lu * ld * F8_2(yt);
223}
224
225double C8_THDM::compute_NLO(const ParamSrc& src) {
226 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
227 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
228 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
229 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
230 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
231
232 return G8H(yt, lu, ld)
233 + Delta8H(yt, lu, ld) * log(pow(Q / mH, 2.0))
234 - 1. / 6. * EH(yt, lu);
235}
236
237double C8_THDM::compute_NNLO(const ParamSrc& src) {
238 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
239 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
240 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
241 double mtop = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", 6);
242 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
243
244 return C8H2(yt, lu, ld, log(pow(Q / mtop, 2.0)));
245}
246
249 {
250 {"WPARAM_SI_SM", 4}, // sw2
251 {"WPARAM_SI_BSM", 7}, // lu
252 {"WPARAM_MATCH_BSM", 1}, // yt
253 {"WPARAM_MATCH_SM", {2, 1}} // xt
254 },
257 };
258
260 {
261 {"WPARAM_SI_SM", 4}, // sw2
262 {"WPARAM_SI_BSM", 7}, // lu
263 {"WPARAM_MATCH_BSM", 1}, // yt
264 {"WPARAM_MATCH_SM", {2, 1}}, // xt
265 {"EW_SCALE", 1}, // Q_match
266 {ParameterType::BSM, "MASS", 37} // m_H
267 },
270 };
271}
272
273
274double C9_THDM::compute_LO(const ParamSrc& src) {
275 double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
276 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
277 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
278 double xt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {2, 1});;
279
280 return (1. - 4. * sw2) / sw2 * C9llH0(xt, yt, lu) - D9H0(yt, lu);
281}
282
283double C9_THDM::compute_NLO(const ParamSrc& src) {
284 double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
285 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
286 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
287 double xt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {2, 1});;
288 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
289 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
290
291 double logQH2 = log(pow(Q / mH, 2.0));
292
293 return (1. - 4. * sw2) / sw2 * C9llH1(xt, yt, lu, logQH2)
294 - D9H1(yt, lu, logQH2);
295}
296
299 {
300 {"WPARAM_SI_SM", 4}, // sw2
301 {"WPARAM_SI_BSM", 7}, // lu
302 {"WPARAM_MATCH_BSM", 1}, // yt
303 {"WPARAM_MATCH_SM", {2, 1}} // xt
304 },
307 };
308
310 {
311 {"WPARAM_SI_SM", 4}, // sw2
312 {"WPARAM_SI_BSM", 7}, // lu
313 {"WPARAM_MATCH_BSM", 1}, // yt
314 {"WPARAM_MATCH_SM", {2, 1}}, // xt
315 {"EW_SCALE", 1}, // Q_match
316 {ParameterType::BSM, "MASS", 37} // m_H
317 },
320 };
321}
322
323double C10_THDM::compute_LO(const ParamSrc& src) {
324 double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
325 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
326 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
327 double xt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {2, 1});;
328
329 return -C9llH0(xt, yt, lu) / sw2;
330}
331
332double C10_THDM::compute_NLO(const ParamSrc& src) {
333 double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
334 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
335 double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
336 double xt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {2, 1});;
337 double Q = src.get_val(ParameterType::WILSON, "EW_SCALE", 1);;
338 double mH = src.get_val(ParameterType::BSM, "MASS", 37);
339
340 return -C9llH1(xt, yt, lu, log(pow(Q / mH, 2.0))) / sw2;
341}
342
344 const int lepton_index = WCoefMapper::lepton_index_from_cq1(coef);
345 const int lepton_mass_slot = WCoefMapper::lepton_mass_slot_from_index(lepton_index);
346 const int lepton_yukawa_slot = WCoefMapper::thdm_lepton_yukawa_slot_from_index(lepton_index);
348 {
349 {"WPARAM_SI_SM", lepton_mass_slot}, // ml(e/mu/tau)
350 {"WPARAM_SI_SM", 4}, // sw2
351 {"WPARAM_SI_BSM", 1}, // xh
352 {"WPARAM_SI_BSM", 2}, // xH
353 {"WPARAM_SI_BSM", 3}, // xH0
354 {"WPARAM_SI_BSM", 6}, // beta
355 {"WPARAM_SI_BSM", 7}, // lu
356 {"WPARAM_SI_BSM", 8}, // ld
357 {"WPARAM_SI_BSM", 9}, // alpha
358 {"WPARAM_SI_BSM", lepton_yukawa_slot}, // le(e/mu/tau)
359 {"WPARAM_MATCH_SM", {2, 1}}, // xt
360 {"WPARAM_MATCH_SM", {5, 1}}, // mass_b_muW
361 {ParameterType::SM, "MASS", 24} // m_W
362 },
363 [lepton_mass_slot, lepton_yukawa_slot](const ParamSrc& src) { return compute_LO(src, lepton_mass_slot, lepton_yukawa_slot); },
365 };
366}
367
368
372
373double CQ1_THDM::compute_LO(const ParamSrc& src, int lepton_mass_slot, int lepton_yukawa_slot) {
374 double xh = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 1);
375 double ml = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", lepton_mass_slot);
376 double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
377 double xH = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 2);
378 double xH0 = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 3);
379 double beta = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 6);
380 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
381 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
382 double alpha = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 9);
383 double le = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", lepton_yukawa_slot);
384 double xt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {2, 1});;
385 double mb_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1});
386 double mW = src.get_val(ParameterType::SM, "MASS", 24);
387
388 double G1 = -3. / 4. + ld * lu * F4SP(xt, xH) + lu * lu * F5SP(xt, xH);
389 double G2 = ld * (ld * lu + 1.) * F6SP(xt, xH)
390 - ld * lu * lu * F7SP(xt, xH)
391 + lu * lu * (ld * F8SP(xt, xH) + lu * F9SP(xt, xH) - lu * F10SP(xt, xH))
392 + lu * F11SP(xt, xH) - lu * F12SP(xt, xH);
393
394 double CSn_2HDM =
395 xt * (F0SP(xt) + le * (ld * F1SP(xt, xH) + lu * F2SP(xt, xH)) + le * lu * F3SP(xt, xH)) +
396 xt / (2. * xh) * (sin(alpha - beta) + cos(alpha - beta) * le) *
397 (sin(alpha - beta) * G1 + cos(alpha - beta) * G2) +
398 xt / (2. * xH0) * (cos(alpha - beta) - sin(alpha - beta) * le) *
399 (cos(alpha - beta) * G1 - sin(alpha - beta) * G2);
400
401 // printf("first_part : %.9lf\n", xt * (F0SP(xt) + le * (ld * F1SP(xt, xH) + lu * F2SP(xt, xH)) + le * lu * F3SP(xt, xH)));
402 // printf("second_part : %.9lf\n", xt / (2. * xh) * (sin(alpha - beta) + cos(alpha - beta) * le) *
403 // (sin(alpha - beta) * G1 + cos(alpha - beta) * G2));
404
405 LOG_DEBUG("F0SP =", F0SP(xt));
406 LOG_DEBUG("F1SP =", F1SP(xt, xH));
407 LOG_DEBUG("F2SP =", F2SP(xt, xH));
408 LOG_DEBUG("F3SP =", F3SP(xt, xH));
409 LOG_DEBUG("CSn_2HDM =", CSn_2HDM);
410 LOG_DEBUG("CSc_2HDM =", CSc_2HDM(xH, xt, lu, ld, le));
411
412 double coeff_temp = CSc_2HDM(xH, xt, lu, ld, le) + CSn_2HDM;
413 coeff_temp *= (ml * mb_muW / (mW * mW)) / sw2;
414
415 return coeff_temp;
416}
417
419 const int lepton_index = WCoefMapper::lepton_index_from_cq2(coef);
420 const int lepton_mass_slot = WCoefMapper::lepton_mass_slot_from_index(lepton_index);
421 const int lepton_yukawa_slot = WCoefMapper::thdm_lepton_yukawa_slot_from_index(lepton_index);
423 {
424 {"WPARAM_SI_SM", lepton_mass_slot}, // ml(e/mu/tau)
425 {"WPARAM_SI_SM", 4}, // sw2
426 {"WPARAM_SI_BSM", 2}, // xH
427 {"WPARAM_SI_BSM", 4}, // xA
428 {"WPARAM_SI_BSM", 7}, // lu
429 {"WPARAM_SI_BSM", 8}, // ld
430 {"WPARAM_SI_BSM", lepton_yukawa_slot}, // le(e/mu/tau)
431 {"WPARAM_MATCH_SM", {2, 1}}, // xt
432 {"WPARAM_MATCH_SM", {5, 1}}, // mass_b_muW
433 {ParameterType::SM, "MASS", 24} // m_W
434 },
435 [lepton_mass_slot, lepton_yukawa_slot](const ParamSrc& src) { return compute_LO(src, lepton_mass_slot, lepton_yukawa_slot); },
437 };
438}
439
443
444double CQ2_THDM::compute_LO(const ParamSrc& src, int lepton_mass_slot, int lepton_yukawa_slot) {
445 double ml = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", lepton_mass_slot);
446 double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
447 double xH = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 2);
448 double xA = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 4);
449 double lu = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 7);
450 double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
451 double le = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", lepton_yukawa_slot);
452 double xt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {2, 1});;
453 double mb_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1});
454 double mW = src.get_val(ParameterType::SM, "MASS", 24);
455
456 double G3 =
457 ld * (ld * lu + 1.) * F6SP(xt, xH)
458 + ld * lu * lu * F7SP(xt, xH)
459 + lu * lu * (ld * F8SP(xt, xH) + lu * F9SP(xt, xH) + lu * F10SP(xt, xH))
460 + lu * F11SP(xt, xH) + lu * F12SP(xt, xH);
461
462 double CPn_2HDM =
463 xt * (-le * (ld * F1SP(xt, xH) + lu * F2SP(xt, xH)) + le * lu * F3SP(xt, xH))
464 + xt / (2. * xA) * le * G3;
465
466 double coeff_temp = CPc_2HDM(xH, xt, lu, ld, le, sw2) + CPn_2HDM;
467 coeff_temp *= (ml * mb_muW / (mW * mW)) / sw2;
468
469 LOG_INFO("G3 =", G3);
470 LOG_INFO("Factor =", (ml * mb_muW / (mW * mW)) / sw2);
471 LOG_INFO("m_b_muW =", mb_muW);
472 LOG_INFO("CPn_2HDM =", CPn_2HDM);
473 LOG_INFO("CPc_2HDM =", CPc_2HDM(xH, xt, lu, ld, le, sw2));
474 LOG_INFO("CQ2(mu_W) =", coeff_temp);
475
476 return coeff_temp;
477}
478
479
482 {
483 {ParameterType::WILSON, "WPARAM_SI_BSM", 7}, // lambda_u
484 {ParameterType::WILSON, "WPARAM_SI_BSM", 8}, // lambda_d
485 {ParameterType::WILSON, "WPARAM_MATCH_BSM", 1}, // y_t = m_t(mu_W)^2 / m_H^2
486 {ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1}}, // m_b(mu_W)
487 {ParameterType::SM, "MASS", 3} // m_s
488 },
491 };
492}
493
494double CP7_THDM::compute_LO(const ParamSrc& src) {
495 const double mb_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1});
496 const double ms = src.get_val(ParameterType::SM, "MASS", 3);
497
498 // In the Hyperiso/MARTY O7' convention the dipole operator is normalized with
499 // m_b, as O7 is. The chirality-flipped charged-Higgs contribution is therefore
500 // the same hard interaction as C7_H, multiplied by the external-mass flip m_s/m_b.
501 //
502 // The small m_s*m_b/m_t^2*lambda_d^2 term appearing later in SuperIso v5
503 // Cprime_calculator belongs to the MSSM/large-tan(beta) branch; SuperIso returns
504 // before that block for a pure THDM model. Using it here underestimates CP7_H by
505 // roughly two orders of magnitude and disagrees with the MARTY THDM template.
506 return ms / mb_muW * C7_THDM::compute_LO(src);
507}
508
511 {
512 {ParameterType::WILSON, "WPARAM_SI_BSM", 7}, // lambda_u
513 {ParameterType::WILSON, "WPARAM_SI_BSM", 8}, // lambda_d
514 {ParameterType::WILSON, "WPARAM_MATCH_BSM", 1}, // y_t = m_t(mu_W)^2 / m_H^2
515 {ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1}}, // m_b(mu_W)
516 {ParameterType::SM, "MASS", 3} // m_s
517 },
520 };
521}
522
523double CP8_THDM::compute_LO(const ParamSrc& src) {
524 const double mb_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1});
525 const double ms = src.get_val(ParameterType::SM, "MASS", 3);
526
527 // Same convention as CP7_THDM: O8' is normalized with m_b, so the charged-Higgs
528 // BSM piece follows from the unprimed C8_H term through the external-mass flip.
529 return ms / mb_muW * C8_THDM::compute_LO(src);
530}
531
534 {
535 {ParameterType::WILSON, "WPARAM_MATCH_BSM", 1}, // y_t = m_t(mu_W)^2 / m_H^2
536 {ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1}}, // m_b(mu_W)
537 {ParameterType::WILSON, "WPARAM_SI_SM", 3}, // historical configured lepton mass
538 {ParameterType::WILSON, "WPARAM_SI_SM", 4}, // sin^2(theta_W)
539 {ParameterType::SM, "MASS", 3}, // m_s
540 {ParameterType::SM, "MASS", 24}, // m_W
541 {ParameterType::BSM, "MASS", 37}, // m_H^+
542 {ParameterType::BSM, "MINPAR", 3} // tan(beta)
543 },
546 };
547}
548
549double CP10_THDM::compute_LO(const ParamSrc& src) {
550 const double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
551 const double mb_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1});
552 const double ml = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 3);
553 const double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
554 const double ms = src.get_val(ParameterType::SM, "MASS", 3);
555 const double mW = src.get_val(ParameterType::SM, "MASS", 24);
556 const double mH = src.get_val(ParameterType::BSM, "MASS", 37);
557 const double tanb = src.get_val(ParameterType::BSM, "MINPAR", 3);
558
559 // SuperIso v5 Cprime_calculator, C10pH hardcoded piece.
560 return -mb_muW * ms *
561 (tanb * tanb / (8. * mW * mW) +
562 pow(ml * tanb * tanb / (4. * mW * mH), 2.)) *
563 f20(yt) / sw2;
564}
565
568 {
569 {ParameterType::WILSON, "WPARAM_SI_BSM", 8}, // lambda_d / -tan(beta) in the SuperIso type-II limit
570 {ParameterType::WILSON, "WPARAM_MATCH_BSM", 1}, // y_t = m_t(mu_W)^2 / m_H^2
571 {ParameterType::WILSON, "WPARAM_MATCH_SM", 6}, // m_t(mu_W)
572 {ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1}}, // m_b(mu_W)
573 {ParameterType::WILSON, "WPARAM_SI_SM", 3}, // historical configured lepton mass
574 {ParameterType::WILSON, "WPARAM_SI_SM", 4}, // sin^2(theta_W)
575 {ParameterType::SM, "MASS", 3}, // m_s
576 {ParameterType::SM, "MASS", 24}, // m_W
577 {ParameterType::BSM, "MASS", 37}, // m_H^+
578 {ParameterType::BSM, "MINPAR", 3} // tan(beta)
579 },
582 };
583}
584
585double CP9_THDM::compute_LO(const ParamSrc& src) {
586 const double ld = src.get_val(ParameterType::WILSON, "WPARAM_SI_BSM", 8);
587 const double yt = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_BSM", 1);
588 const double mt_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", 6);
589 const double mb_muW = src.get_val(ParameterType::WILSON, "WPARAM_MATCH_SM", {5, 1});
590 const double sw2 = src.get_val(ParameterType::WILSON, "WPARAM_SI_SM", 4);
591 const double ms = src.get_val(ParameterType::SM, "MASS", 3);
592
593 // SuperIso v5 Cprime_calculator, C9pH hardcoded piece.
594 return (4. * sw2 - 1.) * CP10_THDM::compute_LO(src)
595 - ms * mb_muW / (mt_muW * mt_muW) * D9H0(yt, ld);
596}
597
601
602
603double CPQ1_THDM::compute_LO(const ParamSrc& src) {
604 return 0.0;
605}
606
610
611
612double CPQ2_THDM::compute_LO(const ParamSrc& src) {
613 return 0.0;
614}
615
ScaleType
WCoef
WGroup
#define LOG_INFO(...)
Macro for logging informational messages.
Definition Logger.h:39
#define LOG_DEBUG(...)
Macro for logging debug messages.
Definition Logger.h:45
static double compute_NLO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_NNLO(const ParamSrc &src)
static double compute_NLO(const ParamSrc &src)
static double compute_NNLO(const ParamSrc &src)
static double compute_NNLO(const ParamSrc &src)
static double compute_NNLO(const ParamSrc &src)
static double compute_NLO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_NNLO(const ParamSrc &src)
static double compute_NLO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_NNLO(const ParamSrc &src)
static double compute_NLO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
CPQ1_THDM(WCoef coef=WCoef::CPQ1_MU)
static double compute_LO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
CPQ2_THDM(WCoef coef=WCoef::CPQ2_MU)
CQ1_THDM(WCoef coef=WCoef::CQ1_MU)
static double compute_LO(const ParamSrc &src)
static double compute_LO(const ParamSrc &src)
CQ2_THDM(WCoef coef=WCoef::CQ2_MU)
Mapper for WGroup <-> WGroupId <-> optional external string.
Lightweight view over a set of source parameters keyed by ParamId.
scalar_t get_val(const ParamId &id) const
Retrieves the current value of a parameter.
High-level mapper for WCoef <-> text <-> FLHA base indices.
Definition wcoef_ids.hpp:57
static constexpr int lepton_mass_slot_from_index(int lepton_index)
static int lepton_index_from_cq1(WCoef coef)
static int lepton_index_from_cq2(WCoef coef)
static constexpr int thdm_lepton_yukawa_slot_from_index(int lepton_index)
Abstract base class representing a Wilson coefficient and its matching information.
Definition Wilson.h:153
LhaID get_lhaid_from_name(QCDOrder order)
Computes the LhaID directly from the coefficient base name and mapping conventions.
Definition Wilson.cpp:61
std::map< QCDOrder, MatchingInfo > matching_info
Matching metadata indexed by QCD order.
Definition Wilson.h:330
scalar_t pow(const scalar_t &base, const scalar_t &exp)
Definition scalar.cpp:75
double F7_2(double x)
Wilson coefficient F7_2.
double Delta3H(double x, double lu)
Wilson coefficient Delta3H depending on x and lu.
double D9H1(double x, double lu, double L)
Wilson coefficient D9H1 depending on x, lu, and L.
double F7_1(double x)
Wilson coefficient F7_1.
double G7H(double x, double lu, double ld)
Wilson coefficient G7H depending on x, lu, and ld.
double Delta7H(double x, double lu, double ld)
Wilson coefficient Delta7H depending on x, lu, and ld.
double EH(double x, double lu)
Wilson coefficient EH depending on x and lu.
double Delta8H(double x, double lu, double ld)
Wilson coefficient Delta8H depending on x, lu, and ld.
double G3H(double x, double lu)
Wilson coefficient G3H depending on x and lu.
double F8_1(double x)
Wilson coefficient F8_1.
double D9H0(double x, double lu)
Wilson coefficient D9H0 depending on x and lu.
double C9llH0(double x, double y, double lu)
Wilson coefficient C9llH0 depending on x, y, and lu.
double Delta4H(double x, double lu)
Wilson coefficient Delta4H depending on x and lu.
double F0SP(double xt)
Wilson coefficient F0SP depending on xt.
double f20(double x)
double C9llH1(double x, double y, double lu, double L)
Wilson coefficient C9llH1 depending on x, y, lu, and L.
double G4H(double x, double lu)
Wilson coefficient G4H depending on x and lu.
double G8H(double x, double lu, double ld)
Wilson coefficient G8H depending on x, lu, and ld.
double F8_2(double x)
Wilson coefficient F8_2.
double C7H2(double yt, double lu, double ld, double L)
double C8H2(double yt, double lu, double ld, double L)
double F6SP(double xt, double xH)
double CSc_2HDM(double xH, double xt, double lu, double ld, double ll)
double F7SP(double xt, double xH)
double F1SP(double xt, double xH)
double F10SP(double xt, double xH)
double F5SP(double xt, double xH)
double F4SP(double xt, double xH)
double F12SP(double xt, double xH)
double CPc_2HDM(double xH, double xt, double lu, double ld, double ll, double sw2)
double F3SP(double xt, double xH)
double F9SP(double xt, double xH)
double F8SP(double xt, double xH)
double F2SP(double xt, double xH)
double F11SP(double xt, double xH)