flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
ckm.hpp
Go to the documentation of this file.
1// ====================================================================
2// This file is part of FlexibleSUSY.
3//
4// FlexibleSUSY 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// FlexibleSUSY 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 FlexibleSUSY. If not, see
16// <http://www.gnu.org/licenses/>.
17// ====================================================================
18
19#ifndef CKM_H
20#define CKM_H
21
22#include <complex>
23#include <Eigen/Core>
24
25namespace flexiblesusy {
26
28 void reset_to_diagonal();
30
31 void set_from_wolfenstein(double, double, double, double);
32 void get_wolfenstein(double&, double&, double&, double&) const;
33
34 Eigen::Matrix<double,3,3> get_real_ckm() const;
35 Eigen::Matrix<std::complex<double>,3,3> get_complex_ckm() const;
36
37 static void to_pdg_convention(Eigen::Matrix<double,3,3>&,
38 Eigen::Matrix<double,3,3>&,
39 Eigen::Matrix<double,3,3>&,
40 Eigen::Matrix<double,3,3>&,
41 Eigen::Matrix<double,3,3>&);
42 static void to_pdg_convention(Eigen::Matrix<double,3,3>&,
43 Eigen::Matrix<double,3,3>&,
44 Eigen::Matrix<double,3,3>&,
45 Eigen::Matrix<double,3,3>&);
46 static void to_pdg_convention(Eigen::Matrix<std::complex<double>,3,3>&,
47 Eigen::Matrix<std::complex<double>,3,3>&,
48 Eigen::Matrix<std::complex<double>,3,3>&,
49 Eigen::Matrix<std::complex<double>,3,3>&,
50 Eigen::Matrix<std::complex<double>,3,3>&);
51 static void to_pdg_convention(Eigen::Matrix<std::complex<double>,3,3>&,
52 Eigen::Matrix<std::complex<double>,3,3>&,
53 Eigen::Matrix<std::complex<double>,3,3>&,
54 Eigen::Matrix<std::complex<double>,3,3>&);
55
56 double theta_12{0.}, theta_13{0.}, theta_23{0.}, delta{0.};
57};
58
59} // namespace flexiblesusy
60
61#endif
void set_from_wolfenstein(double, double, double, double)
Definition: ckm.cpp:65
Eigen::Matrix< double, 3, 3 > get_real_ckm() const
Definition: ckm.cpp:118
static void to_pdg_convention(Eigen::Matrix< double, 3, 3 > &, Eigen::Matrix< double, 3, 3 > &, Eigen::Matrix< double, 3, 3 > &, Eigen::Matrix< double, 3, 3 > &, Eigen::Matrix< double, 3, 3 > &)
Definition: ckm.cpp:179
Eigen::Matrix< std::complex< double >, 3, 3 > get_complex_ckm() const
Definition: ckm.cpp:146
void get_wolfenstein(double &, double &, double &, double &) const
Definition: ckm.cpp:94