Inside SModelS there are a number of tools that may be convenient for the user:
This little tool computes LHC production cross-sections for MSSM particles and writes them out in SLHA convention. This can in particular be convenient for adding cross-sections to SLHA input files, see Basic Input. The calculation is done at LO with Pythia6.4 ; K-factors for colored particles are computed with NLLfast .
The usage of the cross-section calculator is:
runTools.py xseccomputer [-h] [-h] -f FILENAME [-s SQRTS [SQRTS ...]] [-e NEVENTS] [-p] [-k] [-n] [-N] [-O]
-h, --help | show this help message and exit |
-s SQRTS, --sqrts SQRTS | |
sqrt(s) TeV. Can supply more than one value. | |
-e NEVENTS, --nevents NEVENTS | |
number of events to be simulated. | |
-p, --tofile | write cross sections to file |
-k, --keep | do not unlink temporary directory |
-n, --NLO | compute at the NLO level (default is LO) |
-N, --NLL | compute at the NLO+NLL level (takes precedence over NLO, default is LO) |
-O, --LOfromSLHA | |
use LO cross-sections from file to compute the NLO or NLO+NLL cross-sections | |
-f FILENAME, --filename FILENAME | |
SLHA file to compute cross sections for |
Some more explanations:
Further Pythia parameters are defined in etc/pythia.card.
A typical usage example is:
runTools.py xseccomputer -s 8 -e 10000 -p -f compressedSpec.slha
which will compute 8 TeV LO cross-sections (at the LHC) for all MSSM processes using 10k MC events. If, after the LO cross-sections have been computed, one wants to add the NLO+NLL cross-sections for gluinos and squarks:
runTools.py xseccomputer -s 8 -p -N -O -f compressedSpec.slha
The resulting file will then contain LO cross-sections for all MSSM processes and NLO+NLL cross-sections for gluinos and squarks. When reading the input file, SModelS will then use only the highest order cross-sections available for each process.
As discussed in Basic Input, SModelS accepts both SLHA and LHE input files. It can be convenient to perform certain sanity checks on these files as described below.
For a LHE input file only very basic checks are performed, namely that
The usage of the LHE checker is simply:
runTools.py lhechecker [-h] -f FILENAME
arguments:
-h, --help show this help message and exit -f FILENAME, –filename FILENAME
A typical usage example is:
runTools.py lhechecker -f gluino_squarks.lhe
The SLHA file checker allows to perform quite rigorous checks of SLHA input files. Concretely, it verifies that
In addition, one can ask that
If any of the above tests fail (return a negative result), an error message is shown.
Some more comments are in order. In order to check that the lightest Z2-odd state has zero electric and color charges, the quantum numbers of the BSM particles must be given in the qNumbers dictionary in particles.py. The format is
[2*spin, 3*electric charge, dimension of SU(3) representation]
The list of quantum numbers is also required to check for displaced vertices or heavy charged particles. The check for long-lived (or stable) particles first verifies if these appear in one of the cross-section blocks and their cross-section exceeds the minimum cross-section value defined by sigmacut (see Minimum Decomposition Weight). If the cross-section is larger than sigmacut and the particle is stable, the checker verifies if it is neutral (both electric and color charges are zero). On the other hand, if the particle is unstable, but its lifetime (times c) is larger than a minimum value (default = 10 mm), the particle is considered as a non-prompt decay. For non-prompt decays, all channels are then checked for visible decay products. If the branching ratio to visible decays times the maximum production cross-section for the particle exceeds sigmacut, the particle’s decay is considered as a displaced vertex.
The usage of the SLHA checker is:
runTools.py slhachecker [-h] [-xS] [-lsp] [-longlived] [-m DISPLACEMENT] [-s SIGMACUT] [-illegal] -f FILENAME
-h, --help | show this help message and exit |
-xS, --xsec | turn off the check for xsection blocks |
-lsp, --lsp | turn off the check for charged lsp |
-longlived, --longlived | |
turn off the check for stable charged particles and visible displaced vertices | |
-m DISPLACEMENT, --displacement DISPLACEMENT | |
give maximum displacement of secondary vertex in m | |
-s SIGMACUT, --sigmacut SIGMACUT | |
give sigmacut in fb | |
-illegal, --illegal | |
turn on check for kinematically forbidden decays | |
-dB, --decayBlocks | |
turn off the check for missing decay blocks | |
-f FILENAME, --filename FILENAME | |
name of input SLHA file |
In some more detail:
A typical usage example is:
runTools.py slhachecker -m 0.001 -s 0.01 -f lightSquarks.slha
Running this will print the status flag and a message with potential warnings and error messages.
Unlike the file checks and the cross-section calculator, the missing topologies tool can be called only after the SMS decomposition and theory predictions have been computed. Given the decomposition output (list of elements), as well as the database information, it finds the elements which are not tested by any of the analyses in the database.
To this end, the tool loops over all the elements found in the decomposition and checks if they are tested by one or more analyses in the database. If mass or invisible compression are turned on, elements which can be compressed are not considered, to avoid double counting. All the elements not appearing in any of the constraints in the database are then marked as “missing”. A missing topology is then characterized by a sum over the missing elements differing only by their masses (with the same final states) or electric charges.
The missing topologies tool is normally called from within SModelS (e.g. when running runSModelS.py) by setting findMissingTopos=True in the parameters file . In the output, the missing topologies are ordered by cross section. By default only the ones with the ten largest cross-sections are shown.