Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
Data Structures | Namespaces | Enumerations | Functions
amplitudeSimplification.h File Reference

File containing all the simplification routines for MARTY. More...

#include <csl.h>

Go to the source code of this file.

Data Structures

struct  mty::simpli::FermionEOMData
 Helper structure for the application of Dirac equation (equations of motions for spin 1/2) More...
 

Namespaces

 mty
 Namespace of MARTY.
 
 mty::simpli
 Namespace containing the main simplification method for MARTY and all its dependencies.
 

Enumerations

enum  mty::simpli::Mode {
  FeynmanRule,
  Amplitude,
  SquaredAmplitude,
  WilsonCoefficient
}
 Mode for the main simplification routine specifying what calculation is done to adapt the simplification procedure.
 

Functions

void mty::simpli::simplify (csl::Expr &expr, std::vector< mty::QuantumField > const &insertions, std::vector< csl::Tensor > const &momenta, mty::FeynOptions const &options, Mode mode)
 Main simplification routine of MARTY, used for amplitudes, squared amplitude and Wilson coefficients. More...
 
color::ColorSpace const * mty::simpli::inColorSpace (csl::Index const &index)
 Returns the colorspace associated to an index (nullptr if the index does not live in any ColorSpace). More...
 
color::ColorSpace const * mty::simpli::isColorStructure (csl::IndexStructure const &structure)
 Returns the adjoint colorspace for a generator, nullptr for another structure.o. More...
 
color::ColorSpace const * mty::simpli::isColorStructure (csl::Expr const &expr)
 Returns a colorspace if the expression is a color structure. More...
 
csl::IndexStructure mty::simpli::colorStructure (csl::Expr const &node, color::ColorSpace const *color)
 Returns all color indices found in an expression lying in a particular color space. More...
 
bool mty::simpli::factorIndicial (csl::Expr &res)
 Factors indicial expressions in a bigger expression. More...
 
csl::Expr mty::simpli::colorAbbreviation (std::vector< csl::Expr > const &exprs, std::vector< color::ColorSpace const *> const &spaces)
 Abbreviates color structure in expressions under the generic name "Color". More...
 
bool mty::simpli::expandInProd (csl::Expr &prod, std::function< csl::IndexStructure(csl::Expr const &)> const &structureGetter)
 Expands indicial expressions in a way avoiding unnecessary terms, in particular not expanding expressions that have no common index. More...
 
bool mty::simpli::expandColorIndices (csl::Expr &res)
 Expands expressions containing color indices to allow all algebra simplifications. More...
 
bool mty::simpli::simplifyColorWeights (csl::Expr &expr)
 Calculates color traces in an expression. More...
 
bool mty::simpli::findColorAbbreviation (csl::Expr &expr)
 Abbreviates color structures in an expression under the generic name "Color". More...
 
bool mty::simpli::expandMinkoStructures (csl::Expr &expr)
 Expands Minkowski structures to contract all possible indices. More...
 
bool mty::simpli::expandMinkoMetric (csl::Expr &expr)
 Expands Minkowski metrics to contract all possible indices. More...
 
bool mty::simpli::expandMinkoEpsilon (csl::Expr &expr)
 Expands Minkowski epsilon symbols to contract all possible indices. More...
 
bool mty::simpli::simplifyEpsilonInProd (csl::Expr &prod, csl::IndexStructure &indices)
 Simplifies the contraction of an epsilon tensor with a symmetric structure index. More...
 
bool mty::simpli::simplifyEpsilon (csl::Expr &expr)
 Simplifies epsilon contractions with symmetric indices in an expression. More...
 
bool mty::simpli::expandGammaMatrices (csl::Expr &expr)
 Expands gamma matrices in an expression to be able to simplify fermion chains (and traces). More...
 
bool mty::simpli::simplifyFermionChains (csl::Expr &expr)
 Simplifies fermion chains using the mty::FermionChain utility. More...
 
void mty::simpli::expandForFermionOrdering (csl::Expr &expr)
 Forces the ordering of external fermions by making sure that all Dirac structures are expanded. More...
 
void mty::simpli::expandMomentaExperimental (csl::Expr &res, std::vector< csl::Tensor > const &momenta)
 Expands expressions containing momenta to contract all indices, typically replacing \( p_i^\mu\cdot p_{j\mu} \mapsto s_{ij} \). More...
 
void mty::simpli::reduceTensorIntegrals (csl::Expr &expr)
 Replaces the one-loop momentum integrals by their reduced form depending on scalar integrals. More...
 
std::pair< csl::Expr, csl::Exprmty::simpli::getMomentumReplacement (std::vector< mty::QuantumField > const &insertions, std::vector< csl::Tensor > const &momenta, size_t posReplaced)
 Creates the relevant replacement (using momentum conservation) to replace one particular momentum. More...
 
void mty::simpli::replaceMomentum (csl::Expr &init, std::vector< mty::QuantumField > const &insertions, std::vector< csl::Tensor > const &momenta, size_t posReplaced)
 Applies the momentum conservation by replacing one of the external momenta by the combination of the others. More...
 
void mty::simpli::simplifyImpulsions (csl::Expr &init, std::vector< mty::QuantumField > const &insertions, std::vector< csl::Tensor > const &momenta)
 Applies the momentum conservation by replacing one of the external momenta by the combination of the others. More...
 
void mty::simpli::applyEOM (csl::Expr &ampl, std::vector< FermionEOMData > &onShellFermions)
 Applies the equations of motions in an expression. More...
 
void mty::simpli::applyEOM (csl::Expr &ampl, std::vector< mty::QuantumField > const &insertions, std::vector< csl::Tensor > const &momenta)
 Applies the equations of motion in an expression. More...
 
void mty::simpli::addLocalTerms (csl::Expr &res)
 Adds the local terms in an expression. More...
 
bool mty::simpli::maybeSimplified (csl::Expr const &expr)
 Helper function that tells if an expression may be simplified in amplitudes. More...
 
void mty::simpli::findExternalAbbreviation (csl::Expr &expr)
 Abbreviates external legs in the expression using the generic name "EXT". More...
 
void mty::simpli::abbreviateIntegral (csl::Expr &res)
 Abbreviate scalar integrals (or combinations of them) into abbreviations with the generic name "INT". More...
 
void mty::simpli::abbreviateAll (csl::Expr &res)
 Abbreviates all the sub-expressions that are relevant. More...
 
bool mty::simpli::findAbbreviations (csl::Expr &res)
 Abbreviates all the sub-expressions that are relevant considering constant factors only. More...
 
void mty::simpli::applyDerivativesInStructure (csl::Expr &expr)
 Searches in the expression derived fields and applies the derivatives in the fields themselves. More...
 
void mty::simpli::suppressDiracDelta (csl::Expr &expr, csl::Expr const &PSum)
 Removes a dirac delta sub-expression. More...
 

Detailed Description

File containing all the simplification routines for MARTY.

When a calculation is done (amplitude, squared amplitude or Wilson coefficient) it is simplified by the mty::simpli::simplify() method that uses directly or indirectly all the other routines in this file. The other rountines can for the most part be called separatly, but for a full successful simplification the order is extremely important and the mty::simpli::simplify() method is a reference.

Author
Grégoire Uhlrich
Version
1.3
Date
2021-04-16