Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
ghostField.h
Go to the documentation of this file.
1 // This file is part of MARTY.
2 //
3 // MARTY is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // MARTY is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with MARTY. If not, see <https://www.gnu.org/licenses/>.
15 
23 #ifndef GHOST_FIELD_H_INCLUDED
24 #define GHOST_FIELD_H_INCLUDED
25 
26 #include "scalarField.h"
27 
28 namespace mty {
29 
30 class VectorBoson;
31 
41 class GhostBoson: public ScalarBoson {
42 
43  public:
44 
53  GhostBoson(std::shared_ptr<VectorBoson> const& t_vectorBoson);
54 
61  GhostBoson(std::string const& t_name,
62  std::shared_ptr<VectorBoson> const& t_vectorBoson);
63 
64  GhostBoson(
65  std::string const& t_name,
66  mty::GaugeIrrep const &rep);
67 
77  void printDefinition(
78  std::ostream &out = std::cout,
79  int indentSize = 4,
80  bool header = false
81  ) const override;
82 
86  ParticleType getParticleType() const override {
87  return ParticleType::GhostBoson;
88  }
89 
93  Particle getVectorBoson() const override;
94 
100  bool isAntiCommuting() const override;
101 
110  Particle generateSimilar(std::string const& t_name) const override;
111 
124  csl::Expr getKineticTerm(csl::Tensor & X) override;
125 
126  int getNDegreesOfFreedom() const override;
127 
128  private:
129 
133  std::weak_ptr<VectorBoson> vectorBoson;
134 };
135 
147  std::string const& name,
148  std::shared_ptr<VectorBoson> const& t_vectorBoson,
149  bool conjugated = false);
150 
164  std::shared_ptr<VectorBoson> const& t_vectorBoson,
165  bool conjugated = false);
166 
178  std::string const& name,
179  Particle const& t_vectorBoson,
180  bool conjugated = false);
181 
195  Particle const& t_vectorBoson,
196  bool conjugated = false);
197 
198 
199 }
200 
201 #endif
This class inherits from std::shared_ptr<QuantumFieldParent> and should be used instead of direct Qua...
Definition: quantumField.h:1409
Namespace of MARTY.
Definition: 2HDM.h:31
bool isAntiCommuting() const override
Returns true as a Ghost anti-commutes.
Definition: ghostField.cpp:85
Particle ghostboson_s(std::string const &name, std::shared_ptr< VectorBoson > const &t_vectorBoson, bool conjugated=false)
Creates a ghost boson.
Definition: ghostField.cpp:95
Contains the implementation of the Scalar boson in MARTY.
Definition: gauge.h:137
ParticleType getParticleType() const override
Definition: ghostField.h:86
csl::Expr getKineticTerm(csl::Tensor &X) override
Calculates the kinetic term of the Ghost.
Definition: ghostField.cpp:80
Particle generateSimilar(std::string const &t_name) const override
Generates a similar Ghost boson, with the same associated vector boson.
Definition: ghostField.cpp:75
void printDefinition(std::ostream &out=std::cout, int indentSize=4, bool header=false) const override
Prints the MARTY (C++) code defining the Ghost boson.
Definition: ghostField.cpp:49
Ghost boson, created with the vector bosons in non abelian gauge groups.
Definition: ghostField.h:41
std::weak_ptr< VectorBoson > vectorBoson
Weak pointer to the associated vector boson.
Definition: ghostField.h:133
GhostBoson(std::shared_ptr< VectorBoson > const &t_vectorBoson)
Constructor with one parameter.
Definition: ghostField.cpp:22
int getNDegreesOfFreedom() const override
Pure virtual function. Returns the number of degrees of freedom in the particle. It does not count ga...
Definition: ghostField.cpp:90
Particle getVectorBoson() const override
Definition: ghostField.cpp:70
Scalar boson, spin 0 particles in MARTY.
Definition: scalarField.h:35