69 std::vector<mty::FeynmanDiagram>
const &t_diagrams,
83 std::vector<mty::FeynmanDiagram> &&t_diagrams,
166 std::vector<std::shared_ptr<mty::wick::Graph>>
obtainGraphs()
const;
173 void add(std::vector<mty::FeynmanDiagram>
const &t_diagrams);
181 void add(std::vector<mty::FeynmanDiagram> &&t_diagrams);
227 template<
class First,
class ...Next,
228 typename = std::enable_if_t<(
sizeof...(Next) > 1)>
236 std::forward<Next>(next)...
315 bool replace =
true);
327 template<
class Iterator>
328 void add(Iterator first, Iterator last)
std::vector< mty::FeynmanDiagram > & getDiagrams()
Returns all the mty::FeynmanDiagram objects as a reference to a range.
Definition: amplitude.h:265
csl::Expr & expression(size_t pos)
Returns a reference to expression of the diagram at a given position.
Definition: amplitude.cpp:54
Amplitude filterOut(First &&first, Next &&...next) const
Applies an arbitrary number of filters on an amplitude.
Definition: amplitude.h:230
void add(std::vector< mty::FeynmanDiagram > const &t_diagrams)
Adds diagrams to the amplitude.
Definition: amplitude.cpp:110
bool empty() const
Definition: amplitude.h:91
FeynOptions options
Set of options that have been used for the calculation.
Definition: amplitude.h:338
FeynmanDiagram::diagram_t & diagram(size_t pos)
Returns a reference to the graph layout of the diagram at a given position.
Definition: amplitude.cpp:72
Namespace of MARTY.
Definition: 2HDM.h:31
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
Amplitude(FeynOptions const &t_options, Kinematics const &t_kinematics)
Initializes an amplitude with no diagram (to be added later using Amplitude::add()).
Definition: amplitude.cpp:20
mty::Kinematics kinematics
Kinematics of the process.
Definition: amplitude.h:350
Amplitude copy() const
Returns a copy of the amplitude.
Definition: amplitude.cpp:146
std::vector< mty::FeynmanDiagram > diagrams
Range of mty::FeynmanDiagram of the process. Each diagram contains a mathematical expression and the ...
Definition: amplitude.h:345
size_t size() const
Definition: amplitude.h:99
Contains the mty::Kinematics class.
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
Amplitude filterOut(std::function< bool(mty::FeynmanDiagram const &)> filter) const
Applies a diagram filter (mty::FeynOptions::DiagramFilter requirement) to the amplitude and returns t...
Definition: amplitude.cpp:123
csl::Expr getSum() const
Computes and returns the sum of all diagrams i.e. the total amplitude.
Definition: amplitude.cpp:138
std::vector< mty::FeynmanDiagram > const & getDiagrams() const
Returns all the mty::FeynmanDiagram objects as a const reference to a range.
Definition: amplitude.h:255
FeynOptions const & getOptions() const
Returns the options used to calculate the amplitude;.
Definition: amplitude.h:245
mty::Kinematics & getKinematics()
Returns the kinematics of the process.
Definition: amplitude.h:283
Definition: amplitudeInitializer.h:36
mty::Kinematics const & getKinematics() const
Returns the kinematics of the process.
Definition: amplitude.h:274
void add(Iterator first, Iterator last)
Template utility to add multiple diagrams at once.
Definition: amplitude.h:328
std::vector< std::shared_ptr< mty::wick::Graph > > obtainGraphs() const
Creates and return a range containing the graph layouts of all diagrams.
Definition: amplitude.cpp:100
std::vector< csl::Expr > obtainExpressions() const
Creates and return a range containing the expressions of all diagrams.
Definition: amplitude.cpp:90
void setKinematics(Kinematics const &t_kinematics, bool replace=true)
Replaces one kinematic context by another, replacing the relevant momenta in expressions.
Definition: amplitude.cpp:156
Contains the mty::FeynmanDiagram class.