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

Gauge boson implementation in MARTY. More...

#include <vectorField.h>

Inheritance diagram for mty::GaugeBoson:
[legend]

Public Member Functions

 GaugeBoson (std::string const &t_name, GaugeIrrep const &irrep, GaugedGroup *group)
 
 GaugeBoson (const std::string &t_name, GaugeBoson const *other)
 
void printDefinition (std::ostream &out=std::cout, int indentSize=4, bool header=false) const override
 
GaugedGroup const * getGaugedGroup () const override
 
GaugedGroupgetGaugedGroup () override
 
Particle generateSimilar (std::string const &t_name) const override
 Pure virtual function. Generates a partical similar to the current object, changing only the name. More...
 
bool isGaugeBoson () const override
 Tells if the particle is a gauge boson. More...
 
- Public Member Functions inherited from mty::VectorBoson
template<class ... Args>
 VectorBoson (Args &&...args)
 Delegates any arguments to the BaseVectorBoson::BaseVectorBoson() constructors and creates the associated field strength. More...
 
void setName (std::string t_name) override
 
bool isSameSpecies (QuantumFieldParent const *other) const override
 
bool contains (QuantumFieldParent const *other) const override
 
void printDefinition (std::ostream &out=std::cout, int indentSize=4, bool header=false) const override
 
ParticleType getParticleType () const override
 
bool hasFieldStrength () const override
 Tells if the particle has a FieldStrength. More...
 
Particle getFieldStrength () const override
 
csl::Expr getXiGauge () const override
 
mty::gauge::Choice getGaugeChoice () const override
 
Particle getGhostBoson () const override
 For a vector boson in a non abelian gauged group, returns the associated ghost boson. More...
 
Particle getConjugatedGhostBoson () const override
 
Particle getGoldstone () const override
 For a vector boson in a non abelian gauged group, returns the associated Goldstone boson. More...
 
void setGoldstoneBoson (Particle const &goldstone) override
 Associates the vector with a new Goldstone boson. More...
 
void setGhostBoson (Particle const &ghost) override
 Associates the vector with a new ghost boson. More...
 
void setConjugatedGhostBoson (Particle const &ghost) override
 
void setGaugeChoice (gauge::Type type) override
 
void setFieldStrength (Particle const &fieldStrength) override
 For a VectorBoson, sets the associated FieldStrength. More...
 
void setBrokenParts (const csl::Space *broken, const std::vector< Particle > &parts) override
 Sets broken parts (from gauge of flavor symmetry full breaking) containing the new particles. More...
 
csl::Expr operator() (std::vector< csl::Index > indices, const csl::Tensor &t_point) override
 Creates a vector or field strength expression depending on the indices that are given. More...
 
void breakParticle (mty::Group *brokenGroup, std::vector< std::string > const &newNames) override
 
void breakParticle (mty::FlavorGroup *brokenFlavor, std::vector< mty::FlavorGroup *> const &subGroups, std::vector< std::string > const &names) override
 
- Public Member Functions inherited from mty::BaseVectorBoson
 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...
 
void setDrawType (drawer::ParticleType type)
 Sets the drawing type of the particle. 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 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 Particle getVectorBoson () const
 For a ghost or goldstone boson, returns the GaugeBoson associated with it. More...
 
virtual Particle getGoldstoneBoson () const
 For a GaugeBoson, returns the associated Golstone boson of there is one. 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...
 
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...
 
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...
 
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 ()
 
- 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
 
void setCommutable (bool t_commutable)
 
void addProperty (Equation *prop)
 
void removeProperty (Equation *prop)
 
virtual int getDim () const
 

Private Attributes

GaugedGroupgaugedGroup
 Raw pointer to the gauged group associated with the gauge boson.
 

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::VectorBoson
void initPropagator () override
 Initializes default propagators for the particle. This function is called automatically in the constructor of derived classes. More...
 
void updateBrokenFieldStrength (csl::Space const *space)
 
void updateBrokenGhost (csl::Space const *space, std::shared_ptr< GhostBoson > const &local_ghost)
 
void updateBrokenGoldstone (csl::Space const *space)
 
- 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
 
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::VectorBoson
mty::gauge::Choice choice
 Gauge choice for the vector, modifying also properties of the Ghost and Goldstone boson (if some are defined for the vector).
 
std::shared_ptr< GoldstoneBosongoldstone
 Pointer to the GoldstoneBoson associated to the vector, if there is one.
 
std::shared_ptr< GhostBosonghost
 Pointer to the GhostBoson associated to the vector, if there is one.
 
std::shared_ptr< GhostBosonghost_c
 Pointer to the conjugated GhostBoson associated to the vector, if there is one (for example for the W boson that has two ghosts).
 
std::shared_ptr< FieldStrengthfieldStrength
 Pointer to the FieldStrength associated to the vector.
 
- 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

Gauge boson implementation in MARTY.

A gauge boson is basically just a VectorBoson that also keeps a pointer to a mty::GaugedGroup from which it is the gauge boson.

Member Function Documentation

◆ generateSimilar()

Particle mty::GaugeBoson::generateSimilar ( std::string const &  t_name) const
overridevirtual

Pure virtual function. Generates a partical similar to the current object, changing only the name.

Parameters
t_nameName of the new particle, identical to the current object.
Returns
The new Particle.

Reimplemented from mty::VectorBoson.

◆ isGaugeBoson()

bool mty::GaugeBoson::isGaugeBoson ( ) const
overridevirtual

Tells if the particle is a gauge boson.

Returns
True if the particle is a gauge boson (created by a GaugedGroup).
False otherwise.

Reimplemented from mty::QuantumFieldParent.


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