softsusy is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
softsusy::NmssmJacobian Class Reference

Class for calculating Jacobian fine-tuning measure. More...

#include <nmssmjacobian.h>

Public Member Functions

 NmssmJacobian (bool doTop=false)
 
bool displayIncludeTopFlag () const
 Displays whether the top Yukawa is included in the tuning. More...
 
void setIncludeTopFlag (bool flag)
 Sets whether to include top Yukawa derivatives. More...
 
bool displayUseRunningMassesFlag () const
 Displays whether running or pole masses are being used. More...
 
void setUseRunningMassesFlag (bool flag)
 Sets whether to use running or pole masses in derivatives. More...
 
bool displayUseSugraTrilinearsFlag () const
 Displays whether SUGRA style trilinears are assumed. More...
 
void setUseSugraTrilinearsFlag (bool flag)
 Sets whether to assume SUGRA style trilinears. More...
 
void resetError ()
 Resets the error status to false.
 
bool displayError () const
 Displays whether an error occurred during the calculation. More...
 
void resetWarnings ()
 Resets the warning status to false.
 
bool displayWarning () const
 Displays whether a warning was flagged during the calculation. More...
 
bool displayFailedVevIterationWarning () const
 Displays whether the VEV iteration failed. More...
 
bool displayInaccurateHiggsMassWarning () const
 Displays whether an inaccurate Higgs mass was encountered. More...
 
double displayWorstCaseHiggsAccuracy () const
 Returns the worst achieved accuracy for the Higgs masses. More...
 
DoubleMatrix displayRGFlowJacobian () const
 Displays the Jacobian for transforming from high- to low-scale parameters. More...
 
DoubleMatrix displayRGFlowJacobianErrors () const
 Displays the error in the Jacobian for transforming from high- to low-scale parameters. More...
 
DoubleMatrix displayEWSBJacobian () const
 Displays the Jacobian for transforming low-scale parameters to observables. More...
 
DoubleMatrix displayEWSBJacobianErrors () const
 Displays the error in the Jacobian for transforming low-scale parameters to observables. More...
 
DoubleMatrix displayInverseRGFlowJacobian () const
 Displays the Jacobian for transforming from low- to high-scale parameters. More...
 
DoubleMatrix displayInverseRGFlowJacobianErrors () const
 Displays the error in the Jacobian for transforming from low- to high-scale parameters. More...
 
DoubleMatrix displayInverseEWSBJacobian () const
 Displays the Jacobian for transforming observables to low-scale parameters. More...
 
DoubleMatrix displayInverseEWSBJacobianErrors () const
 Displays the error in the Jacobian for transforming observables to low-scale parameters. More...
 
double calcFTJacobian (const NmssmSoftsusy &m)
 Calculates the Jacobian transforming parameters to observables. More...
 
double calcFTJacobian (const NmssmSoftsusy &m, double mx)
 Calculates the Jacobian transforming parameters to observables. More...
 
double calcFTInverseJacobian (const NmssmSoftsusy &m)
 Calculates the Jacobian transforming observables to parameters. More...
 
double calcFTInverseJacobian (const NmssmSoftsusy &m, double mx)
 Calculates the Jacobian transforming observables to parameters. More...
 
double calcFTInverseJacobianLogs (const NmssmSoftsusy &m)
 Calculates the Jacobian transforming observables to parameters. More...
 
double calcFTInverseJacobianLogs (const NmssmSoftsusy &m, double mx)
 Calculates the Jacobian transforming observables to parameters. More...
 
double calcDeltaJ (const NmssmSoftsusy &m)
 Calculates the fine-tuning using the Jacobian measure. More...
 
double calcDeltaJ (const NmssmSoftsusy &m, double mx)
 Calculates the fine-tuning using the Jacobian measure. More...
 
double calcDeltaJLogs (const NmssmSoftsusy &m)
 Calculates the fine-tuning using logarithmic derivatives. More...
 
double calcDeltaJLogs (const NmssmSoftsusy &m, double mx)
 Calculates the fine-tuning using logarithmic derivatives. More...
 

Detailed Description

Class for calculating Jacobian fine-tuning measure.

This class provides methods for calculating the Jacobian fine-tuning measure as defined in arXiv:1312.4150, \(\Delta_J = | \partial O_j / \partial p_i |\), where \(\{O_j\}\) refers to a set of observables and \(\{p_i\}\) to a set of model parameters, and \( \partial O_j / \partial p_i\) is the Jacobian for the transformation from the observables to the parameters.

