GM2Calc 2.3.0
Loading...
Searching...
No Matches
SM.hpp
Go to the documentation of this file.
1// ====================================================================
2// This file is part of GM2Calc.
3//
4// GM2Calc is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published
6// by the Free Software Foundation, either version 3 of the License,
7// or (at your option) any later version.
8//
9// GM2Calc is distributed in the hope that it will be useful, but
10// WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with GM2Calc. If not, see
16// <http://www.gnu.org/licenses/>.
17// ====================================================================
18
19#ifndef GM2_SM_HPP
20#define GM2_SM_HPP
21
22#include <Eigen/Core>
23#include <complex>
24#include <iosfwd>
25
26namespace gm2calc {
27
28class SM {
29public:
30 SM();
31
32 void set_alpha_em_0(double a) noexcept { alpha_em_0 = a; }
33 void set_alpha_em_mz(double a) noexcept { alpha_em_mz = a; }
34 void set_alpha_s_mz(double a) noexcept { alpha_s_mz = a; }
35 void set_mh(double m) noexcept { mh = m; }
36 void set_mw(double m) noexcept { mw = m; }
37 void set_mz(double m) noexcept { mz = m; }
38 void set_mu(const Eigen::Matrix<double,3,1>& m) noexcept { mu = m; }
39 void set_md(const Eigen::Matrix<double,3,1>& m) noexcept { md = m; }
40 void set_mv(const Eigen::Matrix<double,3,1>& m) noexcept { mv = m; }
41 void set_ml(const Eigen::Matrix<double,3,1>& m) noexcept { ml = m; }
42 void set_mu(int i, double m) noexcept { mu(i) = m; }
43 void set_md(int i, double m) noexcept { md(i) = m; }
44 void set_mv(int i, double m) noexcept { mv(i) = m; }
45 void set_ml(int i, double m) noexcept { ml(i) = m; }
46 void set_ckm(const Eigen::Matrix<std::complex<double>,3,3>& m) { ckm = m; }
47 void set_ckm(int i, int j, const std::complex<double>& m) { ckm(i, j) = m; }
48 void set_ckm_from_wolfenstein(double lambdaW, double aCkm, double rhobar, double etabar);
49 void set_ckm_from_angles(double theta_12, double theta_13, double theta_23, double delta);
50
51 double get_alpha_em_0() const { return alpha_em_0; }
52 double get_alpha_em_mz() const { return alpha_em_mz; }
53 double get_alpha_s_mz() const { return alpha_s_mz; }
54 double get_mh() const { return mh; }
55 double get_mw() const { return mw; }
56 double get_mz() const { return mz; }
57 const Eigen::Matrix<double,3,1>& get_mu() const { return mu; }
58 const Eigen::Matrix<double,3,1>& get_md() const { return md; }
59 const Eigen::Matrix<double,3,1>& get_mv() const { return mv; }
60 const Eigen::Matrix<double,3,1>& get_ml() const { return ml; }
61 double get_mu(int i) const { return mu(i); }
62 double get_md(int i) const { return md(i); }
63 double get_mv(int i) const { return mv(i); }
64 double get_ml(int i) const { return ml(i); }
65 double get_e_0() const;
66 double get_e_mz() const;
67 double get_gY() const;
68 double get_g2() const;
69 double get_g3() const;
70 double get_cw() const;
71 double get_sw() const;
72 double get_v() const;
73 const Eigen::Matrix<std::complex<double>,3,3>& get_ckm() const { return ckm; }
74 std::complex<double> get_ckm(int i, int j) const { return ckm(i, j); }
75
76private:
77 double alpha_em_0{0.0}; ///< electromagnetic coupling in Thompson limit
78 double alpha_em_mz{0.0}; ///< electromagnetic coupling at Q = MZ
79 double alpha_s_mz{0.0}; ///< strong coupling at Q = MZ
80 double mh{0.0}; ///< Higgs boson pole mass
81 double mw{0.0}; ///< W boson pole mass
82 double mz{0.0}; ///< Z boson pole mass
83 Eigen::Matrix<double,3,1> mu{Eigen::Matrix<double,3,1>::Zero()}; ///< up-type quark masses
84 Eigen::Matrix<double,3,1> md{Eigen::Matrix<double,3,1>::Zero()}; ///< down-type quark masses
85 Eigen::Matrix<double,3,1> mv{Eigen::Matrix<double,3,1>::Zero()}; ///< neutrino masses
86 Eigen::Matrix<double,3,1> ml{Eigen::Matrix<double,3,1>::Zero()}; ///< down-type lepton pole masses
87 Eigen::Matrix<std::complex<double>,3,3> ckm{Eigen::Matrix<std::complex<double>,3,3>::Identity()}; ///< CKM matrix
88};
89
90/// streaming operator
91std::ostream& operator<<(std::ostream&, const SM&);
92
93} // namespace gm2calc
94
95#endif
double get_mz() const
Definition SM.hpp:56
void set_alpha_em_mz(double a) noexcept
Definition SM.hpp:33
void set_ml(int i, double m) noexcept
Definition SM.hpp:45
void set_mz(double m) noexcept
Definition SM.hpp:37
double get_gY() const
Definition SM.cpp:113
double get_mw() const
Definition SM.hpp:55
void set_alpha_s_mz(double a) noexcept
Definition SM.hpp:34
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_ckm() const
Definition SM.hpp:73
double get_mu(int i) const
Definition SM.hpp:61
double get_md(int i) const
Definition SM.hpp:62
double get_cw() const
Definition SM.cpp:128
void set_md(int i, double m) noexcept
Definition SM.hpp:43
double get_v() const
Definition SM.cpp:138
void set_ckm_from_angles(double theta_12, double theta_13, double theta_23, double delta)
Definition SM.cpp:149
double get_alpha_em_0() const
Definition SM.hpp:51
double get_g2() const
Definition SM.cpp:118
void set_mv(const Eigen::Matrix< double, 3, 1 > &m) noexcept
Definition SM.hpp:40
double get_g3() const
Definition SM.cpp:123
void set_alpha_em_0(double a) noexcept
Definition SM.hpp:32
double get_sw() const
Definition SM.cpp:133
double get_mv(int i) const
Definition SM.hpp:63
void set_ckm(const Eigen::Matrix< std::complex< double >, 3, 3 > &m)
Definition SM.hpp:46
void set_md(const Eigen::Matrix< double, 3, 1 > &m) noexcept
Definition SM.hpp:39
double get_e_0() const
Definition SM.cpp:103
const Eigen::Matrix< double, 3, 1 > & get_mv() const
Definition SM.hpp:59
void set_ml(const Eigen::Matrix< double, 3, 1 > &m) noexcept
Definition SM.hpp:41
void set_mw(double m) noexcept
Definition SM.hpp:36
void set_mu(int i, double m) noexcept
Definition SM.hpp:42
double get_ml(int i) const
Definition SM.hpp:64
void set_mv(int i, double m) noexcept
Definition SM.hpp:44
const Eigen::Matrix< double, 3, 1 > & get_ml() const
Definition SM.hpp:60
void set_mh(double m) noexcept
Definition SM.hpp:35
void set_mu(const Eigen::Matrix< double, 3, 1 > &m) noexcept
Definition SM.hpp:38
double get_alpha_s_mz() const
Definition SM.hpp:53
double get_mh() const
Definition SM.hpp:54
double get_alpha_em_mz() const
Definition SM.hpp:52
double get_e_mz() const
Definition SM.cpp:108
void set_ckm(int i, int j, const std::complex< double > &m)
Definition SM.hpp:47
std::complex< double > get_ckm(int i, int j) const
Definition SM.hpp:74
const Eigen::Matrix< double, 3, 1 > & get_mu() const
Definition SM.hpp:57
void set_ckm_from_wolfenstein(double lambdaW, double aCkm, double rhobar, double etabar)
Definition SM.cpp:143
const Eigen::Matrix< double, 3, 1 > & get_md() const
Definition SM.hpp:58
std::ostream & operator<<(std::ostream &os, const MSSMNoFV_onshell &model)
streaming operator