a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
SUSY.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#ifndef SUSY_H
9#define SUSY_H
10
11#include <gslpp.h>
12#include <StandardModel.h>
13#include "SUSYMatching.h"
14
15#define FEYNHIGGS false
16
17class EWSUSY; // forward reference to EWSUSY class
18/* BEGIN: REMOVE FROM THE PACKAGE */
19#if FEYNHIGGS
20class FeynHiggsWrapper; // forward reference to FeynHiggsWrapper class
21#endif
22/* END: REMOVE FROM THE PACKAGE */
23class SUSYSpectrum; // forward reference to Spectrum class
24
33class SUSY: public StandardModel {
34public:
35
36 static const int NSUSYvars = 10;
37 static const std::string SUSYvars[NSUSYvars];
38
42 friend class SUSYSpectrum;
43/* BEGIN: REMOVE FROM THE PACKAGE */
44 friend class FeynHiggsWrapper;
45/* END: REMOVE FROM THE PACKAGE */
46
50 SUSY();
51
55 ~SUSY();
57 // Initialization
58
59 virtual bool InitializeModel();
60
61/* BEGIN: REMOVE FROM THE PACKAGE */
62#if FEYNHIGGS
68 {
69 return myFH;
70 }
71#endif
72/* END: REMOVE FROM THE PACKAGE */
73
74 virtual SUSYMatching& getMatching() const
75 {
76 return SUSYM.getObj();
77 }
78
80 // Parameters
81
82 virtual bool Init(const std::map<std::string, double>& DPars);
83
84 virtual bool PreUpdate();
85
86 virtual bool Update(const std::map<std::string, double>& DPars);
87
88 virtual bool PostUpdate();
89
90 virtual bool CheckParameters(const std::map<std::string, double>& DPars);
91
92
94 // Flags
95
96 virtual bool setFlag(const std::string, const bool);
97
98 bool IsFlag_h() const
99 {
100 return flag_h;
101 }
102
103 bool IsFlag_g() const
104 {
105 return flag_g;
106 }
107
108 bool IsFlag_ch() const
109 {
110 return flag_ch;
111 }
112
113 bool IsFlag_ne() const
114 {
115 return flag_ne;
116 }
117
118 bool IsFlag_FH() const
119 {
120 return flag_fh;
121 }
122
123
125 // functions for the input parameters of SUSY model
126
131 gslpp::complex getM1() const
132 {
133 return m1;
134 }
135
140 gslpp::complex getM2() const
141 {
142 return m2;
143 }
144
149 const double getM3() const
150 {
151 return m3;
152 }
153
158 const double getMHptree() const
159 {
160 return mHptree;
161 }
162
167 gslpp::complex getMuH() const
168 {
169 return muH;
170 }
171
176 const double getTanb() const
177 {
178 return tanb;
179 }
180
185 const double getQ_SUSY() const
186 {
187 return Q_SUSY;
188 }
189
190
192 // functions for the parameters in the Higgs sector.
193
197 double v1() const;
198
202 double v2() const;
203
208 const double getSinb() const
209 {
210 return sinb;
211 }
212
217 const double getCosb() const
218 {
219 return cosb;
220 }
221
226 gslpp::complex getSaeff() const
227 {
228 return saeff;
229 }
230
235 virtual const double getMHl() const
236 {
237 return mh[0];
238 }
239
244 const double getMHh() const
245 {
246 return mh[1];
247 }
248
253 const double getMHa() const
254 {
255 return mh[2];
256 }
257
262 const double getMHp() const
263 {
264 return mh[3];
265 }
266
267
269 // functions for the parameters in the gaugino sector.
270
275 const double getMGl() const;
276
277
279 // functions for the parameters in the chargino sector.
280
285 gslpp::vector<double> getMch() const
286 {
287 return mch;
288 }
289
294 gslpp::matrix<gslpp::complex> getU() const
295 {
296 return U;
297 }
298
303 gslpp::matrix<gslpp::complex> getV() const
304 {
305 return V;
306 }
307
308
310 // functions for the parameters in the neutralino sector.
311
316 gslpp::vector<double> getMneu() const
317 {
318 return mneu;
319 }
320
325 gslpp::matrix<gslpp::complex> getN() const
326 {
327 return N;
328 }
329
330
332 // functions for the parameters in the squark sector.
333
334 gslpp::matrix<gslpp::complex> getMsQhat2() const
335 {
336 return msQhat2;
337 }
338
339 gslpp::matrix<gslpp::complex> getMsUhat2() const
340 {
341 return msUhat2;
342 }
343
344 gslpp::matrix<gslpp::complex> getMsDhat2() const
345 {
346 return msDhat2;
347 }
348
353 gslpp::matrix<gslpp::complex> getTUhat() const
354 {
355 return TUhat;
356 }
357
362 gslpp::matrix<gslpp::complex> getTDhat() const
363 {
364 return TDhat;
365 }
366
371 gslpp::vector<double> getMsu2() const
372 {
373 return m_su2;
374 }
375
380 gslpp::vector<double> getMsd2() const
381 {
382 return m_sd2;
383 }
384
390 gslpp::vector<double> getMsdresum2() const
391 {
392 return m_sdresum2;
393 }
394
399 gslpp::matrix<gslpp::complex> getRu() const
400 {
401 return Ru;
402 }
403
408 gslpp::matrix<gslpp::complex> getRd() const
409 {
410 return Rd;
411 }
412
418 gslpp::matrix<gslpp::complex> getRdresum() const
419 {
420 return Rdresum;
421 }
422
424 // functions for the parameters in the slepton sector.
425
426 gslpp::matrix<gslpp::complex> getMsLhat2() const
427 {
428 return msLhat2;
429 }
430
431 gslpp::matrix<gslpp::complex> getMsNhat2() const
432 {
433 return msNhat2;
434 }
435
436 gslpp::matrix<gslpp::complex> getMsEhat2() const
437 {
438 return msEhat2;
439 }
440
445 gslpp::matrix<gslpp::complex> getTNhat() const
446 {
447 return TNhat;
448 }
449
454 gslpp::matrix<gslpp::complex> getTEhat() const
455 {
456 return TEhat;
457 }
458
463 gslpp::vector<double> getMsn2() const
464 {
465 return m_sn2;
466 }
467
472 gslpp::vector<double> getMse2() const
473 {
474 return m_se2;
475 }
476
481 gslpp::matrix<gslpp::complex> getRn() const
482 {
483 return Rn;
484 }
485
490 gslpp::matrix<gslpp::complex> getRl() const
491 {
492 return Rl;
493 }
494
495
497 // functions for SM fermions
498
499 double Mq_Q(const quark q) const
500 {
501 switch (q) {
502 case UP:
503 case CHARM:
504 case TOP:
505 return mu_Q[(int)(q - UP)/2];
506 case DOWN:
507 case STRANGE:
508 case BOTTOM:
509 return md_Q[((int)(q - DOWN))/2];
510 default:
511 throw std::runtime_error("SUSY::Mq_Q(): Error!");
512 }
513 }
514
515 double Ml_Q(const lepton l) const
516 {
517 switch (l) {
518 case ELECTRON:
519 case MU:
520 case TAU:
521 return me_Q[(int)(l - ELECTRON)/2];
522 case NEUTRINO_1:
523 case NEUTRINO_2:
524 case NEUTRINO_3:
525 return mn_Q[((int)(l - NEUTRINO_1))/2];
526 default:
527 throw std::runtime_error("SUSY::Ml_Q(): Error!");
528 }
529 }
530
531
533 // EW precision observables
534
539 virtual const double Mw() const;
540
545 double Mw_dRho() const;
546
548
549protected:
555 virtual void setParameter(const std::string name , const double& value);
556 virtual void SetTanb(const double tanb);
557 virtual void computeYukawas();
558 virtual void SetSoftTerms();
559/* BEGIN: REMOVE FROM THE PACKAGE */
560#if FEYNHIGGS
562#endif
563/* END: REMOVE FROM THE PACKAGE */
564
566
567 // model parameters at scale Q
568 gslpp::complex m1, m2, muH;
570
571 // sinb and cosb computed with setTanb()
572 double sinb, cosb;
573
574 // soft-breaking parameters associated with squark and slepton mass terms and
575 // trilinear couplings in the SCKM basis, which will be set with SetSoftTerms()
576 gslpp::matrix<gslpp::complex> msQhat2, msUhat2, msDhat2, msLhat2, msNhat2, msEhat2;
577 gslpp::matrix<gslpp::complex> TUhat, TDhat, TNhat, TEhat;
578
579 // soft-breaking parameters computed with FeynHiggs
580 double mHp, mh[4];
581 gslpp::complex saeff;
582 gslpp::vector<double> mch, mneu;
583 gslpp::vector<double> m_su2, m_sd2, m_sdresum2, m_sn2, m_se2;
584
585 // rotation matrices
586 gslpp::matrix<gslpp::complex> U, V, N, Ru, Rd, Rdresum, Rn, Rl;
587
588 // quark and lepton masses at scale Q, computed in setYukawas()
589 double mu_Q[3], md_Q[3], me_Q[3], mn_Q[3];
590
592private:
596
597};
598
599#endif /* SUSY_H */
600
std::map< std::string, double > DPars
Definition: Minimal.cpp:11
A class for SUSY contributions to the EW precision observables.
Definition: EWSUSY.h:36
std::string name
The name of the model.
Definition: Model.h:285
quark
An enum type for quarks.
Definition: QCD.h:323
@ UP
Definition: QCD.h:324
@ BOTTOM
Definition: QCD.h:329
@ TOP
Definition: QCD.h:328
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
@ CHARM
Definition: QCD.h:326
lepton
An enum type for leptons.
Definition: QCD.h:310
@ NEUTRINO_2
Definition: QCD.h:313
@ NEUTRINO_1
Definition: QCD.h:311
@ MU
Definition: QCD.h:314
@ ELECTRON
Definition: QCD.h:312
@ NEUTRINO_3
Definition: QCD.h:315
@ TAU
Definition: QCD.h:316
A base class for SUSY models.
Definition: SUSY.h:33
gslpp::matrix< gslpp::complex > getMsLhat2() const
Definition: SUSY.h:426
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:272
gslpp::vector< double > getMsn2() const
Gets the sneutrino mass squared.
Definition: SUSY.h:463
gslpp::matrix< gslpp::complex > msDhat2
Definition: SUSY.h:576
virtual const double Mw() const
The W boson mass.
Definition: SUSY.cpp:402
gslpp::matrix< gslpp::complex > N
Definition: SUSY.h:586
gslpp::matrix< gslpp::complex > TEhat
Definition: SUSY.h:577
gslpp::vector< double > m_se2
Definition: SUSY.h:583
double v2() const
Definition: SUSY.cpp:384
gslpp::complex m1
Definition: SUSY.h:568
double Mw_dRho() const
The W boson mass in the approximation.
Definition: SUSY.cpp:408
gslpp::complex getMuH() const
Gets the parameter in the superpotential.
Definition: SUSY.h:167
gslpp::vector< double > m_sd2
Definition: SUSY.h:583
const double getMHp() const
Gets the charged Higgs mass.
Definition: SUSY.h:262
gslpp::matrix< gslpp::complex > getTDhat() const
Gets the trilinear-coupling matrix for down-type squarks.
Definition: SUSY.h:362
double mn_Q[3]
Definition: SUSY.h:589
gslpp::vector< double > mch
Definition: SUSY.h:582
gslpp::matrix< gslpp::complex > msUhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > getV() const
Gets the rotation matrix for positive charginos.
Definition: SUSY.h:303
gslpp::matrix< gslpp::complex > TUhat
Definition: SUSY.h:577
bool flag_h
Definition: SUSY.h:593
gslpp::vector< double > mneu
Definition: SUSY.h:582
gslpp::matrix< gslpp::complex > msQhat2
Definition: SUSY.h:576
static const std::string SUSYvars[NSUSYvars]
Definition: SUSY.h:37
virtual const double getMHl() const
Gets the light Higgs mass.
Definition: SUSY.h:235
gslpp::matrix< gslpp::complex > msNhat2
Definition: SUSY.h:576
const double getMHptree() const
Gets the charged-Higgs mass at tree-level.
Definition: SUSY.h:158
gslpp::matrix< gslpp::complex > getMsDhat2() const
Definition: SUSY.h:344
gslpp::vector< double > m_sn2
Definition: SUSY.h:583
bool IsFlag_ch() const
Definition: SUSY.h:108
bool IsFlag_h() const
Definition: SUSY.h:98
gslpp::matrix< gslpp::complex > getTEhat() const
Gets the trilinear-coupling matrix for charged sleptons.
Definition: SUSY.h:454
const double getMHh() const
Gets the heavy Higgs mass.
Definition: SUSY.h:244
bool IsFlag_ne() const
Definition: SUSY.h:113
double Q_SUSY
Definition: SUSY.h:569
gslpp::matrix< gslpp::complex > Rdresum
Definition: SUSY.h:586
gslpp::matrix< gslpp::complex > Rl
Definition: SUSY.h:586
double mh[4]
Definition: SUSY.h:580
const double getTanb() const
Gets .
Definition: SUSY.h:176
bool flag_g
Definition: SUSY.h:593
gslpp::vector< double > getMse2() const
Gets the charged slepton mass squared.
Definition: SUSY.h:472
SUSY()
A SUSY constructor.
Definition: SUSY.cpp:26
FeynHiggsWrapper * getMyFH() const
Definition: SUSY.h:67
virtual bool setFlag(const std::string, const bool)
Definition: SUSY.cpp:347
double tanb
Definition: SUSY.h:569
gslpp::vector< double > getMsu2() const
Gets the up-type squark mass squared.
Definition: SUSY.h:371
virtual void computeYukawas()
Definition: SUSY.cpp:294
const double getMGl() const
Gets the gluino mass obtained from FHGetPara().
Definition: SUSY.cpp:389
const double getQ_SUSY() const
Gets the scale of the input parameters.
Definition: SUSY.h:185
gslpp::complex saeff
Definition: SUSY.h:581
Matching< SUSYMatching, SUSY > SUSYM
Definition: SUSY.h:594
gslpp::matrix< gslpp::complex > msLhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > U
Definition: SUSY.h:586
virtual SUSYMatching & getMatching() const
Definition: SUSY.h:74
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of SUSY.
Definition: SUSY.cpp:246
virtual bool PreUpdate()
Definition: SUSY.cpp:93
bool flag_ne
Definition: SUSY.h:593
gslpp::matrix< gslpp::complex > getMsUhat2() const
Definition: SUSY.h:339
gslpp::matrix< gslpp::complex > getN() const
Gets the rotation matrix for neutralinos.
Definition: SUSY.h:325
gslpp::vector< double > m_su2
Definition: SUSY.h:583
gslpp::complex getSaeff() const
Gets the sine of the effective mixing angle for the CP-even neutral Higgs bosons.
Definition: SUSY.h:226
gslpp::vector< double > m_sdresum2
Definition: SUSY.h:583
SUSYSpectrum * mySUSYSpectrum
Definition: SUSY.h:565
const double getCosb() const
Gets .
Definition: SUSY.h:217
gslpp::complex getM1() const
Gets the bino mass.
Definition: SUSY.h:131
double mHptree
Definition: SUSY.h:569
gslpp::matrix< gslpp::complex > getRl() const
Gets the rotation matrix for charged sleptons.
Definition: SUSY.h:490
virtual void SetSoftTerms()
Definition: SUSY.cpp:337
gslpp::vector< double > getMsdresum2() const
Gets the down-type squark mass squared with the corrections in the off-diagonal entries.
Definition: SUSY.h:390
double Mq_Q(const quark q) const
Definition: SUSY.h:499
double mHp
Definition: SUSY.h:580
gslpp::matrix< gslpp::complex > getMsQhat2() const
Definition: SUSY.h:334
EWSUSY * myEWSUSY
Definition: SUSY.h:595
gslpp::complex muH
Definition: SUSY.h:568
gslpp::matrix< gslpp::complex > getRn() const
Gets the rotation matrix for sneutrinos.
Definition: SUSY.h:481
gslpp::matrix< gslpp::complex > Rn
Definition: SUSY.h:586
gslpp::matrix< gslpp::complex > Rd
Definition: SUSY.h:586
gslpp::matrix< gslpp::complex > getRu() const
Gets the rotation matrix for up-type squarks.
Definition: SUSY.h:399
gslpp::complex m2
Definition: SUSY.h:568
~SUSY()
A SUSY destructor.
Definition: SUSY.cpp:53
double mu_Q[3]
Definition: SUSY.h:589
bool IsFlag_FH() const
Definition: SUSY.h:118
const double getSinb() const
Gets .
Definition: SUSY.h:208
gslpp::vector< double > getMneu() const
Gets the neutralino masses.
Definition: SUSY.h:316
gslpp::matrix< gslpp::complex > getMsEhat2() const
Definition: SUSY.h:436
gslpp::matrix< gslpp::complex > getMsNhat2() const
Definition: SUSY.h:431
double md_Q[3]
Definition: SUSY.h:589
double Ml_Q(const lepton l) const
Definition: SUSY.h:515
gslpp::matrix< gslpp::complex > msEhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > V
Definition: SUSY.h:586
gslpp::complex getM2() const
Gets the wino mass.
Definition: SUSY.h:140
gslpp::vector< double > getMsd2() const
Gets the down-type squark mass squared.
Definition: SUSY.h:380
virtual bool PostUpdate()
Definition: SUSY.cpp:116
gslpp::vector< double > getMch() const
Gets the chargino masses.
Definition: SUSY.h:285
gslpp::matrix< gslpp::complex > TNhat
Definition: SUSY.h:577
virtual bool Update(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:100
gslpp::matrix< gslpp::complex > getRd() const
Gets the rotation matrix for down-type squarks.
Definition: SUSY.h:408
bool flag_fh
Definition: SUSY.h:593
double me_Q[3]
Definition: SUSY.h:589
friend class FeynHiggsWrapper
Definition: SUSY.h:44
gslpp::matrix< gslpp::complex > Ru
Definition: SUSY.h:586
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:88
gslpp::matrix< gslpp::complex > getTUhat() const
Gets the trilinear-coupling matrix for up-type squarks.
Definition: SUSY.h:353
const double getMHa() const
Gets the pseudo-scalar Higgs mass.
Definition: SUSY.h:253
FeynHiggsWrapper * myFH
Definition: SUSY.h:561
virtual bool InitializeModel()
Definition: SUSY.cpp:68
double m3
Definition: SUSY.h:569
gslpp::matrix< gslpp::complex > TDhat
Definition: SUSY.h:577
gslpp::matrix< gslpp::complex > getU() const
Gets the rotation matrix for negative charginos.
Definition: SUSY.h:294
gslpp::matrix< gslpp::complex > getTNhat() const
Gets the trilinear-coupling matrix for sneutrinos.
Definition: SUSY.h:445
static const int NSUSYvars
Definition: SUSY.h:36
double sinb
Definition: SUSY.h:572
virtual void SetTanb(const double tanb)
Definition: SUSY.cpp:283
double v1() const
Definition: SUSY.cpp:379
double cosb
Definition: SUSY.h:572
gslpp::matrix< gslpp::complex > getRdresum() const
Gets the rotation matrix for down-type squarks with the corrections in the off-diagonal entries.
Definition: SUSY.h:418
const double getM3() const
Gets the gluino mass.
Definition: SUSY.h:149
bool IsFlag_g() const
Definition: SUSY.h:103
bool flag_ch
Definition: SUSY.h:593
A class for the matching in the MSSM.
Definition: SUSYMatching.h:32
A class for calculating the Higgs and sparticle spectra at tree level.
Definition: SUSYSpectrum.h:23
A model class for the Standard Model.