The sets \(\{O_j\}\) and \(\{p_i\}\) used depend on the global flags softsusy::Z3 and softsusy::SoftHiggsOut. If softsusy::SoftHiggsOut is true, the parameters used are the soft Higgs masses at an input scale mx, \(\{ m_{H_1,0}^2, m_{H_2,0}^2, m_{S_0}^2\} \), and the observables are \(\{M_Z^2, \tan\beta, s\}\), irrespective of the value of softsusy::Z3. If softsusy::SoftHiggsOut is false and softsusy::Z3 is true, the parameters are taken to be \(\{\lambda_0, \kappa_0, m_{S_0}^2\}\) at mx. The observables in this case are \(\{M_Z^2, \tan\beta, \lambda\}\). If both flags are false, the parameters used are \(\{\mu_0, m_{3_0}^2, \xi_{S_0}\}\) and the set of observables is \(\{M_Z^2, \tan\beta, s\}\).

The top Yukawa \(y_t\) can be included in the set of parameters, and \(M_t^2\) in the set of observables, by calling setIncludeTopFlag() with the desired flag. Whether \(M_Z^2\) and \(M_t^2\) are taken to be the pole or running masses may be set by calling setUseRunningMassesFlag() with the appropriate flag. By default the pole masses are used.

The treatment of the soft SUSY breaking trilinears can be modified using the setUseSugraTrilinearsFlag routine. If set to true, the independent parameters are taken to be the capital \(A\) trilinears, e.g. \(A_\lambda = a_\lambda / \lambda\). In this case, it is the quantity \(A\) that is held fixed in partial derivatives, rather than the quantity \(a\). If this flag is false, the trilinears \(a\) are treated as independent of the corresponding coupling, and are held fixed in the partial derivatives. By default this flag is false, i.e. the \(a\) couplings are taken to be the independent parameters.

Member Function Documentation

◆ calcDeltaJ() [1/2]

double softsusy::NmssmJacobian::calcDeltaJ ( const NmssmSoftsusy m)

Calculates the fine-tuning using the Jacobian measure.

Parameters
[in]mthe model to calculate the fine-tuning for
Returns
the value of the fine-tuning. It returns NaN if it had trouble calculating the fine-tuning

Calculates the fine-tuning for the model, using the Jacobian measure. The parameters are taken to be defined at the input scale mx obtained from a call to m.displayMxBC(), while the observables are calculated at the SUSY scale returned by m.calcMs(). The Jacobian matrix is calculated by calling calcFTInverseJacobian() internally, and can be accessed after the calculation.

See also
calcFTInverseJacobian(const NmssmSoftsusy&)

◆ calcDeltaJ() [2/2]

double softsusy::NmssmJacobian::calcDeltaJ ( const NmssmSoftsusy m,
double  mx 
)

Calculates the fine-tuning using the Jacobian measure.

Parameters
[in]mthe model to calculate the fine-tuning for
[in]mxthe scale at which the input parameters are defined
Returns
the value of the fine-tuning

Calculates the fine-tuning as in calcDeltaJ(const NmssmSoftsusy& m), but with mx set to the given value instead of that returned by m.displayMxBC().

◆ calcDeltaJLogs() [1/2]

double softsusy::NmssmJacobian::calcDeltaJLogs ( const NmssmSoftsusy m)

Calculates the fine-tuning using logarithmic derivatives.

Parameters
[in]mthe model to calculate the fine-tuning for
Returns
the value of the fine-tuning

Calculates the fine-tuning for the model, using the Jacobian measure. The Jacobian matrix is calculated using derivatives computed with respect to the logarithms of the parameters and observables. The parameters are taken to be defined at the input scale mx obtained from a call to m.displayMxBC(), while the observables are calculated at the SUSY scale returned by m.calcMs(). Internally, the Jacobian matrix is calculated by calling calcFTInverseJacobianLogs(), and can be accessed after the calculation.

See also
calcFTInverseJacobianLogs(const NmssmSoftsusy&)

◆ calcDeltaJLogs() [2/2]

double softsusy::NmssmJacobian::calcDeltaJLogs ( const NmssmSoftsusy m,
double  mx 
)

Calculates the fine-tuning using logarithmic derivatives.

Parameters
[in]mthe model to calculate the fine-tuning for
[in]mxthe scale at which the input parameters are defined
Returns
the value of the fine-tuning

Calculates the fine-tuning as in calcDeltaJLogs(const NmssmSoftsusy& m), but with mx set to the given value instead of that returned by m.displayMxBC().

◆ calcFTInverseJacobian() [1/2]

