HepLib
Loading...
Searching...
No Matches
Init.cpp
Go to the documentation of this file.
1
6#include "BASIC.h"
7#include "HEP.h"
8#include "QGRAF.h"
9#include "QCD.h"
10#include "IBP.h"
11#include "SD.h"
12#include "DE.h"
13#include "AMF.h"
14#include <cstdlib>
15
16#include "cln/cln.h"
17#include <dlfcn.h>
18#include <string.h>
19#include <string>
20
21namespace HepLib {
22
23
24 namespace {
25 string install_prefix() {
26 static string wdir = "";
27 if(wdir == "") {
28 string path;
29 Dl_info dl_info;
30 dladdr((void*)install_prefix, &dl_info);
31 path = dl_info.dli_fname;
32 wdir = path.substr(0, path.find_last_of('/'));
33 path = wdir;
34 wdir = path.substr(0, path.find_last_of('/'));
35 }
36 return wdir;
37 }
38 }
39
40 // Initialization Unit
41 // to make sure the initialization order is correct,
42 // i.e., ordered in one compilation unit
43
44 // FROM class
45
46 // similar to GINAC_DECLARE_UNARCHIVER/GINAC_IMPLEMENT_REGISTERED_CLASS_OPT
47 GiNaC::registered_class_info Symbol::reg_info =
48 GiNaC::registered_class_info(GiNaC::registered_class_options("Symbol", "symbol", typeid(Symbol)));
49
50 GiNaC::registered_class_info iSymbol::reg_info =
51 GiNaC::registered_class_info(GiNaC::registered_class_options("iSymbol", "symbol", typeid(iSymbol)));
52
53 GiNaC::registered_class_info XIntegral::reg_info =
54 GiNaC::registered_class_info(GiNaC::registered_class_options("XIntegral", "basic", typeid(XIntegral)).print_func<print_dflt>(&XIntegral::print));
55
56 GiNaC::registered_class_info Index::reg_info =
57 GiNaC::registered_class_info(GiNaC::registered_class_options("Index", "basic", typeid(Index)).print_func<print_context>(&Index::print));
58
59 GiNaC::registered_class_info Vector::reg_info =
60 GiNaC::registered_class_info(GiNaC::registered_class_options("Vector", "basic", typeid(Vector)).print_func<print_context>(&Vector::print));
61
62 GiNaC::registered_class_info SUNT::reg_info =
63 GiNaC::registered_class_info(GiNaC::registered_class_options("SUNT", "basic", typeid(SUNT)).print_func<print_dflt>(&SUNT::print).print_func<FormFormat>(&SUNT::form_print).print_func<FCFormat>(&SUNT::fc_print));
64
65 GiNaC::registered_class_info SUNF::reg_info =
66 GiNaC::registered_class_info(GiNaC::registered_class_options("SUNF", "basic", typeid(SUNF)).print_func<print_dflt>(&SUNF::print).print_func<FormFormat>(&SUNF::form_print).print_func<FCFormat>(&SUNF::fc_print));
67
68 GiNaC::registered_class_info SUNF4::reg_info =
69 GiNaC::registered_class_info(GiNaC::registered_class_options("SUNF4", "basic", typeid(SUNF4)).print_func<print_dflt>(&SUNF4::print).print_func<FormFormat>(&SUNF4::form_print).print_func<FCFormat>(&SUNF4::fc_print));
70
71 GiNaC::registered_class_info DGamma::reg_info =
72 GiNaC::registered_class_info(GiNaC::registered_class_options("DGamma", "basic", typeid(DGamma)).print_func<print_dflt>(&DGamma::print).print_func<FormFormat>(&DGamma::form_print).print_func<FCFormat>(&DGamma::fc_print));
73
74 GiNaC::registered_class_info AsGamma::reg_info =
75 GiNaC::registered_class_info(GiNaC::registered_class_options("AsGamma", "basic", typeid(AsGamma)).print_func<print_dflt>(&AsGamma::print).print_func<FormFormat>(&AsGamma::form_print).print_func<FCFormat>(&AsGamma::fc_print));
76
77 GiNaC::registered_class_info Eps::reg_info =
78 GiNaC::registered_class_info(GiNaC::registered_class_options("Eps", "basic", typeid(Eps)).print_func<print_dflt>(&Eps::print).print_func<FormFormat>(&Eps::form_print).print_func<FCFormat>(&Eps::fc_print));
79
80 GiNaC::registered_class_info Pair::reg_info =
81 GiNaC::registered_class_info(GiNaC::registered_class_options("Pair", "basic", typeid(Pair)).print_func<print_dflt>(&Pair::print).print_func<FormFormat>(&Pair::form_print).print_func<FCFormat>(&Pair::fc_print));
82
83 // FROM BASIC
84
85 string Version = "1.5 @2024-04-28";
86 exmap Symbol::vmap;
87 std::map<std::string, ex> Symbol::Table; // alias as symtab in parser
88 std::map<std::string, ex> iSymbol::Table; // alias as symtab in parser
89 GiNaC::exmap Index::Dimension; // default dimension is d, others specified here.
90
91 unsigned nopat = GiNaC::subs_options::no_pattern;
92
93 ex w = wild();
94 ex w0 = wild(0);
95 ex w1 = wild(1);
96 ex w2 = wild(2);
97 ex w3 = wild(3);
98 ex w4 = wild(4);
99 ex w5 = wild(5);
100 ex w6 = wild(6);
101 ex w7 = wild(7);
102 ex w8 = wild(8);
103 ex w9 = wild(9);
104
105 // normal/factor options
106 int _o_ = 0;
107 const int o_none = (_o_++);
108 const int o_normal = (_o_++);
109 const int o_fermat = (_o_++);
110 const int o_fermatfD = (_o_++);
111 const int o_fermatN = (_o_++);
112 const int o_form = (_o_++);
113 const int o_flint = (_o_++);
114 const int o_flint_ccf = (_o_++);
115 const int o_flintf = (_o_++);
116 const int o_flintf_ccf = (_o_++);
117 const int o_flintfD = (_o_++);
118 const int o_flintfD_ccf = (_o_++);
119 const int o_normal_fermat = (_o_++);
120 const int o_normal_form = (_o_++);
121 const int o_fermat_form = (_o_++);
122
123 // Symbols
124 const Symbol NA("NA");
125 const Symbol NF("NF");
126 const Symbol TF("TF");
127 const Symbol CA("CA");
128 const Symbol CF("CF");
129 const Symbol gs("gs");
130 const Symbol as("as");
131 const Symbol mu("mu");
132 const Symbol nL("nL");
133 const Symbol nH("nH");
134 const Symbol eps("eps");
135 const Symbol vs("vs");
136 const Symbol vz("vz");
137 const Symbol epz("epz");
138 const Symbol NaN("NaN");
139 const Symbol ep("ep");
140 const Symbol d("d");
141 const Symbol iet("iet");
142 const iSymbol iEpsilon("iEpsilon");
143
144 const ex iEpsilonN = I*pow(ex(10), -50);
145 int Verbose = 0;
146 string PRE = " ";
147 bool Debug = false;
148 bool In_GiNaC_Parallel = false;
151 map<string, int> GiNaC_Parallel_NP;
152 map<string, int> GiNaC_Parallel_Verb;
154 map<string, int> GiNaC_Parallel_NB;
155 map<string, bool> GiNaC_Parallel_RM;
156 map<string, string> GiNaC_Parallel_PRE;
157 map<string, bool> GiNaC_Parallel_ReWR;
159 map<ex,long long,ex_is_less> fermat_weight;
160 bool using_cache = true;
161 long long cache_limit = -1;
162 int NNDigits = 100;
163
164 bool GMat_using_cache = true;
165
167
168 string InstallPrefix = install_prefix();
169 string INC_FLAGS = "-I'"+InstallPrefix+"/include' " + "@INC_FLAGS@";
170 string LIB_FLAGS = "-L'"+InstallPrefix+"/lib' -Wl,-rpath,'"+InstallPrefix+"'/lib " + "@LIB_FLAGS@";
171
172 int Fermat::buffer_size = 1024*128;
173 int Form::buffer_size = 1024*128;
174
175 bool SD::SecDec::use_dlclose = true;
176 string SD::SecDec::cpp = "g++ -w";
177
178 SD::CppFormat::_init::_init() {
179 set_print_func<numeric, CppFormat>(CppFormat::print_numeric);
180 }
181 SD::CppFormat::_init SD::CppFormat::CppFormat_init;
183 set_print_func<numeric, ExFormat>(ExFormat::print_numeric);
184 }
185 SD::ExFormat::_init SD::ExFormat::ExFormat_init;
187
188 exmap SP_map;
189 map<ex,string,ex_is_less> QGRAF::LineTeX; // key is the filed
190 map<ex,string,ex_is_less> QGRAF::VerTeX; // key is the fileds in vertex
191 map<ex,string,ex_is_less> QGRAF::InOutTeX; // key is the id, id<0
192
193 FCFormat::_init::_init() {
194 set_print_func<ncmul, FCFormat>(FCFormat::ncmul_print);
195 }
196 FCFormat::_init FCFormat::FCFormat_init;
197
198 FormFormat::_init::_init() {
199 set_print_func<power, FormFormat>(FormFormat::power_print);
200 }
201 FormFormat::_init FormFormat::FormFormat_init;
203
204 const int form_trace_auto = 0;
205 const int form_trace_all = 1;
206 const int form_trace_each_all = 2;
207 const int form_trace_each_each = 3;
209
210 const int form_expand_none = 0;
211 const int form_expand_tr = 1;
212 const int form_expand_ci = 2;
213 const int form_expand_li = 3;
214 const int form_expand_all = 4;
217 bool form_using_su3 = false;
218 bool form_using_dim4 = false;
219 bool form_using_gamma5 = false;
220
221 QGRAF::Process::_init::_init() {
222 auto A = Symbol("A");
223 auto q = Symbol("q");
224 auto qbar = Symbol("qbar");
225 auto l = Symbol("l");
226 auto lbar = Symbol("lbar");
227 auto gh = Symbol("gh");
228 auto ghbar = Symbol("ghbar");
229 auto g = Symbol("g");
230 auto Q = Symbol("Q");
231 auto Qbar = Symbol("Qbar");
232 auto C = Symbol("C");
233 auto Cbar = Symbol("Cbar");
234 auto B = Symbol("B");
235 auto Bbar = Symbol("Bbar");
236 auto n = Symbol("n");
237 auto nbar = Symbol("nbar");
238 auto e = Symbol("e");
239 auto G = Symbol("G"); // graviton
240
241 LineTeX[q] = "fermion, edge label=$q$";
242 LineTeX[qbar] = "anti fermion, edge label=$q$";
243 LineTeX[l] = "fermion, edge label=$l$";
244 LineTeX[lbar] = "anti fermion, edge label=$l$";
245 LineTeX[gh] = "ghost, edge label=$\\chi$";
246 LineTeX[ghbar] = "ghost, edge label=$\\chi$";
247 LineTeX[g] = "gluon, edge label=$g$";
248 LineTeX[A] = "photon, edge label=$\\gamma$";
249 LineTeX[G] = "graviton, edge label=$\\gamma$";
250 LineTeX[Q] = "fermion, edge label=$Q$";
251 LineTeX[Qbar] = "anti fermion, edge label=$Q$";
252 LineTeX[C] = "fermion, edge label=$c$";
253 LineTeX[Cbar] = "anti fermion, edge label=$c$";
254 LineTeX[B] = "fermion, edge label=$b$";
255 LineTeX[Bbar] = "anti fermion, edge label=$b$";
256 LineTeX[n] = "double distance=1.5pt";
257 LineTeX[nbar] = "double distance=1.5pt";
258 LineTeX[e] = "color=white";
259
260 VerTeX[lst{Qbar, e, nbar}] = "[crossed dot]";
261 VerTeX[lst{nbar, e, g}] = "[crossed dot]";
262
263 {
264 Symbol U("U"); // U-quark
265 Symbol Ubar("Ubar"); // anti U-quark
266 Symbol D("D"); // D-quark
267 Symbol Dbar("Dbar"); // anti D-quark
268 Symbol C("C"); // C-quark
269 Symbol Cbar("Cbar"); // anti C-quark
270 Symbol S("S"); // S-quark
271 Symbol Sbar("Sbar"); // anti S-quark
272 Symbol T("T"); // T-quark
273 Symbol Tbar("Tbar"); // anti T-quark
274 Symbol B("B"); // B-quark
275 Symbol Bbar("Bbar"); // anti B-quark
276
277 Symbol g("g"); // gluon
278 Symbol gh("gh"); // gluon ghost
279 Symbol ghbar("ghbar"); // anti gluon ghost
280
281 Symbol A("A"); // photon
282 Symbol Wm("Wm"); // W-
283 Symbol Wp("Wp"); // W+
284 Symbol Z("Z"); // Z
285
286 Symbol ghA("SW"); // photon ghost
287 Symbol ghAbar("ghAbar"); // anti photon ghost
288 Symbol ghWm("ghWm"); // W- ghost
289 Symbol ghWmbar("ghWmbar"); // anti W- ghost
290 Symbol ghWp("ghWp"); // W+ ghost
291 Symbol ghWpbar("ghWpbar"); // anti W+ ghost
292 Symbol ghZ("ghZ"); // Z ghost
293 Symbol ghZbar("ghZbar"); // anti Z ghost
294
295 Symbol em("em"); // e-
296 Symbol ep("ep"); // e+
297 Symbol ne("ne"); // e-neutrino
298 Symbol nebar("nebar"); // anti e-neutrino
299 Symbol mum("mum"); // mu-
300 Symbol mup("mup"); // mu+
301 Symbol nmu("nmu"); // mu-neutrino
302 Symbol nmubar("nmubar"); // anti mu-neutrino
303 Symbol taum("taum"); // tau-
304 Symbol taup("taup"); // tau+
305 Symbol ntau("ntau"); // tau-neutrino
306 Symbol ntaubar("ntaubar"); // anti tau-neutrino
307
308 Symbol chi("chi"); // Z goldstone
309 Symbol phim("phim"); // W- goldstone
310 Symbol phip("phip"); // W+ goldstone
311 Symbol H("H"); // higgs
312
313 lst fs = { U, D, C, S, T, B, em, mum, taum, ne, nmu, ntau};
314 lst fs2 = {Ubar, Dbar, Cbar, Sbar, Tbar, Bbar, ep, mup, taup, nebar, nmubar, ntaubar};
315 string fsi[] = { "$u$", "$d$", "$c$", "$s$", "$t$", "$b$", "$e$", "$\\mu$", "$\\tau$", "$\\nu_e$", "$\\nu_\\mu$", "$\\nu_\\tau$" };
316 for(int i=0; i<fs.nops(); i++) {
317 auto si = fsi[i];
318 LineTeX[fs.op(i)] = "fermion ,edge label="+si;
319 LineTeX[fs2.op(i)] = "anti fermion ,edge label="+si;
320 }
321
322 LineTeX[Wp] = "photon, edge label=$W$";
323 LineTeX[Wm] = "photon, edge label=$W$";
324 LineTeX[Z] = "photon, edge label=$Z$";
325
326 LineTeX[H]="scalar, edge label=$H$";
327 LineTeX[chi]="scalar, edge label=$\\chi$";
328 LineTeX[phim]="charged scalar, edge label=$\\phi$";
329 LineTeX[phip]="anti charged scalar, edge label=$\\phi$";
330
331 lst ghs = {gh, ghA, ghWm, ghWp, ghZ};
332 lst ghs2 = {ghbar, ghAbar, ghWmbar, ghWpbar, ghZbar};
333 string ghsi[] = {"$c$", "$c_\\gamma$", "$c_-$", "$c_+$", "$c_Z$"};
334
335 for(int i=0; i<ghs.nops(); i++) {
336 auto si = ghsi[i];
337 LineTeX[ghs.op(i)] = "ghost ,edge label="+si;
338 LineTeX[ghs2.op(i)] = "anti ghost ,edge label="+si;
339 }
340 }
341 }
342 QGRAF::Process::_init QGRAF::Process::Process_init;
343
344 // FROM IBP
345 int FIRE::Version = 6;
346 exmap MapPreSP;
347
348 string UKIRA::KArgs = "";
349 string KIRA::KArgs = "";
350
351 // FROM QCD
352 int QCD::FF::cur_mode = 0; // 0 - gluon, 1 - quark, 2 - anti-quark
353
354 // FROM DE
355 slong error_pass_dp = 100;
356
357 // FROM AMF
358 int DEX::Threads = 0;
359
360 // gamma matrix
361 ex DGamma::gi = GAS(1);
362 ex DGamma::g5 = GAS(5);
363 ex DGamma::C = GAS(int('c'));
364
365 // global init
366 std::stack<cln::float_format_t> cln_prec_stack;
367 std::stack<long> digits_stack;
368 _global_init::_init::_init() {
369 ostringstream oss;
370 string path = InstallPrefix + "/bin";
371 if(dir_exists(path)) oss << path;
372
373 auto opath = getenv("PATH");
374 if(opath != NULL) oss << ":" << opath;
375 setenv("PATH", oss.str().c_str(), true);
376
377 // similar to GINAC_DECLARE_UNARCHIVER/GINAC_BIND_UNARCHIVER
378 GiNaC::unarchive_table_t table;
379 table.insert(std::string("Symbol"), []()->GiNaC::basic*{ return new Symbol(); });
380 table.insert(std::string("iSymbol"), []()->GiNaC::basic*{ return new iSymbol(); });
381 table.insert(std::string("XIntegral"), []()->GiNaC::basic*{ return new XIntegral(); });
382 table.insert(std::string("Index"), []()->GiNaC::basic*{ return new Index(); });
383 table.insert(std::string("Vector"), []()->GiNaC::basic*{ return new Vector(); });
384 table.insert(std::string("SUNT"), []()->GiNaC::basic*{ return new SUNT(); });
385 table.insert(std::string("SUNF"), []()->GiNaC::basic*{ return new SUNF(); });
386 table.insert(std::string("SUNF4"), []()->GiNaC::basic*{ return new SUNF4(); });
387 table.insert(std::string("DGamma"), []()->GiNaC::basic*{ return new DGamma(); });
388 table.insert(std::string("AsGamma"), []()->GiNaC::basic*{ return new AsGamma(); });
389 table.insert(std::string("Eps"), []()->GiNaC::basic*{ return new Eps(); });
390 table.insert(std::string("Pair"), []()->GiNaC::basic*{ return new Pair(); });
391
392 // CLN configurations
393 cln::cl_inhibit_floating_point_underflow = true;
394 Digits = 100;
395 set_precision(100);
396 }
397 _global_init::_init _global_init::init_object;
398
399}
400
401std::string HepLib::QGRAF::Process::Style = R"EOF(
402<prologue>
403
404<diagram>
405((<sign><symmetry_factor>)*
406<in_loop>InField(<field>,<field_index>,<momentum>)*
407<end>
408<back><out_loop>OutField(<field>,<field_index>,<momentum>)*
409<end>
410<back><propagator_loop>Propagator(
411<back>Field(<field>,<field_index>),
412<back>Field(<dual-field>,<dual-field_index>),
413<back><momentum>)*
414<end>
415<back><vertex_loop>Vertex(
416<back><ray_loop>Field(<field>,<field_index>,<momentum>),
417<back><end><back>)*
418<end><back><back>)
419,
420<epilogue>
421
422<exit>
423
424)EOF";
425
426std::string HepLib::QGRAF::Models::GluonFF = R"EOF(
427[ model = 'Gluon FF Model' ]
428[q, qbar, -]
429[Q, Qbar, -]
430[gh, ghbar, -]
431[g, g, +, notadpole]
432[e, e, +, external]
433[n, nbar, +]
434[qbar, q, g; QCD='+1']
435[Qbar, Q, g; QCD='+1']
436[g, g, g, g; QCD='+2']
437[g, g, g; QCD='+1']
438[ghbar, gh, g; QCD='+1']
439[nbar, n, g; QCD='+1']
440[nbar, e, g; QCD='+0']
441%[n, e, g; QCD='+0']
442)EOF";
443
444std::string HepLib::QGRAF::Models::QuarkFF = R"EOF(
445[ model = 'Quark FF Model' ]
446[q, qbar, -]
447[Q, Qbar, -]
448[e, ebar, -, external]
449[gh, ghbar, -]
450[g, g, +, notadpole]
451[n, nbar, +]
452[qbar, q, g; QCD='+1']
453[Qbar, Q, g; QCD='+1']
454[g, g, g, g; QCD='+2']
455[g, g, g; QCD='+1']
456[ghbar, gh, g; QCD='+1']
457[nbar, n, g; QCD='+1']
458[qbar, e, nbar; QCD='0']
459[ebar, q, nbar; QCD='0']
460[Qbar, e, nbar; QCD='0']
461[ebar, Q, nbar; QCD='0']
462)EOF";
463
464std::string HepLib::QGRAF::Models::SM = R"EOF(
465% From Boehm, Denner, Joos @ Feynman Gauge
466[ model = 'Standard Model' ]
467
468%------------------------------------
469% Propagators
470%------------------------------------
471
472% quarks
473[U, Ubar, -]
474[D, Dbar, -]
475[C, Cbar, -]
476[S, Sbar, -]
477[T, Tbar, -]
478[B, Bbar, -]
479
480% gluon and its ghost:
481[g, g, +, notadpole]
482[gh, ghbar, -]
483
484% V: EWSM gauge bosons
485[A, A, +, notadpole]
486[Wm, Wp, +]
487[Z, Z, +]
488
489% leptons
490[em, ep, -]
491[ne, nebar, -]
492[mum, mup, -]
493[nmu, nmubar, -]
494[taum, taup, -]
495[ntau, ntaubar, -]
496
497% G: Faddeev-Popov Ghosts
498[ghA, ghAbar, -]
499[ghZ, ghZbar, -]
500[ghWm, ghWmbar, -]
501[ghWp, ghWpbar, -]
502
503% S: scalars
504[H, H, +]
505[chi, chi, +]
506[phim, phip, +]
507
508%------------------------------------
509% Vertices
510%------------------------------------
511
512% QCD
513[Ubar, U, g; QCD='+1', QED='0']
514[Dbar, D, g; QCD='+1', QED='0']
515[Sbar, S, g; QCD='+1', QED='0']
516[Cbar, C, g; QCD='+1', QED='0']
517[Bbar, B, g; QCD='+1', QED='0']
518[Tbar, T, g; QCD='+1', QED='0']
519
520[g, g, g, g; QCD='+2', QED='0']
521[g, g, g; QCD='+1', QED='0']
522[ghbar, gh, g; QCD='+1', QED='0']
523
524% VVVV
525[Wp, Wm, Z, Z; QCD='0', QED='+2']
526[Wp, Wm, A, Z; QCD='0', QED='+2']
527[Wp, Wm, A, A; QCD='0', QED='+2']
528[Wp, Wp, Wm, Wm; QCD='0', QED='+2']
529
530% VVV
531[Wp, Wm, A; QCD='0', QED='+1']
532[Wp, Wm, Z; QCD='0', QED='+1']
533
534% SSSS
535[H, H, H, H; QCD='0', QED='+2']
536[chi, chi, chi, chi; QCD='0', QED='+2']
537[H, H, chi, chi; QCD='0', QED='+2']
538[H, H, phim, phip; QCD='0', QED='+2']
539[chi, chi, phim, phip; QCD='0', QED='+2']
540[phim, phip, phim, phip; QCD='0', QED='+2']
541
542% SSS
543[H, H, H; QCD='0', QED='+1']
544[H, chi, chi; QCD='0', QED='+1']
545[H, phim, phip; QCD='0', QED='+1']
546
547% VVSS
548[Z, Z, H, H; QCD='0', QED='+2']
549[Z, Z, chi, chi; QCD='0', QED='+2']
550[Wp, Wm, H, H; QCD='0', QED='+2']
551[Wp, Wm, chi, chi; QCD='0', QED='+2']
552[Wp, Wm, phip, phim; QCD='0', QED='+2']
553
554[A, A, phip, phim; QCD='0', QED='+2']
555[Z, A, phip, phim; QCD='0', QED='+2']
556[Z, Z, phip, phim; QCD='0', QED='+2']
557
558[Wp, A, phim, H; QCD='0', QED='+2']
559[Wm, A, phip, H; QCD='0', QED='+2']
560[Wp, A, phim, chi; QCD='0', QED='+2']
561[Wm, A, phip, chi; QCD='0', QED='+2']
562[Wp, Z, phim, H; QCD='0', QED='+2']
563[Wm, Z, phip, H; QCD='0', QED='+2']
564[Wp, Z, phim, chi; QCD='0', QED='+2']
565[Wm, Z, phip, chi; QCD='0', QED='+2']
566
567% VSS
568[Z, chi, H; QCD='0', QED='+1']
569[A, phip, phim; QCD='0', QED='+1']
570[Z, phip, phim; QCD='0', QED='+1']
571[Wp, phim, H; QCD='0', QED='+1']
572[Wm, phip, H; QCD='0', QED='+1']
573[Wp, phim, chi; QCD='0', QED='+1']
574[Wm, phip, chi; QCD='0', QED='+1']
575
576% SVV
577[H, Z, Z; QCD='0', QED='+1']
578[H, Wp, Wm; QCD='0', QED='+1']
579[phip, Wm, A; QCD='0', QED='+1']
580[phim, Wp, A; QCD='0', QED='+1']
581[phip, Wm, Z; QCD='0', QED='+1']
582[phim, Wp, Z; QCD='0', QED='+1']
583
584% ffV
585[Ubar, U, A; QCD='0', QED='+1']
586[Dbar, D, A; QCD='0', QED='+1']
587[Sbar, S, A; QCD='0', QED='+1']
588[Cbar, C, A; QCD='0', QED='+1']
589[Bbar, B, A; QCD='0', QED='+1']
590[Tbar, T, A; QCD='0', QED='+1']
591
592[ep, em, A; QCD='0', QED='+1']
593[mup, mum, A; QCD='0', QED='+1']
594[taup, taum, A; QCD='0', QED='+1']
595
596[Ubar, U, Z; QCD='0', QED='+1']
597[Dbar, D, Z; QCD='0', QED='+1']
598[Sbar, S, Z; QCD='0', QED='+1']
599[Cbar, C, Z; QCD='0', QED='+1']
600[Bbar, B, Z; QCD='0', QED='+1']
601[Tbar, T, Z; QCD='0', QED='+1']
602
603[ep, em, Z; QCD='0', QED='+1']
604[mup, mum, Z; QCD='0', QED='+1']
605[taup, taum, Z; QCD='0', QED='+1']
606
607[nebar, ne, Z; QCD='0', QED='+1']
608[nmubar, nmu, Z; QCD='0', QED='+1']
609[ntaubar, ntau, Z; QCD='0', QED='+1']
610
611[Dbar, U, Wm; QCD='0', QED='+1']
612[Dbar, C, Wm; QCD='0', QED='+1']
613[Dbar, T, Wm; QCD='0', QED='+1']
614
615[Sbar, U, Wm; QCD='0', QED='+1']
616[Sbar, C, Wm; QCD='0', QED='+1']
617[Sbar, T, Wm; QCD='0', QED='+1']
618
619[Bbar, U, Wm; QCD='0', QED='+1']
620[Bbar, C, Wm; QCD='0', QED='+1']
621[Bbar, T, Wm; QCD='0', QED='+1']
622
623[Ubar, D, Wp; QCD='0', QED='+1']
624[Ubar, S, Wp; QCD='0', QED='+1']
625[Ubar, B, Wp; QCD='0', QED='+1']
626
627[Cbar, D, Wp; QCD='0', QED='+1']
628[Cbar, S, Wp; QCD='0', QED='+1']
629[Cbar, B, Wp; QCD='0', QED='+1']
630
631[Tbar, D, Wp; QCD='0', QED='+1']
632[Tbar, S, Wp; QCD='0', QED='+1']
633[Tbar, B, Wp; QCD='0', QED='+1']
634
635[ep, ne, Wm; QCD='0', QED='+1']
636[mup, nmu, Wm; QCD='0', QED='+1']
637[taup, ntau, Wm; QCD='0', QED='+1']
638
639[nebar, em, Wp; QCD='0', QED='+1']
640[nmubar, mum, Wp; QCD='0', QED='+1']
641[ntaubar, taum, Wp; QCD='0', QED='+1']
642
643% Sff
644[Ubar, U, H; QCD='0', QED='+1']
645[Dbar, D, H; QCD='0', QED='+1']
646[Sbar, S, H; QCD='0', QED='+1']
647[Cbar, C, H; QCD='0', QED='+1']
648[Bbar, B, H; QCD='0', QED='+1']
649[Tbar, T, H; QCD='0', QED='+1']
650
651[ep, em, H; QCD='0', QED='+1']
652[mup, mum, H; QCD='0', QED='+1']
653[taup, taum, H; QCD='0', QED='+1']
654
655[Ubar, U, chi; QCD='0', QED='+1']
656[Dbar, D, chi; QCD='0', QED='+1']
657[Sbar, S, chi; QCD='0', QED='+1']
658[Cbar, C, chi; QCD='0', QED='+1']
659[Bbar, B, chi; QCD='0', QED='+1']
660[Tbar, T, chi; QCD='0', QED='+1']
661
662[ep, em, chi; QCD='0', QED='+1']
663[mup, mum, chi; QCD='0', QED='+1']
664[taup, taum, chi; QCD='0', QED='+1']
665
666[Dbar, U, phim; QCD='0', QED='+1']
667[Dbar, C, phim; QCD='0', QED='+1']
668[Dbar, T, phim; QCD='0', QED='+1']
669
670[Sbar, U, phim; QCD='0', QED='+1']
671[Sbar, C, phim; QCD='0', QED='+1']
672[Sbar, T, phim; QCD='0', QED='+1']
673
674[Bbar, U, phim; QCD='0', QED='+1']
675[Bbar, C, phim; QCD='0', QED='+1']
676[Bbar, T, phim; QCD='0', QED='+1']
677
678[Ubar, D, phip; QCD='0', QED='+1']
679[Ubar, S, phip; QCD='0', QED='+1']
680[Ubar, B, phip; QCD='0', QED='+1']
681
682[Cbar, D, phip; QCD='0', QED='+1']
683[Cbar, S, phip; QCD='0', QED='+1']
684[Cbar, B, phip; QCD='0', QED='+1']
685
686[Tbar, D, phip; QCD='0', QED='+1']
687[Tbar, S, phip; QCD='0', QED='+1']
688[Tbar, B, phip; QCD='0', QED='+1']
689
690[ep, ne, phim; QCD='0', QED='+1']
691[mup, nmu, phim; QCD='0', QED='+1']
692[taup, ntau, phim; QCD='0', QED='+1']
693
694[nebar, em, phip; QCD='0', QED='+1']
695[nmubar, mum, phip; QCD='0', QED='+1']
696[ntaubar, taum, phip; QCD='0', QED='+1']
697
698% VGG
699[ghWpbar, ghWp, A; QCD='0', QED='+1']
700[ghWmbar, ghWm, A; QCD='0', QED='+1']
701[ghAbar, ghWm, Wp; QCD='0', QED='+1']
702[ghAbar, ghWp, Wm; QCD='0', QED='+1']
703[ghWmbar, ghA, Wm; QCD='0', QED='+1']
704[ghWpbar, ghA, Wp; QCD='0', QED='+1']
705[ghWpbar, ghWp, Z; QCD='0', QED='+1']
706[ghWmbar, ghWm, Z; QCD='0', QED='+1']
707[ghZbar, ghWm, Wp; QCD='0', QED='+1']
708[ghZbar, ghWp, Wm; QCD='0', QED='+1']
709[ghWmbar, ghZ, Wm; QCD='0', QED='+1']
710[ghWpbar, ghZ, Wp; QCD='0', QED='+1']
711
712% SGG
713[ghZbar, ghZ, H; QCD='0', QED='+1']
714[ghWpbar, ghWp, H; QCD='0', QED='+1']
715[ghWmbar, ghWm, H; QCD='0', QED='+1']
716[ghWpbar, ghWp, chi; QCD='0', QED='+1']
717[ghWmbar, ghWm, chi; QCD='0', QED='+1']
718[ghWpbar, ghA, phip; QCD='0', QED='+1']
719[ghWmbar, ghA, phim; QCD='0', QED='+1']
720[ghWpbar, ghZ, phip; QCD='0', QED='+1']
721[ghWmbar, ghZ, phim; QCD='0', QED='+1']
722[ghZbar, ghWp, phim; QCD='0', QED='+1']
723[ghZbar, ghWm, phip; QCD='0', QED='+1']
724
725)EOF";
726
727std::string HepLib::QGRAF::Models::QCD = R"EOF(
728[ model = 'qcd Model' ]
729%------------------------------------
730% Propagators
731%------------------------------------
732% quark
733[q, qbar, -]
734[Q, Qbar, -]
735% gluon and its ghost:
736[gh, ghbar, -]
737[g, g, +, notadpole]
738% external photon
739[A, A, +, external]
740%------------------------------------
741% Vertices
742%------------------------------------
743% QCD
744[qbar, q, g; QCD='+1']
745[Qbar, Q, g; QCD='+1']
746[g, g, g, g; QCD='+2']
747[g, g, g; QCD='+1']
748[ghbar, gh, g; QCD='+1']
749% external
750[qbar, q, A; QCD='+0']
751[Qbar, Q, A; QCD='+0']
752)EOF";
Basic header file.
HEP header file.
IBP header file.
QGRAF header file.
SecDec header file.
class for AntiSymmetric Gamma object
Definition HEP.h:496
void form_print(const FormFormat &c, unsigned level=0) const
Definition AsGamma.cpp:150
void fc_print(const FCFormat &c, unsigned level=0) const
Definition AsGamma.cpp:154
void print(const print_dflt &c, unsigned level=0) const
Definition AsGamma.cpp:135
class for Dirac Gamma object
Definition HEP.h:437
static ex C
Definition HEP.h:487
void form_print(const FormFormat &c, unsigned level=0) const
Definition DGamma.cpp:139
void print(const print_dflt &c, unsigned level=0) const
Definition DGamma.cpp:117
void fc_print(const FCFormat &c, unsigned level=0) const
Definition DGamma.cpp:150
static ex g5
Definition HEP.h:486
static ex gi
Definition HEP.h:485
class for Levi-Civita object https://onlinelibrary.wiley.com/doi/pdf/10.1002/9783527630097....
Definition HEP.h:386
void fc_print(const FCFormat &c, unsigned level=0) const
Definition Eps.cpp:121
void form_print(const FormFormat &c, unsigned level=0) const
Eps in FORM format https://onlinelibrary.wiley.com/doi/pdf/10.1002/9783527630097.app3 to make Tr(g5,...
Definition Eps.cpp:112
void print(const print_dflt &c, unsigned level=0) const
Definition Eps.cpp:96
class for FCFormat Output
Definition HEP.h:71
static void ncmul_print(const ncmul &p, const FCFormat &c, unsigned level=0)
Definition Basic.cpp:163
static int Version
Definition IBP.h:86
static int buffer_size
Definition BASIC.h:847
static void power_print(const power &p, const FormFormat &c, unsigned level=0)
Definition Basic.cpp:55
static int buffer_size
Definition BASIC.h:869
class for index object
Definition HEP.h:104
void print(const print_context &c, unsigned level=0) const
Definition Basic.cpp:198
static GiNaC::exmap Dimension
Definition HEP.h:109
static string KArgs
Definition IBP.h:97
class for Mathematica Format Output
Definition BASIC.h:890
class for Pair object
Definition HEP.h:322
void form_print(const FormFormat &c, unsigned level=0) const
FormFormat print function.
Definition Pair.cpp:102
void print(const print_dflt &c, unsigned level=0) const
default print function
Definition Pair.cpp:93
void fc_print(const FCFormat &c, unsigned level=0) const
FCFormat print function.
Definition Pair.cpp:113
static string QuarkFF
Definition QGRAF.h:163
static string SM
Definition QGRAF.h:164
static string QCD
Definition QGRAF.h:165
static string GluonFF
Definition QGRAF.h:162
static string Style
Definition QGRAF.h:77
static bool use_dlclose
Definition SD.h:438
static string cpp
Definition SD.h:439
class for SUNF4 object
Definition HEP.h:278
void form_print(const FormFormat &c, unsigned level=0) const
print the Form Format
Definition Basic.cpp:549
void fc_print(const FCFormat &c, unsigned level=0) const
Definition Basic.cpp:540
void print(const print_dflt &c, unsigned level=0) const
normal priint
Definition Basic.cpp:536
class for SUNF object
Definition HEP.h:233
void print(const print_dflt &c, unsigned level=0) const
Definition Basic.cpp:437
void form_print(const FormFormat &c, unsigned level=0) const
Definition Basic.cpp:441
void fc_print(const FCFormat &c, unsigned level=0) const
Definition Basic.cpp:445
class for SUNT object
Definition HEP.h:189
void form_print(const FormFormat &c, unsigned level=0) const
Definition Basic.cpp:334
void fc_print(const FCFormat &c, unsigned level=0) const
Definition Basic.cpp:345
void print(const print_dflt &c, unsigned level=0) const
Definition Basic.cpp:349
class extended to GiNaC symbol class, represent a positive symbol
Definition BASIC.h:116
static std::map< std::string, ex > Table
Definition BASIC.h:163
static exmap vmap
Definition BASIC.h:170
static string KArgs
Definition IBP.h:121
class for vector object
Definition HEP.h:149
void print(const print_context &c, unsigned level=0) const
Definition Basic.cpp:275
XIntegral Class, preface to SecDec.
Definition BASIC.h:787
void print(const print_dflt &c, unsigned level=0) const
Definition BASIC.cpp:1675
class extended to GiNaC symbol class, pure imaginary symbol
Definition BASIC.h:186
static std::map< std::string, ex > Table
Definition BASIC.h:233
map< ex, string, ex_is_less > LineTeX
Definition Init.cpp:189
map< ex, string, ex_is_less > VerTeX
Definition Init.cpp:190
map< ex, string, ex_is_less > InOutTeX
Definition Init.cpp:191
int VEO_Digits
Definition Init.cpp:186
HepLib namespace.
Definition BASIC.cpp:17
string INC_FLAGS
Definition Init.cpp:169
bool form_using_dim4
Definition Init.cpp:218
const Symbol NA
ex w9
Definition BASIC.h:503
ex w8
Definition BASIC.h:503
const int form_expand_tr
Definition Init.cpp:211
const int o_flint_ccf
Definition Init.cpp:114
const iSymbol iEpsilon
ex w7
Definition BASIC.h:503
MMAFormat mout
const int o_flintf_ccf
Definition Init.cpp:116
ex w5
Definition BASIC.h:503
int GiNaC_Parallel_Process
Definition Init.cpp:150
int _o_
Definition Init.cpp:106
const Symbol gs
const int o_form
Definition Init.cpp:112
int NNDigits
Definition Init.cpp:162
const int o_fermat
Definition Init.cpp:109
const int o_none
Definition Init.cpp:107
const int o_flint
Definition Init.cpp:113
exmap MapPreSP
Definition Init.cpp:346
const int form_expand_none
Definition Init.cpp:210
string Version
Definition Init.cpp:85
ex w0
Definition BASIC.h:503
const Symbol NF
map< string, bool > GiNaC_Parallel_RM
Definition Init.cpp:155
exmap SP_map
Definition Init.cpp:188
map< ex, long long, ex_is_less > fermat_weight
Definition Init.cpp:159
const Symbol ep
const int o_fermatfD
Definition Init.cpp:110
int form_expand_mode
Definition Init.cpp:215
const Symbol eps
bool Apart_using_fermat
Definition Init.cpp:216
map< string, int > GiNaC_Parallel_NB
Definition Init.cpp:154
const int form_trace_all
Definition Init.cpp:205
ex GAS(const ex &expr, unsigned rl)
function similar to GAD/GSD in FeynClac
Definition DGamma.cpp:280
const int o_fermat_form
Definition Init.cpp:121
ex w4
Definition BASIC.h:503
const int form_expand_ci
Definition Init.cpp:212
int GiNaC_Parallel_Level
Definition Init.cpp:149
slong error_pass_dp
Definition Init.cpp:355
int form_trace_mode
Definition Init.cpp:208
bool form_using_su3
Definition Init.cpp:217
string LIB_FLAGS
Definition Init.cpp:170
bool using_cache
Definition Init.cpp:160
bool Debug
Definition Init.cpp:147
ex w
Definition Init.cpp:93
const int form_trace_each_all
Definition Init.cpp:206
const Symbol vs
const Symbol d
int fermat_using_array
Definition Init.cpp:158
map< string, int > GiNaC_Parallel_NP
Definition Init.cpp:151
const int form_expand_all
Definition Init.cpp:214
map< string, int > GiNaC_Parallel_Verb
Definition Init.cpp:152
map< string, bool > GiNaC_Parallel_ReWR
Definition Init.cpp:157
const int o_normal
Definition Init.cpp:108
const Symbol mu
const Symbol CA
const Symbol TF
const int o_flintf
Definition Init.cpp:115
const Symbol CF
const int o_flintfD_ccf
Definition Init.cpp:118
const int o_flintfD
Definition Init.cpp:117
const int o_normal_fermat
Definition Init.cpp:119
string InstallPrefix
Definition Init.cpp:168
const ex iEpsilonN
Definition Init.cpp:144
FCFormat fcout
const Symbol epz
bool In_GiNaC_Parallel
Definition Init.cpp:148
const Symbol as
bool form_using_gamma5
Definition Init.cpp:219
int Verbose
Definition Init.cpp:145
const int form_trace_each_each
Definition Init.cpp:207
const int form_trace_auto
Definition Init.cpp:204
bool dir_exists(string dir)
Definition BASIC.h:300
const int o_normal_form
Definition Init.cpp:120
long long cache_limit
Definition Init.cpp:161
const Symbol nL
const Symbol nH
ex w1
Definition BASIC.h:503
unsigned nopat
Definition Init.cpp:91
ex w3
Definition BASIC.h:503
void set_precision(long prec, bool push)
Definition BASIC.cpp:2318
const Symbol iet
ex w6
Definition BASIC.h:503
map< string, string > GiNaC_Parallel_PRE
Definition Init.cpp:156
const int form_expand_li
Definition Init.cpp:213
const int o_fermatN
Definition Init.cpp:111
std::stack< cln::float_format_t > cln_prec_stack
Definition Init.cpp:366
ex w2
Definition BASIC.h:503
std::stack< long > digits_stack
Definition Init.cpp:367
bool GMat_using_cache
Definition Init.cpp:164
const Symbol vz
string PRE
Definition Init.cpp:146
const Symbol NaN
int GiNaC_Parallel_Batch
Definition Init.cpp:153