a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
LRSMquantities Class Reference

A class for calculating the Higgs spectrum and other potential parameters at tree level. More...

#include <LRSMquantities.h>

Detailed Description

A class for calculating the Higgs spectrum and other potential parameters at tree level.

Author
HEPfit Collaboration

Definition at line 27 of file LRSMquantities.h.

Public Member Functions

bool CalcNeutralMasses (gslpp::matrix< gslpp::complex > &U_i, double mH0sq[5])
 Computes the exact neutral spectrum at tree level. More...
 
bool CalcNeutralMasses_app (double mH0sq_app[4])
 Computes the approximate neutral spectrum at tree level. More...
 
 LRSMquantities (const LeftRightSymmetricModel &LRSM_in)
 
 ~LRSMquantities ()
 LRSMquantities constructor. More...
 

Private Attributes

gslpp::matrix< double > Msqneutral
 Stores the tree-level neutral mass square matrix. More...
 
const LeftRightSymmetricModelmyLRSM
 

Constructor & Destructor Documentation

◆ LRSMquantities()

LRSMquantities::LRSMquantities ( const LeftRightSymmetricModel LRSM_in)

Definition at line 12 of file LRSMquantities.cpp.

13: myLRSM(LRSM_in), Msqneutral(5, 5, 0.)
14{
15}
const LeftRightSymmetricModel & myLRSM
gslpp::matrix< double > Msqneutral
Stores the tree-level neutral mass square matrix.

◆ ~LRSMquantities()

LRSMquantities::~LRSMquantities ( )

LRSMquantities constructor.

LRSMquantities destructor.

Definition at line 21 of file LRSMquantities.cpp.

22{
23}

Member Function Documentation

◆ CalcNeutralMasses()

bool LRSMquantities::CalcNeutralMasses ( gslpp::matrix< gslpp::complex > &  U_i,
double  mH0sq[5] 
)

Computes the exact neutral spectrum at tree level.

Definition at line 25 of file LRSMquantities.cpp.

26{
27 double Ale = myLRSM.getAle();
28 double cW2 = myLRSM.c02();
29 double g2 = sqrt(4.0 * M_PI * Ale / (1 - cW2));
30 double g2_2 = g2*g2;
31 double vev = myLRSM.v();
32 double mH2psq = myLRSM.getmH2p_2();
33 double xi = myLRSM.getxi_LRSM();
34 double xi2 = xi*xi;
35 double kappa = sqrt(0.5) * vev * (1.0 - 0.5 * xi * xi);
36 double kappasq = kappa*kappa;
37 double mWR = myLRSM.getmWR();
38 double mWR2 = mWR*mWR;
43 double rho1 = myLRSM.getrho1_LRSM();
44 double alpha1 = myLRSM.getalpha1_LRSM();
45 double alpha2 = myLRSM.getalpha2_LRSM();
46
47 Msqneutral.assign(0, 0, (-((2.0 * mH2psq * mWR2 * xi2) / (g2_2 * kappasq + 2.0 * mWR2)) + 4.0 * kappasq * (xi2 - 1.0)*(lambda1 + xi * (2.0 * lambda4 + 2.0 * lambda2 * xi + lambda3 * xi))) / (xi2 - 1.0));
48 Msqneutral.assign(0, 2, ((2.0 * mH2psq * mWR2 * xi) / (g2_2 * kappasq + 2.0 * mWR2) + 4.0 * kappasq * (xi2 - 1.0)*((lambda1 + 2.0 * lambda2 + lambda3) * xi + lambda4 * (1.0 + xi2))) / (xi2 - 1.0));
49 Msqneutral.assign(0, 4, (2.0 * kappa * mWR * (alpha1 + 2.0 * alpha2 * xi)) / g2);
50 //
51 Msqneutral.assign(1, 1, -((xi2 * ((2.0 * mH2psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2) + 4.0 * kappasq * (2.0 * lambda2 - lambda3)*(xi2 - 1.0))) / (xi2 - 1.0)));
52 Msqneutral.assign(1, 3, -((xi * ((2.0 * mH2psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2) + 4.0 * kappasq * (2.0 * lambda2 - lambda3)*(xi2 - 1.0))) / (xi2 - 1.0)));
53 //
54 Msqneutral.assign(2, 0, ((2.0 * mH2psq * mWR2 * xi) / (g2_2 * kappasq + 2.0 * mWR2) + 4.0 * kappasq * (xi2 - 1.0)*((lambda1 + 2.0 * lambda2 + lambda3) * xi + lambda4 * (1.0 + xi2))) / (xi2 - 1.0));
55 Msqneutral.assign(2, 2, (-((2.0 * mH2psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2)) + 4.0 * kappasq * (xi2 - 1.0)*(2.0 * lambda2 + lambda3 + 2.0 * lambda4 * xi + lambda1 * xi2)) / (xi2 - 1.0));
56 Msqneutral.assign(2, 4, (2.0 * kappa * mWR * (2.0 * alpha2 + ((2.0 * mH2psq) / (kappasq + (2.0 * mWR2) / g2_2) + alpha1) * xi)) / g2);
57 //
58 Msqneutral.assign(3, 1, -((xi * ((2.0 * mH2psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2) + 4.0 * kappasq * (2.0 * lambda2 - lambda3)*(xi2 - 1.0))) / (xi2 - 1.0)));
59 Msqneutral.assign(3, 3, -(((2.0 * mH2psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2) + 4.0 * kappasq * (2.0 * lambda2 - lambda3)*(xi2 - 1.0)) / (xi2 - 1.0)));
60 //
61 Msqneutral.assign(4, 0, (2.0 * kappa * mWR * (alpha1 + 2.0 * alpha2 * xi)) / g2);
62 Msqneutral.assign(4, 2, (2.0 * kappa * mWR * (2.0 * alpha2 + ((2.0 * mH2psq) / (kappasq + (2.0 * mWR2) / g2_2) + alpha1) * xi)) / g2);
63 Msqneutral.assign(4, 4, (4.0 * mWR2 * rho1) / g2_2);
64
65 gslpp::vector<gslpp::complex> mH0sq_i(5, 0.);
66 Msqneutral.eigensystem(U_i, mH0sq_i);
67 for (int i = 0; i < 5; i++) {
68 mH0sq[i] = mH0sq_i(i).real();
69 }
70
71 int newIndex[5];
72 for (int i = 0; i < 5; i++)
73 newIndex[i] = i;
74
75 /* sort sfermion masses in increasing order */
76 for (int i = 0; i < 4; i++) {
77 for (int k = i + 1; k < 5; k++)
78 if (mH0sq[i] > mH0sq[k]) {
79 std::swap(mH0sq[i], mH0sq[k]);
80 std::swap(newIndex[i], newIndex[k]);
81 }
82 }
83
84 return true;
85}
const double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections.
const double v() const
The Higgs vacuum expectation value.
const double getAle() const
A get method to retrieve the fine-structure constant .
parameter of the Higgs potential
An observable class for the quartic Higgs potential coupling .
An observable class for the quartic Higgs potential coupling .
An observable class for the quartic Higgs potential coupling .
A class for , relevant for mesons mixing in the Standard Model.
Definition: xi.h:23

