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

Base class for vector objects. More...

#include <vectorField.h>

Inheritance diagram for mty::BaseVectorBoson:
[legend]

Public Member Functions

 BaseVectorBoson ()=default
 Default constructor. Initializes nothing.
 
 BaseVectorBoson (BaseVectorBoson const &other)=default
 Default copy constructor. More...
 
 BaseVectorBoson (const std::string &t_name, Gauge *t_gauge)
 Constructor with two parameters. More...
 
 BaseVectorBoson (const std::string &t_name, mty::Model &model)
 Constructor with two parameters. More...
 
 BaseVectorBoson (const std::string &t_name, const GaugeIrrep &irrep)
 Constructor with two parameters. More...
 
 BaseVectorBoson (const std::string &t_name, Gauge *t_gauge, bool t_isSelfConjugate)
 Constructor with three parameters. More...
 
 BaseVectorBoson (const std::string &t_name, const GaugeIrrep &irrep, bool t_isSelfConjugate)
 Constructor with three parameters. More...
 
 BaseVectorBoson (const std::string &t_name, const GaugeIrrep &irrep, const FlavorIrrep &flavorRep)
 Constructor with two parameters. More...
 
 BaseVectorBoson (const std::string &t_name, const BaseVectorBoson *other)
 Copies another vector boson and takes a new name. More...
 
csl::Expr getEnergyDimension () const override
 
int getNDegreesOfFreedom () const override
 
csl::Expr getKineticTerm (csl::Tensor &X) override
 Calculates the kinetic term for the vector boson. More...
 
- Public Member Functions inherited from mty::QuantumFieldParent
 QuantumFieldParent ()=default
 Default constructor.
 
 QuantumFieldParent (QuantumFieldParent const &other)=default
 Copy constructor.
 
 QuantumFieldParent (const std::string &t_name, int t_spin, Gauge *t_gauge)
 Constructor with 3 parameters. More...
 
 QuantumFieldParent (const std::string &t_name, int t_spin, const GaugeIrrep &irrep)
 Constructor with 3 parameters. More...
 
 QuantumFieldParent (const std::string &t_name, int t_spin, Gauge *t_gauge, bool t_isSelfConjugate)
 Constructor with 4 parameters. More...
 
 QuantumFieldParent (const std::string &t_name, int t_spin, const GaugeIrrep &irrep, bool t_isSelfConjugate)
 Constructor with 4 parameters. More...
 
 QuantumFieldParent (const std::string &t_name, int t_spin, const GaugeIrrep &irrep, const FlavorIrrep &flavorRep)
 Constructor with 4 parameters. More...
 
 QuantumFieldParent (const std::string &t_name, const QuantumFieldParent *other)
 Builds a new particle identical to another, with a different name. More...
 
drawer::ParticleType getDrawType () const
 Returns the drawing type of the particle. More...
 
virtual bool contains (QuantumFieldParent const *other) const
 
virtual bool isSameSpecies (QuantumFieldParent const *other) const
 
virtual ParticleType getParticleType () const
 
void setDrawType (drawer::ParticleType type)
 Sets the drawing type of the particle. More...
 
virtual Particle generateSimilar (std::string const &t_name) const =0
 Pure virtual function. Generates a partical similar to the current object, changing only the name. More...
 
virtual Chirality getChirality () const
 Returns the chirality of the particle. More...
 
int getNGaugeDegreesOfFreedom () const
 
virtual bool hasSpecialContractionWith (QuantumField const &other) const
 Tells if the field has a special contraction property with other. More...
 
virtual bool isChiral () const
 Tells if the field is chiral. More...
 
virtual Particle getChiralityCounterPart () const
 For a WeylFermion embedded in a DiracFermion, returns the other part of the DiracFermion. More...
 
virtual Particle getWeylFermion (Chirality chirality) const
 For a DiracFermion, returns the chiral WeylFermion it contains of chirality chirality if it has one. More...
 
virtual Particle getDiracParent () const
 For a WeylFermion embedded in a DiracFermion, returns the dirac fermion. More...
 
virtual Particle getGoldstone () const
 For a vector boson in a non abelian gauged group, returns the associated Goldstone boson. More...
 
virtual void setDiracParent (Particle const &diracFermion)
 
virtual csl::Expr getPropagator (QuantumField const &self, QuantumField const &other, csl::Tensor &P, bool external) const
 Returns the expression of the propagator between two fields. More...
 
virtual csl::Expr getInvPropagator (QuantumField const &other, QuantumField const &self, csl::Tensor &P, bool external) const
 Returns the expression of the propagator between two fields. More...
 
