SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
nmssmsusy.h
Go to the documentation of this file.
1 
13 #ifndef NMSSMSUSY_H
14 #define NMSSMSUSY_H
15 
16 #include "susy.h"
17 
18 namespace softsusy {
20  const static int numNMssmPars = numSusyPars + 5;
21 
23  struct nmsBrevity : public sBrevity {
24  double lsq, ksq, l4, k4;
25 
27  nmsBrevity();
29  nmsBrevity(const nmsBrevity&);
31  const nmsBrevity & operator=(const nmsBrevity &);
33  const nmsBrevity & operator=(const sBrevity &);
34 
37  void calculate(const DoubleMatrix & yu, const DoubleMatrix & yd, const
38  DoubleMatrix & ye, const DoubleVector & g,
39  const double & lam, const double & kap);
40  };
41 
43  : sBrevity()
44  , lsq(0.0), ksq(0.0), l4(0.0), k4(0.0)
45  {}
46 
48  : sBrevity(s)
49  , lsq(s.lsq), ksq(s.ksq), l4(s.l4), k4(s.k4)
50  {}
54  class NmssmSusyPars; class NmssmSusy;
56  void addOneLpAnomNmssm(double & gH1H1, double & gH2H2, double & gSS,
57  double lambda, double kappa);
61  DoubleMatrix & gQQ, DoubleMatrix & gDD,
62  DoubleMatrix & gUU, double & gH1H1, double &
63  gH2H2, double & gSS, nmsBrevity & a);
66  void anomalousDimensionNmssmSusy(const MssmSusy & s, const NmssmSusyPars & n,
67  DoubleMatrix & gEE,
68  DoubleMatrix & gLL,DoubleMatrix & gQQ,
69  DoubleMatrix & gUU,
70  DoubleMatrix & gDD, DoubleVector & dg,
71  double & gH1H1, double & gH2H2,
72  double & gSS, nmsBrevity & a);
75  const NmssmSusyPars & n);
79  &, DoubleVector &, DoubleVector & );
84  class NmssmSusyPars {
86  private:
90  double lambda, kappa, sVev;
95  double xiF, mupr;
96  public:
97  NmssmSusyPars();
98  NmssmSusyPars(const NmssmSusyPars & );
99  NmssmSusyPars(double sv, double lambda, double kappa, double xiF,
100  double mupr);
101  const NmssmSusyPars & operator=(const NmssmSusyPars & s);
102  virtual ~NmssmSusyPars() {};
103 
105  void setSvev(double s) { sVev = s; };
107  void setLambda(double l) { lambda = l; };
109  void setKappa(double k) { kappa = k; };
111  void setMupr(double m) { mupr = m; };
113  void setXiF(double x) { xiF = x; };
115  void setNmssmSusyPars(const NmssmSusyPars &s);
116  void setNmssmSusyPars(const DoubleVector & y);
117  void set(const DoubleVector & y, int & k);
118 
120  double displaySvev() const { return sVev; };
122  double displayLambda() const { return lambda; };
124  double displayKappa() const { return kappa; };
126  double displayMupr() const { return mupr; };
128  double displayXiF() const { return xiF; };
130  const NmssmSusyPars & displayNmssmSusyPars() const { return *this; };
132  void display(DoubleVector & y, int & k) const;
133 
140  void getOneLpAnom(DoubleMatrix & gEE, DoubleMatrix & gLL,
141  DoubleMatrix & gQQ, DoubleMatrix & gDD,
142  DoubleMatrix & gUU, double & gH1H1, double &
143  gH2H2, double & gSS, nmsBrevity & a, int loops) const;
150  void getTwoLpAnom(DoubleMatrix & gEE, DoubleMatrix & gLL,
151  DoubleMatrix & gQQ, DoubleMatrix & gDD,
152  DoubleMatrix & gUU, double & gH1H1, double &
153  gH2H2, double & gSS, nmsBrevity & a, int loops) const;
160  void anomalousDimension
161  (const MssmSusy & s, DoubleMatrix & gEE, DoubleMatrix & gLL,
162  DoubleMatrix & gQQ, DoubleMatrix & gUU, DoubleMatrix & gDD,
163  DoubleVector & dg, double & gH1H1, double & gH2H2, double & gSS,
164  nmsBrevity & a, int loops) const {
165  anomalousDimensionNmssmSusy(s, displayNmssmSusyPars(), gEE, gLL, gQQ, gUU,
166  gDD, dg, gH1H1, gH2H2, gSS, a);
167  };
168  };
169 
171  class NmssmSusy: public MssmSusy, public NmssmSusyPars {
172  private:
173  Approx nmssmSusyApprox;
174  public:
175  NmssmSusy();
176  NmssmSusy(const NmssmSusy &);
178  NmssmSusy(const MssmSusy & m, const NmssmSusyPars & nsp);
181  // number of loops in
183  NmssmSusy(const DoubleMatrix & u,
184  const DoubleMatrix & d,
185  const DoubleMatrix & e, const DoubleVector & v, double m,
186  double tb, double hv, int mix, int l, int t, double sv,
187  double lambda, double kappa, double xiF,
188  double mupr);
189  NmssmSusy(double lambda, double kappa, double sv, double xiF,
190  double mupr);
191  // NmssmSusy(const NmssmSusyRGE & nms);
192 
193  inline const NmssmSusy & displayNmssmSusy() const { return *this; };
194 
195  virtual ~NmssmSusy();
196 
198  const NmssmSusy & operator=(const NmssmSusy & s);
199 
200  void setNmssmLoops(double l) { nmssmSusyApprox.setLoops(l); };
201  void setNmssmApprox(int l, int t) { nmssmSusyApprox.setLoops(l);
202  nmssmSusyApprox.setThresholds(t); };
203  void setNmssmApprox(const Approx & a) { nmssmSusyApprox = a; };
204  void setNmssmSusy(const NmssmSusy & y) {
205  setNmssmApprox(y.displayNmssmSusyApprox());
206  setMssmSusy(y.displayMssmSusy());
207  setNmssmSusyPars(y.displayNmssmSusyPars());
208  };
209 
210  int displayNmssmLoops() const { return nmssmSusyApprox.displayLoops(); };
211  int displayNmssmThresholds() const {
212  return nmssmSusyApprox.displayThresholds();
213  };
214  Approx displayNmssmSusyApprox() const { return nmssmSusyApprox; };
216  const DoubleVector display() const;
217 
218  void set(const DoubleVector & y, int & k);
219  void set(const DoubleVector & y);
221  NmssmSusy beta(nmsBrevity &) const;
228  void getOneLpAnom(DoubleMatrix & gEE, DoubleMatrix & gLL,
229  DoubleMatrix & gQQ, DoubleMatrix & gDD,
230  DoubleMatrix & gUU, double & gH1H1, double &
231  gH2H2, double & gSS, nmsBrevity & a) const;
238  void getTwoLpAnom(DoubleMatrix & gEE, DoubleMatrix & gLL,
239  DoubleMatrix & gQQ, DoubleMatrix & gDD,
240  DoubleMatrix & gUU, double & gH1H1, double &
241  gH2H2, double & gSS, nmsBrevity & a) const;
249  double displayMuEff() const { return displaySusyMu() +
250  displayLambda() * displaySvev() / sqrt(2.0); };
251  };
252 
254  class NmssmSusyRGE: public RGE, public NmssmSusy {
255  private:
256  public:
257  NmssmSusyRGE();
258  NmssmSusyRGE(const NmssmSusyRGE &);
262  //renormalisation scale MU, number of loops in
264  NmssmSusyRGE(const DoubleMatrix & u, const DoubleMatrix & d, const
265  DoubleMatrix & e, const DoubleVector & v, double m,
266  double tb, double MU, int l, int t, double h, int mix,
267  double s, double lambda, double kappa, double xiF,
268  double mupr);
269 
270  NmssmSusyRGE(const MssmSusy &m);
271 
272  virtual ~NmssmSusyRGE();
273 
275  const NmssmSusyRGE & operator=(const NmssmSusyRGE & s);
277  const NmssmSusyRGE & operator=(const NmssmSusy & s);
279  void setSusy(const NmssmSusyRGE &s);
280  void set(const DoubleVector &y);
281 
283  void setSomePars(const NmssmSusyRGE & s);
284 
286  inline const NmssmSusyRGE & displaySusy() const { return *this; };
288  const DoubleVector display() const;
289 
291  DoubleVector beta() const;
292  };
293 
294 
296  ostream & operator <<(ostream &, const NmssmSusyRGE &);
297  ostream & operator <<(ostream &, const NmssmSusy &);
298  ostream & operator <<(ostream &, const NmssmSusyPars &);
299 
301  istream & operator >>(istream &left, NmssmSusyRGE &s);
302 
303 }
304 
305 #endif
void setThresholds(int t)
Definition: rge.h:40
global variable declaration
Definition: def.cpp:13
Contains all supersymmetric RPC-MSSM parameters and is an RGE end of NmssmSusyRGE.
Definition: nmssmsusy.h:254
const NmssmSusyRGE & displaySusy() const
Returns whole object as a const.
Definition: nmssmsusy.h:286
void setLoops(int l)
Set number of loops used.
Definition: rge.h:37
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
void setLambda(double l)
sets the S H_u H_d coupling
Definition: nmssmsusy.h:107
Contains all SUSY RPC-NMSSM parameters but is not an RGE object end of NmssmSusy. ...
Definition: nmssmsusy.h:171
NmssmSusy betaNmssmSusy(nmsBrevity &a, const MssmSusy &s, const NmssmSusyPars &n)
beta functions
Definition: nmssmsusy.cpp:142
double displayKappa() const
returns superpotential parameter lambda
Definition: nmssmsusy.h:124
Contains data needed in beta function calculation to make it faster.
Definition: nmssmsusy.h:23
void setMupr(double m)
sets the {1}{2} mupr S^2 coupling
Definition: nmssmsusy.h:111
int displayThresholds() const
Return level of threshold approximation.
Definition: rge.h:45
const MssmSusy & displayMssmSusy() const
Returns whole object as a const.
Definition: susy.h:271
Contains all supersymmetric RPC-MSSM parameters.
Definition: susy.h:75
void setXiF(double x)
sets the xiF S coupling
Definition: nmssmsusy.h:113
MssmSusy contains all SUSY couplings and tan beta, as well as their beta functions.
void setSvev(double s)
sets DRbar running singlet vev.
Definition: nmssmsusy.h:105
Contains NMSSM-only part of RPC SUSY parameters end of NmssmSusyPars.
Definition: nmssmsusy.h:85
void calculate(const DoubleMatrix &yu, const DoubleMatrix &yd, const DoubleMatrix &ye, const DoubleVector &g, const double &lam, const double &kap)
Definition: nmssmsusy.cpp:29
istream & operator>>(istream &left, flavourPhysical &s)
Formatted input of physical parameters.
Definition: flavoursoft.cpp:1220
Contains data needed in beta function calculation to make it faster.
Definition: susy.h:35
const NmssmSusyPars & displayNmssmSusyPars() const
returns whole object
Definition: nmssmsusy.h:130
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
nmsBrevity()
Constructor fills struct with zeroes by default.
Definition: nmssmsusy.h:42
const nmsBrevity & operator=(const nmsBrevity &)
Sets struct to be equal to another.
Definition: nmssmsusy.cpp:22
Describes a set of parameters and RGEs in general.
Definition: rge.h:49
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:211
void anomalousDimensionNmssmSusy(const MssmSusy &s, const NmssmSusyPars &n, DoubleMatrix &gEE, DoubleMatrix &gLL, DoubleMatrix &gQQ, DoubleMatrix &gUU, DoubleMatrix &gDD, DoubleVector &dg, double &gH1H1, double &gH2H2, double &gSS, nmsBrevity &a)
Definition: nmssmsusy.cpp:39
int displayLoops() const
Return number of loops.
Definition: rge.h:43
double displaySvev() const
returns DRbar running Singlet Higgs vev
Definition: nmssmsusy.h:120
double displayMuEff() const
Definition: nmssmsusy.h:249
double displayXiF() const
returns xiF superpotential parameter
Definition: nmssmsusy.h:128
double displayMupr() const
returns mupr superpotential parameter
Definition: nmssmsusy.h:126
Definition: rge.h:23
void addTwoLpAnomNmssm(DoubleMatrix &gEE, DoubleMatrix &gLL, DoubleMatrix &gQQ, DoubleMatrix &gDD, DoubleMatrix &gUU, double &gH1H1, double &gH2H2, double &gSS, nmsBrevity &a)
Definition: nmssmsusy.cpp:92
void setKappa(double k)
sets the {1}{3} S^3 coupling
Definition: nmssmsusy.h:109
void addOneLpAnomNmssm(double &gH1H1, double &gH2H2, double &gSS, double lambda, double kappa)
Adds NMSSM one loop pieces onto the wave function renomalisation.
Definition: nmssmsusy.cpp:79
double displayLambda() const
returns superpotential parameter lambda
Definition: nmssmsusy.h:122
void nmsetBetas(DoubleMatrix &babBeta, DoubleVector &cuBeta, DoubleVector &cdBeta, DoubleVector &ceBeta, DoubleVector &clBeta, DoubleVector &bBeta)
Definition: nmssmsusy.cpp:238
void setBetaLambda(DoubleVector &clBeta)
Outputs beta function coefficients for lambda.
Definition: nmssmsusy.cpp:245