27 #ifndef MODE_H_INCLUDED 28 #define MODE_H_INCLUDED 36 #include "operatorBasis.h" 53 enum class DecompositionMode {
72 inline static Model *current =
nullptr;
80 template<
class ...Args>
81 explicit Model(Args &&...args)
87 ~
Model()
override =
default;
98 size_t getFeynmanRulesNumber()
const;
100 std::vector<mty::FeynmanRule>
const &getFeynmanRules();
109 void filterFeynmanRules();
115 void computeFeynmanRules();
119 std::vector<mty::Insertion> insertions,
125 std::vector<mty::Insertion> insertions,
132 std::vector<mty::Insertion> insertions
137 std::vector<mty::Insertion> insertions,
143 std::vector<mty::Insertion> insertions,
149 std::vector<mty::Insertion> insertions,
172 std::vector<Lagrangian::TermType> &lagrangian,
173 std::vector<Insertion> insertions,
176 std::vector<FeynmanRule const*> rules = {}
180 std::vector<FeynmanRule const*> &feynRules,
181 std::vector<Insertion>
const &insertions,
188 bool applyDegreesOfFreedomFactor =
true 193 bool applyDegreesOfFreedomFactor =
true 199 bool applyDegreesOfFreedomFactor =
true 205 bool applyDegreesOfFreedomFactor =
true 211 DecompositionMode mode = DecompositionMode::Matching
216 DecompositionMode mode = DecompositionMode::Matching
221 std::vector<Insertion>
const &insertions,
223 bool disableFermionOrdering = false
226 WilsonSet computeWilsonCoefficients_default(
228 std::vector<Insertion>
const &insertions,
232 WilsonSet computeWilsonCoefficients_2Fermions_1Vector(
233 std::vector<Insertion>
const &insertions,
242 WilsonSet computeSingleWilsonPenguin_4Fermions(
244 std::pair<size_t, size_t>
const &treeCoupling,
245 std::pair<size_t, size_t>
const &loopCoupling,
250 WilsonSet computeWilsonPenguins_4Fermions(
255 WilsonSet computeWilsonCoefficients_4Fermions(
256 std::vector<Insertion> insertions,
266 static void projectOnBasis(
278 std::vector<mty::QuantumField> recoverQuantumInsertions(
279 std::vector<csl::Expr>
const &insertions
286 std::pair<csl::Expr, csl::Expr> pL_replacement;
287 std::pair<csl::Expr, csl::Expr> pR_replacement;
295 int isMediator(
csl::Expr const &expr)
const;
305 size_t replacedMomentum
308 void replaceMomentumForLink(
310 std::pair<csl::Expr, csl::Expr>
const &pReplacement
313 bool mediatorToPropagator(
326 std::vector<mty::FeynmanRule> feynmanRules;
329 int operatorDegeneracy(std::vector<mty::Insertion>
const &insertions);
331 int matchingFermionSign(std::vector<int> fermionOrder);
334 std::vector<Insertion>
const &model,
335 std::vector<Insertion> order
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
Contains the Expander class that expands the Lagrangian in perturbation to find all Feynman diagrams ...
File containing the ModelBuilder class.
Interface class containing the result of an amplitude calculation.
Definition: amplitude.h:41
Instances of this class can be given to mty::Model when launching a calculation to customize the outp...
Definition: feynOptions.h:44
std::pair< csl::Expr, csl::Expr > getMomentumReplacement(std::vector< mty::QuantumField > const &insertions, std::vector< csl::Tensor > const &momenta, size_t posReplaced)
Creates the relevant replacement (using momentum conservation) to replace one particular momentum...
Definition: amplitudeSimplification.cpp:911
Contains the mty::Kinematics class.
Definition: insertion.h:33
Stores insertion and momenta data and provides a simple interface to manipulate it.
Definition: kinematics.h:39
File containing classes handling gauge groups.
Contains the FeynmanRule object for Feynman rules.
Represents a Feynman rule.
Definition: feynmanRule.h:42
Handles graphs for applying wick theorem. In this file lies the algorithm performing Wick contraction...
Contains all objects in the theory. In particular QuantumField objects, Gauge, Flavor, Particle...
Definition: model.h:68
OperatorBasis
Operator basis for Wilson coefficients.
Definition: operatorBasis.h:8
Contains the Lagrangian class, that encapsulates all interaction terms for a model.
Class containing all model building features of MARTY.
Definition: modelBuilder.h:54
Contains macros for doc brown's debugger.
Definition: feynmanDiagram.h:31