2. Quick Start

2.1. Install and uninstall

This package requires Python with version 2.7, 3.5 or above with pip package manager. You may check the versions by

$ python -V
Python 3.6.7
$ pip -V
pip 19.0.3

With the set-up, you can simply install this package via PyPI:

$ pip install susy-cross-section             # for install
$ pip install --upgrade susy-cross-section   # or for upgrade

Collecting susy-cross-section
...
Successfully installed susy-cross-section-(version)

You can also instantly uninstall this package by

$ pip uninstall susy-cross-section

2.2. Run command-line script

This package provides a command line script susy-xs. With using a keyword 13TeV.n2x1+.wino, you can get the production cross sections of neutralino–chargino pair at 13 TeV LHC, \(\sigma_{\mathrm{13TeV}}(pp\to \tilde\chi_2^0\tilde\chi_1^+)\):

$ susy-xs get 13TeV.n2x1+.wino 500
(32.9 +2.7 -2.7) fb

$ susy-xs get 13TeV.n2x1+.wino 513.3
(29.4 +2.5 -2.5) fb

$ susy-xs get 13TeV.n2x1+.wino
Usage: get [OPTIONS] 13TeV.n2x1+.wino M_WINO
    Parameters: M_WINO   [unit: GeV]
    Table-specific options: --name=xsec   [unit: fb]  (default)

Here, as you may guess, the neutralino \(\tilde\chi_2^0\) and the chargino \(\tilde\chi_1^+\) are assumed to be wino-like and degenerate in mass: they are 500 GeV in the first command, while 513.3 GeV in the second command. As shown in the third command, calling get sub-command without the mass parameter shows a short help, where you can see 13TeV.n2x1+.wino accepts one argument M_WINO in the unit of GeV and by default returns xsec in the unit of fb.

For more information, you may run show sub-command:

$ susy-xs show 13TeV.n2x1+.wino

------------------------------------------------------------------------
TABLE "xsec" (unit: fb)
------------------------------------------------------------------------
               value        unc+        unc-
m_wino
100     13895.100000  485.572000  485.572000
125      6252.210000  222.508000  222.508000
150      3273.840000  127.175000  127.175000
...              ...         ...         ...
475        41.023300    3.288370    3.288370
500        32.913500    2.734430    2.734430
525        26.602800    2.299570    2.299570
...              ...         ...         ...
1950        0.005096    0.001769    0.001769
1975        0.004448    0.001679    0.001679
2000        0.003892    0.001551    0.001551

[77 rows x 3 columns]

collider: pp-collider, ECM=13TeV
calculation order: NLO+NLL
PDF: Envelope by LHC SUSY Cross Section Working Group
included processes:
  p p > wino0 wino+

------------------------------------------------------------------------
title: NLO-NLL wino-like chargino-neutralino (N2C1) cross sections
authors: LHC SUSY Cross Section Working Group
calculator: resummino
source: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVn2x1wino
version: 2017-06-15
------------------------------------------------------------------------

Here, you see the xsec grid table followed by physical parameters and documental information. You may also notice that the above-shown result at 500 GeV is simply taken from the grid data, while that an interpolation is performed to get the cross section of 513.3 GeV wino.

You can list-up all the available tables, or search for a table you want, by list sub-command:

$ susy-xs list  # to list up all the (tagged) tables.
13TeV.n2x1-.wino       lhc_susy_xs_wg/13TeVn2x1wino_envelope_m.csv
13TeV.n2x1+.wino       lhc_susy_xs_wg/13TeVn2x1wino_envelope_p.csv
13TeV.n2x1+-.wino      lhc_susy_xs_wg/13TeVn2x1wino_envelope_pm.csv
13TeV.slepslep.ll      lhc_susy_xs_wg/13TeVslepslep_ll.csv
13TeV.slepslep.maxmix  lhc_susy_xs_wg/13TeVslepslep_maxmix.csv
13TeV.slepslep.rr      lhc_susy_xs_wg/13TeVslepslep_rr.csv
...

$ susy-xs list 7TeV  # to show tables including '7TeV' in its key or paths.
7TeV.gg.decoup  nllfast/7TeV/gdcpl_nllnlo_mstw2008.grid
7TeV.gg.high    nllfast/7TeV/gg_nllnlo_hm_mstw2008.grid
7TeV.gg         nllfast/7TeV/gg_nllnlo_mstw2008.grid
...
7TeV.ss10       nllfast/7TeV/ss_nllnlo_mstw2008.grid
7TeV.st         nllfast/7TeV/st_nllnlo_mstw2008.grid

$ susy-xs list 8t decoup
8TeV.gg.decoup    nllfast/8TeV/gdcpl_nllnlo_mstw2008.grid
8TeV.sb10.decoup  nllfast/8TeV/sdcpl_nllnlo_mstw2008.grid

Then you will run, for example,

$ susy-xs get 8TeV.gg.decoup
Usage: get [OPTIONS] 8TeV.gg.decoup MGL
    Parameters: MGL   [unit: GeV]
    Table-specific options: --name=xsec_lo   [unit: pb]
                            --name=xsec_nlo  [unit: pb]
                            --name=xsec      [unit: pb]  (default)

$ susy-xs get 8TeV.gg.decoup --name=xsec_lo 1210
(0.00207 +0.00100 -0.00065) pb
$ susy-xs get 8TeV.gg.decoup --name=xsec 1210
(0.00325 +0.00055 -0.00051) pb

More information is available with --help options:

$ susy-xs --help
$ susy-xs get --help
$ susy-xs show --help
$ susy-xs list --help

2.3. Use as a package

The above results are obtained also in your Python code. For example,

from susy_cross_section import utility
from susy_cross_section.table import File, Table
from susy_cross_section.interp.interpolator import Scipy1dInterpolator

grid_path, info_path = utility.get_paths("13TeV.n2x1+.wino")
file = File(grid_path, info_path)

document = file.info.document
print(document)

xsec_table = file["xsec"]
xsec_attr = xsec_table.attributes
print(xsec_attr.formatted_str())

will show the documents and attributes, and you may interpolate the table by

interpolator = Scipy1dInterpolator(axes="loglog", kind="spline")
xs = interpolator.interpolate(xsec_table)
print(xs(500), xs.fp(500), xs.fm(500), xs.unc_p_at(500), xs.unc_m_at(500))
print(xs.tuple_at(513.3))

The output will be something like this, which reproduces the above-obtained results:

32.9135    35.6479    30.1791    2.7344     -2.7344
(array(29.3516), 2.4916, -2.4916)

Note that the interpolator is Scipy1dInterpolator with spline option in log-log axes. You may use another interpolator, such as linear interpolator in log-log axes, by

pchip = Scipy1dInterpolator(axes="loglog", kind="linear").interpolate(xsec_table)
print(pchip.tuple_at(500))
print(pchip.tuple_at(513.3))

The output will be:

(array(32.9135), 2.7344, -2.7344)
(array(29.3641), 2.4932, -2.4932)

The results for 500 GeV is the same because it is on the grid and without interpolation, but the values for 513.3 GeV are slightly different from the previous ones.

More information is available in API references.