double softsusy::NmssmJacobian::calcFTInverseJacobian ( const NmssmSoftsusy m)

Calculates the Jacobian transforming observables to parameters.

Parameters
[in]mthe model to calculate the Jacobian for
Returns
the value of the Jacobian

Calculates the Jacobian of the form \( J^{-1} = | \partial O / \partial p | \). The transformation is done in two stages. In the first, the observables at the SUSY scale, obtained from m.calcMs(), are traded for the parameters at this scale using the EWSB conditions. The Jacobian matrix for this transformation can be accessed afterwards using displayInverseEWSBJacobian(). Then, the parameters at this scale are transformed to parameters at the scale mx, obtained from calling m.displayMxBC(), using the RGEs. The Jacobian matrix for this transformation may be accessed by calling displayInverseRGFlowJacobian().

◆ calcFTInverseJacobian() [2/2]

double softsusy::NmssmJacobian::calcFTInverseJacobian ( const NmssmSoftsusy m,
double  mx 
)

Calculates the Jacobian transforming observables to parameters.

Parameters
[in]mthe model to calculate the Jacobian for
[in]mxthe scale at which the input parameters are defined
Returns
the value of the Jacobian

Calculates the Jacobian as in calcFTInverseJacobian(const NmssmSoftsusy& m), but with mx set to the given value instead of that returned by m.displayMxBC().

◆ calcFTInverseJacobianLogs() [1/2]

double softsusy::NmssmJacobian::calcFTInverseJacobianLogs ( const NmssmSoftsusy m)

Calculates the Jacobian transforming observables to parameters.

Parameters
[in]mthe model to calculate the Jacobian for
Returns
the value of the Jacobian

Calculates the Jacobian of the form \( J^{-1} = | \partial \ln O / \partial \ln p | \). The transformation is done in two stages. In the first, the observables at the SUSY scale, obtained from m.calcMs(), are traded for the parameters at this scale using the EWSB conditions. The Jacobian matrix for this transformation can be accessed afterwards using displayInverseEWSBJacobian(). Then, the parameters at this scale are transformed to parameters at the scale mx, obtained from calling m.displayMxBC(), using the RGEs. The Jacobian matrix for this transformation may be accessed by calling displayInverseRGFlowJacobian().

◆ calcFTInverseJacobianLogs() [2/2]

double softsusy::NmssmJacobian::calcFTInverseJacobianLogs ( const NmssmSoftsusy m,
double  mx 
)

Calculates the Jacobian transforming observables to parameters.

Parameters
[in]mthe model to calculate the Jacobian for
[in]mxthe scale at which the input parameters are defined
Returns
the value of the Jacobian

Calculates the Jacobian as in calcFTInverseJacobianLogs(const NmssmSoftsusy& m), but with mx set to the given value instead of that returned by m.displayMxBC().

◆ calcFTJacobian() [1/2]

double softsusy::NmssmJacobian::calcFTJacobian ( const NmssmSoftsusy m)

Calculates the Jacobian transforming parameters to observables.

Parameters
[in]mthe model to calculate the Jacobian for
Returns
the value of the Jacobian

Calculates the Jacobian of the form \( J = | \partial p / \partial O | \). The transformation, which is the inverse of that calculated by calcFTInverseJacobian(), is done in two stages. In the first, the parameters at the input scale mx, obtained from a call to m.displayMxBC(), are transformed to parameters \(\{q\}\) at the SUSY scale, obtained from m.calcMs(), using the RGEs. The Jacobian matrix for this transformation may be accessed afterwards by calling displayRGFlowJacobian(). Then the parameters \(\{q\}\) are traded for the observables at the same scale using the EWSB conditions. The Jacobian matrix for this second transformation can be accessed using displayEWSBJacobian().

◆ calcFTJacobian() [2/2]

double softsusy::NmssmJacobian::calcFTJacobian ( const NmssmSoftsusy m,
double  mx 
)

Calculates the Jacobian transforming parameters to observables.

Parameters
[in]mthe model to calculate the Jacobian for
[in]mxthe scale at which the input parameters are defined
Returns
the value of the Jacobian

Calculates the Jacobian as in calcFTJacobian(const NmssmSoftsusy& m), but with mx set to the given value instead of that returned by m.displayMxBC().

◆ displayError()

bool softsusy::NmssmJacobian::displayError ( ) const
inline

Displays whether an error occurred during the calculation.

Returns
true if an error occurred

◆ displayEWSBJacobian()

DoubleMatrix softsusy::NmssmJacobian::displayEWSBJacobian ( ) const
inline