virtual bool isGaugeBoson () const
 Tells if the particle is a gauge boson. More...
 
virtual csl::Expr getXiGauge () const
 For a GaugeBoson, returns the expression of \( \xi \) in the current gauge. More...
 
virtual Particle getVectorBoson () const
 For a ghost or goldstone boson, returns the GaugeBoson associated with it. More...
 
virtual GaugedGroup const * getGaugedGroup () const
 
virtual GaugedGroupgetGaugedGroup ()
 
virtual Particle getGoldstoneBoson () const
 For a GaugeBoson, returns the associated Golstone boson of there is one. More...
 
virtual Particle getGhostBoson () const
 For a GoldstoneBoson, returns the associated Golstone boson of there is one. More...
 
virtual Particle getConjugatedGhostBoson () const
 
virtual void setGoldstoneBoson (Particle const &goldstone)
 For a GaugeBoson, sets the associated GoldstoneBoson. More...
 
virtual void setGhostBoson (Particle const &ghost)
 For a GaugeBoson, sets the associated GhostBoson. More...
 
virtual void setConjugatedGhostBoson (Particle const &ghost)
 
virtual bool hasFieldStrength () const
 Tells if the particle has a FieldStrength. More...
 
virtual Particle getFieldStrength () const
 For a VectorBoson, returns the associated FieldStrength if it exists. More...
 
virtual void setFieldStrength (Particle const &fieldStrength)
 For a VectorBoson, sets the associated FieldStrength. More...
 
bool isContractibleWith (QuantumFieldParent const *other) const
 Tells if the field may be contracted with another in Wick contrations. More...
 
bool isBosonic () const
 Tells if the field is bosonic. More...
 
bool isFermionic () const
 Tells if the field is fermionic. More...
 
virtual bool isAntiCommuting () const
 Tells if the field is a grassman field. More...
 
bool isSelfConjugate () const
 Tells if the field is self-conjugate (real). More...
 
bool isReal () const
 
bool isPhysical () const
 Tells if the field is physical, i.e. may appear in external legs. More...
 
bool isEnabledInDiagrams () const
 Tells if the field is enabled in diagrams. More...
 
bool isIntegratedOut () const
 Tells if the field is integrated out. More...
 
int getSpinDimension () const
 Returns twice the spin of the particle in an integer. More...
 
csl::Expr getMass () const
 Returns the expression of the mass of the particle. More...
 
csl::Expr getSquaredMass () const
 
csl::Expr getWidth () const
 Returns the expression of the witdh of the particle. More...
 
virtual mty::gauge::Choice getGaugeChoice () const
 
Irrep getLorentzRep () const
 Returns the lorentz representation of the field. More...
 
GaugegetGauge () const
 Returns a pointer to the gauge the field is a representation of. More...
 
GaugeIrrep getGaugeIrrep () const
 Returns the gauge representation containing all individual group representations of the field in the gauge. More...
 
Irrep getGroupIrrep (const Group *group) const
 Returns the representation of the field in a particle group. More...
 
Flavor const * getFlavor () const
 
void setFlavor (Flavor const *flavor)
 
FlavorIrrep getFlavorIrrep () const
 Returns the flavor representation containing all individual group representations of the field in the flavor. More...
 
Irrep getFlavorIrrep (const FlavorGroup *group) const
 Returns the representation of the field in a particle flavor group. More...
 
std::vector< csl::IndexgetSpaceIndex (const std::string &nameIndex="") const
 Returns a set of free space indices corresponding to the field. More...
 
std::vector< csl::IndexgetGaugeIndex (std::vector< std::string > names=std::vector< std::string >()) const
 Returns a set of gauge indices corresponding to the field. More...
 
std::vector< csl::IndexgetFlavorIndex (std::vector< std::string > names=std::vector< std::string >()) const
 Returns a set of flavor indices corresponding to the field. More...
 
std::vector< csl::IndexgetFullSetOfIndices () const
 Returns a full set of indices for the field including flavor , gauge, and space-time indices. More...
 
QuantumNumber::Value getQuantumNumber (QuantumNumber const *number) const
 Returns the quantum number of the field with respect to number. More...
 
QuantumNumber::Value getQuantumNumber (QuantumField const *instance, QuantumNumber const *number) const
 Returns the quantum number of an instance of the field with respect to number. More...
 
csl::Expr getInstance (csl::Tensor point=defaultSpaceTimePoint)
 Returns an instance of the quantum field as an expression. More...
 
