24 #ifndef SPECTRUM_H_INCLUDED 25 #define SPECTRUM_H_INCLUDED 136 std::vector<mty::Particle>
const &t_particles,
137 std::vector<mty::Particle>
const &t_newParticles,
138 std::vector<csl::Expr>
const &terms,
139 std::vector<std::vector<csl::Expr>>
const &t_mixing
158 std::vector<mty::Particle>
const &t_newParticles,
159 std::vector<std::vector<csl::Expr>>
const &t_mass,
160 std::vector<std::vector<csl::Expr>>
const &t_mixing,
161 std::vector<std::vector<csl::Expr>>
const &t_mixing2
162 = std::vector<std::vector<csl::Expr>>()
179 std::vector<mty::Particle>
const &partA,
180 std::vector<mty::Particle>
const &partB,
181 std::vector<mty::Particle>
const &newPartA,
182 std::vector<mty::Particle>
const &newPartB,
183 std::vector<csl::Expr>
const &terms,
184 std::vector<std::vector<csl::Expr>>
const &mixingA,
185 std::vector<std::vector<csl::Expr>>
const &mixingB
214 std::vector<mty::Particle>
const &getParticles()
const {
290 std::vector<csl::Expr>
const &terms,
291 std::vector<std::vector<csl::Expr>>
const &t_mixing
307 std::vector<csl::Expr>
const &terms,
308 std::vector<std::vector<csl::Expr>>
const &mixingA,
309 std::vector<std::vector<csl::Expr>>
const &mixingB
355 void applyOn(std::vector<csl::Expr> &expr)
const;
394 std::vector<csl::Expr>
const &oldExpr,
395 std::vector<csl::Expr>
const &newExpr
void addMassTerm(MatrixEl &&matrixEl)
Adds a mass term to the Spectrum from a MatrixEl object.
Definition: spectrum.cpp:310
bool getReplaceMasses() const
Definition: spectrum.h:233
csl::Expr transfer
Second transfer matrix used for bi-diagonalization.
Definition: spectrum.h:481
void setBlock(std::vector< csl::Expr > const &terms, std::vector< std::vector< csl::Expr >> const &t_mixing)
Instantiates the Spectrum object with a mass terms and a mixing matrix for standard diagonalization...
Definition: spectrum.cpp:106
Class handling numerical diagonalization for HEP models.
Definition: spectrum.h:82
~Spectrum()=default
Default destructor.
bool replaceMixings
Tells if mixings must be directly replaced by their numerical values when applying diagonalization (d...
Definition: spectrum.h:446
void setReplaceMixings(bool t_replaceMixings)
Sets replaceMixings.
Definition: spectrum.h:256
void applyBidiagonalizationOn(csl::Expr &expr) const
Applies the result of the bi-diagonalization on an expression.
Definition: spectrum.cpp:386
void applyOn(csl::Expr &expr) const
Applies the diagonalization on an expression, replacing masses and mixings.
Definition: spectrum.cpp:205
Namespace of MARTY.
Definition: 2HDM.h:31
static void replace(csl::Expr &expr, std::vector< csl::Expr > const &oldExpr, std::vector< csl::Expr > const &newExpr)
Replaces corresponding mixings / masses in an expression, if the numerical diagonalization has been p...
Definition: spectrum.cpp:185
size_t getFieldPos(QuantumField const &field) const
Returns the position of the field field in the list.
Definition: spectrum.cpp:223
bool bidiagonalization
Tells if this class is used for a standard diagonalization (false) or a bi-diagonalization (true)...
Definition: spectrum.h:436
size_t i
Row index of the term.
Definition: spectrum.h:114
matrix< csl::Expr > mixing
Initial mixing matrix, contains the symbolic variables that enter expressions before the diagonalizat...
Definition: spectrum.h:464
void setReplaceMasses(bool t_replaceMasses)
Sets replaceMasses.
Definition: spectrum.h:248
Class deriving from csl::TensorFieldElement, may enter expressions. In contrary to QuantumFieldParent...
Definition: quantumField.h:1614
void diagonalize()
Diagonalizes the mass matrix numerically.
Definition: spectrum.cpp:318
void bidiagonalize()
Bi-diagonalizes the mass mattrix numerically.
Definition: spectrum.cpp:326
Small structure containing a mass term (without fields) and its position in the mass matrix...
Definition: spectrum.h:110
std::vector< mty::Particle > fields
List of fields in the mass block.
Definition: spectrum.h:450
MatrixEl getMassFromTerm(csl::Expr const &term) const
Returns a MatrixEl object from a Lagrangian term.
Definition: spectrum.cpp:242
void applyDiagonalizationOn(csl::Expr &expr) const
Applies the result of the diagonalization on an expression.
Definition: spectrum.cpp:354
csl::Expr massData
Numerical mass matrix, once values have been given and updateData() has been called.
Definition: spectrum.h:473
matrix< csl::Expr > mixing2
Second mixing matrix, used for bi-diagonalization.
Definition: spectrum.h:468
bool isDiagonalized() const
Tells if the mass matrix has been numerically diagonalized.
Definition: spectrum.cpp:100
std::vector< mty::Particle > newFields
List of fields introduced after the rotation.
Definition: spectrum.h:454
Spectrum & operator=(Spectrum const &)=default
Default copy assignement operator.
bool getReplaceMixings() const
Definition: spectrum.h:239
Spectrum()=default
Default constructor.
Contains the Lagrangian class, that encapsulates all interaction terms for a model.
size_t j
Column index of the term.
Definition: spectrum.h:118
csl::Expr transfer2
Transfer matrix if the diagonalization has been done.
Definition: spectrum.h:485
void updateData()
Updates the mass matrix, if the elements have values (for example) after a lha file loading...
Definition: spectrum.cpp:155
double FloatType
Type of floating point variable for numerical diagonalization.
Definition: spectrum.h:104
csl::Expr term
Actual term. Fields are removed, it should then be a purely scalar factor.
Definition: spectrum.h:123
bool replaceMasses
Tells if masses must be directly replaced by their numerical values when applying diagonalization (de...
Definition: spectrum.h:441
csl::Expr diagonal
Diagonalized mass matrix if the diagonalization has been done.
Definition: spectrum.h:477
matrix< csl::Expr > mass
Mass matrix. This object should contain only quantities with defined numerical when calling the diago...
Definition: spectrum.h:459