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

A class for calculating the Higgs and sparticle spectra at tree level. More...

#include <SUSYSpectrum.h>

Detailed Description

A class for calculating the Higgs and sparticle spectra at tree level.

Author
HEPfit Collaboration

The SUSYSpectrum class calculates the all the sparticle masses and their mixing matrices at tree-level.

Definition at line 23 of file SUSYSpectrum.h.

Public Member Functions

bool CalcChargino (gslpp::matrix< gslpp::complex > &U_i, gslpp::matrix< gslpp::complex > &V_i, gslpp::vector< double > &mch_i)
 Computes the chargino spectrum at tree level. More...
 
bool CalcHiggs (double mh[4], gslpp::complex &saeff_i)
 Computes the Higgs spectrum at tree level. More...
 
bool CalcNeutralino (gslpp::matrix< gslpp::complex > &N_i, gslpp::vector< double > &mneu_i)
 Computes the neutralino spectrum at tree level. More...
 
bool CalcSdown (gslpp::matrix< gslpp::complex > &Rd_i, gslpp::vector< double > &m_sd2_i)
 Computes the down-type squark spectrum at tree level. More...
 
bool CalcSelectron (gslpp::matrix< gslpp::complex > &Rl_i, gslpp::vector< double > &m_se2_i)
 Computes the charged-slepton spectrum at tree level. More...
 
bool CalcSneutrino (gslpp::matrix< gslpp::complex > &Rn_i, gslpp::vector< double > &m_sn2_i)
 Computes the sneutrino spectrum at tree level. More...
 
bool CalcSpectrum ()
 Computes the SUSY spectrum without the Higgs part at tree level. More...
 
bool CalcSup (gslpp::matrix< gslpp::complex > &Ru_i, gslpp::vector< double > &m_su2_i)
 Computes the up-type squark spectrum at tree level. More...
 
gslpp::vector< double > getMch () const
 Gets the Chargino spectrum at tree-level. More...
 
gslpp::matrix< gslpp::complex > getMchargino () const
 Gets the Chargino spectrum at tree-level. More...
 
double getMHa () const
 Gets the pseudo-scalar Higgs mass. More...
 
double getMHh () const
 Gets the heavy Higgs mass. More...
 
double getMHl () const
 Gets the light Higgs mass. More...
 
double getMHp () const
 Gets the charged Higgs mass. More...
 
gslpp::vector< double > getMneu () const
 Gets the Neutralino spectrum at tree-level. More...
 
gslpp::matrix< gslpp::complex > getMneutralino () const
 Gets the Neutralino spectrum at tree-level. More...
 
gslpp::vector< double > getMsd2 () const
 Gets the Down-squark spectrum at tree-level. More...
 
gslpp::matrix< gslpp::complex > getMsdown2 () const
 Gets the Down-squark mass matrix at tree-level. More...
 
gslpp::vector< double > getMse2 () const
 Gets the Slepton spectrum at tree-level. More...
 
gslpp::matrix< gslpp::complex > getMselectron2 () const
 Gets the Slepton mass matrix at tree-level. More...
 
gslpp::vector< double > getMsn2 () const
 Gets the Sneutrino spectrum at tree-level. More...
 
gslpp::matrix< gslpp::complex > getMsneutrino2 () const
 Gets the Sneutrino mass matrix at tree-level. More...
 
gslpp::vector< double > getMsu2 () const
 Gets the Up-squark spectrum at tree-level. More...
 
gslpp::matrix< gslpp::complex > getMsup2 () const
 Gets the Up-squark mass matrix at tree-level. More...
 
gslpp::matrix< gslpp::complex > getN () const
 Gets the Neutralino mixing matrix. More...
 
gslpp::matrix< gslpp::complex > getRd () const
 Gets the Down-squark mixing matrix. More...
 
gslpp::matrix< gslpp::complex > getRl () const
 Gets the Slepton mixing matrix. More...
 
gslpp::matrix< gslpp::complex > getRn () const
 Gets the Sneutrino mixing matrix. More...
 
gslpp::matrix< gslpp::complex > getRu () const
 Gets the Up-squark mixing matrix. More...
 
gslpp::matrix< gslpp::complex > getU () const
 Gets the Chargino mixing matrix U. More...
 
gslpp::matrix< gslpp::complex > getV () const
 Gets the Chargino mixing matrix V. More...
 
void SortSfermionMasses (gslpp::vector< double > &m_sf2, gslpp::matrix< gslpp::complex > &Rf) const
 
 SUSYSpectrum (const SUSY &SUSY_in)
 A SUSYSpectrum constructor. More...
 

Private Attributes

gslpp::vector< double > m_sd2
 
gslpp::vector< double > m_se2
 
gslpp::vector< double > m_sn2
 
gslpp::vector< double > m_su2
 
gslpp::vector< double > mch
 Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass-squared eigenvalues. More...
 
