SPheno files
All routines generated by SARAH are strongly inspired by the intrinsic routines of SPheno to ensure that they interact nicely with all other SPheno functions. We give here some details of the different files which are written by SARAH as well as of the main functions for the case that the user wants to do some changes.
BranchingRatios_[Model].f90
Contains the routines for calculating the branching ratios for all particles. Checks are done, if three body decays for fermions are necessary or not.
Couplings_[Model].f90
All vertices calculated by SARAH are written to this files. Also functions for calculating different subsets of these couplings are generated:
 AllCouplings: all couplings for the mass eigenstates (used for the calculation of decays)
 CouplingsForSMfermion: couplings involved in the one loop self energy of SM fermions
 CouplingsForVectorBosons: couplings involved in the one loop self energy of SM vector bosons
 CouplingsForTadpoles: couplings involved in the calculation of the one loop tadpoles
 CouplingsForLoop: couplings needed for the one loop self energies of all particles
For all couplings involved in loop calculation, the mixing matrices of external particles are replaced by the identity matrix.
CouplingsForDecays_[Model].f90
Calculates the running couplings at the mass scale of each decaying particle. The SUSY parameters are obtained by running the RGEs from the SUSY scale to the desired energy scale. The calculation of the SM gauge and Yukawa coupling is different for particles with masses above or below the SUSY scale. For lighter particles, the SM RGEs are used to run from M_{Z} to the mass scale, for heavier particles the SUSY RGEs are taken to run from M_{SUS**Y}. In addition, the running treelevel masses are calculated. These are used to get effective couplings of the Higgs bosons to two gluons or photons. Furthermore, also the couplings of a light Higgs to a real and virtual vector boson (W, Z) are calculated.
InputOutput_[Model].f90
This file contains the routines for reading the LesHouches.in.[Model] input file and writing the output SPheno.spc.[Model].
Input
The following blocks are changed in comparison to the standard LesHouches/SPheno input, see also sec. [sec:SPHENOINPUT].
 Block MODSEL
 Block MINPAR
 Block EXTPAR
 Block MODSEL
 Block SPHENOINPUT
Output
Routines for writing the following information to the LesHouches spectrum file are generated:
 Parameters at the SUSY scale: As block names for the output, the entries in LesHouches in the parameter file of SARAH are used. If this entry is missing, the name for the block is generated automatically.
 Masses at the SUSY scale: The PDG of the particles file of SARAH is used. If this is missing or 0, the mass is not written in order to exclude unphysical states.
 Optionally, decay widths and branching ratios for the particle in ListDecayParticles and ListDecayParticles3B
 Optionally, results for low energy constraints
 Optionally, effective couplings of the Higgs to SM particles which can be used for instance by HiggsBounds
 Optionally, the GUT values of all parameters
 Optionally, the loop contributions of all particles to the effective coupling of the Higgs to two photons or gluons
In addition, that file contains a routine to write the parameters to a WHIZARD specific output file
LoopCouplings_[Model].f90
Routines for calculating the following couplings:
 Corrections to SM gauge couplings due to all particles heavier than M_{Z}, i.e. normally SUSY particles and top quark (AlphaSDR, AlphaEwDR)
 Effective couplings of scalar/pseudoscalar Higgs to SM fermions (e.g.
CouphhtoFe
). 
DeltaVB
: oneloop correction to G_{F} calculated from \mu
\rightarrow e \sum_{i j} \nu_i \bar{\nu}_j
LoopMasses_[Model].f90
This file contains the routines for calculating the one loop contributions to the tadpoles and the self energies:

OneLoopMasses: main routine for calling all other functions

TadpolesOneLoop: calculates the one loop tadpoles.

Pi1LoopX: one loop self energy for particle X (scalars or vector bosons (transverse part))

Sigma1LoopX: calculates Σ_{L}, Σ_{R}, Σ_{S} for fermions

OneLoopX: calculates the one loop corrected mass for particle X in an iterative way in order to solve Det[p_{i}^{2}1−m_{1L}^{2, X}(p^{2})] = 0,
for external masses onshell, i.e. p^{2} = m_{Tre**e}^{2, X}.
All these calculation are done in ’t Hooft gauge. Normally, the results are oneloop \overline{\mathrm{DR}}
masses and mixing matrices. For further calculations, the mixing matrices corresponding to an external momentum equal to the heaviest mass eigenstate is taken. However, for SM particles the pole masses are used in the decays as well as in the output.
LowEnergy_[Model].f90
Contains the routines for the calculation of precision observables:
 b → s**γ (BToQGamma)
 l_{i} → l_{j}γ (BrLgammaLp)
 l_{i} → 3l_{j} (with l = (e, μ, τ)), (BR1LeptonTo3Leptons)
 the anomalous magnetic moment of leptons (Gminus2)
 electric dipole moments of the charged leptons (LeptonEDM)

\delta\rho=1\rho=\frac{\Pi_{WW}(0)}{m_W^2}\frac{\Pi_{ZZ}(0)}{m_Z^2}
(Π_{Z**Z}, Π_{W**W} are the selfenergies of the massive vector bosons). (DeltaRho)  μ − e conversion in nuclei (Al, Ti, Sr, Sb, Au, Pb) based on the results of (BrLLpHadron)
 τ → l**P^{0} with a pseudoscalar meson P^{0} (BrLLpHadron) (π^{0}, η, η′) based on the results of
 Z → l_{i}l_{j} calculated and implemented by Kilian Nickel (based on generic results obtained by FeynArts /FormCalc ) (BrZLLp)
 B_{s, d} → l_{i}l_{j} calculated and implemented by Kilian Nickel (based on generic results obtained by FeynArts /FormCalc ) (BrB0LLp)
Note, the calculation is based on the approach and conventions given in the references. However, these expressions are generalized and SARAH includes new contributions possible in an extended SUSY model. This is done be calculating and implementing the amplitudes for each generic possible diagram for a given process in a general form. The necessity of this is for instance pronounced in Ref. where it has been shown that the Zpenguins to l_{i} → 3l_{j} often small in the MSSM can dominate in other models like inverse seesaw.
ModelData_[Model].f90
Contains the declaration of global variables and a function for initializing all variables with 0. Only masses of particles, which are integrated out, are initialized with 10^{16} GeV. That’s used for the threshold corrections in the first iteration. In addition, functions for the calculation of GMSB boundary conditions as well as the content of SelfDefinedFunctions is written to that file, see also sec. [sec:sphenoinputfile].
RGEs_[Model].f90
That file includes all information about the RGEs. In principle, SARAH generates three different sets of RGEs for …
 …running of all parameters (gauge couplings, superpotential parameter, soft breaking parameters) from the GUT scale to the SUSY scale
 …running of all parameters and VEVs from SUSY scale to electroweak scale and back
 …running of a minimal set of parameters from electroweak scale to GUT scale: that includes all SM gauge and Yukawa couplings as well as the other parameter the running depends on. Above a threshold scale, the set of parameters consists of all parameter related to the SM gauge and Yukawa couplings.
For each set of RGEs the following function are generated:
 ParametersToGXX: saves the parameters in a vector of length XX
 GToParametersXX: extracts the parameters from a vector of length XX
 rgeXX: definition of all βfunctions.
SARAH does the following simplification/modifications of the βfunctions before exporting it to Fortran code, in order to increase the speed of the numerical calculation
 All matrix multiplications are replaced by constants, which are calculated at the beginning of each rgeXX routine
 All powers of numbers/parameters are replaced by a constants, which are also calculated first
Shifts_[Model].f90
That file is only created for models including at least one threshold scale with gauge symmetry breaking. It contains the necessary routines to calculate the finite shifts for gauge couplings and gaugino masses at the threshold.
SPheno_[Model].f90
The main program. Calls routines for reading the input, calculating the spectrum, decay widths and low energy observables and writing the output.
SugraRuns_[Model].f90
Main routines for calculating the (s)particle spectrum:
 FirstGuess: calculates a first, approximate spectrum as starting point
 SugraRuns: calculates in an iterative way the spectrum
 BoundaryEW: calculates the starting point of the running for gauge and Yukawa couplings from electroweak data
 BoundaryHS, BoundarySUSY: sets the boundary conditions at the GUT and SUSY scale.
 BoundaryConditionsUp,BoundaryConditionsDown: applies the boundary conditions at the threshold scales when running up/down
SusyDecays_[Model].f90
Calculates all two body decays by using the phase space functions of SPheno . If scalar and pseudo scalar Higgs as well as the quarks are defined in the particles file by the corresponding Description statement, the one loop corrections to the decays H, A → q**q̄ from gluons are added, see app. [app:SPhenoDecays] for more information.
SusyMasses_[Model].f90
This file contains functions to calculate all running masses at tree level. The mass matrices involving Goldstone bosons are taken in ’t Hooft gauge. Note, that works only, if the Goldstone bosons have been associated with the corresponding vector boson in the particles.m file, see sec. [sec:gaugefixing]. The main routines in that file are
 TreeMasses: main function to call the other subroutines
 CalculateX: derives the tree level mass and mixing matrix of particle X by solving the eigensystem of the corresponding mass matrix.
Glu_[Model].f90
Three Body Decays, e.g.Contains all necessary routines to calculate the branching ratios and decay width of a fermion to three other fermions. All possible processes and diagrams are generated by SARAH and mapped to the phase space function of SPheno .
Additional Files
 A model specific Makefile
 Template for an input file of the current model: LesHouches.in.[Model], see app. [sec:LHinput:file].
 Template for an input file assuming a SUSY scale input: LesHouches.in.[Model]_low, see also app. [sec:LHinput:file].
LesHouches input file
The LesHouches input file for each model is by default named
LesHouches.in.[Model]
However, it is also possible to give the name of the in and output file as option when running SPheno , see also Ref. :
./[SPheno Directory]/bin/SPheno[Model] [Input file] [Output file]
While the entries of the common block MINPAR and EXTPAR are completely defined by the SPheno input file for SARAH, some other blocks have distinct values.
SMINPUTS
The entries of this block accordingly to the SLHA conventions are:
MODSEL
The block MODSEL is not totally equivalent to the SLHA conventions: since each SPheno module generated by SARAH handles one specify model, the flags 3 and 4 have no effect. In addition, we added the flag 2 to choose between the different boundary conditions, and flag 1 is used to choose between a GUT scale and SUSY scale input.
SPHENOINPUT
The block with SPheno specific commands is similar to the conventions used by the standard SPheno version 3.1 and above. However, some switches have no effect and there are also some new entries which we highlight with in bold.