SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
physpars.h
Go to the documentation of this file.
1 
13 #ifndef PHYSPARSH
14 #define PHYSPARSH
15 
16 #include <iostream>
17 #include "linalg.h"
18 #include "utils.h"
19 using namespace std;
20 
21 namespace softsusy {
22  typedef enum {none=0, selectron, smuon, stau, sup, scharm, stop, sdown,
23  sstrange, sbottom, h0, A0, hpm, snue, snumu, snutau, W, Z}
24  tachyonType;
25 
26  const static char* tachyonNames[18] = {
27  "none", "selectron", "smuon", "stau", "sup", "scharm", "stop", "sdown",
28  "sstrange", "sbottom", "h0", "A0", "hpm", "snue", "snumu", "snutau",
29  "W", "Z"};
30 
32 struct sPhysical {
33  DoubleVector mh0, mA0;
34  double mHpm;
38  DoubleVector mch, mneut;
40  double mGluino;
44  double thetaL, thetaR, thetat, thetab, thetatau, thetamu;
46  DoubleMatrix mu, md, me;
48  double thetaH, thetaA0;
51 
52  sPhysical();
53  sPhysical(const sPhysical &);
54  const sPhysical & displaysPhysical() const { return *this; };
57  void setsPhysical(const sPhysical &s) { *this = s; };
59  const sPhysical & operator = (const sPhysical & s);
60 
62  void display(double *a) const;
63 };
64 
66 std::ostream & operator <<(std::ostream &, const sPhysical &);
67 
69 struct sProblem {
70  bool mgutOutOfBounds;
72  bool irqfp;
75  tachyonType tachyon;
76  tachyonType tachyonWarning;
81  bool m3sq;
82  bool higgsUfb;
83  bool notGlobalMin;
86  bool inaccurateHiggsMass;
88  bool problemThrown;
90  bool test() const
91  {return (mgutOutOfBounds || irqfp || noConvergence || tachyon ||
92  muSqWrongSign || higgsUfb || notGlobalMin || nonperturbative ||
93  noRhoConvergence || noMuConvergence || m3sq || badConvergence ||
94  inaccurateHiggsMass || problemThrown || tachyonWarning);};
96  bool testSeriousProblem() const
97  {return (irqfp || tachyon || muSqWrongSign || higgsUfb ||
98  nonperturbative || noRhoConvergence || noMuConvergence || m3sq ||
99  badConvergence || mgutOutOfBounds || problemThrown);};
100 
101  inline sProblem();
102  inline sProblem(const sProblem & s);
105  const sProblem & operator = (const sProblem &);
106 
107 };
109 std::ostream & operator <<(std::ostream &st, const sProblem & p);
111 std::istream & operator >>(std::istream & left, sPhysical &s);
112 
114 struct drBarPars: public sPhysical {
115  double mz, mw;
116  double mt, mb, mtau;
117  double ht, hb, htau;
118  double ut, ub, utau;
119  ComplexMatrix nBpmz, uBpmz, vBpmz;
122  DoubleVector mnBpmz, mchBpmz;
123 
124  inline drBarPars();
125  inline drBarPars(const drBarPars &);
126  const drBarPars & operator = (const drBarPars &s);
128 
132  void mpzNeutralinos();
136  void mpzCharginos();
137 };
138 
139 std::ostream & operator <<(std::ostream &, const drBarPars &);
140 
141 // ---------------------- inline class members ------------------------
142 inline drBarPars::drBarPars()
143  : sPhysical(), mz(0.0), mw(0.0),
144  mt(0.0), mb(0.0), mtau(0.0), ht(0.0), hb(0.0), htau(0.0),
145  ut(0.0), ub(0.0), utau(0.0),
146  nBpmz(4, 4), uBpmz(2, 2),
147  vBpmz(2, 2), mnBpmz(4), mchBpmz(2)
148 {}
149 
151  : sPhysical(s.displaysPhysical()), mz(s.mz), mw(s.mw),
152  mt(s.mt), mb(s.mb), mtau(s.mtau), ht(s.ht), hb(s.hb), htau(s.htau),
153  ut(s.ut), ub(s.ub), utau(s.utau),
154  nBpmz(s.nBpmz), uBpmz(s.uBpmz), vBpmz(s.vBpmz), mnBpmz(s.mnBpmz),
155  mchBpmz(s.mchBpmz)
156 {}
157 
159  : mh0(2), mA0(1), mHpm(0.), msnu(3), mch(2), mneut(4),
160  mGluino(0.0),
161  mixNeut(4, 4), thetaL(0.0), thetaR(0.0), thetat(0.0), thetab(0.0),
162  thetatau(0.0), thetamu(0.0), mu(2, 3), md(2, 3), me(2, 3), thetaH(0.0),
163  thetaA0(0.0), mixh0(2,2)
164 {}
165 
167  : mh0(s.mh0), mA0(s.mA0), mHpm(s.mHpm), msnu(s.msnu), mch(s.mch),
168  mneut(s.mneut), mGluino(s.mGluino), mixNeut(s.mixNeut), thetaL(s.thetaL),
169  thetaR(s.thetaR), thetat(s.thetat), thetab(s.thetab),
170  thetatau(s.thetatau), thetamu(s.thetamu), mu(s.mu), md(s.md), me(s.me),
171  thetaH(s.thetaH), thetaA0(s.thetaA0), mixh0(s.mixh0)
172 {}
173 
175  : mgutOutOfBounds(false), badConvergence(false),
176  irqfp(false), noRhoConvergence(false), noConvergence(false),
177  tachyon(none), tachyonWarning(none),
178  muSqWrongSign(false), m3sq(false), higgsUfb(false),
179  notGlobalMin(false), nonperturbative(false), noMuConvergence(false),
180  inaccurateHiggsMass(false), problemThrown(false)
181 {}
182 
183 inline sProblem::sProblem(const sProblem & s)
184  : mgutOutOfBounds(s.mgutOutOfBounds), badConvergence(s.badConvergence),
191  inaccurateHiggsMass(s.inaccurateHiggsMass), problemThrown(s.problemThrown)
192 {}
193 
194 } // namespace softsusy
195 
199 double sTfn(double sTins, double sTouts);
200 
202 // class drBarPars;
203 class DoubleVector;
204 void sumTol(const softsusy::drBarPars & a, const softsusy::drBarPars & b, DoubleVector & sT);
205 
206 #endif
global variable declaration
Definition: def.cpp:13
DoubleVector mch
chargino/neutralino masses: ordered
Definition: physpars.h:38
DoubleMatrix mu
sparticle masses in order (i=L/R, family)
Definition: physpars.h:46
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
double thetaH
Higgs mixing angle (alpha)
Definition: physpars.h:48
Masses of the physical particles.
Definition: physpars.h:32
DRbar values of masses and mixings in MSSM.
Definition: physpars.h:114
bool inaccurateHiggsMass
Higgs mass is potentially inaccurate and cant be trusted.
Definition: physpars.h:87
double thetaL
chargino and third family mixing angles
Definition: physpars.h:44
double sumTol(const MssmSoftsusy &in, const MssmSoftsusy &out, int numTries)
Difference between two SOFTSUSY objects in and out: EWSB terms only.
Definition: mssmUtils.cpp:339
bool test() const
returns true if there&#39;s any problem
Definition: physpars.h:90
void setsPhysical(const sPhysical &s)
Sets whole contents to those of another object s.
Definition: physpars.h:57
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
bool muSqWrongSign
mu^2 came out with wrong sign; no REWSB
Definition: physpars.h:80
double ut
Running diagonal top, bottom, tau Yukawa couplings.
Definition: physpars.h:118
bool noRhoConvergence
Couldn&#39;t calculate electroweak rho parameter.
Definition: physpars.h:73
bool nonperturbative
Running went non-perturbative.
Definition: physpars.h:84
DoubleMatrix mixh0
Higgs mixing matrices.
Definition: physpars.h:50
tachyonType tachyonWarning
Definition: physpars.h:79
double sTfn(double sTins, double sTouts)
Definition: physpars.cpp:191
bool irqfp
Infra-red quasi fixed point breached.
Definition: physpars.h:72
double mt
Running electroweak gauge boson masses.
Definition: physpars.h:116
bool badConvergence
Nowhere near a decent solution.
Definition: physpars.h:71
A few handy bits and pieces - little mathematical functions and the like.
DoubleMatrix mixNeut
neutralino mixing
Definition: physpars.h:42
bool m3sq
m3sq came out with wrong sign; no REWSB
Definition: physpars.h:81
bool noConvergence
Iteration did not converge: not always serious.
Definition: physpars.h:74
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:605
tachyonType tachyon
Definition: physpars.h:75
istream & operator>>(istream &left, flavourPhysical &s)
Formatted input of physical parameters.
Definition: flavoursoft.cpp:1220
sProblem()
Definition: physpars.h:174
Various boolean values to flag any problems with the parameter point.
Definition: physpars.h:69
std::ostream & operator<<(std::ostream &st, const sProblem &p)
Formatted output, but won&#39;t print unflagged problems.
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:211
const sPhysical & displaysPhysical() const
Displays the object in situations where a const is required.
Definition: physpars.h:55
double ht
Running top, bottom and tau mass.
Definition: physpars.h:117
double mGluino
Gluino mass.
Definition: physpars.h:40
bool notGlobalMin
Not in global minimum of Higgs potential.
Definition: physpars.h:83
DoubleVector mnBpmz
positive definite masses for neutralinos and charginos
Definition: physpars.h:122
bool testSeriousProblem() const
Only returns true if there&#39;s a serious problem.
Definition: physpars.h:96
sPhysical()
Constructor: initialises with zeroes.
Definition: physpars.h:158
ComplexMatrix nBpmz
BPMZ convention mixing matrices for neutralinos and charginos.
Definition: physpars.h:120
DoubleVector msnu
sneutrino masses
Definition: physpars.h:36
drBarPars()
Initialises with zero values.
Definition: physpars.h:142
bool higgsUfb
Higgs potential inconsistent with a good minimum.
Definition: physpars.h:82
bool noMuConvergence
Definition: physpars.h:85