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 
89 class SUSY: public StandardModel {
90 public:
91 
92  static const int NSUSYvars = 10;
93  static const std::string SUSYvars[NSUSYvars];
94 
98  friend class SUSYSpectrum;
99 
103  SUSY();
104 
108  ~SUSY();
110  // Initialization
111 
118  virtual bool InitializeModel();
119 
124  virtual SUSYMatching& getMatching() const
125  {
126  return SUSYM.getObj();
127  }
128 
130  // Parameters
131 
136  virtual bool Init(const std::map<std::string, double>& DPars);
137 
142  virtual bool PreUpdate();
143 
150  virtual bool Update(const std::map<std::string, double>& DPars);
151 
158  virtual bool PostUpdate();
159 
167  virtual bool CheckParameters(const std::map<std::string, double>& DPars);
168 
169 
171  // Flags
172 
179  virtual bool setFlag(const std::string, const bool);
180 
186  bool IsFlag_h() const
187  {
188  return flag_h;
189  }
190 
191 
193  // functions for the input parameters of SUSY model
194 
199  gslpp::complex getM1() const
200  {
201  return m1;
202  }
203 
208  gslpp::complex getM2() const
209  {
210  return m2;
211  }
212 
217  double getM3() const
218  {
219  return m3;
220  }
221 
226  double getMHptree() const
227  {
228  return mHptree;
229  }
230 
235  gslpp::complex getMuH() const
236  {
237  return muH;
238  }
239 
244  double getTanb() const
245  {
246  return tanb;
247  }
248 
253  double getQ_SUSY() const
254  {
255  return Q_SUSY;
256  }
257 
258 
260  // functions for the parameters in the Higgs sector.
261 
265  double v1() const;
266 
270  double v2() const;
271 
276  double getSinb() const
277  {
278  return sinb;
279  }
280 
285  double getCosb() const
286  {
287  return cosb;
288  }
289 
294  gslpp::complex getSaeff() const
295  {
296  return saeff;
297  }
298 
303  virtual double getMHl() const
304  {
305  return mh[0];
306  }
307 
312  double getMHh() const
313  {
314  return mh[1];
315  }
316 
321  double getMHa() const
322  {
323  return mh[2];
324  }
325 
330  double getMHp() const
331  {
332  return mh[3];
333  }
334 
335 
337  // functions for the parameters in the gaugino sector.
338 
343  double getMGl() const;
344 
345 
347  // functions for the parameters in the chargino sector.
348 
354  {
355  return mch;
356  }
357 
363  {
364  return U;
365  }
366 
372  {
373  return V;
374  }
375 
376 
378  // functions for the parameters in the neutralino sector.
379 
385  {
386  return mneu;
387  }
388 
394  {
395  return N;
396  }
397 
398 
400  // functions for the parameters in the squark sector.
401 
402  gslpp::matrix<gslpp::complex> getMsQhat2() const
403  {
404  return msQhat2;
405  }
406 
407  gslpp::matrix<gslpp::complex> getMsUhat2() const
408  {
409  return msUhat2;
410  }
411 
412  gslpp::matrix<gslpp::complex> getMsDhat2() const
413  {
414  return msDhat2;
415  }
416 
421  gslpp::matrix<gslpp::complex> getTUhat() const
422  {
423  return TUhat;
424  }
425 
430  gslpp::matrix<gslpp::complex> getTDhat() const
431  {
432  return TDhat;
433  }
434 
440  {
441  return m_su2;
442  }
443 
449  {
450  return m_sd2;
451  }
452 
458  gslpp::vector<double> getMsdresum2() const
459  {
460  return m_sdresum2;
461  }
462 
468  {
469  return Ru;
470  }
471 
477  {
478  return Rd;
479  }
480 
486  gslpp::matrix<gslpp::complex> getRdresum() const
487  {
488  return Rdresum;
489  }
490 
492  // functions for the parameters in the slepton sector.
493 
494  gslpp::matrix<gslpp::complex> getMsLhat2() const
495  {
496  return msLhat2;
497  }
498 
499  gslpp::matrix<gslpp::complex> getMsNhat2() const
500  {
501  return msNhat2;
502  }
503 
504  gslpp::matrix<gslpp::complex> getMsEhat2() const
505  {
506  return msEhat2;
507  }
508 
513  gslpp::matrix<gslpp::complex> getTNhat() const
514  {
515  return TNhat;
516  }
517 
522  gslpp::matrix<gslpp::complex> getTEhat() const
523  {
524  return TEhat;
525  }
526 
532  {
533  return m_sn2;
534  }
535 
541  {
542  return m_se2;
543  }
544 
550  {
551  return Rn;
552  }
553 
559  {
560  return Rl;
561  }
562 
563 
565  // functions for SM fermions
566 
567  double Mq_Q(const quark q) const
568  {
569  switch (q) {
570  case UP:
571  case CHARM:
572  case TOP:
573  return mu_Q[(int)(q - UP)/2];
574  case DOWN:
575  case STRANGE:
576  case BOTTOM:
577  return md_Q[((int)(q - DOWN))/2];
578  default:
579  throw std::runtime_error("SUSY::Mq_Q(): Error!");
580  }
581  }
582 
583  double Ml_Q(const lepton l) const
584  {
585  switch (l) {
586  case ELECTRON:
587  case MU:
588  case TAU:
589  return me_Q[(int)(l - ELECTRON)/2];
590  case NEUTRINO_1:
591  case NEUTRINO_2:
592  case NEUTRINO_3:
593  return mn_Q[((int)(l - NEUTRINO_1))/2];
594  default:
595  throw std::runtime_error("SUSY::Ml_Q(): Error!");
596  }
597  }
598 
599 
601  // EW precision observables
602 
607  virtual double Mw() const;
608 
613  double Mw_dRho() const;
614 
616 
617 protected:
623  virtual void setParameter(const std::string name , const double& value);
624  virtual void SetTanb(const double tanb);
625  virtual void computeYukawas();
626  virtual void SetSoftTerms();
627 
628  SUSYSpectrum* mySUSYSpectrum;
629 
630  // model parameters at scale Q
631  gslpp::complex m1, m2, muH;
632  double m3, mHptree, tanb, Q_SUSY;
633 
634  // sinb and cosb computed with setTanb()
635  double sinb, cosb;
636 
637  // soft-breaking parameters associated with squark and slepton mass terms and
638  // trilinear couplings in the SCKM basis, which will be set with SetSoftTerms()
639  gslpp::matrix<gslpp::complex> msQhat2, msUhat2, msDhat2, msLhat2, msNhat2, msEhat2;
640  gslpp::matrix<gslpp::complex> TUhat, TDhat, TNhat, TEhat;
641 
642  // soft-breaking parameters computed with FeynHiggs
643  double mHp, mh[4];
647 
648  // rotation matrices
649  gslpp::matrix<gslpp::complex> U, V, N, Ru, Rd, Rdresum, Rn, Rl;
650 
651  // quark and lepton masses at scale Q, computed in setYukawas()
652  double mu_Q[3], md_Q[3], me_Q[3], mn_Q[3];
653 
655 private:
656  bool flag_h;
657  mutable Matching<SUSYMatching,SUSY> SUSYM;
658  EWSUSY* myEWSUSY;
659 
660 };
661 
662 #endif /* SUSY_H */
663 
QCD::TAU
Definition: QCD.h:316
QCD::NEUTRINO_3
Definition: QCD.h:315
SUSYSpectrum::mneu
gslpp::vector< double > mneu
Definition: SUSYSpectrum.h:330
StandardModel::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
Definition: StandardModel.cpp:231
QCD::BOTTOM
Definition: QCD.h:329
Mw_dRho
A class for the W-boson mass in the delta rho approximation.
Definition: Mw_dRho.h:24
SUSYSpectrum::Rn
gslpp::matrix< gslpp::complex > Rn
Definition: SUSYSpectrum.h:335
SUSYSpectrum::mch
gslpp::vector< double > mch
Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mass-squared eigenvalues.
Definition: SUSYSpectrum.h:330
QCD::UP
Definition: QCD.h:324
SUSYSpectrum::m_se2
gslpp::vector< double > m_se2
Definition: SUSYSpectrum.h:330
SUSYSpectrum::getMHa
double getMHa() const
Gets the pseudo-scalar Higgs mass.
Definition: SUSYSpectrum.h:103
StandardModel.h
StandardModel::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
Definition: StandardModel.cpp:313
gslpp.h
SUSYSpectrum::Rl
gslpp::matrix< gslpp::complex > Rl
Definition: SUSYSpectrum.h:335
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
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
SUSYSpectrum::getMsn2
gslpp::vector< double > getMsn2() const
Gets the Sneutrino spectrum at tree-level.
Definition: SUSYSpectrum.h:265
SUSYSpectrum::saeff
gslpp::complex saeff
Stores the Sine of tree-level CP-even mixing angle.
Definition: SUSYSpectrum.h:310
SUSYSpectrum::getMHh
double getMHh() const
Gets the heavy Higgs mass.
Definition: SUSYSpectrum.h:94
StandardModel::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
Definition: StandardModel.cpp:378
SUSYSpectrum::getV
gslpp::matrix< gslpp::complex > getV() const
Gets the Chargino mixing matrix V.
Definition: SUSYSpectrum.h:150
SUSYSpectrum::m_su2
gslpp::vector< double > m_su2
Definition: SUSYSpectrum.h:330
SUSYSpectrum::Ru
gslpp::matrix< gslpp::complex > Ru
Stores the tree-level Up-squark, Down-squark, Sneutrino, and Slepton mixing matrices.
Definition: SUSYSpectrum.h:335
StandardModel::Init
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
Definition: StandardModel.cpp:159
SUSYSpectrum::mh
double mh[4]
Stores the tree-level Higgs spectrum.
Definition: SUSYSpectrum.h:305
SUSYSpectrum::getMHp
double getMHp() const
Gets the charged Higgs mass.
Definition: SUSYSpectrum.h:112
StandardModel::PreUpdate
virtual bool PreUpdate()
The pre-update method for StandardModel.
Definition: StandardModel.cpp:172
QCD::TOP
Definition: QCD.h:328
SUSYSpectrum::getU
gslpp::matrix< gslpp::complex > getU() const
Gets the Chargino mixing matrix U.
Definition: SUSYSpectrum.h:141
StandardModel::PostUpdate
virtual bool PostUpdate()
The post-update method for StandardModel.
Definition: StandardModel.cpp:199
SUSYSpectrum::getRl
gslpp::matrix< gslpp::complex > getRl() const
Gets the Slepton mixing matrix.
Definition: SUSYSpectrum.h:292
SUSYSpectrum::getRd
gslpp::matrix< gslpp::complex > getRd() const
Gets the Down-squark mixing matrix.
Definition: SUSYSpectrum.h:235
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
SUSYSpectrum::m_sn2
gslpp::vector< double > m_sn2
Definition: SUSYSpectrum.h:330
SUSYSpectrum::U
gslpp::matrix< gslpp::complex > U
Stores the tree-level Chargino and Neutralino mixing matrices.
Definition: SUSYSpectrum.h:320
SUSYSpectrum::getMse2
gslpp::vector< double > getMse2() const
Gets the Slepton spectrum at tree-level.
Definition: SUSYSpectrum.h:274
SUSYSpectrum::N
gslpp::matrix< gslpp::complex > N
Definition: SUSYSpectrum.h:320
SUSYSpectrum::getMsd2
gslpp::vector< double > getMsd2() const
Gets the Down-squark spectrum at tree-level.
Definition: SUSYSpectrum.h:217
StandardModel::InitializeModel
virtual bool InitializeModel()
A method to initialize the model.
Definition: StandardModel.cpp:140
Matching
Definition: Matching.h:11
SUSYSpectrum::getRu
gslpp::matrix< gslpp::complex > getRu() const
Gets the Up-squark mixing matrix.
Definition: SUSYSpectrum.h:226
SUSYSpectrum::V
gslpp::matrix< gslpp::complex > V
Definition: SUSYSpectrum.h:320
SUSYSpectrum::getRn
gslpp::matrix< gslpp::complex > getRn() const
Gets the Sneutrino mixing matrix.
Definition: SUSYSpectrum.h:283
StandardModel::computeYukawas
virtual void computeYukawas()
The method to compute the Yukawa matrices.
Definition: StandardModel.cpp:345
SUSYSpectrum::getMneu
gslpp::vector< double > getMneu() const
Gets the Neutralino spectrum at tree-level.
Definition: SUSYSpectrum.h:170
StandardModel::Update
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for StandardModel.
Definition: StandardModel.cpp:183
SUSYSpectrum::getN
gslpp::matrix< gslpp::complex > getN() const
Gets the Neutralino mixing matrix.
Definition: SUSYSpectrum.h:179
SUSYMatching.h
SUSYSpectrum::Rd
gslpp::matrix< gslpp::complex > Rd
Definition: SUSYSpectrum.h:335
StandardModel::getMatching
virtual StandardModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
Definition: StandardModel.h:949
QCD::STRANGE
Definition: QCD.h:327
SUSYSpectrum::m_sd2
gslpp::vector< double > m_sd2
Definition: SUSYSpectrum.h:330
SUSYMatching
A class for the matching in the MSSM.
Definition: SUSYMatching.h:31
StandardModel::getMHl
virtual double getMHl() const
A get method to retrieve the Higgs mass .
Definition: StandardModel.h:765
StandardModel::Mw
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
Definition: StandardModel.cpp:944
SUSYSpectrum::getMsu2
gslpp::vector< double > getMsu2() const
Gets the Up-squark spectrum at tree-level.
Definition: SUSYSpectrum.h:208
QCD::DOWN
Definition: QCD.h:325
SUSYSpectrum::getMch
gslpp::vector< double > getMch() const
Gets the Chargino spectrum at tree-level.
Definition: SUSYSpectrum.h:132
QCD::NEUTRINO_1
Definition: QCD.h:311
QCD::MU
Definition: QCD.h:314
EWSUSY
A class for SUSY contributions to the EW precision observables.
Definition: EWSUSY.h:36