23 #ifndef FLAVOR_H_INCLUDED 24 #define FLAVOR_H_INCLUDED 26 #include <string_view> 32 class SemiSimpleGroup;
33 class QuantumFieldParent;
43 bool complexFields =
true);
45 size_t getDim()
const;
47 std::string_view getName()
const;
50 const std::string& index_name,
57 Irrep getTrivialRep()
const;
59 Irrep getFundamentalRep()
const;
63 bool isComplex()
const;
69 std::unique_ptr<SemiSimpleGroup> group;
74 typedef std::vector<mty::FlavorGroup*> FlavList;
85 return flavors.empty();
89 return flavors.size();
92 FlavList::iterator begin() {
93 return flavors.begin();
96 FlavList::iterator end() {
100 FlavList::const_iterator begin()
const {
101 return flavors.begin();
104 FlavList::const_iterator end()
const {
105 return flavors.end();
108 void addGroup(std::unique_ptr<FlavorGroup>& newPtr) {
109 flavors.push_back(newPtr.release());
112 void addGroup(std::unique_ptr<FlavorGroup>&& newPtr) {
113 flavors.push_back(newPtr.release());
116 void push_back(std::unique_ptr<FlavorGroup>& newPtr) {
117 flavors.push_back(newPtr.release());
120 void push_back(std::unique_ptr<FlavorGroup>&& newPtr) {
121 flavors.push_back(newPtr.release());
135 IMPLEMENTS_STD_VECTOR(
Irrep, rep);
150 const Flavor* getFlavor()
const;
152 void setTrivialRepresentation(
FlavorGroup const* flavorGroup);
154 void setFundamentalRepresentation(
FlavorGroup const* flavorGroup);
156 void setRepresentation(
FlavorGroup const* flavorGroup,
161 return !(*
this == other);
164 friend std::ostream&
operator<<(std::ostream& fout,
171 std::vector<Irrep> rep;
Base class for all Semi simple groups, i.e. groups that has a SemiSimpleAlgebra.
Definition: group.h:219
Group objects handling different possible symmetry groups. For now only semi-simple groups have repre...
std::ostream & operator<<(std::ostream &fout, csl::Type type)
Namespace of MARTY.
Definition: 2HDM.h:31
Classes handling irreducible representations of semi simple Lie algebras, using the Cartan formalism:...
bool operator==(const Expr &a, const Expr &b)
Handles the irreducible representation of a given semi-simple algebra.
Definition: representation.h:42
Base class for parents of QuantumField objects.
Definition: quantumField.h:152
bool operator!=(const Expr &a, const Expr &b)