44 std::vector<mty::QuantumField>
const &t_insertions,
45 std::vector<mty::Lagrangian::TermType> &t_lagrangian
52 std::vector<mty::QuantumField>
const &t_insertions,
53 std::vector<mty::FeynmanRule const*> &t_lagrangian
56 template<
class ...Args>
58 std::vector<std::vector<size_t>>
const &terms,
63 return ampl.getAmplitude(terms);
67 std::vector<std::vector<size_t>>
const &terms
70 void initMomentumVertices(
71 std::vector<FeynmanRule> &localRules,
72 std::map<csl::Tensor, size_t> &vertexIds,
73 std::vector<csl::Tensor>
const &vertices,
74 std::vector<csl::Tensor> &witnessVertices,
76 std::vector<csl::Expr> &fieldVertices
79 std::vector<std::vector<size_t>> getExternalSymmetries(
83 std::vector<csl::Expr> applyExternalSymmetries(
85 std::vector<size_t> perm
88 std::vector<csl::Expr> applyAllExternalSymmetries(
89 std::vector<csl::Expr>
const& init,
90 std::vector<std::vector<size_t>>::iterator first,
91 std::vector<std::vector<size_t>>::iterator last
94 void simplifyFullQuantumCalculation(
97 std::vector<size_t>
const &posTerms,
98 std::vector<std::vector<size_t>> &externalSym
101 void simplifyRuledCalculation(
104 std::vector<csl::Tensor>
const &witnessVericesx,
108 static void removeZeroDiagrams(
109 std::vector<FeynmanDiagram> &diagrams
113 std::vector<mty::QuantumField>
const &fields,
114 std::vector<csl::Tensor>
const &momenta,
115 bool feynRuleCalculation
118 static std::vector<csl::Tensor> getVertices(
size_t N);
129 std::vector<mty::QuantumField> &insertions,
134 static void applyMomentumVertices(
135 std::vector<csl::Tensor>
const &witnessVertices,
143 std::vector<std::vector<size_t>>
const &terms
147 std::vector<std::vector<size_t>>
const &terms
152 inline static std::vector<mty::Lagrangian::TermType> defaultL{};
153 inline static std::vector<mty::FeynmanRule const*> defaultFR{};
157 std::vector<mty::QuantumField> insertions;
Definition: feynruleMomentum.h:68
std::vector< mty::FeynmanRule const * > & feynmanRules
Reference to the Feynman rules when the calculation does use Feynman rules, reference to an empty vec...
Definition: amplitudeInitializer.h:180
Namespace of MARTY.
Definition: 2HDM.h:31
Contains the mty::Amplitude object that stores the data of an amplitude calculation.
bool feynRuleMode
True if the calculation a calculation of Feynman rules (using the Lagrangian), false if the calculati...
Definition: amplitudeInitializer.h:168
Interface class containing the result of an amplitude calculation.
Definition: amplitude.h:41
Instances of this class can be given to mty::Model when launching a calculation to customize the outp...
Definition: feynOptions.h:44
static void orderInsertions(std::vector< mty::QuantumField > &insertions, Kinematics &kinematics, FeynOptions &options)
Order the field insertions (important for fermion ordering), applying the permutation to the associat...
Definition: amplitudeInitializer.cpp:430
std::vector< mty::Lagrangian::TermType > & lagrangian
Reference to the lagrangian term when the calculation does not use Feynman rules, reference to an emp...
Definition: amplitudeInitializer.h:174
Class containing a Feynman diagram, symbolic expression and graph included.
Definition: feynmanDiagram.h:50
Stores insertion and momenta data and provides a simple interface to manipulate it.
Definition: kinematics.h:39
Contains the FeynOptions object used by the mty::Model class to set calculation options.
Contains all objects in the theory. In particular QuantumField objects, Gauge, Flavor, Particle...
Definition: model.h:68
Contains the Lagrangian class, that encapsulates all interaction terms for a model.
Definition: amplitudeInitializer.h:36