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