gslpp::matrix< gslpp::complex > Mchargino
 Stores the tree-level Chargino and Neutralino mass matrix. More...
 
double mh [4]
 Stores the tree-level Higgs spectrum. More...
 
gslpp::vector< double > mneu
 
gslpp::matrix< gslpp::complex > Mneutralino
 
gslpp::matrix< gslpp::complex > Msdown2
 
gslpp::matrix< gslpp::complex > Mselectron2
 
gslpp::matrix< gslpp::complex > Msneutrino2
 
gslpp::matrix< gslpp::complex > Msup2
 Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass matrix. More...
 
const SUSYmySUSY
 
gslpp::matrix< gslpp::complex > N
 
gslpp::matrix< gslpp::complex > Rd
 
gslpp::matrix< gslpp::complex > Rl
 
gslpp::matrix< gslpp::complex > Rn
 
gslpp::matrix< gslpp::complex > Ru
 Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mixing matrices. More...
 
gslpp::complex saeff
 Stores the Sine of tree-level CP-even mixing angle. More...
 
gslpp::matrix< gslpp::complex > U
 Stores the tree-level Chargino and Neutralino mixing matrices. More...
 
gslpp::matrix< gslpp::complex > V
 

Constructor & Destructor Documentation

◆ SUSYSpectrum()

SUSYSpectrum::SUSYSpectrum ( const SUSY SUSY_in)

A SUSYSpectrum constructor.

Parameters
[in]SUSY_inAn object of SUSY class.

Definition at line 15 of file SUSYSpectrum.cpp.

16: mySUSY(SUSY_in), Mchargino(2,2,0.), Mneutralino(4,4,0.),
17 U(2,2,0.), V(2,2,0.), N(4,4,0.),
18 Msup2(6,0.), Msdown2(6,0.), Msneutrino2(6,0.), Mselectron2(6,0.),
19 mch(2,0.), mneu(4,0.), m_su2(6,0.), m_sd2(6,0.), m_sn2(6,0.), m_se2(6,0.),
20 Ru(6,6,0.), Rd(6,6,0.), Rn(6,6,0.), Rl(6,6,0.)
21{
22}
gslpp::vector< double > m_sd2
Definition: SUSYSpectrum.h:330
gslpp::matrix< gslpp::complex > N
Definition: SUSYSpectrum.h:320
gslpp::matrix< gslpp::complex > U
Stores the tree-level Chargino and Neutralino mixing matrices.
Definition: SUSYSpectrum.h:320
gslpp::vector< double > mch
Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass-squared eigenvalues.
Definition: SUSYSpectrum.h:330
gslpp::vector< double > m_se2
Definition: SUSYSpectrum.h:330
gslpp::matrix< gslpp::complex > Mneutralino
Definition: SUSYSpectrum.h:315
gslpp::matrix< gslpp::complex > Rd
Definition: SUSYSpectrum.h:335
gslpp::matrix< gslpp::complex > V
Definition: SUSYSpectrum.h:320
gslpp::matrix< gslpp::complex > Msdown2
Definition: SUSYSpectrum.h:325
gslpp::vector< double > m_sn2
Definition: SUSYSpectrum.h:330
const SUSY & mySUSY
Definition: SUSYSpectrum.h:300
gslpp::matrix< gslpp::complex > Msneutrino2
Definition: SUSYSpectrum.h:325
gslpp::vector< double > m_su2
Definition: SUSYSpectrum.h:330
gslpp::matrix< gslpp::complex > Mselectron2
Definition: SUSYSpectrum.h:325
gslpp::vector< double > mneu
Definition: SUSYSpectrum.h:330
gslpp::matrix< gslpp::complex > Ru
Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mixing matrices.
Definition: SUSYSpectrum.h:335
gslpp::matrix< gslpp::complex > Rl
Definition: SUSYSpectrum.h:335
gslpp::matrix< gslpp::complex > Mchargino
Stores the tree-level Chargino and Neutralino mass matrix.
Definition: SUSYSpectrum.h:315
gslpp::matrix< gslpp::complex > Msup2
Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass matrix.
Definition: SUSYSpectrum.h:325
gslpp::matrix< gslpp::complex > Rn
Definition: SUSYSpectrum.h:335

Member Function Documentation

◆ CalcChargino()

bool SUSYSpectrum::CalcChargino ( gslpp::matrix< gslpp::complex > &  U_i,
gslpp::matrix< gslpp::complex > &  V_i,
gslpp::vector< double > &  mch_i 
)

Computes the chargino spectrum at tree level.

SLHA: diag(mChi) = U^* M V^+.

Definition at line 52 of file SUSYSpectrum.cpp.

53{
54 double Mw = mySUSY.Mw_tree();
55
56 Mchargino.assign(0, 0, mySUSY.getM2());
57 Mchargino.assign(0, 1, sqrt(2) * Mw * mySUSY.getSinb());
58 //
59 Mchargino.assign(1, 0, sqrt(2) * Mw * mySUSY.getCosb());
60 Mchargino.assign(1, 1, mySUSY.getMuH());
61
62 /*
63 * M.singularvalue(&U, &V, &S) decompose M into
64 * M = U diag(S) V^+.
65 */
66 gslpp::matrix<gslpp::complex> Utmp(2, 2, 0.), Vtmp(2, 2, 0.);
67 Mchargino.singularvalue(Utmp, Vtmp, mch_i);
68
72 U_i = Utmp.transpose();
73 V_i = Vtmp.hconjugate();
74
75 return true;
76}
A class for the chargino masses.
Definition: Mchargino.h:22
An observable class for the -boson mass.
Definition: Mw.h:22
gslpp::complex getMuH() const
Gets the parameter in the superpotential.
Definition: SUSY.h:167
const double getCosb() const
Gets .
Definition: SUSY.h:217
const double getSinb() const
Gets .
Definition: SUSY.h:208
gslpp::complex getM2() const
Gets the wino mass.
Definition: SUSY.h:140
const double Mw_tree() const
The tree-level mass of the boson, .

◆ CalcHiggs()

bool SUSYSpectrum::CalcHiggs ( double  mh[4],
gslpp::complex &  saeff_i 
)

Computes the Higgs spectrum at tree level.

Definition at line 24 of file SUSYSpectrum.cpp.

25{
26 double Mw = mySUSY.Mw_tree();
27 double Mz = mySUSY.getMz();
28 double cos2b = 2.0 * mySUSY.getCosb() * mySUSY.getCosb() - 1.0;
29
30 /* charged Higgs mass */
31 mh[3] = mySUSY.mHptree;
32
33 /* pseudo-scalar Higgs mass */
34 mh[2] = sqrt(mh[3] * mh[3] - Mw * Mw);
35
36 double temp = mh[2] * mh[2] + Mz * Mz;
37 double temp1 = 2.0 * mh[2] * Mz * cos2b;
38 double temp2 = sqrt(temp * temp - temp1 * temp1);
39
40 /* light Higgs mass */
41 mh[0] = sqrt((temp - temp2)/2.0);
42
43 /* heavy Higgs mass */
44 mh[1] = sqrt((temp + temp2)/2.0);
45
46 /* CP-even Higgs mixing angle*/
47 saeff_i = sin(atan((mh[2]*mh[2]+Mz*Mz)*sqrt(1-cos2b*cos2b)/((mh[2]*mh[2]-Mz*Mz)*cos2b))/2.0);
48
49 return true;
50}
double mHptree
Definition: SUSY.h:569
double mh[4]
Stores the tree-level Higgs spectrum.
Definition: SUSYSpectrum.h:305
const double getMz() const
A get method to access the mass of the boson .

◆ CalcNeutralino()

bool SUSYSpectrum::CalcNeutralino ( gslpp::matrix< gslpp::complex > &  N_i,
gslpp::vector< double > &  mneu_i 
)

Computes the neutralino spectrum at tree level.

Definition at line 78 of file SUSYSpectrum.cpp.

79{
80 double Mw = mySUSY.Mw_tree();
81 double Mz = mySUSY.getMz();
82 double cW2 = Mw*Mw/Mz/Mz;
83 double cW = sqrt(cW2);
84 double sW = sqrt(1.0 - cW2);
85 double sb = mySUSY.getSinb();
86 double cb = mySUSY.getCosb();
87
88 Mneutralino.assign(0, 0, mySUSY.getM1());
89 Mneutralino.assign(0, 2, - Mz * sW * cb);
90 Mneutralino.assign(0, 3, Mz * sW * sb);
91 //
92 Mneutralino.assign(1, 1, mySUSY.getM2());
93 Mneutralino.assign(1, 2, Mz * cW * cb);
94 Mneutralino.assign(1, 3, - Mz * cW * sb);
95 //
96 Mneutralino.assign(2, 0, Mneutralino(0,2));
97 Mneutralino.assign(2, 1, Mneutralino(1,2));
98 Mneutralino.assign(2, 3, - mySUSY.getMuH());
99 //
100 Mneutralino.assign(3, 0, Mneutralino(0,3));
101 Mneutralino.assign(3, 1, Mneutralino(1,3));
102 Mneutralino.assign(3, 2, Mneutralino(2,3));
103
104 /*
105 * M.singularvalue(&U, &V, &S) decompose M into
106 * M = U diag(S) V^+.
107 */
108 gslpp::matrix<gslpp::complex> Ntemp1(4, 4, 0.), Ntemp2(4, 4, 0.);
109 Mneutralino.singularvalue(Ntemp1, Ntemp2, mneu_i);
110
111 //gslpp::matrix<gslpp::complex> Nleft = Ntemp1.transpose();
112 gslpp::matrix<gslpp::complex> Nright = Ntemp2.hconjugate();
113 //std::cout << "Nleft = " << Nleft << std::endl;
114 //std::cout << "Nright = " << Nright << std::endl;
115
116 /* adopt N=Nright as N^* M N^+ = diag, not as N M N^+.
117 * As a result, a phase rotation is required for N. */
118 gslpp::matrix<gslpp::complex> Mdiag_tmp(4, 4, 0.);
119 Mdiag_tmp = Nright.hconjugate().transpose() * Mneutralino * Nright.hconjugate();
120 //std::cout << "Mdiag_tmp = " << Mdiag_tmp << std::endl;
121 gslpp::vector<gslpp::complex> v1(4, 0.);
122 for(int i = 0; i < 4; i++)
123 v1.assign(i, gslpp::complex(1., Mdiag_tmp(i,i).arg()/2.0, true));
124 Nright = gslpp::matrix<gslpp::complex>(v1) * Nright;
125
126 N_i = Nright;
127
128 return true;
129}
A class for the neutralino masses.
Definition: Mneutralino.h:24
gslpp::complex getM1() const
Gets the bino mass.
Definition: SUSY.h:131

◆ CalcSdown()

bool SUSYSpectrum::CalcSdown ( gslpp::matrix< gslpp::complex > &  Rd_i,
gslpp::vector< double > &  m_sd2_i 
)

Computes the down-type squark spectrum at tree level.

Definition at line 172 of file SUSYSpectrum.cpp.

173{
174 double Mw = mySUSY.Mw_tree();
175 double Mz2 = mySUSY.getMz()*mySUSY.getMz();
176 double sW2 = 1.0 - Mw*Mw/Mz2;
177 double cos2b = 2.0 * mySUSY.getCosb() * mySUSY.getCosb() - 1.0;
178 gslpp::matrix<gslpp::complex> Id3 = gslpp::matrix<gslpp::complex>::Id(3);
179
180 /* DRbar down-type quark masses at scale Q */
181 gslpp::matrix<double> Md(3, 3, 0.);
182 Md(0, 0) = mySUSY.Mq_Q(mySUSY.DOWN);
183 Md(1, 1) = mySUSY.Mq_Q(mySUSY.STRANGE);
184 Md(2, 2) = mySUSY.Mq_Q(mySUSY.BOTTOM);
185
186 gslpp::matrix<gslpp::complex> dLL( mySUSY.msQhat2 + Md * Md
187 + cos2b * Mz2 * (- 1.0/2.0 + 1.0/3.0 * sW2) * Id3 );
188 gslpp::matrix<gslpp::complex> dLR( mySUSY.v1()/sqrt(2.0) * mySUSY.getTDhat().hconjugate()
189 - mySUSY.getMuH() * Md * mySUSY.getTanb() );
190 gslpp::matrix<gslpp::complex> dRR( mySUSY.msDhat2 + Md * Md - cos2b * Mz2 /3.0 * sW2 * Id3 );
191 for(int i = 0; i < 3; i++)
192 for(int j = 0; j < 3; j++) {
193 Msdown2.assign(i, j, dLL(i,j));
194 Msdown2.assign(i, j+3, dLR(i,j));
195 Msdown2.assign(i+3, j, dLR(j,i).conjugate());
196 Msdown2.assign(i+3, j+3, dRR(i,j));
197 }
198
199 /*
200 * M.singularvalue(&U, &V, &S) decompose M into
201 * M = U diag(S) V^+.
202 */
203 gslpp::matrix<gslpp::complex> RdTmp(6, 6, 0.);
204 Msdown2.eigensystem(RdTmp, m_sd2_i);
205
206 Rd_i = RdTmp.hconjugate();
207
208 return true;
209
210}
@ BOTTOM
Definition: QCD.h:329
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
gslpp::matrix< gslpp::complex > msDhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > getTDhat() const
Gets the trilinear-coupling matrix for down-type squarks.
Definition: SUSY.h:362
gslpp::matrix< gslpp::complex > msQhat2
Definition: SUSY.h:576
const double getTanb() const
Gets .
Definition: SUSY.h:176
double Mq_Q(const quark q) const
Definition: SUSY.h:499
double v1() const
Definition: SUSY.cpp:379

◆ CalcSelectron()

bool SUSYSpectrum::CalcSelectron ( gslpp::matrix< gslpp::complex > &  Rl_i,
gslpp::vector< double > &  m_se2_i 
)

Computes the charged-slepton spectrum at tree level.

Definition at line 245 of file SUSYSpectrum.cpp.

246{
247 double Mw = mySUSY.Mw_tree();
248 double Mz2 = mySUSY.getMz()*mySUSY.getMz();
249 double sW2 = 1.0 - Mw*Mw/Mz2;
250 double cos2b = 2.0 * mySUSY.getCosb() * mySUSY.getCosb() - 1.0;
251 gslpp::matrix<gslpp::complex> Id3 = gslpp::matrix<gslpp::complex>::Id(3);
252
253 gslpp::matrix<double> Me(3, 3, 0.);
254 Me(0, 0) = mySUSY.Ml_Q(mySUSY.ELECTRON);
255 Me(1, 1) = mySUSY.Ml_Q(mySUSY.MU);
256 Me(2, 2) = mySUSY.Ml_Q(mySUSY.TAU);
257
258 gslpp::matrix<gslpp::complex> eLL( mySUSY.msLhat2 + Me * Me
259 + cos2b * Mz2 * (- 1.0/2.0 + sW2) * Id3 );
260 gslpp::matrix<gslpp::complex> eLR( mySUSY.v1()/sqrt(2.0) * mySUSY.getTEhat().hconjugate()
261 - mySUSY.getMuH() * Me * mySUSY.getTanb() );
262 gslpp::matrix<gslpp::complex> eRR( mySUSY.msEhat2 + Me * Me - cos2b * Mz2 * sW2 * Id3 );
263
264 for(int i = 0; i < 3; i++)
265 {
266 for(int j = 0; j < 3; j++)
267 {
268 Mselectron2.assign(i, j, eLL(i,j));
269 Mselectron2.assign(i, j+3, eLR(i,j));
270 Mselectron2.assign(i+3, j, eLR(j,i).conjugate());
271 Mselectron2.assign(i+3, j+3, eRR(i,j));
272 }
273 }
274
275 /*
276 * M.singularvalue(&U, &V, &S) decompose M into
277 * M = U diag(S) V^+.
278 */
279 gslpp::matrix<gslpp::complex> RlTmp(6, 6, 0.);
280 Mselectron2.eigensystem(RlTmp, m_se2_i);
281
282 Rl_i = RlTmp.hconjugate();
283
284 return true;
285
286}
@ MU
Definition: QCD.h:314
@ ELECTRON
Definition: QCD.h:312
@ TAU
Definition: QCD.h:316
gslpp::matrix< gslpp::complex > getTEhat() const
Gets the trilinear-coupling matrix for charged sleptons.
Definition: SUSY.h:454
gslpp::matrix< gslpp::complex > msLhat2
Definition: SUSY.h:576
double Ml_Q(const lepton l) const
Definition: SUSY.h:515
gslpp::matrix< gslpp::complex > msEhat2
Definition: SUSY.h:576

◆ CalcSneutrino()

bool SUSYSpectrum::CalcSneutrino ( gslpp::matrix< gslpp::complex > &  Rn_i,
gslpp::vector< double > &  m_sn2_i 
)

Computes the sneutrino spectrum at tree level.

Definition at line 212 of file SUSYSpectrum.cpp.

213{
214 double Mz2 = mySUSY.getMz()*mySUSY.getMz();
215 double cos2b = 2.0 * mySUSY.getCosb() * mySUSY.getCosb() - 1.0;
216 gslpp::matrix<gslpp::complex> Id3 = gslpp::matrix<gslpp::complex>::Id(3);
217
218 gslpp::matrix<gslpp::complex> nLL( mySUSY.msLhat2 + cos2b * Mz2 /2.0 * Id3 );
219 gslpp::matrix<gslpp::complex> nLR( mySUSY.v2()/sqrt(2.0) * mySUSY.getTNhat().hconjugate() );
220 gslpp::matrix<gslpp::complex> nRR( mySUSY.msNhat2 );
221 for(int i = 0; i < 3; i++) {
222 for(int j = 0; j < 3; j++) {
223 Msneutrino2.assign(i, j, nLL(i,j));
224 Msneutrino2.assign(i, j+3, nLR(i,j));
225 Msneutrino2.assign(i+3, j, nLR(j,i).conjugate());
226 Msneutrino2.assign(i+3, j+3, nRR(i,j));
227 }
228 }
229 /*
230 * M.singularvalue(&U, &V, &S) decompose M into
231 * M = U diag(S) V^+.
232 */
233 gslpp::matrix<gslpp::complex> RnTmp(6, 6, 0.);
234 Msneutrino2.eigensystem(RnTmp, m_sn2_i);
235
236 m_sn2_i(0)=std::numeric_limits<double>::max();
237 m_sn2_i(1)=std::numeric_limits<double>::max();
238 m_sn2_i(2)=std::numeric_limits<double>::max();
239 Rn_i = RnTmp.hconjugate();
240
241 return true;
242
243}
double v2() const
Definition: SUSY.cpp:384
gslpp::matrix< gslpp::complex > msNhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > getTNhat() const
Gets the trilinear-coupling matrix for sneutrinos.
Definition: SUSY.h:445

◆ CalcSpectrum()

bool SUSYSpectrum::CalcSpectrum ( )

Computes the SUSY spectrum without the Higgs part at tree level.

◆ CalcSup()

bool SUSYSpectrum::CalcSup ( gslpp::matrix< gslpp::complex > &  Ru_i,
gslpp::vector< double > &  m_su2_i 
)

Computes the up-type squark spectrum at tree level.

Definition at line 131 of file SUSYSpectrum.cpp.

132{
133 double Mw = mySUSY.Mw_tree();
134 double Mz2 = mySUSY.getMz()*mySUSY.getMz();
135 double sW2 = 1.0 - Mw*Mw/Mz2;
136 double cos2b = 2.0 * mySUSY.getCosb() * mySUSY.getCosb() - 1.0;
137 gslpp::matrix<gslpp::complex> CKM(mySUSY.getVCKM());
138 gslpp::matrix<gslpp::complex> Id3 = gslpp::matrix<gslpp::complex>::Id(3);
139
140 /* DRbar up-type quark masses at scale Q */
141 gslpp::matrix<double> Mu(3, 3, 0.);
142 Mu(0, 0) = mySUSY.Mq_Q(mySUSY.UP);
143 Mu(1, 1) = mySUSY.Mq_Q(mySUSY.CHARM);
144 Mu(2, 2) = mySUSY.Mq_Q(mySUSY.TOP);
145
146 gslpp::matrix<gslpp::complex> uLL( CKM * mySUSY.msQhat2 * CKM.hconjugate() + Mu * Mu
147 + cos2b * Mz2 * (1.0/2.0 - 2.0/3.0 * sW2) * Id3 );
148 gslpp::matrix<gslpp::complex> uLR( mySUSY.v2()/sqrt(2.0) * mySUSY.getTUhat().hconjugate()
149 - mySUSY.getMuH() * Mu / mySUSY.getTanb() );
150 gslpp::matrix<gslpp::complex> uRR( mySUSY.msUhat2 + Mu * Mu + cos2b * Mz2 * 2.0/3.0 * sW2 * Id3 );
151 for(int i = 0; i < 3; i++)
152 for(int j = 0; j < 3; j++) {
153 Msup2.assign(i, j, uLL(i,j));
154 Msup2.assign(i, j+3, uLR(i,j));
155 Msup2.assign(i+3, j, uLR(j,i).conjugate());
156 Msup2.assign(i+3, j+3, uRR(i,j));
157 }
158
159 /*
160 * M.singularvalue(&U, &V, &S) decompose M into
161 * M = U diag(S) V^+.
162 */
163 gslpp::matrix<gslpp::complex> RuTmp(6, 6, 0.);
164 Msup2.eigensystem(RuTmp, m_su2_i);
165
166 Ru_i = RuTmp.hconjugate();
167
168 return true;
169
170}
A class for the CKM matrix elements.
Definition: CKM.h:23
@ UP
Definition: QCD.h:324
@ TOP
Definition: QCD.h:328
@ CHARM
Definition: QCD.h:326
gslpp::matrix< gslpp::complex > msUhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > getTUhat() const
Gets the trilinear-coupling matrix for up-type squarks.
Definition: SUSY.h:353
const gslpp::matrix< gslpp::complex > getVCKM() const
A get method to retrieve the CKM matrix.

◆ getMch()

gslpp::vector< double > SUSYSpectrum::getMch ( ) const
inline

Gets the Chargino spectrum at tree-level.

Returns
the Chargino mass eigenvalues

Definition at line 132 of file SUSYSpectrum.h.

133 {
134 return mch;
135 }

◆ getMchargino()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getMchargino ( ) const
inline

Gets the Chargino spectrum at tree-level.

Returns
the Chargino mass eigenvalues

Definition at line 123 of file SUSYSpectrum.h.

124 {
125 return Mchargino;
126 }

◆ getMHa()

double SUSYSpectrum::getMHa ( ) const
inline

Gets the pseudo-scalar Higgs mass.

Returns
The pseudo-scalar Higgs mass.

Definition at line 103 of file SUSYSpectrum.h.

104 {
105 return mh[2];
106 }

◆ getMHh()

double SUSYSpectrum::getMHh ( ) const
inline

Gets the heavy Higgs mass.

Returns
The heavy Higgs mass.

Definition at line 94 of file SUSYSpectrum.h.

95 {
96 return mh[1];
97 }

◆ getMHl()

double SUSYSpectrum::getMHl ( ) const
inline

Gets the light Higgs mass.

Returns
The light Higgs mass.

Definition at line 85 of file SUSYSpectrum.h.

86 {
87 return mh[0];
88 }

◆ getMHp()

double SUSYSpectrum::getMHp ( ) const
inline

Gets the charged Higgs mass.

Returns
The charged Higgs mass.

