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 &);
55  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;
64  DoubleVector display() const;
66  int size() const;
68  void set(const DoubleVector&);
69 };
70 
72 std::ostream & operator <<(std::ostream &, const sPhysical &);
73 
75 struct sProblem {
76  bool mgutOutOfBounds;
78  bool irqfp;
81  tachyonType tachyon;
85  tachyonType tachyonWarning;
87  bool m3sq;
88  bool higgsUfb;
89  bool notGlobalMin;
94  bool problemThrown;
96  bool test() const
97  {return (mgutOutOfBounds || irqfp || noConvergence || tachyon ||
98  muSqWrongSign || higgsUfb || notGlobalMin || nonperturbative ||
99  noRhoConvergence || noMuConvergence || m3sq || badConvergence ||
100  inaccurateHiggsMass || problemThrown || tachyonWarning);};
102  bool testSeriousProblem() const
103  {return (irqfp || tachyon || muSqWrongSign || higgsUfb ||
104  nonperturbative || noRhoConvergence || noMuConvergence || m3sq ||
105  badConvergence || mgutOutOfBounds || problemThrown);};
106 
107  inline sProblem();
109  inline sProblem(const sProblem & s);
111  const sProblem & operator = (const sProblem &);
112 
113 };
115 std::ostream & operator <<(std::ostream &st, const sProblem & p);
117 std::istream & operator >>(std::istream & left, sPhysical &s);
118 
120 struct drBarPars: public sPhysical {
121  double mz, mw;
122  double mt, mb, mtau;
123  double ht, hb, htau;
124  double ut, ub, utau;
126  ComplexMatrix nBpmz, uBpmz, vBpmz;
128  DoubleVector mnBpmz, mchBpmz;
129 
130  inline drBarPars();
131  inline drBarPars(const drBarPars &);
133  const drBarPars & operator = (const drBarPars &s);
134 
138  void mpzNeutralinos();
142  void mpzCharginos();
143 };
144 
145 std::ostream & operator <<(std::ostream &, const drBarPars &);
146 
147 // ---------------------- inline class members ------------------------
148 inline drBarPars::drBarPars()
149  : sPhysical(), mz(0.0), mw(0.0),
150  mt(0.0), mb(0.0), mtau(0.0), ht(0.0), hb(0.0), htau(0.0),
151  ut(0.0), ub(0.0), utau(0.0),
152  nBpmz(4, 4), uBpmz(2, 2),
153  vBpmz(2, 2), mnBpmz(4), mchBpmz(2)
154 {}
155 
157  : sPhysical(s.displaysPhysical()), mz(s.mz), mw(s.mw),
158  mt(s.mt), mb(s.mb), mtau(s.mtau), ht(s.ht), hb(s.hb), htau(s.htau),
159  ut(s.ut), ub(s.ub), utau(s.utau),
160  nBpmz(s.nBpmz), uBpmz(s.uBpmz), vBpmz(s.vBpmz), mnBpmz(s.mnBpmz),
161  mchBpmz(s.mchBpmz)
162 {}
163 
165  : mh0(2), mA0(1), mHpm(0.), msnu(3), mch(2), mneut(4),
166  mGluino(0.0),
167  mixNeut(4, 4), thetaL(0.0), thetaR(0.0), thetat(0.0), thetab(0.0),
168  thetatau(0.0), thetamu(0.0), mu(2, 3), md(2, 3), me(2, 3), thetaH(0.0),
169  thetaA0(0.0), mixh0(2,2)
170 {}
171 
173  : mh0(s.mh0), mA0(s.mA0), mHpm(s.mHpm), msnu(s.msnu), mch(s.mch),
174  mneut(s.mneut), mGluino(s.mGluino), mixNeut(s.mixNeut), thetaL(s.thetaL),
175  thetaR(s.thetaR), thetat(s.thetat), thetab(s.thetab),
176  thetatau(s.thetatau), thetamu(s.thetamu), mu(s.mu), md(s.md), me(s.me),
177  thetaH(s.thetaH), thetaA0(s.thetaA0), mixh0(s.mixh0)
178 {}
179 
181  : mgutOutOfBounds(false), badConvergence(false),
182  irqfp(false), noRhoConvergence(false), noConvergence(false),
183  tachyon(none), tachyonWarning(none),
184  muSqWrongSign(false), m3sq(false), higgsUfb(false),
185  notGlobalMin(false), nonperturbative(false), noMuConvergence(false),
186  inaccurateHiggsMass(false), problemThrown(false)
187 {}
188 
189 inline sProblem::sProblem(const sProblem & s)
190  : mgutOutOfBounds(s.mgutOutOfBounds), badConvergence(s.badConvergence),
191  irqfp(s.irqfp), noRhoConvergence(s.noRhoConvergence),
192  noConvergence(s.noConvergence),
193  tachyon(s.tachyon), tachyonWarning(s.tachyon),
194  muSqWrongSign(s.muSqWrongSign), m3sq(s.m3sq),
195  higgsUfb(s.higgsUfb), notGlobalMin(s.notGlobalMin),
196  nonperturbative(s.nonperturbative), noMuConvergence(s.noMuConvergence),
197  inaccurateHiggsMass(s.inaccurateHiggsMass), problemThrown(s.problemThrown)
198 {}
199 
200 } // namespace softsusy
201 
205 double sTfn(double sTins, double sTouts);
206 
208 // class drBarPars;
209 class DoubleVector;
210 void sumTol(const softsusy::drBarPars & a, const softsusy::drBarPars & b, DoubleVector & sT);
211 
212 #endif
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:608
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:214
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
global variable declaration
Definition: def.cpp:13
istream & operator>>(istream &left, flavourPhysical &s)
Formatted input of physical parameters.
Definition: flavoursoft.cpp:1220
std::ostream & operator<<(std::ostream &st, const sProblem &p)
Formatted output, but won't print unflagged problems.
void sumTol(const softsusy::drBarPars &a, const softsusy::drBarPars &b, DoubleVector &sT)
LCT: Difference between two drBarPars objects.
Definition: physpars.cpp:272
double sTfn(double sTins, double sTouts)
Definition: physpars.cpp:264
DRbar values of masses and mixings in MSSM.
Definition: physpars.h:120
drBarPars()
Initialises with zero values.
Definition: physpars.h:148
DoubleVector mnBpmz
positive definite masses for neutralinos and charginos
Definition: physpars.h:128
double ht
Running top, bottom and tau mass.
Definition: physpars.h:123
double ut
Running diagonal top, bottom, tau Yukawa couplings.
Definition: physpars.h:124
double mt
Running electroweak gauge boson masses.
Definition: physpars.h:122
ComplexMatrix nBpmz
BPMZ convention mixing matrices for neutralinos and charginos.
Definition: physpars.h:126
Masses of the physical particles.
Definition: physpars.h:32
double mGluino
Gluino mass.
Definition: physpars.h:40
double thetaH
Higgs mixing angle (alpha)
Definition: physpars.h:48
const sPhysical & displaysPhysical() const
Displays the object in situations where a const is required.
Definition: physpars.h:55
DoubleMatrix mixh0
Higgs mixing matrices.
Definition: physpars.h:50
void setsPhysical(const sPhysical &s)
Sets whole contents to those of another object s.
Definition: physpars.h:57
DoubleVector mch
chargino/neutralino masses: ordered
Definition: physpars.h:38
DoubleMatrix mu
sparticle masses in order (i=L/R, family)
Definition: physpars.h:46
double thetaL
chargino and third family mixing angles
Definition: physpars.h:44
DoubleMatrix mixNeut
neutralino mixing
Definition: physpars.h:42
DoubleVector msnu
sneutrino masses
Definition: physpars.h:36
sPhysical()
Constructor: initialises with zeroes.
Definition: physpars.h:164
Various boolean values to flag any problems with the parameter point.
Definition: physpars.h:75
bool muSqWrongSign
mu^2 came out with wrong sign; no REWSB
Definition: physpars.h:86
tachyonType tachyonWarning
Definition: physpars.h:85
bool irqfp
Infra-red quasi fixed point breached.
Definition: physpars.h:78
sProblem()
Definition: physpars.h:180
bool notGlobalMin
Not in global minimum of Higgs potential.
Definition: physpars.h:89
tachyonType tachyon
Definition: physpars.h:81
bool higgsUfb
Higgs potential inconsistent with a good minimum.
Definition: physpars.h:88
bool inaccurateHiggsMass
Higgs mass is potentially inaccurate and cant be trusted.
Definition: physpars.h:93
bool noConvergence
Iteration did not converge: not always serious.
Definition: physpars.h:80
bool noRhoConvergence
Couldn't calculate electroweak rho parameter.
Definition: physpars.h:79
bool test() const
returns true if there's any problem
Definition: physpars.h:96
bool noMuConvergence
Definition: physpars.h:91
bool m3sq
m3sq came out with wrong sign; no REWSB
Definition: physpars.h:87
bool badConvergence
Nowhere near a decent solution.
Definition: physpars.h:77
bool testSeriousProblem() const
Only returns true if there's a serious problem.
Definition: physpars.h:102
bool nonperturbative
Running went non-perturbative.
Definition: physpars.h:90
A few handy bits and pieces - little mathematical functions and the like.