void integrateOut (bool value=true)
 Sets the integrated out property of the field. More...
 
void setMass (const std::string &t_mass)
 Sets the mass of the particle. More...
 
void setMass (const std::string &t_mass, long double value)
 Sets the mass of the particle. More...
 
void setMass (const csl::Expr &t_mass)
 Sets the mass of the particle. More...
 
void setWidth (const csl::Expr &t_width)
 Sets the width of the particle. More...
 
virtual void setGaugeChoice (gauge::Type type)
 
void setSelfConjugate (bool t_selfConjugate)
 Sets the complex conjugation property of the particle. More...
 
void setPhysical (bool t_physical)
 Sets the physical property of the particle. More...
 
void setEnabledInDiagrams (bool t_enabled)
 Enables or disables the particle in diagrams. More...
 
void adjustFlavorRep (Flavor *t_flavor)
 Ajusts the flavor representation of the field to a new flavor group. More...
 
void setGaugeIrrep (const GaugeIrrep &newRep)
 
void setGroupRep (Group *group, const Irrep &newRep)
 Sets the representation of the field for a given group. More...
 
void setGroupRep (std::string const &group, std::vector< int > const &highestWeight)
 Sets the representation of the field for a given group. More...
 
void setGroupRep (std::string const &group, int charge)
 
void setFlavorRep (const FlavorGroup *group, const Irrep &newRep)
 Sets the representation of the field for a given flavor group. More...
 
void setFundamentalFlavorRep (std::string const &flavorGroup)
 
void addQuantumNumber (QuantumNumber const &number, QuantumNumber::Value value)
 Adds a non trivial quantum number to the particle. More...
 
virtual void setBrokenParts (const csl::Space *broken, const std::vector< Particle > &brokenParts)
 Sets broken parts (from gauge of flavor symmetry full breaking) containing the new particles. More...
 
std::vector< csl::ParentbreakSpace (const csl::Space *broken, const std::vector< const csl::Space *> &newSpace, const std::vector< size_t > &pieces) const override
 Returns the set of new tensors after breaking the particle in parts. More...
 
QuantumFieldParentoperator= (const QuantumFieldParent &other)=default
 Assignment operator (c++ default). More...
 
csl::Expr operator() (const csl::Tensor &t_point) override
 Generates an instance of the field as a symbolic expression. More...
 
csl::Expr operator() (csl::Index index, const csl::Tensor &t_point) override
 Generates an instance of the field as a symbolic expression. More...
 
csl::Expr operator() (std::vector< int > const &indices, const csl::Tensor &t_point) override
 Generates an instance of the QuantumField as a symbolic expression. More...
 
csl::Expr operator() (std::vector< csl::Index > indices, const csl::Tensor &t_point) override
 Generates an instance of the field as a symbolic expression. More...
 
csl::Expr operator() (csl::Index polarization, std::vector< int > const &indices, const csl::Tensor &t_point)
 Generates an instance of the PolarizationField as a symbolic expression. More...
 
csl::Expr operator() ()
 Generates an instance of the field as a symbolic expression. More...
 
csl::Expr operator() (csl::Index index) override
 Generates an instance of the field as a symbolic expression. More...
 
csl::Expr operator() (std::vector< csl::Index > indices) override
 Generates an instance of the field as a symbolic expression. More...
 
csl::Expr operator() (csl::Index polarization, csl::Index index, const csl::Tensor &momentum)
 Generates an instance of the polarization field as a symbolic expression. More...
 
csl::Expr operator() (csl::Index polarization, std::vector< csl::Index > indices, const csl::Tensor &momentum)
 Generates an instance of the polarization field as a symbolic expression. More...
 
 operator csl::Expr ()
 
virtual void breakParticle (mty::Group *brokenGroup, std::vector< std::string > const &newNames)
 
virtual void breakParticle (mty::FlavorGroup *brokenFlavor, std::vector< mty::FlavorGroup *> const &subGroups, std::vector< std::string > const &names)
 
- Public Member Functions inherited from csl::TensorFieldParent
cslParent::PrimaryType getPrimaryType () const override
 
cslParent::Type getType () const override
 
- Public Member Functions inherited from csl::TensorParent
 TensorParent (const std::string &t_name)
 
 TensorParent (const TensorParent &abstract)=default
 
 TensorParent (const std::string &t_name, const Space *t_space)
 
 TensorParent (const std::string &t_name, const std::vector< const Space * > &t_space)
 
 TensorParent (const std::string &t_name, const std::vector< const Space * > &t_space, const Expr &t_tensor)
 
 TensorParent (const std::string &t_name, const Space *t_space, const Expr &t_tensor)
 
