GM2Calc 2.3.0
Loading...
Searching...
No Matches
THDM_mass_eigenstates.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/**
20 * @file THDM_mass_eigenstates.hpp
21 *
22 * @brief contains class for general THDM model with routines needed
23 * to solve EWSB and determine the masses and mixings.
24 *
25 * This file was generated with FlexibleSUSY 2.6.0 and SARAH 4.14.3 .
26 */
27
28#ifndef GM2_THDM_MASS_EIGENSTATES_H
29#define GM2_THDM_MASS_EIGENSTATES_H
30
31#include "THDM_problems.hpp"
32#include "THDM_parameters.hpp"
33
34#include <iosfwd>
35
36#include <Eigen/Core>
37
38namespace gm2calc {
39
40/**
41 * @class THDM_mass_eigenstates
42 * @brief model class with routines for determing masses and mixinga and EWSB
43 */
45{
46public:
47 void print(std::ostream&) const;
48
50
51 void do_force_output(bool);
52 bool do_force_output() const;
54 const THDM_problems& get_problems() const;
56 int solve_ewsb();
57
58 /// gluon mass
59 double get_MVG() const { return MVG; }
60 /// photon mass
61 double get_MVP() const { return MVP; }
62 /// W boson mass
63 double get_MVWm() const { return MVWm; }
64 /// Z boson mass
65 double get_MVZ() const { return MVZ; }
66 /// CP-even Higgs boson masses
67 const Eigen::Array<double,2,1>& get_Mhh() const { return Mhh; }
68 /// CP-even Higgs boson i mass
69 double get_Mhh(int i) const { return Mhh(i); }
70 /// Goldstone and CP-odd Higgs boson masses (in that order)
71 const Eigen::Array<double,2,1>& get_MAh() const { return MAh; }
72 /// Goldstone (i = 0) or CP-odd Higgs boson (i = 1) mass
73 double get_MAh(int i) const { return MAh(i); }
74 /// Goldstone and charged Higgs boson masses (in that order)
75 const Eigen::Array<double,2,1>& get_MHm() const { return MHm; }
76 /// Goldstone (i = 0) or charged Higgs boson (i = 1) mass
77 double get_MHm(int i) const { return MHm(i); }
78 /// up-type quark masses
79 const Eigen::Array<double,3,1>& get_MFu() const { return MFu; }
80 /// up-type quark i mass
81 double get_MFu(int i) const { return MFu(i); }
82 /// down-type quark masses
83 const Eigen::Array<double,3,1>& get_MFd() const { return MFd; }
84 /// down-type quark i mass
85 double get_MFd(int i) const { return MFd(i); }
86 /// neutrino masses
87 const Eigen::Array<double,3,1>& get_MFv() const { return MFv; }
88 /// neutrino i mass
89 double get_MFv(int i) const { return MFv(i); }
90 /// charged lepton masses
91 const Eigen::Array<double,3,1>& get_MFe() const { return MFe; }
92 /// charged lepton i mass
93 double get_MFe(int i) const { return MFe(i); }
94
95 /// CP-even Higgs boson mixing matrix
96 const Eigen::Matrix<double,2,2>& get_ZH() const { return ZH; }
97 /// CP-even Higgs boson mixing matrix element
98 double get_ZH(int i, int k) const { return ZH(i,k); }
99 /// CP-odd Higgs boson mixing matrix
100 const Eigen::Matrix<double,2,2>& get_ZA() const { return ZA; }
101 /// CP-odd Higgs boson mixing matrix element
102 double get_ZA(int i, int k) const { return ZA(i,k); }
103 /// charged Higgs boson mixing matrix
104 const Eigen::Matrix<double,2,2>& get_ZP() const { return ZP; }
105 /// charged Higgs boson mixing matrix element
106 double get_ZP(int i, int k) const { return ZP(i,k); }
107 const Eigen::Matrix<std::complex<double>,3,3>& get_Vd() const { return Vd; }
108 std::complex<double> get_Vd(int i, int k) const { return Vd(i,k); }
109 const Eigen::Matrix<std::complex<double>,3,3>& get_Ud() const { return Ud; }
110 std::complex<double> get_Ud(int i, int k) const { return Ud(i,k); }
111 const Eigen::Matrix<std::complex<double>,3,3>& get_Vu() const { return Vu; }
112 std::complex<double> get_Vu(int i, int k) const { return Vu(i,k); }
113 const Eigen::Matrix<std::complex<double>,3,3>& get_Uu() const { return Uu; }
114 std::complex<double> get_Uu(int i, int k) const { return Uu(i,k); }
115 const Eigen::Matrix<std::complex<double>,3,3>& get_Ve() const { return Ve; }
116 std::complex<double> get_Ve(int i, int k) const { return Ve(i,k); }
117 const Eigen::Matrix<std::complex<double>,3,3>& get_Ue() const { return Ue; }
118 std::complex<double> get_Ue(int i, int k) const { return Ue(i,k); }
119
120 double get_ewsb_eq_hh_1() const;
121 double get_ewsb_eq_hh_2() const;
122
123 double get_sin_beta() const; ///< sin(beta)
124 double get_cos_beta() const; ///< cos(beta)
125 double get_tan_beta() const; ///< tan(beta) = ratio of VEVs v2/v1
126 double get_beta() const; ///< CP-odd and charged Higgs mixing angle
127 double get_alpha_h() const; ///< CP-even Higgs mixing angle
128 double get_sin_beta_minus_alpha() const; ///< sin(beta - alpha_h)
129 double get_cos_beta_minus_alpha() const; ///< cos(beta - alpha_h)
130 double get_alpha_em() const; ///< electromagnetic coupling
131 double get_eta() const; ///< deviation of CP-even Higgs mixing angle from SM limit
132 double get_LambdaFive() const; ///< capital Lambda5, Eq (14) arxiv:1607.06292
133 double get_LambdaSixSeven() const; ///< (Lambda_{567} - Lambda_{5})(tan(b) - 1/tan(b))
134 double ThetaW() const; ///< weak mixing angle
135 double get_v() const; ///< SM-like VEV
136 double get_v_sqr() const; ///< squared SM-like VEV
137
138 /// set tan(beta) and vacuum expectation value
139 void set_tan_beta_and_v(double, double);
140
141 /// set alpha_em and cos(theta_w)
142 void set_alpha_em_and_cw(double, double);
143
144protected:
147
148 double get_mass_matrix_VZ() const;
149 void calculate_MVZ();
150 double get_mass_matrix_VWm() const;
151 void calculate_MVWm();
152 Eigen::Matrix<double,3,3> get_mass_matrix_Fv() const;
153 void calculate_MFv();
154 Eigen::Matrix<double,2,2> get_mass_matrix_hh() const;
155 void calculate_Mhh();
156 Eigen::Matrix<double,2,2> get_mass_matrix_Ah() const;
157 void calculate_MAh();
158 Eigen::Matrix<double,2,2> get_mass_matrix_Hm() const;
159 void calculate_MHm();
160 Eigen::Matrix<std::complex<double>,3,3> get_mass_matrix_Fd() const;
161 void calculate_MFd();
162 Eigen::Matrix<std::complex<double>,3,3> get_mass_matrix_Fu() const;
163 void calculate_MFu();
164 Eigen::Matrix<std::complex<double>,3,3> get_mass_matrix_Fe() const;
165 void calculate_MFe();
166
167private:
168 bool force_output{false}; ///< switch to force output of pole masses
169 THDM_problems problems{}; ///< problems
170
171 // masses
172 double MVG{0.0};
173 double MVWm{0.0};
174 double MVP{0.0};
175 double MVZ{0.0};
176 Eigen::Array<double,3,1> MFv{Eigen::Array<double,3,1>::Zero()};
177 Eigen::Array<double,2,1> Mhh{Eigen::Array<double,2,1>::Zero()};
178 Eigen::Array<double,2,1> MAh{Eigen::Array<double,2,1>::Zero()};
179 Eigen::Array<double,2,1> MHm{Eigen::Array<double,2,1>::Zero()};
180 Eigen::Array<double,3,1> MFd{Eigen::Array<double,3,1>::Zero()};
181 Eigen::Array<double,3,1> MFu{Eigen::Array<double,3,1>::Zero()};
182 Eigen::Array<double,3,1> MFe{Eigen::Array<double,3,1>::Zero()};
183
184 // mixing matrices
185 Eigen::Matrix<double,2,2> ZH{Eigen::Matrix<double,2,2>::Zero()};
186 Eigen::Matrix<double,2,2> ZA{Eigen::Matrix<double,2,2>::Zero()};
187 Eigen::Matrix<double,2,2> ZP{Eigen::Matrix<double,2,2>::Zero()};
188 Eigen::Matrix<std::complex<double>,3,3> Vd{Eigen::Matrix<std::complex<double>,3,3>::Zero()};
189 Eigen::Matrix<std::complex<double>,3,3> Ud{Eigen::Matrix<std::complex<double>,3,3>::Zero()};
190 Eigen::Matrix<std::complex<double>,3,3> Vu{Eigen::Matrix<std::complex<double>,3,3>::Zero()};
191 Eigen::Matrix<std::complex<double>,3,3> Uu{Eigen::Matrix<std::complex<double>,3,3>::Zero()};
192 Eigen::Matrix<std::complex<double>,3,3> Ve{Eigen::Matrix<std::complex<double>,3,3>::Zero()};
193 Eigen::Matrix<std::complex<double>,3,3> Ue{Eigen::Matrix<std::complex<double>,3,3>::Zero()};
194};
195
196std::ostream& operator<<(std::ostream&, const THDM_mass_eigenstates&);
197
198} // namespace gm2calc
199
200#endif
model class with routines for determing masses and mixinga and EWSB
Eigen::Matrix< std::complex< double >, 3, 3 > get_mass_matrix_Fu() const
const THDM_problems & get_problems() const
double get_MFe(int i) const
charged lepton i mass
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_Ue() const
void calculate_boson_masses()
routine which finds the boson mass eigenstates and mixings.
const Eigen::Array< double, 3, 1 > & get_MFe() const
charged lepton masses
std::complex< double > get_Vd(int i, int k) const
const Eigen::Array< double, 2, 1 > & get_MHm() const
Goldstone and charged Higgs boson masses (in that order)
double get_LambdaFive() const
capital Lambda5, Eq (14) arxiv:1607.06292
std::complex< double > get_Ud(int i, int k) const
double ThetaW() const
weak mixing angle
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_Vd() const
void calculate_fermion_masses()
routine which finds the fermion mass eigenstates and mixings.
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_Ud() const
double get_sin_beta_minus_alpha() const
sin(beta - alpha_h)
std::complex< double > get_Uu(int i, int k) const
Eigen::Matrix< std::complex< double >, 3, 3 > get_mass_matrix_Fd() const
Eigen::Matrix< double, 2, 2 > get_mass_matrix_hh() const
double get_ZP(int i, int k) const
charged Higgs boson mixing matrix element
Eigen::Matrix< std::complex< double >, 3, 3 > get_mass_matrix_Fe() const
const Eigen::Matrix< double, 2, 2 > & get_ZH() const
CP-even Higgs boson mixing matrix.
double get_ZH(int i, int k) const
CP-even Higgs boson mixing matrix element.
double get_MVZ() const
Z boson mass.
double get_cos_beta_minus_alpha() const
cos(beta - alpha_h)
void calculate_MSbar_masses()
routine which finds the MSbar mass eigenstates and mixings.
double get_MFd(int i) const
down-type quark i mass
double get_MFv(int i) const
neutrino i mass
double get_MAh(int i) const
Goldstone (i = 0) or CP-odd Higgs boson (i = 1) mass.
Eigen::Matrix< double, 2, 2 > get_mass_matrix_Ah() const
const Eigen::Array< double, 3, 1 > & get_MFu() const
up-type quark masses
double get_tan_beta() const
tan(beta) = ratio of VEVs v2/v1
const Eigen::Array< double, 3, 1 > & get_MFv() const
neutrino masses
Eigen::Matrix< double, 3, 3 > get_mass_matrix_Fv() const
const Eigen::Matrix< double, 2, 2 > & get_ZA() const
CP-odd Higgs boson mixing matrix.
double get_alpha_h() const
CP-even Higgs mixing angle.
double get_ZA(int i, int k) const
CP-odd Higgs boson mixing matrix element.
double get_v_sqr() const
squared SM-like VEV
double get_beta() const
CP-odd and charged Higgs mixing angle.
std::complex< double > get_Ve(int i, int k) const
const Eigen::Array< double, 2, 1 > & get_MAh() const
Goldstone and CP-odd Higgs boson masses (in that order)
Eigen::Matrix< double, 2, 2 > get_mass_matrix_Hm() const
const Eigen::Array< double, 3, 1 > & get_MFd() const
down-type quark masses
double get_alpha_em() const
electromagnetic coupling
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_Ve() const
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_Vu() const
std::complex< double > get_Vu(int i, int k) const
void set_alpha_em_and_cw(double, double)
set alpha_em and cos(theta_w)
const Eigen::Matrix< std::complex< double >, 3, 3 > & get_Uu() const
double get_MHm(int i) const
Goldstone (i = 0) or charged Higgs boson (i = 1) mass.
void reorder_MSbar_masses()
reorders MSbar masses so that golstones are placed at the index specified in the model files definiti...
double get_MFu(int i) const
up-type quark i mass
const Eigen::Array< double, 2, 1 > & get_Mhh() const
CP-even Higgs boson masses.
double get_LambdaSixSeven() const
(Lambda_{567} - Lambda_{5})(tan(b) - 1/tan(b))
void set_tan_beta_and_v(double, double)
set tan(beta) and vacuum expectation value
const Eigen::Matrix< double, 2, 2 > & get_ZP() const
charged Higgs boson mixing matrix
double get_eta() const
deviation of CP-even Higgs mixing angle from SM limit
double get_Mhh(int i) const
CP-even Higgs boson i mass.
double get_MVWm() const
W boson mass.
std::complex< double > get_Ue(int i, int k) const
Contains the parameters of the THDM model.
contains problem and warning flags
std::ostream & operator<<(std::ostream &os, const MSSMNoFV_onshell &model)
streaming operator