Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
mty::FeynmanRule Class Reference

Represents a Feynman rule. More...

#include <feynmanRule.h>

Public Types

using TermType = InteractionTerm::TermType
 

Public Member Functions

 FeynmanRule (mty::Model &model, TermType const &interactionTerm)
 
 FeynmanRule (FeynmanRule const &other)
 
FeynmanRuleoperator= (FeynmanRule const &other)
 
 FeynmanRule (FeynmanRule &&other)=default
 
FeynmanRuleoperator= (FeynmanRule &&other)=default
 
std::vector< QuantumField > & getFieldProduct ()
 
std::vector< QuantumField > const & getFieldProduct () const
 
csl::Expr getFieldProduct (csl::Tensor const &point, std::vector< csl::Tensor >::iterator &first, std::vector< csl::Tensor >::iterator last)
 
TermTypegetInteractionTerm ()
 
TermType const & getInteractionTerm () const
 
std::shared_ptr< wick::Graph > & getDiagram ()
 
std::shared_ptr< wick::Graph > const & getDiagram () const
 
csl::Expr getExpr () const
 
bool contains (mty::QuantumFieldParent const *parent) const
 
size_t count (mty::QuantumFieldParent const *parent) const
 
bool contains (mty::Particle const &p) const
 
bool containsWeakly (mty::QuantumFieldParent const *parent) const
 
bool containsWeakly (mty::Particle const &p) const
 
size_t count (mty::Particle const &p) const
 
void setFieldProduct (std::vector< QuantumField > const &fieldProduct)
 
void setInteractionTerm (TermType const &term)
 
void setDiagram (std::shared_ptr< wick::Graph > const &diagram)
 
void setExpr (csl::Expr const &expr)
 
void renameIndices ()
 
bool isZero () const
 
bool isEmpty () const
 
bool isSame (FeynmanRule const &other) const
 
size_t getSize () const
 
bool operator== (FeynmanRule const &) const
 
bool operator!= (FeynmanRule const &) const
 
bool operator< (FeynmanRule const &) const
 
bool operator> (FeynmanRule const &) const
 
bool operator<= (FeynmanRule const &) const
 
bool operator>= (FeynmanRule const &) const
 

Private Member Functions

void directCMatrix (csl::Expr &rule)
 

Private Attributes

std::vector< QuantumFieldfieldProduct
 
TermType term
 
std::shared_ptr< wick::Graphdiagram
 
csl::Expr expr
 

Friends

std::ostream & operator<< (std::ostream &out, FeynmanRule const &rule)
 

Detailed Description

Represents a Feynman rule.

This object lauches the vertex calculation in its constructor to get the expression of the Feynman rule. It may, mater on, give any kind of information about the vertex, including of course the fields inside and the expression that will enter amplitude calculations.


The documentation for this class was generated from the following files: