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 class EWSUSY; // forward reference to EWSUSY class
16 class SUSYSpectrum; // forward reference to Spectrum class
17 
26 class SUSY: public StandardModel {
27 public:
28 
29  static const int NSUSYvars = 10;
30  static const std::string SUSYvars[NSUSYvars];
31 
35  friend class SUSYSpectrum;
36 
40  SUSY();
41 
45  ~SUSY();
47  // Initialization
48 
49  virtual bool InitializeModel();
50 
51 
52  virtual SUSYMatching& getMatching() const
53  {
54  return SUSYM.getObj();
55  }
56 
58  // Parameters
59 
60  virtual bool Init(const std::map<std::string, double>& DPars);
61 
62  virtual bool PreUpdate();
63 
64  virtual bool Update(const std::map<std::string, double>& DPars);
65 
66  virtual bool PostUpdate();
67 
68  virtual bool CheckParameters(const std::map<std::string, double>& DPars);
69 
70 
72  // Flags
73 
74  virtual bool setFlag(const std::string, const bool);
75 
76  bool IsFlag_h() const
77  {
78  return flag_h;
79  }
80 
81  bool IsFlag_g() const
82  {
83  return flag_g;
84  }
85 
86  bool IsFlag_ch() const
87  {
88  return flag_ch;
89  }
90 
91  bool IsFlag_ne() const
92  {
93  return flag_ne;
94  }
95 
96  bool IsFlag_FH() const
97  {
98  return flag_fh;
99  }
100 
101 
103  // functions for the input parameters of SUSY model
104 
110  {
111  return m1;
112  }
113 
119  {
120  return m2;
121  }
122 
127  double getM3() const
128  {
129  return m3;
130  }
131 
136  double getMHptree() const
137  {
138  return mHptree;
139  }
140 
146  {
147  return muH;
148  }
149 
154  double getTanb() const
155  {
156  return tanb;
157  }
158 
163  double getQ_SUSY() const
164  {
165  return Q_SUSY;
166  }
167 
168 
170  // functions for the parameters in the Higgs sector.
171 
175  double v1() const;
176 
180  double v2() const;
181 
186  double getSinb() const
187  {
188  return sinb;
189  }
190 
195  double getCosb() const
196  {
197  return cosb;
198  }
199 
205  {
206  return saeff;
207  }
208 
213  virtual double getMHl() const
214  {
215  return mh[0];
216  }
217 
222  double getMHh() const
223  {
224  return mh[1];
225  }
226 
231  double getMHa() const
232  {
233  return mh[2];
234  }
235 
240  double getMHp() const
241  {
242  return mh[3];
243  }
244 
245 
247  // functions for the parameters in the gaugino sector.
248 
253  double getMGl() const;
254 
255 
257  // functions for the parameters in the chargino sector.
258 
264  {
265  return mch;
266  }
267 
273  {
274  return U;
275  }
276 
282  {
283  return V;
284  }
285 
286 
288  // functions for the parameters in the neutralino sector.
289 
295  {
296  return mneu;
297  }
298 
304  {
305  return N;
306  }
307 
308 
310  // functions for the parameters in the squark sector.
311 
313  {
314  return msQhat2;
315  }
316 
318  {
319  return msUhat2;
320  }
321 
323  {
324  return msDhat2;
325  }
326 
332  {
333  return TUhat;
334  }
335 
341  {
342  return TDhat;
343  }
344 
350  {
351  return m_su2;
352  }
353 
359  {
360  return m_sd2;
361  }
362 
369  {
370  return m_sdresum2;
371  }
372 
378  {
379  return Ru;
380  }
381 
387  {
388  return Rd;
389  }
390 
397  {
398  return Rdresum;
399  }
400 
402  // functions for the parameters in the slepton sector.
403 
405  {
406  return msLhat2;
407  }
408 
410  {
411  return msNhat2;
412  }
413 
415  {
416  return msEhat2;
417  }
418 
424  {
425  return TNhat;
426  }
427 
433  {
434  return TEhat;
435  }
436 
442  {
443  return m_sn2;
444  }
445 
451  {
452  return m_se2;
453  }
454 
460  {
461  return Rn;
462  }
463 
469  {
470  return Rl;
471  }
472 
473 
475  // functions for SM fermions
476 
477  double Mq_Q(const quark q) const
478  {
479  switch (q) {
480  case UP:
481  case CHARM:
482  case TOP:
483  return mu_Q[(int)(q - UP)/2];
484  case DOWN:
485  case STRANGE:
486  case BOTTOM:
487  return md_Q[((int)(q - DOWN))/2];
488  default:
489  throw std::runtime_error("SUSY::Mq_Q(): Error!");
490  }
491  }
492 
493  double Ml_Q(const lepton l) const
494  {
495  switch (l) {
496  case ELECTRON:
497  case MU:
498  case TAU:
499  return me_Q[(int)(l - ELECTRON)/2];
500  case NEUTRINO_1:
501  case NEUTRINO_2:
502  case NEUTRINO_3:
503  return mn_Q[((int)(l - NEUTRINO_1))/2];
504  default:
505  throw std::runtime_error("SUSY::Ml_Q(): Error!");
506  }
507  }
508 
509 
511  // EW precision observables
512 
517  virtual double Mw() const;
518 
523  double Mw_dRho() const;
524 
526 
527 protected:
533  virtual void setParameter(const std::string name , const double& value);
534  virtual void SetTanb(const double tanb);
535  virtual void computeYukawas();
536  virtual void SetSoftTerms();
537 
539 
540  // model parameters at scale Q
542  double m3, mHptree, tanb, Q_SUSY;
543 
544  // sinb and cosb computed with setTanb()
545  double sinb, cosb;
546 
547  // soft-breaking parameters associated with squark and slepton mass terms and
548  // trilinear couplings in the SCKM basis, which will be set with SetSoftTerms()
551 
552  // soft-breaking parameters computed with FeynHiggs
553  double mHp, mh[4];
557 
558  // rotation matrices
560 
561  // quark and lepton masses at scale Q, computed in setYukawas()
562  double mu_Q[3], md_Q[3], me_Q[3], mn_Q[3];
563 
565 private:
569 
570 };
571 
572 #endif /* SUSY_H */
573 
QCD::TAU
Definition: QCD.h:316
SUSY::Update
virtual bool Update(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:84
SUSY::m_sn2
gslpp::vector< double > m_sn2
Definition: SUSY.h:556
QCD::NEUTRINO_3
Definition: QCD.h:315
SUSY::getM3
double getM3() const
Gets the gluino mass.
Definition: SUSY.h:127
SUSY::m_se2
gslpp::vector< double > m_se2
Definition: SUSY.h:556
SUSY::V
gslpp::matrix< gslpp::complex > V
Definition: SUSY.h:559
QCD::BOTTOM
Definition: QCD.h:329
SUSY::msNhat2
gslpp::matrix< gslpp::complex > msNhat2
Definition: SUSY.h:549
SUSY::flag_g
bool flag_g
Definition: SUSY.h:566
SUSY::TNhat
gslpp::matrix< gslpp::complex > TNhat
Definition: SUSY.h:550
SUSY::getTDhat
gslpp::matrix< gslpp::complex > getTDhat() const
Gets the trilinear-coupling matrix for down-type squarks.
Definition: SUSY.h:340
SUSY::Init
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:72
SUSY::Ml_Q
double Ml_Q(const lepton l) const
Definition: SUSY.h:493
SUSY::msLhat2
gslpp::matrix< gslpp::complex > msLhat2
Definition: SUSY.h:549
SUSY::IsFlag_g
bool IsFlag_g() const
Definition: SUSY.h:81
SUSY::getMHp
double getMHp() const
Gets the charged Higgs mass.
Definition: SUSY.h:240
SUSY::getMsUhat2
gslpp::matrix< gslpp::complex > getMsUhat2() const
Definition: SUSY.h:317
SUSY::tanb
double tanb
Definition: SUSY.h:542
SUSY::getMHh
double getMHh() const
Gets the heavy Higgs mass.
Definition: SUSY.h:222
SUSY::getU
gslpp::matrix< gslpp::complex > getU() const
Gets the rotation matrix for negative charginos.
Definition: SUSY.h:272
SUSY::msQhat2
gslpp::matrix< gslpp::complex > msQhat2
Definition: SUSY.h:549
SUSY::getMsLhat2
gslpp::matrix< gslpp::complex > getMsLhat2() const
Definition: SUSY.h:404
SUSY::m3
double m3
Definition: SUSY.h:542
SUSY::SUSYvars
static const std::string SUSYvars[NSUSYvars]
Definition: SUSY.h:30
SUSY::getMHptree
double getMHptree() const
Gets the charged-Higgs mass at tree-level.
Definition: SUSY.h:136
SUSY::getSinb
double getSinb() const
Gets .
Definition: SUSY.h:186
SUSY::getM2
gslpp::complex getM2() const
Gets the wino mass.
Definition: SUSY.h:118
Matching::getObj
T & getObj()
Definition: Matching.h:14
SUSY::mu_Q
double mu_Q[3]
Definition: SUSY.h:562
SUSY::SUSY
SUSY()
A SUSY constructor.
Definition: SUSY.cpp:21
SUSY::NSUSYvars
static const int NSUSYvars
Definition: SUSY.h:29
QCD::UP
Definition: QCD.h:324
SUSY::saeff
gslpp::complex saeff
Definition: SUSY.h:554
SUSY::sinb
double sinb
Definition: SUSY.h:545
StandardModel.h
gslpp.h
SUSY::msDhat2
gslpp::matrix< gslpp::complex > msDhat2
Definition: SUSY.h:549
SUSYSpectrum
A class for calculating the Higgs and sparticle spectra at tree level.
Definition: SUSYSpectrum.h:23
QCD::CHARM
Definition: QCD.h:326
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
QCD::NEUTRINO_2
Definition: QCD.h:313
gslpp::matrix< gslpp::complex >
QCD::ELECTRON
Definition: QCD.h:312
SUSY::getMsQhat2
gslpp::matrix< gslpp::complex > getMsQhat2() const
Definition: SUSY.h:312
SUSY::Mw
virtual double Mw() const
The W boson mass.
Definition: SUSY.cpp:374
SUSY::flag_h
bool flag_h
Definition: SUSY.h:566
SUSY::cosb
double cosb
Definition: SUSY.h:545
SUSY::TEhat
gslpp::matrix< gslpp::complex > TEhat
Definition: SUSY.h:550
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
SUSY::mch
gslpp::vector< double > mch
Definition: SUSY.h:555
SUSY::PostUpdate
virtual bool PostUpdate()
Definition: SUSY.cpp:100
SUSY::v1
double v1() const
Definition: SUSY.cpp:356
SUSY::getN
gslpp::matrix< gslpp::complex > getN() const
Gets the rotation matrix for neutralinos.
Definition: SUSY.h:303
SUSY::getSaeff
gslpp::complex getSaeff() const
Gets the sine of the effective mixing angle for the CP-even neutral Higgs bosons.
Definition: SUSY.h:204
SUSY::m2
gslpp::complex m2
Definition: SUSY.h:541
SUSY::m_sdresum2
gslpp::vector< double > m_sdresum2
Definition: SUSY.h:556
SUSY::getMGl
double getMGl() const
Gets the gluino mass obtained from FHGetPara().
Definition: SUSY.cpp:366
SUSY::Rd
gslpp::matrix< gslpp::complex > Rd
Definition: SUSY.h:559
SUSY::getRn
gslpp::matrix< gslpp::complex > getRn() const
Gets the rotation matrix for sneutrinos.
Definition: SUSY.h:459
SUSY::Rdresum
gslpp::matrix< gslpp::complex > Rdresum
Definition: SUSY.h:559
SUSY::Ru
gslpp::matrix< gslpp::complex > Ru
Definition: SUSY.h:559
SUSY::flag_ch
bool flag_ch
Definition: SUSY.h:566
SUSY::mHptree
double mHptree
Definition: SUSY.h:542
SUSY::IsFlag_FH
bool IsFlag_FH() const
Definition: SUSY.h:96
SUSY
A base class for SUSY models.
Definition: SUSY.h:26
SUSY::me_Q
double me_Q[3]
Definition: SUSY.h:562
QCD::TOP
Definition: QCD.h:328
SUSY::getMatching
virtual SUSYMatching & getMatching() const
Definition: SUSY.h:52
SUSY::PreUpdate
virtual bool PreUpdate()
Definition: SUSY.cpp:77
SUSY::Q_SUSY
double Q_SUSY
Definition: SUSY.h:542
SUSY::U
gslpp::matrix< gslpp::complex > U
Definition: SUSY.h:559
SUSY::getMsDhat2
gslpp::matrix< gslpp::complex > getMsDhat2() const
Definition: SUSY.h:322
SUSY::myEWSUSY
EWSUSY * myEWSUSY
Definition: SUSY.h:568
SUSY::getMch
gslpp::vector< double > getMch() const
Gets the chargino masses.
Definition: SUSY.h:263
SUSY::~SUSY
~SUSY()
A SUSY destructor.
Definition: SUSY.cpp:48
SUSY::v2
double v2() const
Definition: SUSY.cpp:361
SUSY::getTEhat
gslpp::matrix< gslpp::complex > getTEhat() const
Gets the trilinear-coupling matrix for charged sleptons.
Definition: SUSY.h:432
SUSY::msEhat2
gslpp::matrix< gslpp::complex > msEhat2
Definition: SUSY.h:549
SUSY::getMsdresum2
gslpp::vector< double > getMsdresum2() const
Gets the down-type squark mass squared with the corrections in the off-diagonal entries.
Definition: SUSY.h:368
SUSY::flag_fh
bool flag_fh
Definition: SUSY.h:566
SUSY::flag_ne
bool flag_ne
Definition: SUSY.h:566
SUSY::getM1
gslpp::complex getM1() const
Gets the bino mass.
Definition: SUSY.h:109
SUSY::m_sd2
gslpp::vector< double > m_sd2
Definition: SUSY.h:556
SUSY::getRd
gslpp::matrix< gslpp::complex > getRd() const
Gets the rotation matrix for down-type squarks.
Definition: SUSY.h:386
QCD::quark
quark
An enum type for quarks.
Definition: QCD.h:323
SUSY::md_Q
double md_Q[3]
Definition: SUSY.h:562
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
SUSY::mh
double mh[4]
Definition: SUSY.h:553
SUSY::getTanb
double getTanb() const
Gets .
Definition: SUSY.h:154
SUSY::TDhat
gslpp::matrix< gslpp::complex > TDhat
Definition: SUSY.h:550
Matching< SUSYMatching, SUSY >
SUSY::SetTanb
virtual void SetTanb(const double tanb)
Definition: SUSY.cpp:260
SUSY::mneu
gslpp::vector< double > mneu
Definition: SUSY.h:555
SUSY::m_su2
gslpp::vector< double > m_su2
Definition: SUSY.h:556
SUSY::getMuH
gslpp::complex getMuH() const
Gets the parameter in the superpotential.
Definition: SUSY.h:145
SUSY::Mq_Q
double Mq_Q(const quark q) const
Definition: SUSY.h:477
SUSY::Rl
gslpp::matrix< gslpp::complex > Rl
Definition: SUSY.h:559
SUSY::TUhat
gslpp::matrix< gslpp::complex > TUhat
Definition: SUSY.h:550
SUSY::getV
gslpp::matrix< gslpp::complex > getV() const
Gets the rotation matrix for positive charginos.
Definition: SUSY.h:281
SUSY::getRdresum
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:396
SUSY::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:249
SUSY::mn_Q
double mn_Q[3]
Definition: SUSY.h:562
SUSY::Mw_dRho
double Mw_dRho() const
The W boson mass in the approximation.
Definition: SUSY.cpp:380
SUSY::getMsEhat2
gslpp::matrix< gslpp::complex > getMsEhat2() const
Definition: SUSY.h:414
SUSY::getMse2
gslpp::vector< double > getMse2() const
Gets the charged slepton mass squared.
Definition: SUSY.h:450
SUSY::m1
gslpp::complex m1
Definition: SUSY.h:541
SUSYMatching.h
SUSY::getRu
gslpp::matrix< gslpp::complex > getRu() const
Gets the rotation matrix for up-type squarks.
Definition: SUSY.h:377
SUSY::setFlag
virtual bool setFlag(const std::string, const bool)
Definition: SUSY.cpp:324
SUSY::mHp
double mHp
Definition: SUSY.h:553
QCD::STRANGE
Definition: QCD.h:327
SUSY::getMsNhat2
gslpp::matrix< gslpp::complex > getMsNhat2() const
Definition: SUSY.h:409
SUSY::Rn
gslpp::matrix< gslpp::complex > Rn
Definition: SUSY.h:559
SUSYMatching
A class for the matching in the MSSM.
Definition: SUSYMatching.h:32
SUSY::InitializeModel
virtual bool InitializeModel()
Definition: SUSY.cpp:58
SUSY::getMHl
virtual double getMHl() const
Gets the light Higgs mass.
Definition: SUSY.h:213
SUSY::getMsn2
gslpp::vector< double > getMsn2() const
Gets the sneutrino mass squared.
Definition: SUSY.h:441
SUSY::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of SUSY.
Definition: SUSY.cpp:223
SUSY::getQ_SUSY
double getQ_SUSY() const
Gets the scale of the input parameters.
Definition: SUSY.h:163
Model::name
std::string name
The name of the model.
Definition: Model.h:275
SUSY::N
gslpp::matrix< gslpp::complex > N
Definition: SUSY.h:559
SUSY::muH
gslpp::complex muH
Definition: SUSY.h:541
SUSY::computeYukawas
virtual void computeYukawas()
Definition: SUSY.cpp:271
SUSY::msUhat2
gslpp::matrix< gslpp::complex > msUhat2
Definition: SUSY.h:549
SUSY::IsFlag_h
bool IsFlag_h() const
Definition: SUSY.h:76
SUSY::getMsd2
gslpp::vector< double > getMsd2() const
Gets the down-type squark mass squared.
Definition: SUSY.h:358
SUSY::SUSYM
Matching< SUSYMatching, SUSY > SUSYM
Definition: SUSY.h:567
SUSY::mySUSYSpectrum
SUSYSpectrum * mySUSYSpectrum
Definition: SUSY.h:538
SUSY::getMneu
gslpp::vector< double > getMneu() const
Gets the neutralino masses.
Definition: SUSY.h:294
SUSY::getCosb
double getCosb() const
Gets .
Definition: SUSY.h:195
SUSY::getTUhat
gslpp::matrix< gslpp::complex > getTUhat() const
Gets the trilinear-coupling matrix for up-type squarks.
Definition: SUSY.h:331
QCD::DOWN
Definition: QCD.h:325
QCD::NEUTRINO_1
Definition: QCD.h:311
SUSY::getRl
gslpp::matrix< gslpp::complex > getRl() const
Gets the rotation matrix for charged sleptons.
Definition: SUSY.h:468
SUSY::getTNhat
gslpp::matrix< gslpp::complex > getTNhat() const
Gets the trilinear-coupling matrix for sneutrinos.
Definition: SUSY.h:423
SUSY::IsFlag_ch
bool IsFlag_ch() const
Definition: SUSY.h:86
SUSY::getMsu2
gslpp::vector< double > getMsu2() const
Gets the up-type squark mass squared.
Definition: SUSY.h:349
QCD::MU
Definition: QCD.h:314
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310
SUSY::SetSoftTerms
virtual void SetSoftTerms()
Definition: SUSY.cpp:314
SUSY::getMHa
double getMHa() const
Gets the pseudo-scalar Higgs mass.
Definition: SUSY.h:231
SUSY::IsFlag_ne
bool IsFlag_ne() const
Definition: SUSY.h:91
EWSUSY
A class for SUSY contributions to the EW precision observables.
Definition: EWSUSY.h:36