Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
goldstoneField.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 GOLDSTONE_FIELD_H_INCLUDED
24 #define GOLDSTONE_FIELD_H_INCLUDED
25 
26 #include "scalarField.h"
27 
28 namespace mty {
29 
30 class VectorBoson;
31 
39 class GoldstoneBoson: public ScalarBoson {
40 
41  public:
42 
50  GoldstoneBoson(std::shared_ptr<VectorBoson> const& t_vectorBoson);
51 
58  GoldstoneBoson(std::string const& name,
59  std::shared_ptr<VectorBoson> const& t_vectorBoson);
60 
70  void printDefinition(
71  std::ostream &out = std::cout,
72  int indentSize = 4,
73  bool header = false
74  ) const override;
75 
79  ParticleType getParticleType() const override {
80  return ParticleType::GoldstoneBoson;
81  }
82 
86  Particle getVectorBoson() const override;
87 
96  Particle generateSimilar(std::string const& t_name) const override;
97 
98  int getNDegreesOfFreedom() const override;
99 
100  private:
101 
105  std::weak_ptr<VectorBoson> vectorBoson;
106 };
107 
117  std::string const& name,
118  std::shared_ptr<VectorBoson> const& t_vectorBoson);
119 
131  std::shared_ptr<VectorBoson> const& t_vectorBoson);
132 
142  std::string const& name,
143  Particle const& t_vectorBoson);
144 
156  Particle const& t_vectorBoson);
157 
158 }
159 
160 #endif
std::weak_ptr< VectorBoson > vectorBoson
Weak pointer to the associated vector boson.
Definition: goldstoneField.h:105
Particle getVectorBoson() const override
Definition: goldstoneField.cpp:59
Particle goldstoneboson_s(std::string const &name, std::shared_ptr< VectorBoson > const &t_vectorBoson)
Creates a goldstone boson.
Definition: goldstoneField.cpp:74
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
int getNDegreesOfFreedom() const override
Pure virtual function. Returns the number of degrees of freedom in the particle. It does not count ga...
Definition: goldstoneField.cpp:69
GoldstoneBoson(std::shared_ptr< VectorBoson > const &t_vectorBoson)
Constructor with one parameter.
Definition: goldstoneField.cpp:21
Contains the implementation of the Scalar boson in MARTY.
Particle generateSimilar(std::string const &t_name) const override
Generates a similar Golstone boson, giving the same associated vector boson.
Definition: goldstoneField.cpp:64
Goldstone boson class.
Definition: goldstoneField.h:39
ParticleType getParticleType() const override
Definition: goldstoneField.h:79
void printDefinition(std::ostream &out=std::cout, int indentSize=4, bool header=false) const override
Prints the MARTY (C++) code defining the Goldstone boson.
Definition: goldstoneField.cpp:40
Scalar boson, spin 0 particles in MARTY.
Definition: scalarField.h:35