32 template<
class ...Args>
36 addInclude(
"clooptools.h");
37 addInclude(
"marty/looptools_init.h");
38 #if !(defined __APPLE__ || defined __MACH__) 40 addLibrary(
"-lgfortran");
45 if (csl::LibraryGenerator::isQuadruplePrecision()) {
46 addLibrary(
"-looptools-quad");
47 addInclude(
"marty/looptools_quad_extension.h");
48 addLibrary(
"-lquadmath");
51 addLibrary(
"-looptools");
55 void applyDiagonalizationData(
Model &model) {
56 model.applyDiagonalizationData(*
this);
59 void generateSpectrum(
Model &model) {
60 model.applyDiagonalizationData(*
this);
62 if (csl::Abbrev::find_opt(m)) {
63 addMassExpression(m->getName());
64 addFunction(m->getName(), m,
"G");
70 std::string
const &t_pathToMarty
74 pathToMarty = t_pathToMarty;
78 std::string
const &name,
80 std::string
const &groupName =
"G" 84 auto &f = csl::LibraryGenerator::addFunction(name, expr, groupName);
85 f.addInitInstruction(
"clearcache();");
90 if (lhaEnabled) doImportLHAModule();
91 csl::LibraryGenerator::print();
94 void build(
unsigned int nJobs = 1)
96 if (lhaEnabled) doImportLHAModule();
97 csl::LibraryGenerator::build(nJobs);
102 void doImportLHAModule()
104 csl::LibraryGenerator::setupDirectory();
105 const auto martySrc = pathToMarty +
"/src";
106 const auto martyInc = pathToMarty +
"/include";
107 const auto targetSrc = path +
"/src";
108 const auto targetInc = path +
"/include";
109 [[maybe_unused]]
int sysres
110 = system((
"mkdir -p " + martySrc +
" " + martyInc).c_str());
111 sysres = system((
"cp " + martySrc +
"/lha.cpp " + targetSrc).c_str());
112 sysres = system((
"cp " + martySrc +
"/lhaData.cpp " + targetSrc).c_str());
113 sysres = system((
"cp " + martyInc +
"/lha.h " + targetInc).c_str());
114 sysres = system((
"cp " + martyInc +
"/lhaData.h " + targetInc).c_str());
115 sysres = system((
"cp " + martyInc +
"/lhaBlocks.h " + targetInc).c_str());
116 sysres = system((
"cp " + pathToMarty +
"/../csl/include/std_vector*.h " + targetInc).c_str());
119 bool lhaEnabled {
false };
120 std::string pathToMarty;
Namespace of MARTY.
Definition: 2HDM.h:31
Contains the mty::Model class. It contains all objects in the theory. In particular QuantumField obje...
Definition: mtylibrary.h:30
std::vector< csl::Expr > const & getAbbreviatedMassExpressions() const
Definition: modelBuilder.h:120
Contains all objects in the theory. In particular QuantumField objects, Gauge, Flavor, Particle...
Definition: model.h:68