Definition at line 112 of file SUSYSpectrum.h.

113 {
114 return mh[3];
115 }

◆ getMneu()

gslpp::vector< double > SUSYSpectrum::getMneu ( ) const
inline

Gets the Neutralino spectrum at tree-level.

Returns
the Neutralino mass eigenvalues

Definition at line 170 of file SUSYSpectrum.h.

171 {
172 return mneu;
173 }

◆ getMneutralino()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getMneutralino ( ) const
inline

Gets the Neutralino spectrum at tree-level.

Returns
the Neutralino mass eigenvalues

Definition at line 161 of file SUSYSpectrum.h.

162 {
163 return Mneutralino;
164 }

◆ getMsd2()

gslpp::vector< double > SUSYSpectrum::getMsd2 ( ) const
inline

Gets the Down-squark spectrum at tree-level.

Returns
the Down-squark mass-squared eigenvalues

Definition at line 217 of file SUSYSpectrum.h.

218 {
219 return m_sd2;
220 }

◆ getMsdown2()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getMsdown2 ( ) const
inline

Gets the Down-squark mass matrix at tree-level.

Returns
the Down-squark mass matrix

Definition at line 199 of file SUSYSpectrum.h.

200 {
201 return Msdown2;
202 }

◆ getMse2()

gslpp::vector< double > SUSYSpectrum::getMse2 ( ) const
inline

Gets the Slepton spectrum at tree-level.

Returns
the Slepton mass-squared eigenvalues

Definition at line 274 of file SUSYSpectrum.h.

275 {
276 return m_se2;
277 }

◆ getMselectron2()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getMselectron2 ( ) const
inline

Gets the Slepton mass matrix at tree-level.

Returns
the Slepton mass matrix

Definition at line 256 of file SUSYSpectrum.h.

257 {
258 return Mselectron2;
259 }

◆ getMsn2()

gslpp::vector< double > SUSYSpectrum::getMsn2 ( ) const
inline

Gets the Sneutrino spectrum at tree-level.

Returns
the Sneutrino mass-squared eigenvalues

Definition at line 265 of file SUSYSpectrum.h.

266 {
267 return m_sn2;
268 }

◆ getMsneutrino2()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getMsneutrino2 ( ) const
inline

Gets the Sneutrino mass matrix at tree-level.

Returns
the Sneutrino mass matrix

Definition at line 247 of file SUSYSpectrum.h.

248 {
249 return Msneutrino2;
250 }

◆ getMsu2()

gslpp::vector< double > SUSYSpectrum::getMsu2 ( ) const
inline

Gets the Up-squark spectrum at tree-level.

Returns
the Up-squark mass-squared eigenvalues

Definition at line 208 of file SUSYSpectrum.h.

209 {
210 return m_su2;
211 }

◆ getMsup2()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getMsup2 ( ) const
inline

Gets the Up-squark mass matrix at tree-level.

Returns
the Up-squark mass matrix

Definition at line 190 of file SUSYSpectrum.h.

191 {
192 return Msup2;
193 }

◆ getN()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getN ( ) const
inline

Gets the Neutralino mixing matrix.

Returns
the Neutralino mixing matrix

Definition at line 179 of file SUSYSpectrum.h.

180 {
181 return N;
182 }

◆ getRd()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getRd ( ) const
inline

Gets the Down-squark mixing matrix.

Returns
the Down-squark mixing matrix

Definition at line 235 of file SUSYSpectrum.h.

236 {
237 return Rd;
238 }

◆ getRl()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getRl ( ) const
inline

Gets the Slepton mixing matrix.

Returns
the Slepton mixing matrix

Definition at line 292 of file SUSYSpectrum.h.

293 {
294 return Rl;
295 }

◆ getRn()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getRn ( ) const
inline

Gets the Sneutrino mixing matrix.

Returns
the Sneutrino mixing matrix

Definition at line 283 of file SUSYSpectrum.h.

284 {
285 return Rn;
286 }

◆ getRu()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getRu ( ) const
inline

Gets the Up-squark mixing matrix.

Returns
the Up-squark mixing matrix

Definition at line 226 of file SUSYSpectrum.h.

227 {
228 return Ru;
229 }

◆ getU()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getU ( ) const
inline

Gets the Chargino mixing matrix U.

Returns
the Chargino mixing matrix U

Definition at line 141 of file SUSYSpectrum.h.

142 {
143 return U;
144 }

◆ getV()

gslpp::matrix< gslpp::complex > SUSYSpectrum::getV ( ) const
inline

Gets the Chargino mixing matrix V.

Returns
the Chargino mixing matrix V

Definition at line 150 of file SUSYSpectrum.h.

151 {
152 return V;
153 }

◆ SortSfermionMasses()

void SUSYSpectrum::SortSfermionMasses ( gslpp::vector< double > &  m_sf2,
gslpp::matrix< gslpp::complex > &  Rf 
) const

