24 #ifndef LAGRANGIAN_H_INCLUDED 25 #define LAGRANGIAN_H_INCLUDED 44 mty::interaction::Type determineTermType(
const InteractionTerm& term);
58 mutable bool expressionComputed =
false;
64 std::vector<TermType> kinetic;
66 std::vector<TermType> mass;
68 std::vector<TermType> interaction;
78 bool contains(
const TermType& searchTerm)
const;
87 void removeParticle(
Particle const &particle);
93 size_t fullSize()
const;
97 bool totalEmpty()
const;
99 TermType operator[](
size_t pos)
const;
103 std::vector<TermType>::iterator begin();
105 std::vector<TermType>::iterator end();
107 std::vector<TermType>::const_iterator begin()
const;
109 std::vector<TermType>::const_iterator end()
const;
111 void push_back(
const csl::Expr& newTerm);
115 void push_back(
TermType const &newTerm);
121 void mergeTerms(std::vector<TermType>& terms);
131 size_t Lagrangian::size()
const 133 return interaction.size();
137 size_t Lagrangian::fullSize()
const 139 return kinetic.size()
141 + interaction.size();
145 bool Lagrangian::empty()
const 147 return begin() == end();
151 bool Lagrangian::totalEmpty()
const 153 return kinetic.empty() and mass.empty() and interaction.empty();
159 return interaction[pos];
165 return interaction[pos];
169 std::vector<Lagrangian::TermType>::iterator Lagrangian::begin()
171 return interaction.begin();
175 std::vector<Lagrangian::TermType>::iterator Lagrangian::end()
177 return interaction.end();
181 std::vector<Lagrangian::TermType>::const_iterator Lagrangian::begin()
const 183 return interaction.begin();
187 std::vector<Lagrangian::TermType>::const_iterator Lagrangian::end()
const 189 return interaction.end();
Interaction lagrangian of a model, allows to get all diagrams for a particular process by expanding i...
Definition: lagrangian.h:50
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: lagrangian.h:30
Interaction term (in the Lagrangian) in MARTY.
Definition: interactionTerm.h:50
Contains QuantumField and QuantumFieldParent, basic objects handling quantum fields as csl expression...
Class mty::InteractionTerm, general purpose container for Lagrangian terms in MARTY.