Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
save.cpp
Go to the documentation of this file.
1#include <algorithm>
2#include "../../MARTY/MARTY_INSTALL/include/marty/models/sm.h"
3#include "../../MARTY/MARTY_INSTALL/include/marty.h"
4
5
6using namespace csl;
7using namespace mty;
8using namespace std;
9using namespace sm_input;
10
11void defineLibPath(mty::Library &lib)
12{
13#ifdef MARTY_LIBRARY_PATH
14 lib.addLPath(MARTY_LIBRARY_PATH);
15 lib.addLPath(MARTY_LIBRARY_PATH "/..");
16 lib.addLPath(MARTY_LIBRARY_PATH "/marty");
17 lib.addLPath(MARTY_LIBRARY_PATH "/marty/lha");
18#endif
19#ifdef MARTY_INCLUDE_PATH
20 lib.addIPath(MARTY_INCLUDE_PATH);
21#endif
22}
23
24int calculate(Model &model, gauge::Type gauge)
25{
26 using namespace mty::sm_input;
27 // undefineNumericalValues();
28 model.getParticle("W")->setGaugeChoice(gauge);
29
30 mty::FeynOptions options;
31 auto res = model.computeAmplitude(OneLoop, {Incoming("b"), Outgoing("s"), Outgoing("A")}, options);
32
33 // Disable NLO QCD contributions
34 res = res.filterOut([&](mty::FeynmanDiagram const &diagram) {return !diagram.contains(model.getParticle("G"), mty::FeynmanDiagram::DiagramParticleType::Loop);});
35
36 Expr V_ts_star = csl::GetComplexConjugate(V_ts);
37 Expr factorOperator = -V_ts_star * V_tb * G_F * e_em / (4 * csl::sqrt_s(2) * CSL_PI * CSL_PI);
38
39 options.setWilsonOperatorCoefficient(factorOperator);
40 auto wilsonC7 = model.getWilsonCoefficients(res, options);
41 Expr CC7 = getWilsonCoefficient(wilsonC7, chromoMagneticOperator(model, wilsonC7, DiracCoupling::R));
42 Expr CC7p = getWilsonCoefficient(wilsonC7, chromoMagneticOperator(model, wilsonC7, DiracCoupling::L));
43
44 [[maybe_unused]] int sysres = system("rm -rf libs/C7_SM");
45 mty::Library wilsonLib("C7_SM", "libs");
46 wilsonLib.cleanExistingSources();
47 wilsonLib.addFunction("C7", m_b * CC7 + m_s * CC7p);
48 defineLibPath(wilsonLib);
49 wilsonLib.print();
50 return 1;
51}
52
53int main()
54{
55
56 // mty::sm_input::redefineNumericalValues(); // for compatibility
57 SM_Model sm;
58 // sm.computeFeynmanRules();
59 // Display(sm.getFeynmanRules());
60
61 // calculate(sm, gauge::Type::Unitary);
62 // calculate(sm, gauge::Type::Lorenz);
63 return calculate(sm, gauge::Type::Feynman);
64}
Model
Standard Model of particle physics.
Definition sm.h:35
Namespace containing SM input parameters, in particular those modifiable with LHA file.
Definition sm.h:68
csl::Expr e_em
Definition sm.h:78
csl::Expr m_s
Definition sm.h:122
csl::Expr G_F
Definition sm.h:84
csl::Expr V_tb
Definition sm.h:244
csl::Expr V_ts
Definition sm.h:306
csl::Expr m_b
Definition sm.h:96
Definition sm.h:30
Hash specialization for SymbolId<Tag>.
Definition BlockName.h:353
int calculate(Model &model, gauge::Type gauge)
Definition save.cpp:24
int main()
Definition save.cpp:53
void defineLibPath(mty::Library &lib)
Definition save.cpp:11