Sort sfermion masses in increasing order.

Parameters
[in,out]m_sf2A vector of sfermion mass squared.
[in,out]RfThe corresponding rotation matrix.

Definition at line 288 of file SUSYSpectrum.cpp.

289{
290 int newIndex[6];
291 for (int i = 0; i < 6; i++)
292 newIndex[i] = i;
293
294 /* sort sfermion masses in increasing order */
295 for (int i = 0; i < 5; i++)
296 for (int k = i + 1; k < 6; k++)
297 if (m_sf2(i) > m_sf2(k)) {
298 std::swap(m_sf2(i), m_sf2(k));
299 std::swap(newIndex[i], newIndex[k]);
300 }
301
302 /* sort the corresponding rotation matrix, where the first(second) index
303 * denotes mass(gauge) eigenstates. */
304 gslpp::matrix<gslpp::complex> myRf(6, 6, 0.);
305 for (int i = 0; i < 6; i++)
306 for (int k = 0; k < 6; k++)
307 myRf.assign(k, i, Rf(newIndex[k], i));
308 Rf = myRf;
309}

Member Data Documentation

◆ m_sd2

gslpp::vector<double> SUSYSpectrum::m_sd2
private

Definition at line 330 of file SUSYSpectrum.h.

◆ m_se2

gslpp::vector<double> SUSYSpectrum::m_se2
private

Definition at line 330 of file SUSYSpectrum.h.

◆ m_sn2

gslpp::vector<double> SUSYSpectrum::m_sn2
private

Definition at line 330 of file SUSYSpectrum.h.

◆ m_su2

gslpp::vector<double> SUSYSpectrum::m_su2
private

Definition at line 330 of file SUSYSpectrum.h.

◆ mch

gslpp::vector<double> SUSYSpectrum::mch
private

Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass-squared eigenvalues.

Definition at line 330 of file SUSYSpectrum.h.

◆ Mchargino

gslpp::matrix<gslpp::complex> SUSYSpectrum::Mchargino
private

Stores the tree-level Chargino and Neutralino mass matrix.

Definition at line 315 of file SUSYSpectrum.h.

◆ mh

double SUSYSpectrum::mh[4]
private

Stores the tree-level Higgs spectrum.

Definition at line 305 of file SUSYSpectrum.h.

◆ mneu

gslpp::vector<double> SUSYSpectrum::mneu
private

Definition at line 330 of file SUSYSpectrum.h.

◆ Mneutralino

gslpp::matrix<gslpp::complex> SUSYSpectrum::Mneutralino
private

Definition at line 315 of file SUSYSpectrum.h.

◆ Msdown2

gslpp::matrix<gslpp::complex> SUSYSpectrum::Msdown2
private

Definition at line 325 of file SUSYSpectrum.h.

◆ Mselectron2

gslpp::matrix<gslpp::complex> SUSYSpectrum::Mselectron2
private

Definition at line 325 of file SUSYSpectrum.h.

◆ Msneutrino2

gslpp::matrix<gslpp::complex> SUSYSpectrum::Msneutrino2
private

Definition at line 325 of file SUSYSpectrum.h.

◆ Msup2

gslpp::matrix<gslpp::complex> SUSYSpectrum::Msup2
private

Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass matrix.

Definition at line 325 of file SUSYSpectrum.h.

◆ mySUSY

const SUSY& SUSYSpectrum::mySUSY
private

Definition at line 300 of file SUSYSpectrum.h.

◆ N

gslpp::matrix<gslpp::complex> SUSYSpectrum::N
private

Definition at line 320 of file SUSYSpectrum.h.

◆ Rd

gslpp::matrix<gslpp::complex> SUSYSpectrum::Rd
private

Definition at line 335 of file SUSYSpectrum.h.

◆ Rl

gslpp::matrix<gslpp::complex> SUSYSpectrum::Rl
private

Definition at line 335 of file SUSYSpectrum.h.

◆ Rn

gslpp::matrix<gslpp::complex> SUSYSpectrum::Rn
private

Definition at line 335 of file SUSYSpectrum.h.

◆ Ru

gslpp::matrix<gslpp::complex> SUSYSpectrum::Ru
private

Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mixing matrices.

Definition at line 335 of file SUSYSpectrum.h.

◆ saeff

gslpp::complex SUSYSpectrum::saeff
private

Stores the Sine of tree-level CP-even mixing angle.

Definition at line 310 of file SUSYSpectrum.h.

◆ U

gslpp::matrix<gslpp::complex> SUSYSpectrum::U
private

Stores the tree-level Chargino and Neutralino mixing matrices.

Definition at line 320 of file SUSYSpectrum.h.

◆ V

gslpp::matrix<gslpp::complex> SUSYSpectrum::V
private

Definition at line 320 of file SUSYSpectrum.h.


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