SuSpect
- renormalization group evolution between low and high energy scales,
- consistent implementation of radiative electroweak symmetry breaking,
- calculation of the physical particle masses with radiative corrections.
Practical SuSpect3
Dowload and Installation
wget http://suspect.in2p3.fr/tar/suspect3.tar.gz
To install SuSpect3:
tar xvfz suspect3.tar.gz
./configure
make
The executable is suspect3 which can be run with an input file, e.g.:
./suspect3 -d examples/LowScaleMSSM.in
resulting in the output of the SLHA blocks on std.
Further command line options are available with:
./suspect3 -h
Two examples:
- -o outputFILENAME: to write the output to the file with name outputFILENAME instead of the terminal window
- -s: silent running suppresses the output of the spectrum to the terminal window
Interfacing SuSpect3
- Link the suspect library in lib subdirectory lib to your code
- Add the suspect.h include file
- Create the suspect object
- Run the spectrum calculation
Spectrum Calculation
#include "suspect.h"
{
SUSPECT::suspect aSuspectCalculation;
aSuspectCalculation.Run(.....);
}
- aSuspectCalculation.Run(inputFILENAME)
- Spectrum calculated from the SLHA input provided in the file with the name inputFILENAME (std::string)
- The standard SLHA blocks are output
- The output is written to the terminal window.
- aSuspectCalculation.Run(inputFILENAME,iverbose)
- Spectrum calculated from the SLHA input provided in the file with the name inputFILENAME (std::string)
- (unsigned int) iverbose = 1: The standard SLHA blocks are output to the terminal window (default), =0 no output (silent)
- The output is written to the terminal window.
- aSuspectCalculation.Run(inputFILENAME,iverbose,outputFILENAME)
- Spectrum calculated from the SLHA input provided in the file with the name inputFILENAME (std::string)
- (unsigned int) iverbose = 1: The standard SLHA blocks are output to the terminal window (default), =0 no output (silent)
- The output is written to the file with the name outputFILENAME (std::string) default is to terminal with an empty string ""
Initialization in Memory
- aSuspectCalculation.Run(SLHA4suspectObject,....)
- aSuspectCalculation.Run(*SLHA4suspectObject)
-
The two other (optional) arguments are the same as for the std::string filename input. If an SUSPECT::SLHA4suspect object is given as input, the
object is copied internally and not modified. Therefore when scanning over a parameter range the same input object can be used and only the parameter(s)
to be changed have to be modified.
The SLHA4suspectObject is instantiated:
SUSPECT::SLHA4suspect *slha4suspectInitial = new SUSPECT::SLHA4suspect();
or as an object instead of a pointer. The SuSpect3 specific input block and the SMINPUTS block can be set to sensible defaults:
slha4suspectInitial->setSUSPECT_CONFIGDefault();
slha4suspectInitial->setSMINPUTSDefault();
and the usual common blocks can be initialized with:
slha4suspectInitial->setSUSPECT_CONFIG(index,value);
slha4suspectInitial->setMODSEL(index,value);
slha4suspectInitial->setMINPAR(index,value);
slha4suspectInitial->setSMINPUTS(index,value);
slha4suspectInitial->setEXTPAR(index,value);
where index is the SLHA (unsigned int) index and value is its value in (double) precision.
Spectrum Output
SUSPECT::SLHA4suspect *SLHAoutput =aSuspectCalculation.SLHAblock();
To save the output for further use, a new calculation of the spectrum will reset the output as it is provided as a pointer, the
assignement operator can be used:
SUSPECT::SLHA4suspect SLHAoutput = *aSuspectCalculation.SLHAblock();
or alternatively the copy constructor:
SUSPECT::SLHA4suspect SLHAoutput = SUSPECT::SLHA4suspect(*aSuspectCalculation.SLHAblock());
Access to the SLHA output is provided via methods which are simply the capitalized names of the SLHA blocks, e.g.:
SLHAoutput->MODSEL(index);
SLHAoutput->MASS(index);
SLHAoutput->NMIX(index1, index2);
....
where the argument is the SLHA index as unsigned int. These functions return the value of the index or pair of indicies as a double.
The number of scales of the model and their values can be retrieved from MSOFT:
unsigned int numberOfScales = SLHAout->MSOFTNbOfScales();
std::vector <double> scales = SLHAout->MSOFTScales();
This is particularly useful for the EWSB or the GUT scale when their values are determined during
the spectrum calculation.
For the scale dependent blocks, the scale must be provided as the last argument:
SLHAoutput->MSOFT(index,scale);
SLHAoutput->AU(index1,index2,scale);
Internally the block with a scale within 10-6 of the requested scale is given.
For a simpler access, though less intuitive, the index of the scale in the vector provided by SLHAout->MSOFTScales() can also
be used:
SLHAoutput->MSOFT(index,scaleID);
SLHAoutput->AU(index1,index2,scaleID);
In general the scales are in rising order, e.g., mSUGRA:
Scale | Index |
Z boson | 0 |
EWSB | 1 |
GUT | 2 |
Example
Mixed Input
// set up the input:
SUSPECT::SLHA4suspect SLHAinput;
// set the defaults for the block SMINPUTS
SLHAinput.setSMINPUTSDefault();
// read the SLHA file
SLHAinput.readSLHAFile("examples/mSUGRA.in");
// choose a different m0
SLHAinput.setMINPAR(1, 901.);
// now create SUSPECT:
SUSPECT::suspect myS3;
myS3.Run(SLHAinput);
SUSPECT::SLHA4suspect *SLHAout = myS3.SLHAblock();
std::cout << "the Higgs boson mass is " << SLHAout->MASS(25) << std::endl;
SLHAinput.setMINPAR(1, 920.);
myS3.Run(SLHAinput);
SLHAout = myS3.SLHAblock();
std::cout << "the Higgs boson mass is " << SLHAout->MASS(25) << std::endl;
The SLHA4suspect object reads the SLHA file, then the input can eb modified. SLHA4suspect is an empty structure, so the Standard Model masses
have to be set via setSMINPUTSDefault. The default values can be overwritten.