25 #ifndef GAUGEDGROUP_H_INCLUDED 26 #define GAUGEDGROUP_H_INCLUDED 34 enum class GroupType {
106 xi(csl::variable_s(
"xi"))
108 xi->setElementary(
true);
116 Type getChoice()
const {
120 void setName(std::string
const &t_name) {
124 void setGauge(
Type t_choice)
129 case Lorenz: value = CSL_0;
break;
130 case Feynman: value = CSL_1;
break;
152 using Pair = std::pair<mty::Irrep, Type>;
154 IMPLEMENTS_STD_VECTOR_NO_OP(Pair, elements)
156 const_iterator find(
mty::Irrep const &t_key)
const {
158 while (iter != end()) {
159 if (key(*iter) == t_key)
167 while (iter != end()) {
168 if (key(*iter) == t_key)
176 for (
auto &el : elements)
179 elements.push_back({rep,
Type()});
180 return value(elements.back());
185 inline static mty::Irrep &key (Pair &p) {
return p.first; };
186 inline static Type &value(Pair &p) {
return p.second; };
187 inline static mty::Irrep const &key (Pair
const &p) {
return p.first; };
188 inline static Type const &value(Pair
const &p) {
return p.second; };
190 std::vector<Pair> elements;
200 std::string
const& bosonName,
205 std::string
const& bosonName,
211 virtual mty::gauge::GroupType getType()
const = 0;
213 std::string getName()
const {
214 return group->getName();
219 bool isBroken()
const;
222 return group->getAlgebra();
243 std::string getNameGenerator()
const;
245 void setNameGenerator(
const std::string& newName);
249 void setBroken(
bool t_broken);
251 void setCouplingConstant(
const csl::Expr& expr);
262 const std::vector<csl::Index>& fieldIndices,
277 void setGeneratorProperties(
Irrep const& rep,
280 bool hasGeneratorForRep(
const Irrep& irrep)
const;
282 virtual void generateRepGenerator(
const Irrep& irrep);
296 std::string nameGenerator =
"T";
298 std::string nameBoson;
300 bool ghostEnabled =
false;
307 std::map<size_t, csl::Tensor> d;
331 std::string
const& nameBoson,
336 std::string
const& nameBoson,
342 mty::gauge::GroupType getType()
const override;
346 const std::vector<csl::Index>& fieldIndices,
356 std::string
const& nameBoson,
361 std::string
const& nameBoson,
369 const std::vector<csl::Index>& fieldIndices,
372 void setGeneratorProperties(
Irrep const& rep,
392 std::string
const& nameBoson,
397 std::string
const& nameBoson,
403 mty::gauge::GroupType getType()
const override;
405 void setGeneratorProperties(
Irrep const& rep,
423 std::string
const& nameBoson,
428 std::string
const& nameBoson,
434 mty::gauge::GroupType getType()
const override;
436 void setGeneratorProperties(
Irrep const& rep,
458 std::string
const& nameBoson,
463 std::string
const& nameBoson,
469 mty::gauge::GroupType getType()
const override;
471 void setGeneratorProperties(
Irrep const& rep,
488 std::string
const& nameBoson,
493 std::string
const& nameBoson,
499 mty::gauge::GroupType getType()
const override;
501 void setGeneratorProperties(
Irrep const& rep,
504 void generateRepGenerator(
const Irrep& irrep)
override;
508 std::map<Irrep, csl::Tensor> d_invariant;
523 std::string
const& nameBoson,
528 std::string
const& nameBoson,
534 mty::gauge::GroupType getType()
const override;
536 void setGeneratorProperties(
Irrep const& rep,
539 void generateRepGenerator(
const Irrep& irrep)
override;
543 std::map<Irrep, csl::Tensor> d_invariant;
556 std::string
const& nameBoson,
561 std::string
const& nameBoson,
567 mty::gauge::GroupType getType()
const override;
582 std::string
const& nameBoson,
587 std::string
const& nameBoson,
593 mty::gauge::GroupType getType()
const override;
595 void setGeneratorProperties(
Irrep const& rep,
598 void generateRepGenerator(
const Irrep& irrep)
override;
602 std::map<Irrep, csl::Tensor> d_invariant;
617 std::string
const& nameBoson,
622 std::string
const& nameBoson,
628 mty::gauge::GroupType getType()
const override;
630 void setGeneratorProperties(
Irrep const& rep,
633 void generateRepGenerator(
const Irrep& irrep)
override;
637 std::map<Irrep, csl::Tensor> f_invariant;
641 std::unique_ptr<GaugedGroup> createGaugedGroup(
644 std::string nameBoson,
645 bool addGhost =
true,
Definition: gaugedGroup.h:194
Definition: gaugedGroup.h:95
const csl::Expr CSL_UNDEF
Base class for all Semi simple groups, i.e. groups that has a SemiSimpleAlgebra.
Definition: group.h:219
Definition: gaugedGroup.h:511
Definition: gaugedGroup.h:325
Group objects handling different possible symmetry groups. For now only semi-simple groups have repre...
std::ostream & operator<<(std::ostream &fout, csl::Type type)
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
Definition: gaugedGroup.h:448
Class inherited from std::vector<int>, dynkin labels for a state of a semi-simple algebra (see docume...
Definition: algebraState.h:35
Definition: gaugedGroup.h:148
Definition: gaugedGroup.h:570
Definition: gaugedGroup.h:413
Definition: gaugedGroup.h:476
Definition: gaugedGroup.h:350
Abstract base class for all semi-simple Lie algebras.
Definition: semiSimpleAlgebra.h:96
Definition: gaugedGroup.h:382
Definition: gaugedGroup.h:546
Class deriving from csl::TensorFieldElement, may enter expressions. In contrary to QuantumFieldParent...
Definition: quantumField.h:1614
Definition: gaugedGroup.h:100
Handles the irreducible representation of a given semi-simple algebra.
Definition: representation.h:42
Ghost boson, created with the vector bosons in non abelian gauge groups.
Definition: ghostField.h:41
Type
Different types of gauge ficing parameter for gauge boson propagators.
Definition: gaugedGroup.h:92
std::vector< std::pair< AlgebraState, const csl::Space * > > vectorSpaces
Association of AlgebraState (highest weights of irreps) and vector spaces. To each irrep (i...
Definition: gaugedGroup.h:321
Definition: gaugedGroup.h:605
Base class for parents of QuantumField objects.
Definition: quantumField.h:152
Definition: generator.h:107
Namespace containing features concerning gauged groups and gauge choices.
Definition: gaugedGroup.h:32
Gauge boson implementation in MARTY.
Definition: vectorField.h:343
Definition: gaugedGroup.h:94
Definition: gaugedGroup.h:97
Definition: gaugedGroup.h:96