Displays the Jacobian for transforming low-scale parameters to observables.

Returns
the Jacobian matrix of derivatives for the transformation

◆ displayEWSBJacobianErrors()

DoubleMatrix softsusy::NmssmJacobian::displayEWSBJacobianErrors ( ) const
inline

Displays the error in the Jacobian for transforming low-scale parameters to observables.

Returns
the absolute error on the Jacobian matrix

◆ displayFailedVevIterationWarning()

bool softsusy::NmssmJacobian::displayFailedVevIterationWarning ( ) const
inline

Displays whether the VEV iteration failed.

Returns
true if the VEV iteration failed

◆ displayInaccurateHiggsMassWarning()

bool softsusy::NmssmJacobian::displayInaccurateHiggsMassWarning ( ) const
inline

Displays whether an inaccurate Higgs mass was encountered.

Returns
true if an inaccurate Higgs mass was flagged

◆ displayIncludeTopFlag()

bool softsusy::NmssmJacobian::displayIncludeTopFlag ( ) const
inline

Displays whether the top Yukawa is included in the tuning.

Returns
true if the top Yukawa is included

◆ displayInverseEWSBJacobian()

DoubleMatrix softsusy::NmssmJacobian::displayInverseEWSBJacobian ( ) const
inline

Displays the Jacobian for transforming observables to low-scale parameters.

Returns
the Jacobian matrix of derivatives for the transformation

◆ displayInverseEWSBJacobianErrors()

DoubleMatrix softsusy::NmssmJacobian::displayInverseEWSBJacobianErrors ( ) const
inline

Displays the error in the Jacobian for transforming observables to low-scale parameters.

Returns
the absolute error on the Jacobian matrix

◆ displayInverseRGFlowJacobian()

DoubleMatrix softsusy::NmssmJacobian::displayInverseRGFlowJacobian ( ) const
inline

Displays the Jacobian for transforming from low- to high-scale parameters.

Returns
the Jacobian matrix of derivatives for the transformation

◆ displayInverseRGFlowJacobianErrors()

DoubleMatrix softsusy::NmssmJacobian::displayInverseRGFlowJacobianErrors ( ) const
inline

Displays the error in the Jacobian for transforming from low- to high-scale parameters.

Returns
the absolute error on the Jacobian matrix

◆ displayRGFlowJacobian()

DoubleMatrix softsusy::NmssmJacobian::displayRGFlowJacobian ( ) const
inline

Displays the Jacobian for transforming from high- to low-scale parameters.

Returns
the Jacobian matrix of derivatives for the transformation

◆ displayRGFlowJacobianErrors()

DoubleMatrix softsusy::NmssmJacobian::displayRGFlowJacobianErrors ( ) const
inline

Displays the error in the Jacobian for transforming from high- to low-scale parameters.

Returns
the absolute error on the Jacobian matrix

◆ displayUseRunningMassesFlag()

bool softsusy::NmssmJacobian::displayUseRunningMassesFlag ( ) const
inline

Displays whether running or pole masses are being used.

Returns
true if running masses are used instead of pole masses

◆ displayUseSugraTrilinearsFlag()

bool softsusy::NmssmJacobian::displayUseSugraTrilinearsFlag ( ) const
inline

Displays whether SUGRA style trilinears are assumed.

Returns
true if SUGRA style trilinears are being assumed

◆ displayWarning()

bool softsusy::NmssmJacobian::displayWarning ( ) const
inline

Displays whether a warning was flagged during the calculation.

Returns
true if a warning was flagged

◆ displayWorstCaseHiggsAccuracy()

double softsusy::NmssmJacobian::displayWorstCaseHiggsAccuracy ( ) const
inline

Returns the worst achieved accuracy for the Higgs masses.

Returns
the worst case accuracy for the Higgs masses

◆ setIncludeTopFlag()

void softsusy::NmssmJacobian::setIncludeTopFlag ( bool  flag)
inline

Sets whether to include top Yukawa derivatives.

Parameters
[in]flagif true, include top Yukawa

◆ setUseRunningMassesFlag()

void softsusy::NmssmJacobian::setUseRunningMassesFlag ( bool  flag)
inline

Sets whether to use running or pole masses in derivatives.

Parameters
[in]flagif true, use running masses instead of pole masses

◆ setUseSugraTrilinearsFlag()

void softsusy::NmssmJacobian::setUseSugraTrilinearsFlag ( bool  flag)
inline

Sets whether to assume SUGRA style trilinears.

Parameters
[in]flagif true, assume SUGRA style trilinears

The documentation for this class was generated from the following files: