Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
Public Member Functions
mty::Particle Class Reference

This class inherits from std::shared_ptr<QuantumFieldParent> and should be used instead of direct QuantumFieldParent. More...

#include <quantumField.h>

Inheritance diagram for mty::Particle:
[legend]

Public Member Functions

template<class ... Args>
csl::Expr operator() (Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const csl::Index &polar, const csl::Index &index, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const std::vector< int > &indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (std::initializer_list< int > indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const csl::Index &polar, const std::vector< int > &indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const csl::Index &polar, const std::vector< csl::Index > &indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const csl::Index &polar, std::initializer_list< int > indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const csl::Index &polar, std::initializer_list< csl::Index > indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (const std::vector< csl::Index > &indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
template<class ... Args>
csl::Expr operator() (std::initializer_list< csl::Index > indices, Args &&...args)
 Delegates the arguments to QuantumFieldParent::operator()() of the managed object. More...
 
 operator csl::Expr ()
 

Detailed Description

This class inherits from std::shared_ptr<QuantumFieldParent> and should be used instead of direct QuantumFieldParent.

Particle is the object to use to create particles and their instances. As for csl::Expr, the ownership of a QuantumFieldParent is shared (in particular between the model and the user). One must then use a pointer, and in this case a shared pointer. These objects are created by built-in functions and may be used using '->' instead of '.'. For example, building a scalar boson, setting its mass and taking an instance gives:

Tensor X = MinkowskiVector("X");
Particle phi = scalarboson_s("\\phi");
phi->setMass("m");
csl::Expr instance = phi(X);

The operator() are redefined in this class in order to use them directly on a particle (otherwise we would have to write

csl::Expr instance = (*phi)(X)

which is not very practical). Particle is just managing tho ownership of a QuantumFieldParent without building it (this is done by built-in functions as already said).

See also
scalarboson_s(), weylfermion_s(), diracfermion_s(), vectorboson_s(), gaugeboson_s(), goldstoneboson_s(), ghostboson_s().

Member Function Documentation

◆ operator()() [1/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( Args &&...  args)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
argsVariadic function arguments.
Returns
The corresponding instance of QuantumField.
See also
QuantumFieldParent::operator()().

◆ operator()() [2/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const csl::Index polar,
const csl::Index index,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
polarPolarization index for the polarization tensor.
indexOther index.
argsVariadic function arguments.
Returns
The corresponding instance of PolarizationField.
See also
QuantumFieldParent::operator()().

◆ operator()() [3/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const std::vector< int > &  indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
indicesIndices as integer values.
argsVariadic function arguments.
Returns
The corresponding instance of QuantumField.
See also
QuantumFieldParent::operator()().

◆ operator()() [4/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( std::initializer_list< int >  indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
indicesIndices as integer values.
argsVariadic function arguments.
Returns
The corresponding instance of QuantumField.
See also
QuantumFieldParent::operator()().

◆ operator()() [5/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const csl::Index polar,
const std::vector< int > &  indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
polarPolarization index for the polarization tensor.
indicesRest of the indices, as integer values.
argsVariadic function arguments.
Returns
The corresponding instance of PolarizationField.
See also
QuantumFieldParent::operator()().

◆ operator()() [6/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const csl::Index polar,
const std::vector< csl::Index > &  indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
polarPolarization index for the polarization tensor.
indicesRest of the indices.
argsVariadic function arguments.
Returns
The corresponding instance of PolarizationField.
See also
QuantumFieldParent::operator()().

◆ operator()() [7/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const csl::Index polar,
std::initializer_list< int >  indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
polarPolarization index for the polarization tensor.
indicesRest of the indices, as integer values.
argsVariadic function arguments.
Returns
The corresponding instance of PolarizationField.
See also
QuantumFieldParent::operator()().

◆ operator()() [8/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const csl::Index polar,
std::initializer_list< csl::Index indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
polarPolarization index for the polarization tensor.
indicesRest of the indices.
argsVariadic function arguments.
Returns
The corresponding instance of PolarizationField.
See also
QuantumFieldParent::operator()().

◆ operator()() [9/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( const std::vector< csl::Index > &  indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
indicesRest of the indices.
argsVariadic function arguments.
Returns
The corresponding instance of QuantumField.
See also
QuantumFieldParent::operator()().

◆ operator()() [10/10]

template<class ... Args>
csl::Expr mty::Particle::operator() ( std::initializer_list< csl::Index indices,
Args &&...  args 
)
inline

Delegates the arguments to QuantumFieldParent::operator()() of the managed object.

Template Parameters
ArgsVariadic template parameters.
Parameters
indicesRest of the indices.
argsVariadic function arguments.
Returns
The corresponding instance of QuantumField.
See also
QuantumFieldParent::operator()().

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