softsusy is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
mssmjacobian.h
Go to the documentation of this file.
1 
6 #ifndef MSSMJACOBIAN_H
7 #define MSSMJACOBIAN_H
8 
9 #include "linalg.h"
10 
11 #include <utility>
12 #include <limits>
13 
14 namespace softsusy {
15 
16  class MssmSoftsusy;
17 
18  class MssmJacobian {
19  public:
20 
21  explicit MssmJacobian(bool doTop = false);
22  ~MssmJacobian();
23 
26  bool displayIncludeTopFlag() const { return includeTop; }
27 
30  void setIncludeTopFlag(bool flag) { includeTop = flag; }
31 
34  bool displayUseRunningMassesFlag() const { return useRunningMasses; }
35 
38  void setUseRunningMassesFlag(bool flag) { useRunningMasses = flag; }
39 
42  bool displayUseSugraTrilinearsFlag() const { return useSugraTrilinears; }
43 
46  void setUseSugraTrilinearsFlag(bool flag) { useSugraTrilinears = flag; }
47 
49  void resetError() { hasError = false; }
50 
53  bool displayError() const { return hasError; }
54 
58  DoubleMatrix displayInverseRGFlowJacobian() const { return invJacRGFlow; }
59 
64  return invJacRGFlowErrors;
65  }
66 
70  DoubleMatrix displayInverseEWSBJacobian() const { return invJacEWSB; }
71 
76  return invJacEWSBErrors;
77  }
78 
82  double calcFTInverseJacobian(const MssmSoftsusy& m);
83 
88  double calcFTInverseJacobian(const MssmSoftsusy& m, double mx);
89 
94  double calcDeltaJ(const MssmSoftsusy& m);
95 
100  double calcDeltaJ(const MssmSoftsusy& m, double mx);
101 
102  private:
103  enum Parameters { Mzsq, Tanb, Mtsq, SMu, M3Sq, Mh1Sq, Mh2Sq, Yt };
104 
105  DoubleMatrix invJacRGFlow;
106  DoubleMatrix invJacEWSB;
107 
108  DoubleMatrix invJacRGFlowErrors;
109  DoubleMatrix invJacEWSBErrors;
110 
111  bool includeTop;
112  bool useRunningMasses;
113  bool useSugraTrilinears;
114  bool hasError;
115 
116  struct EWSBPars {
117  MssmSoftsusy* model;
118  Parameters independent;
119  Parameters dependent;
120  DoubleVector outputs;
121  bool useRunningMasses;
122  bool useSugraTrilinears;
123 
124  EWSBPars()
125  : model(0), independent(Mzsq), dependent(SMu),
126  outputs(2), useRunningMasses(false),
127  useSugraTrilinears(false)
128  {}
129  };
130 
131  struct RGFlowPars {
132  MssmSoftsusy* model;
133  Parameters independent;
134  Parameters dependent;
135  double toScale;
136  bool useSugraTrilinears;
137  };
138 
139  static double calcMz(MssmSoftsusy& model, bool getRunningMass = false);
140  static double calcMt(MssmSoftsusy& model, bool getRunningMass = false);
141 
142  static double calcRunningParameter(double x, void* parameters);
143  std::pair<double,double> calcRGDerivative(MssmSoftsusy& model,
144  Parameters dep, Parameters indep,
145  double toScale);
146  double calcRGFlowJacobian(MssmSoftsusy& model, double startScale,
147  double endScale);
148  static double calcEWSBOutput(double x, void* parameters);
149  std::pair<double,double> calcEWSBOutputDerivative(MssmSoftsusy& model,
150  Parameters dep,
151  Parameters indep);
152  double calcInverseEWSBJacobian(MssmSoftsusy& model);
153  };
154 
155 }
156 
157 #endif
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
Definition: mssmjacobian.h:18
double calcFTInverseJacobian(const MssmSoftsusy &m)
Calculates the Jacobian transforming observables to parameters.
Definition: mssmjacobian.cpp:95
bool displayUseSugraTrilinearsFlag() const
Displays whether SUGRA style trilinears are assumed.
Definition: mssmjacobian.h:42
void setUseRunningMassesFlag(bool flag)
Sets whether to use running or pole masses in derivatives.
Definition: mssmjacobian.h:38
void setUseSugraTrilinearsFlag(bool flag)
Sets whether to assume SUGRA style trilinears.
Definition: mssmjacobian.h:46
bool displayUseRunningMassesFlag() const
Displays whether running or pole masses are being used.
Definition: mssmjacobian.h:34
void setIncludeTopFlag(bool flag)
Sets whether to include top Yukawa derivatives.
Definition: mssmjacobian.h:30
double calcDeltaJ(const MssmSoftsusy &m)
Calculates the fine-tuning using the Jacobian measure.
Definition: mssmjacobian.cpp:40
DoubleMatrix displayInverseRGFlowJacobianErrors() const
Displays the error in the Jacobian for transforming from low- to high-scale parameters.
Definition: mssmjacobian.h:63
void resetError()
Resets the error status to false.
Definition: mssmjacobian.h:49
bool displayIncludeTopFlag() const
Displays whether the top Yukawa is included in the tuning.
Definition: mssmjacobian.h:26
bool displayError() const
Displays whether an error occurred during the calculation.
Definition: mssmjacobian.h:53
DoubleMatrix displayInverseEWSBJacobian() const
Displays the Jacobian for transforming observables to low-scale parameters.
Definition: mssmjacobian.h:70
DoubleMatrix displayInverseRGFlowJacobian() const
Displays the Jacobian for transforming from low- to high-scale parameters.
Definition: mssmjacobian.h:58
DoubleMatrix displayInverseEWSBJacobianErrors() const
Displays the error in the Jacobian for transforming observables to low-scale parameters.
Definition: mssmjacobian.h:75
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:74
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
global variable declaration
Definition: def.cpp:13
Definition: mssm_twoloop_mb.h:23