Weyl fermion, two-component Chiral particle. More...
#include <fermionicField.h>
Public Member Functions | |
| WeylFermion (WeylFermion const &other)=default | |
| WeylFermion (std::weak_ptr< DiracFermion > parent, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, Model const &t_model, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, Gauge *t_gauge, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, const GaugeIrrep &irrep, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, Gauge *t_gauge, bool t_isSelfConjugate, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, const GaugeIrrep &irrep, bool t_isSelfConjugate, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, const GaugeIrrep &irrep, const FlavorIrrep &flavorRep, Chirality chirality=Chirality::Left) | |
| WeylFermion (const std::string &t_name, const WeylFermion *other) | |
| void | printDefinition (std::ostream &out=std::cout, int indentSize=4, bool header=false) const override |
| ParticleType | getParticleType () const override |
| bool | isChiral () const override |
| Tells if the field is chiral. More... | |
| bool | isSameSpecies (QuantumFieldParent const *other) const override |
| Chirality | getChirality () const override |
| Returns the chirality of the particle. More... | |
| 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... | |
| csl::Expr | getEnergyDimension () const override |
| Pure virtual function. Returns the energy dimension of the field. More... | |
| int | getNDegreesOfFreedom () const override |
| Pure virtual function. Returns the number of degrees of freedom in the particle. It does not count gauge and flavor multiplicity. The result depends on the type of the particle and if it is complex. More... | |
| csl::Expr | getKineticTerm (csl::Tensor &X) override |
| Returns the kinetic term in the Lagrangian for the field. More... | |
| Particle | getChiralityCounterPart () const override |
| For a WeylFermion embedded in a DiracFermion, returns the other part of the DiracFermion. More... | |
| Particle | getDiracParent () const override |
| For a WeylFermion embedded in a DiracFermion, returns the dirac fermion. More... | |
| void | setDiracParent (Particle const &parent) override |
| 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::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 |
| void | setDrawType (drawer::ParticleType type) |
| Sets the drawing type 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 Particle | getWeylFermion (Chirality chirality) const |
| For a DiracFermion, returns the chiral WeylFermion it contains of chirality chirality if it has one. More... | |
| virtual Particle | getGoldstone () const |
| For a vector boson in a non abelian gauged group, returns the associated Goldstone boson. More... | |
| 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 GaugedGroup * | getGaugedGroup () |
| 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... | |
| Gauge * | getGauge () 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::Index > | getSpaceIndex (const std::string &nameIndex="") const |
| Returns a set of free space indices corresponding to the field. More... | |
| std::vector< csl::Index > | getGaugeIndex (std::vector< std::string > names=std::vector< std::string >()) const |
| Returns a set of gauge indices corresponding to the field. More... | |
| std::vector< csl::Index > | getFlavorIndex (std::vector< std::string > names=std::vector< std::string >()) const |
| Returns a set of flavor indices corresponding to the field. More... | |
| std::vector< csl::Index > | getFullSetOfIndices () 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::Parent > | breakSpace (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... | |
| QuantumFieldParent & | operator= (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< Permutation > | getPermutation () 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 |
Protected Member Functions | |
| void | initPropagator () override |
| Initializes default propagators for the particle. This function is called automatically in the constructor of derived classes. More... | |
Protected Member Functions inherited from mty::QuantumFieldParent | |
| void | addRelative (std::weak_ptr< mty::QuantumFieldParent > const &particle) |
| std::weak_ptr< mty::QuantumFieldParent > | removeRelative (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... | |
Private Attributes | |
| Chirality | chirality |
| Chirality of the particle. | |
| std::weak_ptr< DiracFermion > | diracParent |
| Weak pointer to the dirac parent if the fermion is part of a Dirac fermion. More... | |
Friends | |
| class | DiracFermion |
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 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 ...). | |
| Group * | stGroup |
| 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(). | |
| Gauge * | gauge |
| 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 Flavor * | flavor |
| 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::Value > | qNumbers |
| List of quantum numbers of the field. More... | |
| std::map< QuantumFieldParent const *, Propagator_func > | propagator |
| 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 |
Weyl fermion, two-component Chiral particle.
Building a Weyl fermion require to give its chirality (see Chirality) left or right. By default, if not given, chirality will always be set to Chirality::Left.
|
overridevirtual |
Pure virtual function. Generates a partical similar to the current object, changing only the name.
| t_name | Name of the new particle, identical to the current object. |
Implements mty::QuantumFieldParent.
|
overridevirtual |
Returns the chirality of the particle.
A DiracFermion or boson will return Chirality::None. WeylFermion will return either Chirality::Left or Chirality::Right.
Reimplemented from mty::QuantumFieldParent.
|
overridevirtual |
For a WeylFermion embedded in a DiracFermion, returns the other part of the DiracFermion.
Reimplemented from mty::QuantumFieldParent.
|
overridevirtual |
For a WeylFermion embedded in a DiracFermion, returns the dirac fermion.
Reimplemented from mty::QuantumFieldParent.
|
overridevirtual |
Pure virtual function. Returns the energy dimension of the field.
Implements mty::QuantumFieldParent.
|
overridevirtual |
Returns the kinetic term in the Lagrangian for the field.
This function is overriden in derived classes. Each particle has a specific form for its kinetic term, including covariant derivatives and mass term. An example of kinetic term for a complex scalar field is
\[ \mathcal{L} \ni (D_\mu \phi)^\dagger D^\mu\phi - m_\phi^2\phi ^\dagger \phi, \]
where \( D_\mu \) stands for the covariant derivative of the field including interactions with gauge vector fields.
| X | Space-time point for the kinetic term. |
Reimplemented from mty::QuantumFieldParent.
|
overridevirtual |
Pure virtual function. Returns the number of degrees of freedom in the particle. It does not count gauge and flavor multiplicity. The result depends on the type of the particle and if it is complex.
Implements mty::QuantumFieldParent.
|
overrideprotectedvirtual |
Initializes default propagators for the particle. This function is called automatically in the constructor of derived classes.
Reimplemented from mty::QuantumFieldParent.
|
overridevirtual |
Tells if the field is chiral.
Reimplemented from mty::QuantumFieldParent.
|
private |
Weak pointer to the dirac parent if the fermion is part of a Dirac fermion.
If the Weyl fermion is alone (left neutrinos in the standard model for example), this pointer is null.
1.8.13