SUSY.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  * All rights reserved.
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 SUSYSpectrum; // forward reference to Spectrum class
16 
25 class SUSY: public StandardModel {
26 public:
27 
28  static const int NSUSYvars = 10;
29  static const std::string SUSYvars[NSUSYvars];
30 
34  friend class SUSYSpectrum;
35  //friend class FeynHiggsWrapper;
36 
40  SUSY();
41 
45  ~SUSY();
47  // Initialization
48 
49  virtual bool InitializeModel();
50 
51  virtual SUSYMatching* getMyMatching() const
52  {
53  return mySUSYMatching;
54  }
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 
77  // functions for the input parameters of SUSY model
78 
84  {
85  return m1;
86  }
87 
93  {
94  return m2;
95  }
96 
101  double getM3() const
102  {
103  return m3;
104  }
105 
110  double getMHptree() const
111  {
112  return mHptree;
113  }
114 
120  {
121  return muH;
122  }
123 
128  double getTanb() const
129  {
130  return tanb;
131  }
132 
137  double getQ_SUSY() const
138  {
139  return Q_SUSY;
140  }
141 
142 
144  // functions for the parameters in the Higgs sector.
145 
149  double v1() const;
150 
154  double v2() const;
155 
160  double getSinb() const
161  {
162  return sinb;
163  }
164 
169  double getCosb() const
170  {
171  return cosb;
172  }
173 
179  {
180  return saeff;
181  }
182 
187  virtual double getMHl() const
188  {
189  return mh[0];
190  }
191 
196  double getMHh() const
197  {
198  return mh[1];
199  }
200 
205  double getMHa() const
206  {
207  return mh[2];
208  }
209 
214  double getMHp() const
215  {
216  return mh[3];
217  }
218 
219 
221  // functions for the parameters in the gaugino sector.
222 
227  double getMGl() const;
228 
229 
231  // functions for the parameters in the chargino sector.
232 
238  {
239  return mch;
240  }
241 
247  {
248  return U;
249  }
250 
256  {
257  return V;
258  }
259 
260 
262  // functions for the parameters in the neutralino sector.
263 
269  {
270  return mneu;
271  }
272 
278  {
279  return N;
280  }
281 
282 
284  // functions for the parameters in the squark sector.
285 
287  {
288  return msQhat2;
289  }
290 
292  {
293  return msUhat2;
294  }
295 
297  {
298  return msDhat2;
299  }
300 
306  {
307  return TUhat;
308  }
309 
315  {
316  return TDhat;
317  }
318 
324  {
325  return m_su2;
326  }
327 
333  {
334  return m_sd2;
335  }
336 
343  {
344  return m_sdresum2;
345  }
346 
352  {
353  return Ru;
354  }
355 
361  {
362  return Rd;
363  }
364 
371  {
372  return Rdresum;
373  }
374 
376  // functions for the parameters in the slepton sector.
377 
379  {
380  return msLhat2;
381  }
382 
384  {
385  return msNhat2;
386  }
387 
389  {
390  return msEhat2;
391  }
392 
398  {
399  return TNhat;
400  }
401 
407  {
408  return TEhat;
409  }
410 
416  {
417  return m_sn2;
418  }
419 
425  {
426  return m_se2;
427  }
428 
434  {
435  return Rn;
436  }
437 
443  {
444  return Rl;
445  }
446 
447 
449  // functions for SM fermions
450 
451  double Mq_Q(const quark q) const
452  {
453  switch (q) {
454  case UP:
455  case CHARM:
456  case TOP:
457  return mu_Q[(int)(q - UP)/2];
458  case DOWN:
459  case STRANGE:
460  case BOTTOM:
461  return md_Q[((int)(q - DOWN))/2];
462  default:
463  throw std::runtime_error("SUSY::Mq_Q(): Error!");
464  }
465  }
466 
467  double Ml_Q(const lepton l) const
468  {
469  switch (l) {
470  case ELECTRON:
471  case MU:
472  case TAU:
473  return me_Q[(int)(l - ELECTRON)/2];
474  case NEUTRINO_1:
475  case NEUTRINO_2:
476  case NEUTRINO_3:
477  return mn_Q[((int)(l - NEUTRINO_1))/2];
478  default:
479  throw std::runtime_error("SUSY::Ml_Q(): Error!");
480  }
481  }
482 
483 protected:
484  virtual void setParameter(const std::string name , const double& value);
485  virtual void SetTanb(const double tanb);
486  virtual void computeYukawas();
487 
489 
490  // model parameters at scale Q
492  double m3, mHptree, tanb, Q_SUSY;
493 
494  // sinb and cosb computed with setTanb()
495  double sinb, cosb;
496 
497  // soft-breaking parameters associated with squark and slepton mass terms and
498  // trilinear couplings in the SCKM basis, which will be set with SetSoftTerms()
501 
502  // soft-breaking parameters computed with FeynHiggs
503  double mHp, mh[4];
507 
508  // rotation matrices
510 
511  // quark and lepton masses at scale Q, computed in setYukawas()
512  double mu_Q[3], md_Q[3], me_Q[3], mn_Q[3];
513 
515 private:
518 
519 };
520 
521 #endif /* SUSY_H */
522 
gslpp::matrix< gslpp::complex > getMsLhat2() const
Definition: SUSY.h:378
double sinb
Definition: SUSY.h:495
gslpp::matrix< gslpp::complex > msUhat2
Definition: SUSY.h:499
double mHp
Definition: SUSY.h:503
gslpp::matrix< gslpp::complex > Rdresum
Definition: SUSY.h:509
double getM3() const
Gets the gluino mass.
Definition: SUSY.h:101
gslpp::complex saeff
Definition: SUSY.h:504
double md_Q[3]
Definition: SUSY.h:512
gslpp::matrix< gslpp::complex > getMsEhat2() const
Definition: SUSY.h:388
gslpp::vector< double > m_se2
Definition: SUSY.h:506
gslpp::matrix< gslpp::complex > msDhat2
Definition: SUSY.h:499
virtual bool InitializeModel()
Definition: SUSY.cpp:49
double Ml_Q(const lepton l) const
Definition: SUSY.h:467
double m3
Definition: SUSY.h:492
gslpp::vector< double > getMsd2() const
Gets the down-type squark mass squared.
Definition: SUSY.h:332
quark
An enum type for quarks.
Definition: QCD.h:730
gslpp::matrix< gslpp::complex > TEhat
Definition: SUSY.h:500
gslpp::matrix< gslpp::complex > Ru
Definition: SUSY.h:509
gslpp::matrix< gslpp::complex > getTUhat() const
Gets the trilinear-coupling matrix for up-type squarks.
Definition: SUSY.h:305
virtual void setParameter(const std::string name, const double &value)
Definition: SUSY.cpp:168
gslpp::vector< double > mneu
Definition: SUSY.h:505
gslpp::matrix< gslpp::complex > getN() const
Gets the rotation matrix for neutralinos.
Definition: SUSY.h:277
double v1() const
Definition: SUSY.cpp:268
gslpp::matrix< gslpp::complex > getMsNhat2() const
Definition: SUSY.h:383
gslpp::matrix< gslpp::complex > V
Definition: SUSY.h:509
bool flag_ne
Definition: SUSY.h:516
gslpp::matrix< gslpp::complex > TDhat
Definition: SUSY.h:500
bool flag_h
Definition: SUSY.h:516
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:370
SUSYMatching * mySUSYMatching
Definition: SUSY.h:517
virtual double getMHl() const
Gets the light Higgs mass.
Definition: SUSY.h:187
gslpp::complex m2
Definition: SUSY.h:491
gslpp::matrix< gslpp::complex > TNhat
Definition: SUSY.h:500
gslpp::matrix< gslpp::complex > N
Definition: SUSY.h:509
virtual bool PreUpdate()
Definition: SUSY.cpp:67
double getMHa() const
Gets the pseudo-scalar Higgs mass.
Definition: SUSY.h:205
SUSY()
A SUSY constructor.
Definition: SUSY.cpp:20
gslpp::matrix< gslpp::complex > Rn
Definition: SUSY.h:509
gslpp::matrix< gslpp::complex > msNhat2
Definition: SUSY.h:499
virtual void computeYukawas()
Definition: SUSY.cpp:215
gslpp::vector< double > getMch() const
Gets the chargino masses.
Definition: SUSY.h:237
Definition: QCD.h:731
gslpp::matrix< gslpp::complex > getMsQhat2() const
Definition: SUSY.h:286
std::string name
The name of the model.
Definition: Model.h:203
gslpp::matrix< gslpp::complex > msLhat2
Definition: SUSY.h:499
A model class for the Standard Model.
gslpp::complex getSaeff() const
Gets the sine of the effective mixing angle for the CP-even neutral Higgs bosons. ...
Definition: SUSY.h:178
SUSYSpectrum * mySUSYSpectrum
Definition: SUSY.h:488
gslpp::matrix< gslpp::complex > U
Definition: SUSY.h:509
Definition: QCD.h:735
double getMHh() const
Gets the heavy Higgs mass.
Definition: SUSY.h:196
gslpp::matrix< gslpp::complex > TUhat
Definition: SUSY.h:500
bool flag_g
Definition: SUSY.h:516
gslpp::matrix< gslpp::complex > Rl
Definition: SUSY.h:509
gslpp::vector< double > m_sn2
Definition: SUSY.h:506
gslpp::vector< double > getMsdresum2() const
Gets the down-type squark mass squared with the corrections in the off-diagonal entries.
Definition: SUSY.h:342
gslpp::matrix< gslpp::complex > getTEhat() const
Gets the trilinear-coupling matrix for charged sleptons.
Definition: SUSY.h:406
bool flag_ch
Definition: SUSY.h:516
double getTanb() const
Gets .
Definition: SUSY.h:128
gslpp::matrix< gslpp::complex > getTDhat() const
Gets the trilinear-coupling matrix for down-type squarks.
Definition: SUSY.h:314
gslpp::vector< double > getMsn2() const
Gets the sneutrino mass squared.
Definition: SUSY.h:415
gslpp::vector< double > getMsu2() const
Gets the up-type squark mass squared.
Definition: SUSY.h:323
double tanb
Definition: SUSY.h:492
double cosb
Definition: SUSY.h:495
gslpp::complex m1
Definition: SUSY.h:491
gslpp::vector< double > getMse2() const
Gets the charged slepton mass squared.
Definition: SUSY.h:424
gslpp::matrix< gslpp::complex > getRu() const
Gets the rotation matrix for up-type squarks.
Definition: SUSY.h:351
Definition: QCD.h:732
gslpp::matrix< gslpp::complex > Rd
Definition: SUSY.h:509
double getQ_SUSY() const
Gets the scale of the input parameters.
Definition: SUSY.h:137
virtual SUSYMatching * getMyMatching() const
Definition: SUSY.h:51
double mn_Q[3]
Definition: SUSY.h:512
double getSinb() const
Gets .
Definition: SUSY.h:160
A class for the matching in the MSSM.
Definition: SUSYMatching.h:31
gslpp::vector< double > m_sd2
Definition: SUSY.h:506
double Mq_Q(const quark q) const
Definition: SUSY.h:451
double getMGl() const
Gets the gluino mass obtained from FHGetPara().
Definition: SUSY.cpp:278
double getCosb() const
Gets .
Definition: SUSY.h:169
gslpp::matrix< gslpp::complex > getTNhat() const
Gets the trilinear-coupling matrix for sneutrinos.
Definition: SUSY.h:397
double mh[4]
Definition: SUSY.h:503
gslpp::matrix< gslpp::complex > getRn() const
Gets the rotation matrix for sneutrinos.
Definition: SUSY.h:433
gslpp::matrix< gslpp::complex > getMsUhat2() const
Definition: SUSY.h:291
double mHptree
Definition: SUSY.h:492
virtual bool Update(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:74
double getMHp() const
Gets the charged Higgs mass.
Definition: SUSY.h:214
static const int NSUSYvars
Definition: SUSY.h:28
gslpp::complex getM2() const
Gets the wino mass.
Definition: SUSY.h:92
gslpp::matrix< gslpp::complex > getMsDhat2() const
Definition: SUSY.h:296
double mu_Q[3]
Definition: SUSY.h:512
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:194
A class for constructing and defining operations on real vectors.
gslpp::matrix< gslpp::complex > getRd() const
Gets the rotation matrix for down-type squarks.
Definition: SUSY.h:360
gslpp::vector< double > m_su2
Definition: SUSY.h:506
double Q_SUSY
Definition: SUSY.h:492
static const std::string SUSYvars[NSUSYvars]
Definition: SUSY.h:29
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:62
gslpp::matrix< gslpp::complex > getV() const
Gets the rotation matrix for positive charginos.
Definition: SUSY.h:255
~SUSY()
A SUSY destructor.
Definition: SUSY.cpp:40
gslpp::matrix< gslpp::complex > msEhat2
Definition: SUSY.h:499
gslpp::matrix< gslpp::complex > getRl() const
Gets the rotation matrix for charged sleptons.
Definition: SUSY.h:442
gslpp::complex getMuH() const
Gets the parameter in the superpotential.
Definition: SUSY.h:119
gslpp::matrix< gslpp::complex > getU() const
Gets the rotation matrix for negative charginos.
Definition: SUSY.h:246
gslpp::complex getM1() const
Gets the bino mass.
Definition: SUSY.h:83
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
gslpp::matrix< gslpp::complex > msQhat2
Definition: SUSY.h:499
A base class for SUSY models.
Definition: SUSY.h:25
gslpp::vector< double > mch
Definition: SUSY.h:505
gslpp::vector< double > getMneu() const
Gets the neutralino masses.
Definition: SUSY.h:268
double me_Q[3]
Definition: SUSY.h:512
A class for calculating the Higgs and sparticle spectra at tree level.
Definition: SUSYSpectrum.h:23
gslpp::vector< double > m_sdresum2
Definition: SUSY.h:506
virtual bool PostUpdate()
Definition: SUSY.cpp:90
double getMHptree() const
Gets the charged-Higgs mass at tree-level.
Definition: SUSY.h:110
lepton
An enum type for leptons.
double v2() const
Definition: SUSY.cpp:273
virtual bool setFlag(const std::string, const bool)
Definition: SUSY.cpp:261
gslpp::complex muH
Definition: SUSY.h:491
virtual void SetTanb(const double tanb)
Definition: SUSY.cpp:204