Aus SARAH wiki
Wechseln zu: Navigation, Suche


The information of the parameter file are needed for some in- and output routines. Also, it is possible to define simplifying assumptions for the parameters. The parameter file consists of a list called ParameterDefinition. This is an array with two columns: the first column gives the name of the parameter, the second column defines the properties of the parameter. These properties can be:

  • Description: defines a string to describe the parameter.
  • OutputName: defines a string which is used for the parameter in the different outputs. No special characters should be used to be compatible with C++ and Fortran.
  • Real: defines if a parameter should be considered as real (True ) or complex (False ). Default is False.
  • Form: can be used for matrices to define if it is diagonal (Diagonal) or a scalar (Scalar). By default no assumption is made.
  • LaTeX: defines the name of the parameter used in the LaTeX output. Standard LaTeX language should be used / is interpreted by Mathematica as escape sequence. Therefore, / has to be replaced by // in the LaTeX commands
  • GUTnormalization: defines a GUT normalization for an Abelian gauge coupling.
  • Dependence: defines a dependence on other parameters which should always be used.
  • DependenceOptional: defines a dependence which is optionally used in analytical calculations.
  • DependenceNum: defines a dependence which is used in numerical calculations.
  • DependenceSPheno: defines a dependence which is just used by SPheno.
  • MatrixProduct: can be used to express a matrix as product of two other matrices. This can be used for instance to relate the CKM matrix to the quark rotation matrices.
  • LesHouches: defines the position of the parameter in a Les Houches spectrum file. For matrices just the name of the block is defined, for scalars the block and an entry has to be given: {block, number}.
  • Value: assigns a numerical value to the parameter.

Many of the above definitions are just optional and are often not needed.

Simplifying assumptions

SARAH normally handles parameters in the most general way: most parameters assumed to be complex and all tensors can have off diagonal values. This can be changed by certain statements in the parameter file. First, it is possible to define a parameter as real by setting

Real -> True

The gauge couplings are by default assumed to be real.
The degrees of freedom for a tensor valued parameter can be reduced by using the Form statement with the following options

  1. Diagonal: only diagonal entries are assumed to be unequal from zero:
  2. Scalar the tensor is replaced by a scalar:
  1. CP and Flavor conserving Yukawa matrices are defined by

    {Yu,  { Real -> True,
            Form -> Diagonal}}

Defining values and dependences for parameters


There are different possibilities to define dependences between parameters by using the Dependence statements. The difference between the three dependence statements is the time at which the relations are used

  1. Dependence: The relations are always used. The corresponding substitutions are saved in subAlways.
  2. DependenceOptional: The relations are only used if the option UseDependence is set to True as option for specific commands, e.g. when calculating vertices. The substitutions are saved in subDependences.
  3. DependenceNum: The dependences are only used when a numerical value for the parameter is calculated. The substitutions are saved in subNum.
  4. DependenceSPheno: The dependences are only used by SPheno

The indices of vectors or tensors are implicitly assumed to be index1, index2, …. This in combination with sum[index,start,final] can be used in the following way

{X, {Dependences -> sum[n1,1,3] sum[n2,1,3] A[index1,n1] Y[n1,n2] B[n2,index2]}}

and is interpreted as

Matrix valued parameters can also defined as matrix product of other matrices by using MatrixProduct. The argument must be a list consisting of two matrices of same dimension:

{X, {MatrixProduct-> {A,B} }} 

Using this definition, every appearance of a matrix product of is replaced by and by and can be used, for instance, to define the CKM matrix.


  1. One dependence, which might be used always, is the parametrization of a mixing matrix matrix by a mixing angle: the mixing of the charged Higgs (ZP) in the MSSM can be parametrized by the mixing angle . This is defined in SARAH via

    {ZP,  { Dependence -> {{-Cos[\[Beta]],Sin[\[Beta]]},
  2. The relation between the gauge couplings and and the electric charge is an example for an optional dependence. This relation is defined by

    {g1,  {DependenceOptional -> e/Cos[ThetaW]}}

    Now, the result for vertices can be expressed in terms of the electric charge by using

    Vertex[List of Particles, UseDependences -> True]
  3. A relation, which might only be used for numerical calculations, is the relation between the Weinberg angle and the gauge couplings:

    {ThetaW, {DependenceNum ->  ArcCos[g2/Sqrt[g1^2+g2^2]]}
  4. The CKM matrix is defined as the product of two rotation matrices:

    {CKM, {MatrixProduct -> {Vd,Vu} }}

Numerical values

If the considered parameter does not depend on other parameters, there are two ways to assign a numerical value to this parameter:

  1. Value: Adds directly a numerical value to the parameter definition

  2. LesHouches: Defines the position of the numerical value for the parameter in a LesHouches spectrum file (see also ). The statement has to has the following form:

    1. If the dimension of the parameters is known by SARAH , it is sufficient to give just the name of the block, e.g.

      {Yu, { LesHouches -> Yu } };
    2. If the block appears several times in the LesHouches file, it is possible to give the number of appearance as optional argument:

      {g3,  {LesHouches -> {gauge,3}}}; 

      This reads the first block which are normally the GUT-scale values. However,

      {g3,  {LesHouches -> {{gauge,3},2}}}; 

      reads the second block which are the values at the SUSY-scale.

  1. The CKM matrix can be defined in the Wolfenstein parametrization as

    {{Description ->"CKM Matrix", 
    			 LaTeX -> "V^{CKM}",
                 MatrixProduct -> {Vd,Vu},
                 Dependence ->  None, 
                 DependenceNum -> {{1-1/2*lWolf^2,lWolf,aWolf*lWolf^3*Sqrt[rWolf^2+nWolf^2]},
                                   {-lWolf,1-1/2*lWolf^2, aWolf*lWolf^2},
                                   {aWolf*lWolf^3*Sqrt[(1-rWolf)^2 +nWolf^2],-aWolf*lWolf^2,1}},
                 LesHouches -> VCKM,
                 DependenceSPheno -> Matmul[Transpose[conj[Vd]],Vu],
                 OutputName-> VCKM      }}, 
  2. The Wolfenstein parameters are real and the experimental values are known

    {{Description->"Wolfenstein Parameter eta", 
                 Value -> 0.341,
                 Real -> True,
                 OutputName-> nWolf,
                 LesHouches -> {WOLFENSTEIN,4} 	            }},

Global definitions

It is actually not necessary to give the full definitions for particles and parameters in the model files for each model. One can make use of global definitions which are defined in the files


One can refer to these definitions by using the Description statement. In addition, it is possible to overwrite locally specific entrues.


The entries for the two Higgs rotation matrices in the global parameters.m reads

{{ Description -> "Scalar-Mixing-Matrix", 
    LaTeX -> "Z^H",
    Real -> True, 
    DependenceOptional ->   {{-Sin[\[Alpha]],Cos[\[Alpha]]},
    LesHouches -> SCALARMIX,
    OutputName-> ZH     }},
{{ Description->"Pseudo-Scalar-Mixing-Matrix", 
    LaTeX -> "Z^A",
    Real -> True,
    DependenceOptional -> {{-Cos[\[Beta]],Sin[\[Beta]]},
    Value -> None, 
    LesHouches -> PSEUDOSCALARMIX,
    OutputName-> ZA      }}, 

These can be used and adjusted or removed (via None) in models with more Higgs fields via

{ZH,   { Description->"Scalar-Mixing-Matrix",
{ZA,   { Description->"Pseudo-Scalar-Mixing-Matrix",

See also