This program provides a SUSY spectrum in the NMSSM, or the MSSM including flavour violation and with or without R-parity consistent with input
Standard Model fermion mass/mixings and electroweak/strong coupling data. The R-parity violating mode can calculate neutrino masses and mixings to 1 loop. SOFTSUSY can be used in conjunction with other programs for many different particle physics calculations: see a SUSY tools review. See graphs of [ gauge unification | (whole range) | MSSM RGE evolution ] (feel free to use them). SOFTSUSY now has a mode with 3 loop RGEs and some 2-loop threshold correction and 2-loop SUSY QCD corrections to gluino and squark pole masses. SOFTSUSY now computes decay branching ratios for the MSSM and NMSSM. It also ships with (and links to) Himalaya-1.0 for three-loop corrections to mh0.
Got rid of approximate 2-loop running mt corrections: they have been causing inaccurate results since 3.7.4, decreasing mh by 4 GeV or so, for instance. For most accurate mh determination, use ./configure --enable-two-loop-gauge-yukawa-compilation and SLHA higher-loop contribution flags. Thanks to T. Garon and L. Everett for pointing this out.
Thanks to B Petersen for finding the bug which lead to a fix which was sometimes giving negative partial widths for decays into pions. This was due to a convention difference (due to complex mixings) and has now been fixed.
Thanks to I Strumke for finding bugs leading to following: Checking for negative PWs - All the partial widths are now checked to see if they are negative, if they are then a warning is output before the decay tables listing which mode is negative and setting its partial width to 0 so as not to result in Total branching ratios > 1.
New formula for gluino 3 body decays to first generation quarks for the limit of very compressed spectra (or heavy intermediate squarks) - In the limit of extremely compressed spectra then numerical precision issues may arise due to very fine cancellations between quantities, previously for these very compressed decays of gluino to neutralino LSP uubar or ddbar (when the gluino is only 100MeV or so above the mass of the neutralino LSP) this occasionally led to negative PWs as the integrand varied between random positive and negative values reflecting numerical precision, and even for positive PWs accuracy was lost as the value reflected random positive values from numerical precision issues. We have now performed the cancellation analytically in this limit and coded in the remainder of the cancellation to allow the actual PWs to be evaluated. This is only important for extremely compressed spectra and when only these extremely compressed modes are available to the parent particle (otherwise non compressed modes will dominate anyway), we leave it to future study if there are similar scenarios in the neutralino and chargino 3 body decay.
Limits corrected for gluino 3-body decays to charginos and quarks of the first two generations. The limits were missing some pieces proportional to mq or mq’ for the first two generations, again these effects are minimal, extending or reducing the phase space available by very small amounts and doing so in regions very suppressed anyway. However, for very compressed spectra again this could cause nan issues (or negative PWs) as sqrts of negative numbers may be produced in the tiny regions where the previous limits of integration extended that are not actually in the real full expression limits of the integration.
Tried to avoid issues with autotools on the Mac by clean/autoreconf cycle.
D Robertson fixed bug which caused some points to take forever when calculating 2-loop corrections to squark/gluino masses - thanks to S Kraml for flagging the bug
Fixed bug which gives wrong array comment for a 3-body decay
Flag noRhoConvergence if deltaR comes out >1 - thanks to P Athron, M Bach, A Voigt
Calculating decays no longer changes problem flags. Thanks to J Kersten for finding the bug
2 loop tadpole pieces now included in fine-tuning calculation: thanks to R Ruiz de Austri
Matching scale of QEDxQCD(5) to MSSM is now variable: it's set by the scale you run oneset up to before calling fixedOrderIteration. Used to be MZ: current default is mtop(phys). This does have some effect on the spectrum, particularly mh.
Slightly changed the calculation of the DRbar bottom mass - differs at the per mille level
Added Himalaya interface: three loop threshold corrections to Higgs mass. Thanks to R Harlander, J Klappert and A Voigt. See below for configuration options and use
Added chargino->charged pion/neutralino decays for small mass splittings
Split decays up into three files to allow faster compilation. Made a
decayTable object
Fixed bug in decays numerics that was giving many NaN's from numerical errors in a big cancellation
Few PDGIDs were wrong sign in decays: Bugfix by Brian Peterson
3-loop RGEs and 2-loop corrections to gluino/sparticle masses now always compiled. 2-loop scalar RGEs used for RPC by default.
Made quark mixing parameter MIXING an object parameter in MssmSusy object. Use setMixing() and displayMixing() methods. User-set electroweak symmetry breaking scale QEWSB now moved into MssmSoftsusy object: use setQewsb() and displayQewsb().
If you want to receive an email every time there's a new version, send an email to Ben Allanach, asking to be added to the mailing list.
References
These reference are collected here in a bibTeX file for handy inclusion into latex documents.
If you use SOFTSUSY to write a paper,
please cite (see MCnet guidelines)
For ultra-basic instructions, see the introduction video. Otherwise,
see a quick tutorial given at BUSSTEPP 2012.
To run SOFTSUSY, you should need only standard C++ and fortran libraries.
The following releases contain a test program (main.cpp) and the
SOFTSUSY library (libsoft.a, link with -L.libs -lsoft). In linux, just unpack the files with (eg for softsusy-4.0)
> gunzip softsusy-4.0.tar.gz
> tar -xvf softsusy-4.0.tar
> cd softsusy-4.0
To compile the code
> ./configure
> make
If you get an error message like
cd . && /bin/bash /home/bca20/softsusy-4.1.4/Config/missing automake-1.15 --foreign Makefile
/home/bca20/softsusy-4.1.4/Config/missing: line 81: automake-1.15: command not found
Then do
> autoreconf -vif && ./configure && make
There are six test programs, which can be run by the commands
This last executable requires additional command line options. For instance,
you can run the SUSY Les Houches Accord input provided by running the commands
All of the output files mentioned above are produced by the Makefile automatically. SOFTSUSY executables use no input or output files except for standard input or standard output.
Note that the executables are actually wrapper scripts, the "true" executables lie in the directory .libs/ (from the directory where you installed softsusy).
If you have trouble with compilation, try this page.
Particle Decays
An example point including the calculation of sparticle decays, neglecting modes with a branching ratio of less than 1.0e-5, and outputting the partial widths in the comments:
./configure CPPFLAGS="-I/usr/include/eigen3" --enable-two-loop-gauge-yukawa-compilation --enable-himalaya; make
After this, setting the SLHA SOFTSUSY BLock parameter 7 (number of Higgs mass loops) to 3 will include the corrections. If you use this option, you should cite [Allanach:2001kg], [Allanach:2014nba] and
The 2-loop SUSY QCD corrections to squark and gluino masses are now compiled by default.
An example point using the higher order terms can be run with, for example,
softpoint.x: command-line interface. SLHA2, NMSSM, RPV, GMSB, AMSB, mSUGRA and general boundary conditions possible. Main program: src/softpoint.cpp
softsusy.x: example C++ test program - loops over tan beta,
printing out Higgs masses around CMSSM10.1. Main program: src/main.cpp
softsusy-nmssm.x: example NMSSM test program - loops over tan beta. Main program: src/main-nmssm.cpp
rpvsoftsusy.x: example R-parity violating test program - loops over l''_{323} for CMSSM10.1, printing out the RH stop mass. Main program:
src/rpvmain.cpp
rpvneut.x: example neutrino mass calculating R-parity violating test program. Main program: src/rpvneut.cpp
higher.x: example program to illustrate 2-loop QCD corrections to squark and gluino pole masses (note - you must install NLLFAST) to compile this.
SOFTSUSY-specific input for SUSY Les Houches Accord input files
Block SOFTSUSY # SOFTSUSY specific inputs
0 <calcDecays> # Set to 1 to calculate decays/0 (default) for no decays
1 <TOLERANCE> # desired fractional accuracy in output
2 <MIXING> # quark mixing option
3 <PRINTOUT> # gives additional verbose output during calculation (0=default)
4 <QEWSB> # change electroweak symmetry breaking scale
6 <PRECISION> # number of significant figures in SLHA output
7 <numHiggsLoops> # number of loops in REWSB/mh calculation
8 <susyRpvBCatMSUSY> # Switch MSUSY-scale RPV boundary conditions ON
9 <invertedOutput> # RPV neutrino output uses normal hierarchy (=0.0) or inverted (=1.0)
10 <forceSlha1> # if =1, tries to force output into SLHA *1* format
11 <m32> # sets gravitino mass to m32
12 <printSpectra> # Prints spectrum even when point is theoretically excluded if=1
13 <mAFlag> # If=0 (default), sets tachyonic mA=0, otherwise mA=sqrt(|mA|^2)
15 <NMSSMTools> # If=1, enables NMSSMTools compatible SLHA2 output
16 <MICROMEGAS> # Micromegas options for NMSSMTools use: 1=RD, 2=DD, 3=ID, 4=both
17 <NMSDECAY> # If=1, flags for sparticle decays to be calculated via NMSDECAY
18 <SoftHiggsOut> # If=1, then the EWSB conditions output soft Higgs masses in NMSSM
# 19 Only works with ./configure --enable-three-loop-rge-compilation
19 <threeLoopRGEs> # If=1, then 3-loop MSSM RGEs included (default of 0 to disable)
# 20 Only works with ./configure --enable-two-loop-gauge-yukawa-compilation
20 <gyThresholds> # If>0, switch on gauge/Yukawa two-loop thresholds (see manual [5] for details).
If=31, they all are switched on (default 0 to disable).
21 <higgsUncertainties> # If>0, print out block DMASS uncertainties in output
22 <2-loop squark/gluino> # Include 2-loop terms in gluino/squark masses (1 for on, 0 for off)
23 <expandAroundGluinoPole> # sets expandAroundGluinoPole parameter (default 3)
24 <minBR> # If decay BR is below this number, don't output that mode
25 <threeBodyDecays> # If set to 0, don't calculate 3-body decays (1=default)
26 <outputPartialWidths> # If set to 1, output partial widths (0=default)
27 <MQEDxQCD> # Set scale at which QEDxQCD is matched to MSSM (mt=default)
Input, output and information files
These input and output files are contained in the inOutFiles/ subdirectory:
[slha2Output] is the result of
running with the above input file and includes flavour violation, for inclusion into codes like SusyBsg which include flavour corrections
[outputTest] is the output from the
test program in main.cpp
[rpvOutputTest] is the output from the
test program in rpvmain.cpp
SOFTSUSY Copyright (C) 2007 B.C. Allanach
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See http://www.gnu.org/licenses/.