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 }

◆ ~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;
39  double lambda1 = myLRSM.getlambda1_LRSM();
40  double lambda2 = myLRSM.getlambda2_LRSM();
41  double lambda3 = myLRSM.getlambda3_LRSM();
42  double lambda4 = myLRSM.getlambda4_LRSM();
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 }

◆ 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:
LRSMquantities::myLRSM
const LeftRightSymmetricModel & myLRSM
Definition: LRSMquantities.h:57
LeftRightSymmetricModel::getmH1p_2
double getmH1p_2() const
Definition: LeftRightSymmetricModel.h:187
StandardModel::v
virtual double v() const
The Higgs vacuum expectation value.
Definition: StandardModel.cpp:943
gslpp::matrix< double >::assign
void assign(const size_t &i, const size_t &j, const double &a)
Definition: gslpp_matrix_double.cpp:108
LeftRightSymmetricModel::getxi_LRSM
double getxi_LRSM() const
Definition: LeftRightSymmetricModel.h:208
LeftRightSymmetricModel::getlambda1_LRSM
double getlambda1_LRSM() const
Definition: LeftRightSymmetricModel.h:222
lambda3
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:428
LeftRightSymmetricModel::getlambda3_LRSM
double getlambda3_LRSM() const
Definition: LeftRightSymmetricModel.h:236
LeftRightSymmetricModel::getalpha1_LRSM
double getalpha1_LRSM() const
Definition: LeftRightSymmetricModel.h:264
LeftRightSymmetricModel::getrho1_LRSM
double getrho1_LRSM() const
Definition: LeftRightSymmetricModel.h:250
LeftRightSymmetricModel::getlambda2_LRSM
double getlambda2_LRSM() const
Definition: LeftRightSymmetricModel.h:229
lambda1
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:382
LeftRightSymmetricModel::getalpha2_LRSM
double getalpha2_LRSM() const
Definition: LeftRightSymmetricModel.h:271
LeftRightSymmetricModel::getmWR
double getmWR() const
Definition: LeftRightSymmetricModel.h:215
StandardModel::c02
double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections.
Definition: StandardModel.cpp:965
LeftRightSymmetricModel::getlambda4_LRSM
double getlambda4_LRSM() const
Definition: LeftRightSymmetricModel.h:243
lambda4
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:451
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
lambda2
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:405
LRSMquantities::Msqneutral
gslpp::matrix< double > Msqneutral
Stores the tree-level neutral mass square matrix.
Definition: LRSMquantities.h:63
LeftRightSymmetricModel::getmH2p_2
double getmH2p_2() const
Definition: LeftRightSymmetricModel.h:194
gslpp::matrix< double >::eigensystem
void eigensystem(matrix< complex > &U, vector< complex > &S)
Definition: gslpp_matrix_double.cpp:280
StandardModel::getAle
double getAle() const
A get method to retrieve the fine-structure constant .
Definition: StandardModel.h:748
gslpp::vector< gslpp::complex >