cslParent::PrimaryType getPrimaryType () const override
 
cslParent::Type getType () const override
 
int getDim (const Space *t_space) const override
 
std::vector< const Space *> getSpace () const override
 
Symmetry getSymmetry () const
 
bool getFullySymmetric () const override
 
bool getFullyAntiSymmetric () const override
 
std::vector< PermutationgetPermutation () const override
 
Expr getTensor () const override
 
Expr getTrace () const override
 
bool dependsOn (Expr_info expr) const override
 
bool dependsExplicitlyOn (Expr_info expr) const override
 
const std::vector< Equation *> & getProperties () const override
 
void setFullySymmetric () override
 
void setFullyAntiSymmetric () override
 
void addSpace (const Space *space) override
 
void addSymmetry (int i1, int i2) override
 
void addAntiSymmetry (int i1, int i2) override
 
void setSymmetry (const Symmetry &t_symetry) override
 
void setTensor (const Expr &t_tensor) override
 
void setElementary (bool t_elementary)
 
bool hasContractionProperty (const Abstract *self, Expr_info B) const override
 
Expr contraction (const Abstract *self, Expr_info B) const override
 
void addSelfContraction (const Expr &A, const Expr &B, const Expr &res, std::optional< std::function< bool(Expr_info, Expr_info)>> condition=std::nullopt) override
 
virtual bool operator== (const TensorParent &other) const
 
virtual bool operator!= (const TensorParent &other) const
 
- Public Member Functions inherited from csl::AbstractParent
 AbstractParent (const std::string &t_name)
 
 AbstractParent (const AbstractParent &abstract)=default
 
std::string const & getName () const
 
bool getCommutable () const
 
virtual void setName (std::string t_name)
 
void setCommutable (bool t_commutable)
 
void addProperty (Equation *prop)
 
void removeProperty (Equation *prop)
 
virtual int getDim () const
 

Additional Inherited Members

- Public Types inherited from mty::QuantumFieldParent
using Propagator_func = std::function< csl::Expr(QuantumField const &, QuantumField const &, csl::Tensor &, bool)>
 Type definition. A Propagator_func is a function called to get the propagator result of the contraction of two fields. More...
 
- Protected Member Functions inherited from mty::QuantumFieldParent
void addRelative (std::weak_ptr< mty::QuantumFieldParent > const &particle)
 
std::weak_ptr< mty::QuantumFieldParentremoveRelative (QuantumFieldParent const *particle)
 
void checkRelatives ()
 
template<class Func >
void applyToRelatives (Func &&func)
 
void printQuantumDefinition (std::ostream &out, int indentSize) const
 
virtual void initPropagator ()
 Initializes default propagators for the particle. This function is called automatically in the constructor of derived classes. More...
 
void initIndexSpaces ()
 Initializes firstGaugeIndex and firstSpaceIndex. Automatically called by the constructor. More...
 
void initPolarizationSum ()
 Initializes the polarization sum for PolarizationField arising in amplitudes. More...
 
void setPropagator (QuantumFieldParent const *other, Propagator_func prop)
 Changes the propagator of a particle with another. More...
 
- Protected Attributes inherited from mty::QuantumFieldParent
bool bosonic
 True if the field is bosonic.
 
bool selfConjugate = false
 True if the field is real (real scalars, gauge bosons , majorana fermions). More...
 
bool integratedOut = false
 Tells if the field is integrated out in the theory. If true, the propagator is modified assuming \( M \gg p \).
 
bool physical = true
 Tells if the field is physical. If true, it may appear in external states. Otherwise it is forbidden.
 
bool enabledInDiagrams = true
 Tells if the field is enabled in diagrams. If no, it is fully discarded in computations.
 
csl::Expr mass = CSL_0
 Mass of the particle. Appears in the propagator.
 
csl::Expr width = CSL_0
 Width of the particle. Appears in the propagator.
 
drawer::ParticleType drawType = drawer::ParticleType::None
 Particle type in graphical diagrams (straight line, arrow, vector, gluon ...).
 
GroupstGroup
 Pointer to the space-time group. For know it is the Lorentz group, \( D_2 \) algebra.
 
Irrep spin
 Spin representation in stGroup. To have a number corresponding to the spin, see getSpinDimension().
 
Gaugegauge
 Pointer to the gauge the particle is a representation of.
 
