9#ifdef MARTY_LIBRARY_PATH
10 lib.addLPath(MARTY_LIBRARY_PATH);
11 lib.addLPath(MARTY_LIBRARY_PATH
"/..");
12 lib.addLPath(MARTY_LIBRARY_PATH
"/marty");
13 lib.addLPath(MARTY_LIBRARY_PATH
"/marty/lha");
15#ifdef MARTY_INCLUDE_PATH
16 lib.addIPath(MARTY_INCLUDE_PATH);
20vector<Wilson>
getO5(
const Model& model,
const WilsonSet& wilsons,
const std::string& up_quark) {
21 auto p = wilsons.kinematics.getOrderedMomenta();
22 auto b = model.getParticle(
"b");
23 auto s = model.getParticle(
"s");
24 auto q = model.getParticle(up_quark);
25 auto gamma = dirac4.gamma;
26 auto gamma5 = dirac4.gamma_chir;
27 auto i = model.generateIndices(2,
"C", s);
28 auto al = DiracIndices(9);
29 auto mu = MinkowskiIndices(3);
31 Expr O5_vv = GetComplexConjugate(s({i[0], al[0]}, p[1])) * gamma({+mu[0], al[0], al[1]}) * gamma({+mu[1], al[1], al[2]}) * gamma({+mu[2], al[2], al[3]}) * b({i[0], al[3]}, p[0]) *
32 GetComplexConjugate(q({i[1], al[4]}, p[2])) * gamma({mu[0], al[4], al[5]}) * gamma({mu[1], al[5], al[6]}) * gamma({mu[2], al[6], al[7]}) * q({i[1], al[7]}, p[3]);
33 Expr O5_av = GetComplexConjugate(s({i[0], al[0]}, p[1])) * gamma({+mu[0], al[0], al[1]}) * gamma({+mu[1], al[1], al[2]}) * gamma({+mu[2], al[2], al[3]}) * gamma5({al[3], al[8]}) * b({i[0], al[8]}, p[0]) *
34 GetComplexConjugate(q({i[1], al[4]}, p[2])) * gamma({mu[0], al[4], al[5]}) * gamma({mu[1], al[5], al[6]}) * gamma({mu[2], al[6], al[7]}) * q({i[1], al[7]}, p[3]);
41 model.getParticle(
"W")->setGaugeChoice(gauge);
42 model.getParticle(
"Z")->setGaugeChoice(gauge);
45 mty::option::excludeExternalLegsCorrections =
true;
47 Expr factorOperator = -4 * GetComplexConjugate(
V_ts) *
V_tb *
G_F / csl::sqrt_s(2);
49 opts.setFermionOrder({1, 0, 2, 3});
50 opts.setWilsonOperatorCoefficient(factorOperator);
52 auto wil_u = model.computeWilsonCoefficients(mty::Order::TreeLevel,
53 {Incoming(
"b"), Outgoing(
"s"),
54 Outgoing(
"u"), Outgoing(AntiPart(
"u"))},
57 auto O5_u =
getO5(model, wil_u,
"u");
58 Expr C5_u = getWilsonCoefficient(wil_u, O5_u);
61 auto wil_c = model.computeWilsonCoefficients(mty::Order::TreeLevel,
62 {Incoming(
"b"), Outgoing(
"s"),
63 Outgoing(
"c"), Outgoing(AntiPart(
"c"))},
66 auto O5_c =
getO5(model, wil_c,
"c");
67 Expr C5_c = getWilsonCoefficient(wil_c, O5_c);
70 [[maybe_unused]]
int sysres = system(
"rm -rf libs/CP5_SM");
71 mty::Library wilsonLib(
"CP5_SM",
"libs");
72 wilsonLib.cleanExistingSources();
73 wilsonLib.addFunction(
"CP5", C5_u + C5_c);