Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
C4.cpp
Go to the documentation of this file.
1#include <iostream>
2
3// HYPERISO_MARTY_OPERATOR_NORM_ABI: ew-input-normalization-v1
4using namespace csl;
5using namespace mty;
6using namespace std;
7using namespace sm_input;
8
9void defineLibPath(Library &lib) {
10#ifdef MARTY_LIBRARY_PATH
11 lib.addLPath(MARTY_LIBRARY_PATH);
12 lib.addLPath(MARTY_LIBRARY_PATH "/..");
13 lib.addLPath(MARTY_LIBRARY_PATH "/marty");
14 lib.addLPath(MARTY_LIBRARY_PATH "/marty/lha");
15#endif
16#ifdef MARTY_INCLUDE_PATH
17 lib.addIPath(MARTY_INCLUDE_PATH);
18#endif
19}
20
21int calculate_C4(Model &model, gauge::Type gauge) {
22
23 model.getParticle("W")->setGaugeChoice(gauge);
24 model.getParticle("Z")->setGaugeChoice(gauge);
25
26 undefineNumericalValues(); // Allow for HIso to set all the parameters' values
27 mty::option::excludeExternalLegsCorrections = true;
28
29 Expr factorOperator = -GetComplexConjugate(V_ts) * V_tb * pow_s(e_em, 2)
30 / (2 * pow_s(sin_s(theta_W), 2) * pow_s(M_W, 2));
31 FeynOptions opts;
32 opts.setFermionOrder({1, 0, 2, 3});
33 opts.setWilsonOperatorCoefficient(factorOperator);
34
35 auto wil_u = model.computeWilsonCoefficients(mty::Order::TreeLevel,
36 {Incoming("b"), Outgoing("s"),
37 Outgoing("u"), Outgoing(AntiPart("u"))},
38 opts);
39
40 auto O4_u = dimension6Operator(model, wil_u, DiracCoupling::VL, DiracCoupling::V, {"C", ColorCoupling::Generator}, {0, 2, 1, 3});
41 Expr C4_u = getWilsonCoefficient(wil_u, O4_u);
42
43 auto wil_c = model.computeWilsonCoefficients(mty::Order::TreeLevel,
44 {Incoming("b"), Outgoing("s"),
45 Outgoing("c"), Outgoing(AntiPart("c"))},
46 opts);
47
48 auto O4_c = dimension6Operator(model, wil_u, DiracCoupling::VL, DiracCoupling::V, {"C", ColorCoupling::Generator}, {0, 2, 1, 3});
49 Expr C4_c = getWilsonCoefficient(wil_c, O4_c);
50
51 [[maybe_unused]] int sysres = system("rm -rf libs/C4_SM");
52 mty::Library wilsonLib("C4_SM", "libs");
53 wilsonLib.cleanExistingSources();
54 wilsonLib.addFunction("C4", C4_u + C4_c);
55 defineLibPath(wilsonLib);
56 wilsonLib.print();
57
58 return 0;
59}
60
61int main() {
62 SM_Model sm;
63 return calculate_C4(sm, gauge::Type::Feynman);
64}
void defineLibPath(Library &lib)
Definition C4.cpp:9
int main()
Definition C4.cpp:61
int calculate_C4(Model &model, gauge::Type gauge)
Definition C4.cpp:21
Model
Standard Model of particle physics.
Definition sm.h:35
csl::Expr e_em
Definition sm.h:78
csl::Expr theta_W
Definition sm.h:136
void undefineNumericalValues()
csl::Expr V_tb
Definition sm.h:244
csl::Expr V_ts
Definition sm.h:306
csl::Expr M_W
Definition sm.h:106
Definition sm.h:30
Hash specialization for SymbolId<Tag>.
Definition BlockName.h:353