softsusy
is hosted by
Hepforge
,
IPPP Durham
SOFTSUSY
4.1
src
nmssmjacobian.h
Go to the documentation of this file.
1
6
#ifndef NMSSMJACOBIAN_H
7
#define NMSSMJACOBIAN_H
8
9
#include "
linalg.h
"
10
#include <limits>
11
#include <utility>
12
13
namespace
softsusy
{
14
15
class
NmssmSoftsusy
;
16
58
class
NmssmJacobian
{
59
public
:
60
61
explicit
NmssmJacobian
(
bool
doTop =
false
);
62
~
NmssmJacobian
();
63
66
bool
displayIncludeTopFlag
()
const
{
return
includeTop; }
67
70
void
setIncludeTopFlag
(
bool
flag) { includeTop = flag; }
71
74
bool
displayUseRunningMassesFlag
()
const
{
return
useRunningMasses; }
75
78
void
setUseRunningMassesFlag
(
bool
flag) { useRunningMasses = flag; }
79
82
bool
displayUseSugraTrilinearsFlag
()
const
{
return
useSugraTrilinears; }
83
86
void
setUseSugraTrilinearsFlag
(
bool
flag) { useSugraTrilinears = flag; }
87
89
void
resetError
() { hasError =
false
; }
90
93
bool
displayError
()
const
{
return
hasError; }
94
96
void
resetWarnings
() {
97
failedVevIterationWarning =
false
;
98
inaccurateHiggsMassWarning =
false
;
99
}
100
103
bool
displayWarning
()
const
{
104
return
failedVevIterationWarning || inaccurateHiggsMassWarning; }
105
108
bool
displayFailedVevIterationWarning
()
const
{
109
return
failedVevIterationWarning;
110
}
111
114
bool
displayInaccurateHiggsMassWarning
()
const
{
115
return
inaccurateHiggsMassWarning;
116
}
117
120
double
displayWorstCaseHiggsAccuracy
()
const
{
121
return
worstCaseHiggsAccuracy;
122
}
123
127
DoubleMatrix
displayRGFlowJacobian
()
const
{
return
jacRGFlow; }
128
132
DoubleMatrix
displayRGFlowJacobianErrors
()
const
{
return
jacRGFlowErrors; }
133
137
DoubleMatrix
displayEWSBJacobian
()
const
{
return
jacEWSB; }
138
142
DoubleMatrix
displayEWSBJacobianErrors
()
const
{
return
jacEWSBErrors; }
143
147
DoubleMatrix
displayInverseRGFlowJacobian
()
const
{
return
invJacRGFlow; }
148
152
DoubleMatrix
displayInverseRGFlowJacobianErrors
()
const
{
153
return
invJacRGFlowErrors;
154
}
155
159
DoubleMatrix
displayInverseEWSBJacobian
()
const
{
return
invJacEWSB; }
160
164
DoubleMatrix
displayInverseEWSBJacobianErrors
()
const
{
165
return
invJacEWSBErrors;
166
}
167
171
double
calcFTJacobian
(
const
NmssmSoftsusy
& m);
172
177
double
calcFTJacobian
(
const
NmssmSoftsusy
& m,
double
mx);
178
182
double
calcFTInverseJacobian
(
const
NmssmSoftsusy
& m);
183
188
double
calcFTInverseJacobian
(
const
NmssmSoftsusy
& m,
double
mx);
189
193
double
calcFTInverseJacobianLogs
(
const
NmssmSoftsusy
& m);
194
199
double
calcFTInverseJacobianLogs
(
const
NmssmSoftsusy
& m,
double
mx);
200
205
double
calcDeltaJ
(
const
NmssmSoftsusy
& m);
206
211
double
calcDeltaJ
(
const
NmssmSoftsusy
& m,
double
mx);
212
216
double
calcDeltaJLogs
(
const
NmssmSoftsusy
& m);
217
222
double
calcDeltaJLogs
(
const
NmssmSoftsusy
& m,
double
mx);
223
224
private
:
225
enum
Parameters
{ Mzsq, Tanb, Svev, Mtsq, Lambda, Kappa,
226
SMu, M3Sq, XiS, Mh1Sq, Mh2Sq, MsSq, Yt };
227
228
DoubleMatrix
jacRGFlow;
229
DoubleMatrix
jacEWSB;
230
DoubleMatrix
invJacRGFlow;
231
DoubleMatrix
invJacEWSB;
232
233
DoubleMatrix
jacRGFlowErrors;
234
DoubleMatrix
jacEWSBErrors;
235
DoubleMatrix
invJacRGFlowErrors;
236
DoubleMatrix
invJacEWSBErrors;
237
238
bool
includeTop;
239
bool
useRunningMasses;
240
bool
useSugraTrilinears;
241
bool
hasError;
242
bool
failedVevIterationWarning;
243
bool
inaccurateHiggsMassWarning;
244
245
double
worstCaseHiggsAccuracy;
246
247
struct
EWSBPars {
248
NmssmSoftsusy
* model;
249
Parameters
independent;
250
Parameters
dependent;
251
DoubleVector
outputs;
252
bool
useRunningMasses;
253
bool
useSugraTrilinears;
254
bool
failedVevIteration;
255
bool
inaccurateHiggsMass;
256
double
higgsMassAccuracy;
257
258
EWSBPars()
259
: model(0), independent(Mzsq), dependent(Lambda),
260
outputs(3), useRunningMasses(false),
261
useSugraTrilinears(false), failedVevIteration(false),
262
inaccurateHiggsMass(false), higgsMassAccuracy(0.)
263
{}
264
};
265
266
struct
RGFlowPars {
267
NmssmSoftsusy
* model;
268
Parameters
independent;
269
Parameters
dependent;
270
double
toScale;
271
bool
useSugraTrilinears;
272
};
273
274
static
double
calcMz(
NmssmSoftsusy
& model,
bool
getRunningMass =
false
);
275
static
double
calcMt(
NmssmSoftsusy
& model,
bool
getRunningMass =
false
);
276
277
static
double
calcRunningParameter(
double
x,
void
* parameters);
278
static
double
calcLogRunningParameter(
double
x,
void
* parameters);
279
std::pair<double,double> calcRGDerivative(
NmssmSoftsusy
& model,
280
Parameters
dep,
Parameters
indep,
281
double
toScale)
const
;
282
std::pair<double,double> calcRGLogDerivative(
NmssmSoftsusy
& model,
283
Parameters
dep,
Parameters
indep,
284
double
toScale)
const
;
285
double
calcRGFlowJacobian(
NmssmSoftsusy
& model,
double
startScale,
286
double
endScale);
287
double
calcRGFlowJacobianLogs(
NmssmSoftsusy
& model,
double
startScale,
288
double
endScale);
289
static
int
ewsbOutputErrors(
const
DoubleVector
& guess,
void
* parameters,
290
DoubleVector
& errors);
291
static
void
fixEWSBOutputs(EWSBPars* pars,
int
& err);
292
static
double
calcEWSBParameter(
double
x,
void
* parameters);
293
static
double
calcEWSBOutput(
double
x,
void
* parameters);
294
static
double
calcLogEWSBOutput(
double
x,
void
* parameters);
295
std::pair<double,double> calcEWSBOutputDerivative(
NmssmSoftsusy
& model,
296
Parameters
dep,
297
Parameters
indep);
298
std::pair<double,double> calcEWSBOutputLogDerivative(
NmssmSoftsusy
& model,
299
Parameters
dep,
300
Parameters
indep);
301
std::pair<double,double> calcEWSBParameterDerivative(
NmssmSoftsusy
& model,
302
Parameters
dep,
303
Parameters
indep);
304
double
calcEWSBJacobian(
NmssmSoftsusy
& model);
305
double
calcInverseEWSBJacobian(
NmssmSoftsusy
& model);
306
double
calcInverseEWSBJacobianLogs(
NmssmSoftsusy
& model);
307
308
bool
checkDerivativeErrors(
DoubleMatrix
& derivs,
const
DoubleMatrix
& errors,
309
const
std::vector<double>& paramValues)
const
;
310
};
311
312
}
313
314
#endif
DoubleMatrix
Matrix from 1..rows, 1..cols of double values.
Definition:
linalg.h:214
DoubleVector
DoubleVector is of variable length, and contains double precision.
Definition:
linalg.h:35
softsusy::NmssmJacobian
Class for calculating Jacobian fine-tuning measure.
Definition:
nmssmjacobian.h:58
softsusy::NmssmJacobian::calcDeltaJ
double calcDeltaJ(const NmssmSoftsusy &m)
Calculates the fine-tuning using the Jacobian measure.
Definition:
nmssmjacobian.cpp:45
softsusy::NmssmJacobian::displayWarning
bool displayWarning() const
Displays whether a warning was flagged during the calculation.
Definition:
nmssmjacobian.h:103
softsusy::NmssmJacobian::displayInverseRGFlowJacobian
DoubleMatrix displayInverseRGFlowJacobian() const
Displays the Jacobian for transforming from low- to high-scale parameters.
Definition:
nmssmjacobian.h:147
softsusy::NmssmJacobian::resetWarnings
void resetWarnings()
Resets the warning status to false.
Definition:
nmssmjacobian.h:96
softsusy::NmssmJacobian::displayIncludeTopFlag
bool displayIncludeTopFlag() const
Displays whether the top Yukawa is included in the tuning.
Definition:
nmssmjacobian.h:66
softsusy::NmssmJacobian::resetError
void resetError()
Resets the error status to false.
Definition:
nmssmjacobian.h:89
softsusy::NmssmJacobian::displayUseRunningMassesFlag
bool displayUseRunningMassesFlag() const
Displays whether running or pole masses are being used.
Definition:
nmssmjacobian.h:74
softsusy::NmssmJacobian::calcFTJacobian
double calcFTJacobian(const NmssmSoftsusy &m)
Calculates the Jacobian transforming parameters to observables.
Definition:
nmssmjacobian.cpp:233
softsusy::NmssmJacobian::calcFTInverseJacobianLogs
double calcFTInverseJacobianLogs(const NmssmSoftsusy &m)
Calculates the Jacobian transforming observables to parameters.
Definition:
nmssmjacobian.cpp:201
softsusy::NmssmJacobian::displayUseSugraTrilinearsFlag
bool displayUseSugraTrilinearsFlag() const
Displays whether SUGRA style trilinears are assumed.
Definition:
nmssmjacobian.h:82
softsusy::NmssmJacobian::displayInverseEWSBJacobian
DoubleMatrix displayInverseEWSBJacobian() const
Displays the Jacobian for transforming observables to low-scale parameters.
Definition:
nmssmjacobian.h:159
softsusy::NmssmJacobian::displayFailedVevIterationWarning
bool displayFailedVevIterationWarning() const
Displays whether the VEV iteration failed.
Definition:
nmssmjacobian.h:108
softsusy::NmssmJacobian::displayInverseRGFlowJacobianErrors
DoubleMatrix displayInverseRGFlowJacobianErrors() const
Displays the error in the Jacobian for transforming from low- to high-scale parameters.
Definition:
nmssmjacobian.h:152
softsusy::NmssmJacobian::calcDeltaJLogs
double calcDeltaJLogs(const NmssmSoftsusy &m)
Calculates the fine-tuning using logarithmic derivatives.
Definition:
nmssmjacobian.cpp:108
softsusy::NmssmJacobian::calcFTInverseJacobian
double calcFTInverseJacobian(const NmssmSoftsusy &m)
Calculates the Jacobian transforming observables to parameters.
Definition:
nmssmjacobian.cpp:170
softsusy::NmssmJacobian::displayError
bool displayError() const
Displays whether an error occurred during the calculation.
Definition:
nmssmjacobian.h:93
softsusy::NmssmJacobian::displayEWSBJacobian
DoubleMatrix displayEWSBJacobian() const
Displays the Jacobian for transforming low-scale parameters to observables.
Definition:
nmssmjacobian.h:137
softsusy::NmssmJacobian::displayRGFlowJacobianErrors
DoubleMatrix displayRGFlowJacobianErrors() const
Displays the error in the Jacobian for transforming from high- to low-scale parameters.
Definition:
nmssmjacobian.h:132
softsusy::NmssmJacobian::setUseRunningMassesFlag
void setUseRunningMassesFlag(bool flag)
Sets whether to use running or pole masses in derivatives.
Definition:
nmssmjacobian.h:78
softsusy::NmssmJacobian::setUseSugraTrilinearsFlag
void setUseSugraTrilinearsFlag(bool flag)
Sets whether to assume SUGRA style trilinears.
Definition:
nmssmjacobian.h:86
softsusy::NmssmJacobian::displayEWSBJacobianErrors
DoubleMatrix displayEWSBJacobianErrors() const
Displays the error in the Jacobian for transforming low-scale parameters to observables.
Definition:
nmssmjacobian.h:142
softsusy::NmssmJacobian::displayInverseEWSBJacobianErrors
DoubleMatrix displayInverseEWSBJacobianErrors() const
Displays the error in the Jacobian for transforming observables to low-scale parameters.
Definition:
nmssmjacobian.h:164
softsusy::NmssmJacobian::displayRGFlowJacobian
DoubleMatrix displayRGFlowJacobian() const
Displays the Jacobian for transforming from high- to low-scale parameters.
Definition:
nmssmjacobian.h:127
softsusy::NmssmJacobian::displayWorstCaseHiggsAccuracy
double displayWorstCaseHiggsAccuracy() const
Returns the worst achieved accuracy for the Higgs masses.
Definition:
nmssmjacobian.h:120
softsusy::NmssmJacobian::setIncludeTopFlag
void setIncludeTopFlag(bool flag)
Sets whether to include top Yukawa derivatives.
Definition:
nmssmjacobian.h:70
softsusy::NmssmJacobian::displayInaccurateHiggsMassWarning
bool displayInaccurateHiggsMassWarning() const
Displays whether an inaccurate Higgs mass was encountered.
Definition:
nmssmjacobian.h:114
softsusy::NmssmSoftsusy
Contains all supersymmetric NMSSM parameters, incorporating R_p NMSSM.
Definition:
nmssmsoftsusy.h:44
linalg.h
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
softsusy
global variable declaration
Definition:
def.cpp:13
softsusy::Parameters
Definition:
mssm_twoloop_mb.h:23
Generated by
1.9.1