GaugeIrrep irrep
 Representation of the field in the gauge gauge.
 
bool polarizationSumInitialized = false
 Boolean making sure that polarization sum (see PolarizationField) is initialized only onde.
 
size_t firstGaugeIndex
 Position of the first gauge index, after flavor indices.
 
size_t firstSpaceIndex
 Position of the first space index, after flavor and gauge indices.
 
const Flavorflavor
 Pointer to the flavor the particle is a representation of.
 
FlavorIrrep flavorRep
 Representation of the field in the flavor flavor.
 
std::map< QuantumNumber::ID, QuantumNumber::ValueqNumbers
 List of quantum numbers of the field. More...
 
std::map< QuantumFieldParent const *, Propagator_funcpropagator
 Contains all propagators for the field with other. More...
 
std::vector< std::weak_ptr< mty::QuantumFieldParent > > relatives
 
- Protected Attributes inherited from csl::TensorParent
std::vector< const Space *> space
 
Symmetry symmetry
 
bool fullySymmetric
 
bool fullyAntiSymmetric
 
std::vector< std::pair< SelfContraction, Expr > > selfContraction
 
bool valued
 
Expr tensor
 
Expr trace
 
- Protected Attributes inherited from csl::AbstractParent
std::string name
 
std::string latexName
 
bool commutable
 
std::vector< Equation *> props
 

Detailed Description

Base class for vector objects.

Constructor & Destructor Documentation

◆ BaseVectorBoson() [1/8]

mty::BaseVectorBoson::BaseVectorBoson ( BaseVectorBoson const &  other)
default

Default copy constructor.

Parameters
otherVector boson to copy

◆ BaseVectorBoson() [2/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
Gauge t_gauge 
)

Constructor with two parameters.

Parameters
t_nameName of the boson.
t_gaugeGauge in which the particle lives.

◆ BaseVectorBoson() [3/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
mty::Model model 
)

Constructor with two parameters.

Parameters
t_nameName of the vector boson.
t_modelModel in which the boson lives.

◆ BaseVectorBoson() [4/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
const GaugeIrrep irrep 
)

Constructor with two parameters.

Contrary to some other constructors, this one initializes directly the gauge representation to irrep.

Parameters
t_nameName of the boson.
irrepIrreducible gauge representation.

◆ BaseVectorBoson() [5/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
Gauge t_gauge,
bool  t_isSelfConjugate 
)

Constructor with three parameters.

Parameters
t_nameName of the vector boson.
t_gaugeGauge in which the boson lives.
t_isSelfConjugateTells if the particle must be real.

◆ BaseVectorBoson() [6/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
const GaugeIrrep irrep,
bool  t_isSelfConjugate 
)

Constructor with three parameters.

Contrary to some other constructors, this one initializes directly the gauge representation to irrep.

Parameters
t_nameName of the boson.
irrepIrreducible gauge representation.
t_isSelfConjugateTells if the particle must be real.

◆ BaseVectorBoson() [7/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
const GaugeIrrep irrep,
const FlavorIrrep flavorRep 
)

Constructor with two parameters.

Contrary to some other constructors, this one initializes directly the gauge representation to irrep and flavor representation to flavorRep.

Parameters
t_nameName of the boson.
irrepIrreducible gauge representation.
flavorRepFlavor representation.

◆ BaseVectorBoson() [8/8]

mty::BaseVectorBoson::BaseVectorBoson ( const std::string &  t_name,
const BaseVectorBoson other 
)

Copies another vector boson and takes a new name.

Parameters
t_nameName of the vector boson.
otherOther boson to copy.

Member Function Documentation

◆ getEnergyDimension()

csl::Expr mty::BaseVectorBoson::getEnergyDimension ( ) const
overridevirtual
Returns
1, the energy dimension of a vector boson.

Implements mty::QuantumFieldParent.

Reimplemented in mty::FieldStrength.

◆ getKineticTerm()

csl::Expr mty::BaseVectorBoson::getKineticTerm ( csl::Tensor X)
overridevirtual

Calculates the kinetic term for the vector boson.

Parameters
XSpace-time point for the Lagrangian term.
Returns
Symbolic expression containing the kinetic term.
See also
mty::VectorKineticTerm()

Reimplemented from mty::QuantumFieldParent.

◆ getNDegreesOfFreedom()

int mty::BaseVectorBoson::getNDegreesOfFreedom ( ) const
overridevirtual
Returns
2 if the mass of the vector is 0 (2-dimensional spin).
3 else.

Implements mty::QuantumFieldParent.


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