Himalaya
MSSM_mass_eigenstates.hpp
Go to the documentation of this file.
1 // ====================================================================
2 // This file is part of Himalaya.
3 //
4 // Himalaya is licenced under the GNU General Public License (GNU GPL)
5 // version 3.
6 // ====================================================================
7 
8 #pragma once
9 
11 
14 
15 #include <array>
16 #include <iosfwd>
17 #include <tuple>
18 #include <Eigen/Core>
19 
20 /**
21  * @file MSSM_mass_eigenstates.hpp
22  *
23  * @brief Contains the definition of the \a
24  * MSSM_mass_eigenstates class.
25  */
26 
27 namespace himalaya {
28 namespace mh2_fo {
29 
30 /// momentum iteration settings
31 enum class Momentum_iteration {
32  off, ///< no momentum iteration
33  pert, ///< perturbatively up to 2-loop level
34  num, ///< numerically (all orders)
35 };
36 
37 /// diagonalization settings
38 enum class Diagonalization {
39  pert, ///< perturbatively
40  num, ///< numerically
41 };
42 
43 /**
44  * @class MSSM_mass_eigenstates
45  *
46  * @brief This class performs a fixed-order calculation of the light
47  * CP-even Higgs mass up to 2-loop order.
48  */
50 public:
51  MSSM_mass_eigenstates(const Parameters&, bool only_at = false);
52 
53  /// calculates squared Higgs masses
54  std::tuple<double,double,double> calculate_Mh2() const;
55  /// returns tree-level CP-even Higgs mass matrix
56  RM22 get_mass_matrix_hh() const;
57  /// returns tree-level CP-even Higgs mass matrix for p = g1 = g2 = 0
58  RM22 get_mass_matrix_hh_gaugeless() const;
59  /// Higgs 1-loop contribution DR'
60  RM22 delta_mh2_1loop(double p2) const;
61  /// Higgs 1-loop contribution DR' for p = g1 = g2 = 0
62  RM22 delta_mh2_1loop_gaugeless() const;
63  /// derivative of Higgs 1-loop contribution DR' for p = g1 = g2 = 0
64  RM22 delta_mh2_1loop_gaugeless_deriv() const;
65  /// Higgs 2-loop contributions DR' for p = 0
66  RM22 delta_mh2_2loop() const;
67  /// Higgs 2-loop contributions DR' for p = g1 = g2 = 0 from momentum iteration
68  RM22 delta_mh2_2loop_mom_it_pert() const;
69  /// Higgs 2-loop (and higher) contributions DR' from numerical momentum iteration
70  RM22 delta_mh2_2loop_mom_it_num(double precision_goal = 1e-5, int max_iterations = 100) const;
71  /// enable/disable loop corrections
72  void set_correction(CouplingOrders::CouplingOrders, int);
73  /// customize diagonalization
74  void set_diagonalization(Diagonalization);
75  /// customize momentum iteration
76  void set_mom_it(Momentum_iteration, double mom_it_precision_goal_ = 1e-5, int mom_it_max_iterations_ = 100);
77 
78  friend std::ostream& operator<<(std::ostream&, const MSSM_mass_eigenstates&);
79 
80 private:
81  Parameters pars; ///< MSSM DR' parameters
82  MSSM_spectrum masses; ///< MSSM DR' masses / mixings
83  MSSM_spectrum gaugeless; ///< MSSM DR' masses / mixings for g1 = g2 = 0
84  std::array<int,CouplingOrders::NUMBER_OF_COUPLING_ORDERS> orders{}; ///< enable/disable corrections
85  Momentum_iteration mom_it{Momentum_iteration::pert}; ///< momentum iteration settings
86  double mom_it_precision_goal{1e-5}; ///< precision goal for numeric momentum iteration
87  int mom_it_max_iterations{100}; ///< maximum number of numeric momentum iterations
88  Diagonalization diagonalization{Diagonalization::pert}; ///< diagonalization settings
89 
90  /// calculates tree-level squared Higgs masses
91  V2 calculate_Mh2_tree() const;
92 
93  /// A0 Passarino-Veltman function
94  double A0(double) const;
95  /// B0 Passarino-Veltman function
96  double B0(double, double, double) const;
97  /// derivative of B0 function w.r.t. p^2, for p^2 = 0
98  double D1B0(double, double) const;
99 };
100 
101 /// prints the internals of MSSM_mass_eigenstates
102 std::ostream& operator<<(std::ostream&, const MSSM_mass_eigenstates&);
103 
104 } // namespace mh2_fo
105 } // namespace himalaya
Definition: H3.cpp:14
Contains the definition of the MSSM_spectrum class.
Definition of the MSSM input parameters.
Diagonalization
diagonalization settings
CouplingOrders
Coupling orders for calculation.
perturbatively up to 2-loop level
std::ostream & operator<<(std::ostream &ostr, const MSSM_mass_eigenstates &me)
prints the internals of MSSM_mass_eigenstates
enum definitions
Contains the tree-level DR&#39; mass spectrum and mixing matrices.
Parameters pars
MSSM DR&#39; parameters.
MSSM_spectrum gaugeless
MSSM DR&#39; masses / mixings for g1 = g2 = 0.
This class performs a fixed-order calculation of the light CP-even Higgs mass up to 2-loop order...
Momentum_iteration
momentum iteration settings
MSSM_spectrum masses
MSSM DR&#39; masses / mixings.
Eigen::Matrix2d RM22
real 2x2 matrix
Definition: Linalg.hpp:1521
Eigen::Vector2d V2
real 2-vector
Definition: Linalg.hpp:1520