<slha>...</slha>
SLHA:file
README
MASS
DECAY
SusyLesHouches
CoupSUSY
SigmaSUSY
SUSYResonanceWidths
SLHA:keepSM
minMassSM
SLHA:allowUserOverride
mMin
SLHA:meMode
meMode
mode
default = 1
minimum = 0
maximum = 2
option
default = void
void
default = on
default = 100.0
default = off
off
on
readString
1→8
id:MayDecay
default = 100
minimum = 100
maximum = 103
meMode = 100
maximum = 3
Using the QNUMBERS extension [Alw07], the SLHA can also be used to define new particles, with arbitrary quantum numbers. This already serves as a useful way to introduce new particles and can be combined with MASS and DECAY tables in the usual way, to generate isotropically distributed decays or even chains of such decays. (If you want something better than isotropic, sorry, you'll have to do some actual work ...)
QNUMBERS
A more advanced further option is to make use of the possibility in the SLHA to include user-defined blocks with arbitrary names and contents. Obviously, standalone PYTHIA 8 does not know what to do with such information. However, it does not throw it away either, but instead stores the contents of user blocks as strings, which can be read back later, with the user having full control over the format used to read the individual entries.
The contents of both standard and user-defined SLHA blocks can be accessed in any class inheriting from PYTHIA 8's SigmaProcess class (i.e., in particular, from any semi-internal process written by a user), through its SLHA pointer, slhaPtr, by using the following methods:
SigmaProcess
slhaPtr
bool slhaPtr->getEntry(string blockName, double& val); bool slhaPtr->getEntry(string blockName, int indx, double& val); bool slhaPtr->getEntry(string blockName, int indx, int jndx, double& val); bool slhaPtr->getEntry(string blockName, int indx, int jndx, int kndx, double& val);
This particular example assumes that the user wants to read the entries (without index, indexed, matrix-indexed, or 3-tensor-indexed, respectively) in the user-defined block blockName, and that it should be interpreted as a double. The last argument is templated, and hence if anything other than a double is desired to be read, the user has only to give the last argument a different type. If anything went wrong (i.e., the block doesn't exist, or it doesn't have an entry with that index, or that entry can't be read as a double), the method returns false; true otherwise. This effectively allows to input completely arbitrary parameters using the SLHA machinery, with the user having full control over names and conventions. Of course, it is then the user's responsibility to ensure complete consistency between the names and conventions used in the SLHA input, and those assumed in any user-written semi-internal process code.
blockName
double
Note that PYTHIA 8 always initializes at least the SLHA blocks MASS and SMINPUTS, starting from its internal SM parameters and particle data table values (updated to take into account user modifications). These blocks can therefore be accessed using the slhaPtr->getEntry() methods even in the absence of SLHA input. Note: in the SMINPUTS block, PYTHIA outputs physically correct (i.e., measured) values of GF, m_Z, and alpha_EM(m_Z). However, if one attempts to compute, e.g., the W mass, at one loop from these quantities, a value of 79 GeV results, with a corresponding value for the weak mixing angle. We advise to instead take the physically measured W mass from block MASS, and recompute the EW parameters as best suited for the application at hand.
slhaPtr->getEntry()