◆ CalcNeutralMasses_app()

bool LRSMquantities::CalcNeutralMasses_app ( double  mH0sq_app[4])

Computes the approximate neutral spectrum at tree level.

Definition at line 87 of file LRSMquantities.cpp.

88{
89 double Ale = myLRSM.getAle();
90 double cW2 = myLRSM.c02();
91 double g2 = sqrt(4.0 * M_PI * Ale / (1 - cW2));
92 double g2_2 = g2*g2;
93 double vev = myLRSM.v();
94 double mH1psq = myLRSM.getmH1p_2();
95 double mH2psq = myLRSM.getmH2p_2();
96 double xi = myLRSM.getxi_LRSM();
97 double kappasq = 0.5 * vev * vev * (1.0 - xi * xi);
98 double mWR = myLRSM.getmWR();
99 double mWR2 = mWR*mWR;
100 double lambda1 = myLRSM.getlambda1_LRSM();
101 double rho1 = myLRSM.getrho1_LRSM();
102 double alpha1 = myLRSM.getalpha1_LRSM();
103
104 mH0sq_app[0] = kappasq * (4.0 * lambda1 - (alpha1 * alpha1) / rho1)+(2.0 * mH2psq * mWR2 * xi * xi) / (g2_2 * kappasq + 2.0 * mWR2);
105 mH0sq_app[1] = (4.0 * mWR2 * rho1) / g2_2;
106 mH0sq_app[2] = (g2_2 * kappasq * (mH1psq - mH2psq) + 2.0 * mH1psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2);
107 mH0sq_app[3] = (2.0 * mH2psq * mWR2) / (g2_2 * kappasq + 2.0 * mWR2);
108
109 int newIndex[4];
110 for (int i = 0; i < 4; i++)
111 newIndex[i] = i;
112
113 /* sort sfermion masses in increasing order */
114 for (int i = 0; i < 3; i++) {
115 for (int k = i + 1; k < 4; k++)
116 if (mH0sq_app[i] > mH0sq_app[k]) {
117 std::swap(mH0sq_app[i], mH0sq_app[k]);
118 std::swap(newIndex[i], newIndex[k]);
119 }
120 }
121
122 return true;
123}

Member Data Documentation

◆ Msqneutral

gslpp::matrix<double> LRSMquantities::Msqneutral
private

Stores the tree-level neutral mass square matrix.

Definition at line 63 of file LRSMquantities.h.

◆ myLRSM

const LeftRightSymmetricModel& LRSMquantities::myLRSM
private

Definition at line 57 of file LRSMquantities.h.


The documentation for this class was generated from the following files: