PK!U<<susy_cross_section/__init__.py"""Module to handle CSV-like data of SUSY cross section.""" PK!V UUsusy_cross_section/config.py"""Dictionary of the cross section tables.""" from __future__ import absolute_import, division, print_function # py2 import sys from typing import Mapping, Tuple, Union # noqa: F401 if sys.version_info[0] < 3: # py2 str = basestring # noqa: F821 table_names = { '13TeV.n2x1-.wino': 'data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_m.csv', '13TeV.n2x1+.wino': 'data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_p.csv', '13TeV.n2x1+-.wino': 'data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_pm.csv', '13TeV.x1x1.wino': 'data/lhc_susy_xs_wg/13TeVx1x1wino_envelope.csv', '13TeV.slepslep.ll': 'data/lhc_susy_xs_wg/13TeVslepslep_ll.csv', '13TeV.slepslep.rr': 'data/lhc_susy_xs_wg/13TeVslepslep_rr.csv', '13TeV.slepslep.maxmix': 'data/lhc_susy_xs_wg/13TeVslepslep_maxmix.csv', } # type: Mapping[str, Union[str, Tuple[str, str]]] PK!?K$$)susy_cross_section/cross_section_table.py"""Classes for annotations to a table.""" from __future__ import absolute_import, division, print_function # py2 import logging import pathlib import sys from typing import (Any, List, Mapping, MutableMapping, Optional, # noqa: F401 Sequence, SupportsFloat, Tuple, Union, cast) import pandas from susy_cross_section.table_info import ParameterInfo, TableInfo, ValueInfo from susy_cross_section.utility import Unit if sys.version_info[0] < 3: # py2 str = basestring # noqa: F821 logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) class CrossSectionAttributes(object): """Stores physical attributes of a cross section table.""" def __init__(self, processes=None, collider='', ecm='', order='', pdf_id=None, pdf_name=None): # type: (List[str], str, str, str, int, str)->None self.processes = processes or [] # type: List[str] self.collider = collider # type: str self.ecm = ecm # type: str # because it is always with units self.order = order # type: str self.pdf_id = pdf_id # type: Optional[int] self.pdf_name = pdf_name # type: Optional[str] # either of these is necessary def validate(self): # type: ()->None """Validate the content. A strict type-check is also performed in order to validate (human-written) info files. """ for attr, typ in [('processes', List), ('collider', str), ('ecm', str), ('order', str), ('pdf_id', int if self.pdf_id is not None else None), ('pdf_name', str if self.pdf_name is not None else None)]: if typ and not isinstance(getattr(self, attr), typ): raise TypeError('attributes: %s must be %s', attr, typ) if not all(isinstance(s, str) for s in self.processes): raise TypeError('attributes: processes must be a list of string.') if not (self.pdf_id or self.pdf_name): raise ValueError('attributes: pdf_id or pdf_name is required.') if self.pdf_name is not None and not self.pdf_name: raise ValueError('attributes: pdf_name is empty.') class CrossSectionInfo(TableInfo): """Stores annotations of a cross section table.""" def __init__(self, attributes=None, parameters=None, values=None, **kw): # type: (CrossSectionAttributes, List[ParameterInfo], List[ValueInfo], Any)->None self.attributes = attributes or CrossSectionAttributes() # type: CrossSectionAttributes self.parameters = parameters or [] # type: List[ParameterInfo] self.values = values or [] # type: List[ValueInfo] super(CrossSectionInfo, self).__init__(**kw) # py2 @classmethod def load(cls, source): # type: (Union[pathlib.Path, str])->CrossSectionInfo """Load and construct CrossSectionInfo from a json file.""" return cast(CrossSectionInfo, super(CrossSectionInfo, cls).load(source)) # py2 def _load(self, **kw): # noqa: C901 # type: (Any)->None try: attributes, data = kw['attributes'], kw['data'] except KeyError as e: logger.error('CrossSectionInfo lacks a key: %s', *e.args) exit(1) del kw['attributes'] del kw['data'] super(CrossSectionInfo, self)._load(**kw) # py2 if not isinstance(attributes, Mapping): logger.error('CrossSectionInfo.attributes must be a dict.') exit(1) self.attributes = CrossSectionAttributes(**attributes) # parse data try: parameters, values = data['parameters'], data['values'] except TypeError: logger.error('data must be required and dict.') exit(1) except KeyError: logger.error('data must contain "parameters" and "values".') exit(1) for unused_key in [k for k in data.keys() if k not in ['parameters', 'values']]: logger.warning('Unrecognized attribute "%s" in data.', unused_key) if not (isinstance(parameters, Sequence) and isinstance(values, Sequence)): logger.error('data["values"] and data["parameters"] must be list of dicts.') exit(1) try: self.parameters = [ParameterInfo.from_json(p_json) for p_json in parameters] self.values = [ValueInfo.from_json(value_json) for value_json in values] except ValueError as e: logger.error(*e.args) exit(1) except TypeError as e: logger.error(*e.args) exit(1) self.validate() class CrossSectionTable(object): """Data of a cross section with parameters, read from a table file.""" def _reader_options(self): # type: ()->Mapping[str, Any] default = { 'skiprows': [0], 'names': [c.name for c in self.info.columns], } default.update(self.info.reader_options) return default def __init__(self, table_path, info_path=None): # type: (Union[pathlib.Path, str], Union[pathlib.Path, str])->None self.table_path = pathlib.Path(table_path) # type: pathlib.Path self.info_path = pathlib.Path( info_path if info_path else self.table_path.with_suffix('.info')) # type: pathlib.Path self.info = CrossSectionInfo.load(self.info_path) # type: CrossSectionInfo try: self.raw_data = pandas.read_csv(self.table_path, **self._reader_options()) except ValueError as e: logger.error('Data parse failed: %s', *e.args) exit(1) self._parse_data() @staticmethod def _validate_uncertainty_info(uncertainty_info): # type: (Mapping[str, str])->None for _name, typ in uncertainty_info.items(): if typ not in ['relative', 'absolute']: raise ValueError('Invalid type of uncertainty: %s', typ) def _uncertainty_factors(self, value_unit, uncertainty_info): # type: (Unit, Mapping[str, str])->Mapping[str, float] factors = {} for source_name, source_type in uncertainty_info.items(): unc_unit = Unit(self.info.get_column(source_name).unit) if source_type == 'relative': unc_unit *= value_unit # unc / unc_unit == "number in the table" # we want to get "unc / value_unit" = "number in the table" * unc_unit / value_unit factors[source_name] = float(unc_unit / value_unit) return factors @staticmethod def _combine_uncertainties(row, value_name, uncertainty_info, uncertainty_factors): # type: (Any, str, Mapping[str, str], Mapping[str, float])->float uncertainties = [] for source_name, source_type in uncertainty_info.items(): uncertainties.append(row[source_name] * uncertainty_factors[source_name] * ( row[value_name] if source_type == 'relative' else 1 )) return sum(x**2 for x in uncertainties) ** 0.5 def _parse_data(self): # type: ()->None self.data = {} # type: MutableMapping[str, pandas.core.frame.DataFrame] self.units = {} # type: MutableMapping[str, str] for value_info in self.info.values: name = value_info.column value_unit = self.info.get_column(name).unit parameters = self.info.parameters data = self.raw_data.set_index([p.column for p in parameters]) # copy data with setting indices self._validate_uncertainty_info(value_info.unc_p) self._validate_uncertainty_info(value_info.unc_m) unc_p_factors = self._uncertainty_factors(Unit(value_unit), value_info.unc_p) unc_m_factors = self._uncertainty_factors(Unit(value_unit), value_info.unc_m) def unc_p(row): # type: (Any)->float return self._combine_uncertainties(row, name, value_info.unc_p, unc_p_factors) def unc_m(row): # type: (Any)->float return -self._combine_uncertainties(row, name, value_info.unc_m, unc_m_factors) self.data[name] = pandas.DataFrame() self.data[name]['value'] = data[name] self.data[name]['unc+'] = data.apply(unc_p, axis=1) self.data[name]['unc-'] = data.apply(unc_m, axis=1) self.units[name] = value_unit def __getitem__(self, key): # type: (str)->pandas.core.frame.DataFrame """Return the cross-section table.""" return self.data[key] def dump(self): # type: ()->None """Print out data table.""" for key, data_table in self.data.items(): print('# {name} [{unit}] with absolute uncertainties'.format(name=key, unit=self.units[key])) print(data_table) PK!Rȡ?susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_m.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 8577.2, -1.2, -3.5, 0.0, 3.4 125.0, 3688.3, -0.8, -3.6, 0.0, 3.6 150.0, 1854.3, -0.5, -3.8, 0.0, 3.9 175.0, 1032.1, -0.5, -4.0, 0.0, 4.2 200.0, 617.47, -0.5, -4.2, 0.2, 4.5 225.0, 389.89, -0.4, -4.5, 0.0, 4.8 250.0, 256.76, -0.4, -4.8, 0.1, 5.1 275.0, 174.82, -0.4, -5.0, 0.3, 5.4 300.0, 122.3, -0.4, -5.2, 0.4, 5.8 325.0, 87.62, -0.3, -5.6, 0.4, 6.0 350.0, 63.96, -0.3, -5.7, 0.3, 6.6 375.0, 47.52, -0.3, -6.0, 0.3, 6.9 400.0, 35.83, -0.3, -6.3, 0.2, 7.1 425.0, 27.35, -0.2, -6.6, 0.1, 7.5 450.0, 21.12, -0.2, -6.9, 0.1, 7.8 475.0, 16.46, -0.2, -7.0, 0.0, 8.2 500.0, 12.95, -0.0, -7.2, 0.0, 8.6 525.0, 10.28, -0.1, -7.6, 0.0, 8.9 550.0, 8.21, -0.1, -7.8, 0.0, 9.3 575.0, 6.61, -0.1, -8.1, 0.0, 9.5 600.0, 5.35, -0.0, -8.4, 0.0, 9.8 625.0, 4.36, -0.0, -8.6, 0.0, 10.1 650.0, 3.57, -0.3, -8.8, 0.1, 10.7 675.0, 2.94, -0.6, -9.3, 0.0, 10.5 700.0, 2.42, -0.6, -9.3, 0.3, 11.2 725.0, 2.01, -0.8, -9.8, 0.3, 11.3 750.0, 1.67, -1.0, -10.0, 0.1, 11.6 775.0, 1.4, -1.1, -10.4, 0.1, 11.8 800.0, 1.17, -1.2, -10.8, 0.0, 12.1 825.0, 0.99, -0.5, -11.2, 0.1, 12.0 850.0, 0.83, -0.7, -11.5, 0.0, 12.3 875.0, 0.7, -1.3, -11.9, 0.1, 12.6 900.0, 0.6, -0.5, -12.3, 0.2, 12.8 925.0, 0.51, -1.2, -12.3, 0.1, 13.5 950.0, 0.43, -0.5, -12.3, 0.4, 14.4 975.0, 0.37, -0.6, -12.5, 0.7, 14.7 1000.0, 0.32, -1.2, -13.4, 0.4, 14.0 1025.0, 0.27, -1.0, -13.7, 0.5, 14.2 1050.0, 0.23, -1.1, -14.0, 0.0, 13.9 1075.0, 0.2, -0.2, -12.2, 1.2, 17.3 1100.0, 0.17, -1.4, -14.7, 0.5, 14.6 1125.0, 0.15, -1.5, -15.0, 0.5, 14.8 1150.0, 0.13, -1.0, -15.8, 0.5, 15.1 1175.0, 0.11, -1.4, -16.2, 0.4, 16.4 1200.0, 0.1, -1.0, -16.1, 0.5, 17.5 1225.0, 0.08, -1.2, -15.9, 0.6, 17.8 1250.0, 0.07, -0.7, -16.4, 0.6, 18.0 1275.0, 0.06, -1.3, -17.1, 0.6, 18.3 1300.0, 0.06, -1.2, -17.3, 0.6, 19.1 1325.0, 0.05, -1.1, -17.7, 0.5, 19.6 1350.0, 0.04, -1.0, -18.0, 0.6, 19.7 1375.0, 0.04, -0.8, -17.9, 0.9, 21.2 1400.0, 0.03, -1.4, -19.5, 0.4, 19.9 1425.0, 0.03, -1.2, -19.6, 0.7, 20.8 1450.0, 0.03, -1.3, -20.3, 0.5, 21.2 1475.0, 0.02, -1.6, -20.5, 0.7, 22.8 1500.0, 0.0192364, -1.3, -20.0, 2.7, 22.9 1525.0, 0.0169178, -1.3, -20.9, 2.9, 23.5 1550.0, 0.0148704, -1.3, -21.3, 3.2, 24.4 1575.0, 0.0130809, -1.3, -21.7, 3.4, 26.4 1600.0, 0.0115242, -1.3, -20.0, 2.4, 29.1 1625.0, 0.010244, -2.8, -21.9, 1.7, 27.3 1650.0, 0.00904192, -3.1, -22.7, 1.7, 27.4 1675.0, 0.00798307, -3.3, -23.0, 1.8, 27.7 1700.0, 0.00704854, -3.3, -23.8, 1.8, 27.7 1725.0, 0.0062285, -2.1, -24.4, 1.8, 27.7 1750.0, 0.00550496, -2.1, -25.0, 1.9, 28.0 1775.0, 0.00486808, -2.2, -25.6, 2.0, 28.4 1800.0, 0.00430255, -2.2, -26.3, 1.0, 30.6 1825.0, 0.00380603, -2.2, -26.9, 0.7, 28.8 1850.0, 0.00336941, -2.3, -27.8, 0.6, 28.7 1875.0, 0.00298298, -2.3, -30.3, 0.6, 26.6 1900.0, 0.00261518, -1.4, -28.6, 1.0, 31.2 1925.0, 0.00229797, -1.5, -28.9, 1.9, 31.1 1950.0, 0.00202629, -1.6, -28.8, 2.0, 34.0 1975.0, 0.00181102, -1.5, -34.0, 1.0, 28.6 2000.0, 0.00160565, -3.8, -35.7, 1.3, 29.3 PK!b:Ը@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_m.info{ "document": { "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" }, "attributes": { "processes": "p p > wino0 wino-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CTEQ6.6" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!^%?susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_p.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 13927.0, -0.8, -3.2, 0.0, 3.1 125.0, 6248.4, -0.6, -3.3, 0.0, 3.2 150.0, 3264.6, -0.7, -3.4, 0.0, 3.3 175.0, 1880.8, -0.6, -3.6, 0.0, 3.4 200.0, 1161.6, -0.6, -3.8, 0.2, 3.6 225.0, 755.82, -0.5, -4.0, 0.4, 3.7 250.0, 511.85, -0.5, -4.2, 0.4, 3.9 275.0, 357.99, -0.5, -4.4, 0.4, 4.0 300.0, 256.93, -0.5, -4.6, 0.4, 4.2 325.0, 188.55, -0.5, -4.8, 0.4, 4.3 350.0, 140.95, -0.5, -5.0, 0.4, 4.4 375.0, 107.02, -0.4, -5.2, 0.5, 4.6 400.0, 82.39, -0.4, -5.4, 0.4, 4.7 425.0, 64.17, -0.4, -5.6, 0.4, 4.9 450.0, 50.53, -0.4, -5.8, 0.4, 5.0 475.0, 40.14, -0.3, -5.9, 0.4, 5.2 500.0, 32.17, -0.3, -6.1, 0.3, 5.3 525.0, 25.99, -0.4, -6.4, 0.2, 5.4 550.0, 21.11, -0.3, -6.5, 0.1, 5.6 575.0, 17.26, -0.2, -6.6, 0.1, 5.8 600.0, 14.2, -0.3, -7.0, 0.1, 5.8 625.0, 11.74, -0.3, -7.2, 0.0, 6.0 650.0, 9.74, -0.2, -7.1, 0.0, 6.2 675.0, 8.12, -0.2, -7.4, 0.0, 6.3 700.0, 6.79, -0.2, -7.5, 0.0, 6.5 725.0, 5.7, -0.3, -7.6, 0.0, 6.7 750.0, 4.8, -0.4, -7.8, 0.0, 6.9 775.0, 4.06, -0.5, -8.1, 0.0, 7.0 800.0, 3.44, -0.5, -8.3, 0.1, 7.1 825.0, 2.92, -0.6, -8.5, 0.1, 7.3 850.0, 2.49, -0.6, -8.6, 0.1, 7.3 875.0, 2.12, -0.7, -9.2, 0.0, 7.5 900.0, 1.81, -0.4, -8.4, 0.2, 8.3 925.0, 1.55, -0.3, -8.7, 0.4, 8.2 950.0, 1.33, -1.2, -9.9, 0.0, 7.3 975.0, 1.15, -1.4, -10.5, 0.0, 7.2 1000.0, 0.98, -0.6, -9.0, 0.4, 9.2 1025.0, 0.85, -0.9, -9.2, 0.5, 9.4 1050.0, 0.73, -0.9, -8.5, 0.9, 10.0 1075.0, 0.64, -1.6, -10.5, 0.5, 8.6 1100.0, 0.55, -1.2, -11.1, 0.3, 8.7 1125.0, 0.48, -1.0, -10.7, 0.6, 9.9 1150.0, 0.41, -0.7, -11.3, 0.4, 9.1 1175.0, 0.36, -0.1, -8.2, 1.3, 13.2 1200.0, 0.31, -1.0, -11.5, 0.6, 10.2 1225.0, 0.27, -0.7, -11.4, 0.6, 10.7 1250.0, 0.24, -0.8, -11.6, 0.8, 11.0 1275.0, 0.21, -0.9, -12.4, 0.9, 10.9 1300.0, 0.18, -0.8, -12.6, 1.3, 11.2 1325.0, 0.16, -0.9, -12.4, 1.0, 11.8 1350.0, 0.14, -0.9, -12.9, 1.1, 11.8 1375.0, 0.12, -0.6, -12.1, 1.8, 13.1 1400.0, 0.1, -0.2, -11.9, 2.0, 13.5 1425.0, 0.09, -0.5, -12.7, 1.8, 13.8 1450.0, 0.08, -0.5, -12.9, 2.2, 14.5 1475.0, 0.07, -0.9, -15.0, 1.9, 13.4 1500.0, 0.0597115, -1.4, -14.2, 2.6, 15.0 1525.0, 0.0522203, -1.4, -14.8, 2.6, 15.0 1550.0, 0.0455892, -1.5, -15.1, 2.9, 16.4 1575.0, 0.0398661, -1.5, -14.3, 3.0, 16.8 1600.0, 0.0348743, -1.6, -14.8, 1.6, 18.7 1625.0, 0.0302986, -1.7, -13.2, 1.7, 22.1 1650.0, 0.0265033, -1.7, -14.1, 1.7, 21.5 1675.0, 0.0231864, -1.7, -15.6, 1.8, 22.3 1700.0, 0.0202908, -1.8, -18.0, 1.8, 23.1 1725.0, 0.0177606, -2.6, -18.2, 1.9, 22.6 1750.0, 0.0155431, -2.7, -18.9, 2.0, 23.0 1775.0, 0.0136071, -2.7, -19.6, 2.0, 23.7 1800.0, 0.0119185, -2.8, -20.5, 2.8, 24.5 1825.0, 0.0104378, -2.9, -20.7, 3.4, 23.8 1850.0, 0.0091365, -2.9, -21.3, 3.8, 25.4 1875.0, 0.0080001, -2.9, -18.6, 4.1, 26.8 1900.0, 0.00706487, -3.8, -21.5, 3.0, 26.2 1925.0, 0.00622541, -4.4, -20.6, 2.4, 25.9 1950.0, 0.00547282, -4.8, -23.5, 2.4, 25.3 1975.0, 0.00479632, -4.8, -21.1, 2.7, 27.6 2000.0, 0.00419527, -2.9, -20.2, 2.7, 29.6 PK!/@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_p.info{ "document": { "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" }, "attributes": { "processes": "p p > wino0 wino+", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CTEQ6.6" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!/=@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_pm.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 22504.0, -0.95, -3.3, 0.0, 3.2 125.0, 9936.7, -0.67, -3.4, 0.0, 3.3 150.0, 5118.9, -0.63, -3.5, 0.0, 3.5 175.0, 2912.9, -0.56, -3.7, 0.0, 3.7 200.0, 1779.1, -0.57, -3.9, 0.2, 3.9 225.0, 1145.7, -0.47, -4.2, 0.26, 4.1 250.0, 768.61, -0.47, -4.4, 0.3, 4.3 275.0, 532.81, -0.47, -4.6, 0.37, 4.5 300.0, 379.23, -0.47, -4.8, 0.4, 4.7 325.0, 276.17, -0.44, -5.1, 0.4, 4.8 350.0, 204.91, -0.44, -5.2, 0.37, 5.1 375.0, 154.54, -0.37, -5.4, 0.44, 5.3 400.0, 118.22, -0.37, -5.7, 0.34, 5.4 425.0, 91.52, -0.34, -5.9, 0.31, 5.7 450.0, 71.65, -0.34, -6.1, 0.31, 5.8 475.0, 56.6, -0.27, -6.2, 0.28, 6.1 500.0, 45.12, -0.21, -6.4, 0.21, 6.2 525.0, 36.27, -0.31, -6.7, 0.14, 6.4 550.0, 29.32, -0.24, -6.9, 0.072, 6.6 575.0, 23.87, -0.17, -7.0, 0.072, 6.8 600.0, 19.55, -0.22, -7.4, 0.073, 6.9 625.0, 16.1, -0.22, -7.6, 0.0, 7.1 650.0, 13.31, -0.23, -7.6, 0.027, 7.4 675.0, 11.06, -0.31, -7.9, 0.0, 7.4 700.0, 9.21, -0.31, -8.0, 0.079, 7.7 725.0, 7.71, -0.43, -8.2, 0.078, 7.9 750.0, 6.47, -0.55, -8.4, 0.026, 8.1 775.0, 5.46, -0.65, -8.7, 0.026, 8.2 800.0, 4.61, -0.68, -8.9, 0.075, 8.4 825.0, 3.91, -0.57, -9.2, 0.1, 8.5 850.0, 3.32, -0.62, -9.3, 0.075, 8.5 875.0, 2.82, -0.85, -9.9, 0.025, 8.8 900.0, 2.41, -0.42, -9.4, 0.2, 9.4 925.0, 2.06, -0.52, -9.6, 0.33, 9.5 950.0, 1.76, -1.0, -10.0, 0.098, 9.0 975.0, 1.52, -1.2, -11.0, 0.17, 9.0 1000.0, 1.3, -0.75, -10.0, 0.4, 10.0 1025.0, 1.12, -0.92, -10.0, 0.5, 11.0 1050.0, 0.96, -0.95, -9.8, 0.68, 11.0 1075.0, 0.84, -1.3, -11.0, 0.67, 11.0 1100.0, 0.72, -1.2, -12.0, 0.35, 10.0 1125.0, 0.63, -1.1, -12.0, 0.58, 11.0 1150.0, 0.54, -0.77, -12.0, 0.42, 11.0 1175.0, 0.47, -0.4, -10.0, 1.1, 14.0 1200.0, 0.41, -1.0, -13.0, 0.58, 12.0 1225.0, 0.35, -0.81, -12.0, 0.6, 12.0 1250.0, 0.31, -0.78, -13.0, 0.75, 13.0 1275.0, 0.27, -0.99, -13.0, 0.83, 13.0 1300.0, 0.24, -0.9, -14.0, 1.1, 13.0 1325.0, 0.21, -0.95, -14.0, 0.88, 14.0 1350.0, 0.18, -0.92, -14.0, 0.99, 14.0 1375.0, 0.16, -0.65, -14.0, 1.6, 15.0 1400.0, 0.13, -0.48, -14.0, 1.6, 15.0 1425.0, 0.12, -0.67, -14.0, 1.5, 16.0 1450.0, 0.11, -0.72, -15.0, 1.7, 16.0 1475.0, 0.09, -1.1, -16.0, 1.6, 15.0 1500.0, 0.078948, -1.4, -16.0, 2.6, 17.0 1525.0, 0.069138, -1.4, -16.0, 2.7, 17.0 1550.0, 0.06046, -1.5, -17.0, 3.0, 18.0 1575.0, 0.052947, -1.5, -16.0, 3.1, 19.0 1600.0, 0.046398, -1.5, -16.0, 1.8, 21.0 1625.0, 0.040543, -2.0, -15.0, 1.7, 23.0 1650.0, 0.035545, -2.1, -16.0, 1.7, 23.0 1675.0, 0.031169, -2.1, -17.0, 1.8, 24.0 1700.0, 0.027339, -2.2, -19.0, 1.8, 24.0 1725.0, 0.023989, -2.5, -20.0, 1.9, 24.0 1750.0, 0.021048, -2.5, -20.0, 2.0, 24.0 1775.0, 0.018475, -2.6, -21.0, 2.0, 25.0 1800.0, 0.016221, -2.6, -22.0, 2.3, 26.0 1825.0, 0.014244, -2.7, -22.0, 2.7, 25.0 1850.0, 0.012506, -2.7, -23.0, 2.9, 26.0 1875.0, 0.010983, -2.7, -22.0, 3.1, 27.0 1900.0, 0.00968, -3.2, -23.0, 2.5, 28.0 1925.0, 0.0085234, -3.6, -23.0, 2.3, 27.0 1950.0, 0.0074991, -3.9, -25.0, 2.3, 28.0 1975.0, 0.0066073, -3.9, -25.0, 2.2, 28.0 2000.0, 0.0058009, -3.1, -24.0, 2.3, 30.0 PK!eAsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_pm.info{ "document": { "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" }, "attributes": { "processes": ["p p > wino0 wino+", "p p > wino0 wino-"], "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CTEQ6.6" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!>? Csusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_m.csvm χ̃ [GeV], xsec [fb], uncertainty [fb] 100.0, 8766.08, 517.621 125.0, 3782.8, 235.43 150.0, 1907.04, 126.192 175.0, 1063.01, 73.7751 200.0, 637.14, 46.5066 225.0, 402.717, 30.8673 250.0, 265.255, 21.1263 275.0, 180.802, 14.9232 300.0, 126.627, 10.8212 325.0, 90.6096, 7.9809 350.0, 66.3319, 6.07824 375.0, 49.2359, 4.60991 400.0, 37.12, 3.57812 425.0, 28.3325, 2.80898 450.0, 21.8561, 2.20924 475.0, 17.0676, 1.77199 500.0, 13.4441, 1.43549 525.0, 10.6671, 1.1752 550.0, 8.52674, 0.962412 575.0, 6.86761, 0.797123 600.0, 5.56289, 0.665467 625.0, 4.52654, 0.544023 650.0, 3.71232, 0.458682 675.0, 3.05164, 0.387201 700.0, 2.5208, 0.327628 725.0, 2.09484, 0.283497 750.0, 1.73984, 0.238501 775.0, 1.45562, 0.202704 800.0, 1.2175, 0.175172 825.0, 1.02139, 0.142823 850.0, 0.862477, 0.128463 875.0, 0.727098, 0.111186 900.0, 0.623379, 0.0974831 925.0, 0.529463, 0.0826968 950.0, 0.450722, 0.0738302 975.0, 0.385788, 0.0622388 1000.0, 0.329002, 0.0521727 1025.0, 0.280284, 0.0474706 1050.0, 0.240707, 0.0430882 1075.0, 0.213287, 0.0377717 1100.0, 0.180922, 0.0360823 1125.0, 0.155356, 0.0280178 1150.0, 0.135615, 0.0262367 1175.0, 0.115356, 0.0232758 1200.0, 0.100687, 0.0168488 1225.0, 0.0862252, 0.0190064 1250.0, 0.0762914, 0.0178031 1275.0, 0.0662261, 0.0165332 1300.0, 0.0605883, 0.0110105 1325.0, 0.0504674, 0.00934855 1350.0, 0.0464939, 0.0137161 1375.0, 0.0406594, 0.00783768 1400.0, 0.0303342, 0.00620691 1425.0, 0.030426, 0.00632462 1450.0, 0.0303359, 0.00644575 1475.0, 0.0202839, 0.00440125 1500.0, 0.0200469, 0.00467065 1525.0, 0.0175652, 0.00419402 1550.0, 0.0154289, 0.00373529 1575.0, 0.0137032, 0.00346894 1600.0, 0.0120888, 0.0028772 1625.0, 0.010602, 0.002622 1650.0, 0.00942027, 0.00245189 1675.0, 0.00830173, 0.00217528 1700.0, 0.00718864, 0.00187223 1725.0, 0.00633142, 0.00162956 1750.0, 0.0055801, 0.00147077 1775.0, 0.00491951, 0.00133538 1800.0, 0.0043716, 0.00124894 1825.0, 0.00383388, 0.00106927 1850.0, 0.00337664, 0.00100039 1875.0, 0.00297123, 9.148310e-04 1900.0, 0.00263965, 8.395900e-04 1925.0, 0.00238853, 7.631700e-04 1950.0, 0.002042, 6.747160e-04 1975.0, 0.00176972, 5.753120e-04 2000.0, 0.00155291, 5.239350e-04 PK!njDsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_m.info{ "document": { "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" }, "attributes": { "processes": "p p > wino0 wino-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "Envelope by LHC SUSY Cross Section Working Group" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "uncertainty", "unit": "fb" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc": [{ "column": "uncertainty", "type": "absolute" }] } ] } } PK!\ Csusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_p.csvm χ̃ [GeV], xsec [fb], uncertainty [fb] 100.0, 13895.1, 485.572 125.0, 6252.21, 222.508 150.0, 3273.84, 127.175 175.0, 1890.26, 80.6306 200.0, 1170.26, 54.8302 225.0, 762.405, 37.9761 250.0, 517.259, 27.6553 275.0, 362.248, 20.51 300.0, 260.319, 15.5522 325.0, 191.314, 12.0565 350.0, 143.126, 9.39716 375.0, 108.84, 7.50279 400.0, 83.9069, 6.05361 425.0, 65.4553, 4.94466 450.0, 51.5901, 4.04097 475.0, 41.0233, 3.28837 500.0, 32.9135, 2.73443 525.0, 26.6028, 2.29957 550.0, 21.644, 1.92376 575.0, 17.7159, 1.60859 600.0, 14.5767, 1.38165 625.0, 12.0454, 1.15947 650.0, 10.0188, 0.977468 675.0, 8.34633, 0.832887 700.0, 6.99008, 0.714013 725.0, 5.86536, 0.602628 750.0, 4.95438, 0.532335 775.0, 4.18041, 0.452388 800.0, 3.54111, 0.389213 825.0, 3.0052, 0.335727 850.0, 2.55793, 0.284029 875.0, 2.17847, 0.255221 900.0, 1.87338, 0.216666 925.0, 1.59963, 0.185445 950.0, 1.36565, 0.168945 975.0, 1.18309, 0.15545 1000.0, 1.01451, 0.123448 1025.0, 0.879192, 0.108224 1050.0, 0.757183, 0.0900054 1075.0, 0.651686, 0.0799626 1100.0, 0.55945, 0.0711016 1125.0, 0.491938, 0.0637444 1150.0, 0.419984, 0.0565834 1175.0, 0.371485, 0.0412257 1200.0, 0.31567, 0.0415881 1225.0, 0.27623, 0.0371856 1250.0, 0.240685, 0.0286937 1275.0, 0.210298, 0.0264908 1300.0, 0.18015, 0.0229469 1325.0, 0.159393, 0.0196224 1350.0, 0.139246, 0.0174043 1375.0, 0.120872, 0.0154592 1400.0, 0.10087, 0.0128138 1425.0, 0.0906208, 0.012095 1450.0, 0.0807007, 0.0110593 1475.0, 0.0704072, 0.0109494 1500.0, 0.0598541, 0.00896721 1525.0, 0.0520963, 0.00809093 1550.0, 0.0456082, 0.00758726 1575.0, 0.0394537, 0.00722754 1600.0, 0.0347174, 0.00671145 1625.0, 0.0307532, 0.00626805 1650.0, 0.0266118, 0.00561368 1675.0, 0.0231039, 0.00527505 1700.0, 0.0200153, 0.00498133 1725.0, 0.0176634, 0.00412917 1750.0, 0.0153969, 0.00373792 1775.0, 0.0134356, 0.00341071 1800.0, 0.0117395, 0.00312039 1825.0, 0.0100904, 0.00285901 1850.0, 0.00869944, 0.00278534 1875.0, 0.00754745, 0.00262309 1900.0, 0.00675782, 0.00217148 1925.0, 0.00582783, 0.00201806 1950.0, 0.0050955, 0.00176923 1975.0, 0.00444781, 0.00167948 2000.0, 0.00389224, 0.00155069 PK!0gDsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_p.info{ "document": { "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" }, "attributes": { "processes": "p p > wino0 wino+", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "Envelope by LHC SUSY Cross Section Working Group" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "uncertainty", "unit": "fb" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc": [{ "column": "uncertainty", "type": "absolute" }] } ] } } PK!4v} } Dsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_pm.csvm χ̃ [GeV], xsec [fb], uncertainty [fb] 100.0, 22670.1, 973.967 125.0, 10034.8, 457.604 150.0, 5180.86, 253.223 175.0, 2953.28, 154.386 200.0, 1807.39, 101.316 225.0, 1165.09, 68.8042 250.0, 782.487, 48.7463 275.0, 543.03, 35.4083 300.0, 386.936, 26.3602 325.0, 281.911, 20.0201 350.0, 209.439, 15.4539 375.0, 158.06, 12.0956 400.0, 121.013, 9.61659 425.0, 93.771, 7.73547 450.0, 73.4361, 6.2389 475.0, 58.0811, 5.05005 500.0, 46.3533, 4.16461 525.0, 37.2636, 3.46763 550.0, 30.1656, 2.88065 575.0, 24.5798, 2.40183 600.0, 20.1372, 2.04438 625.0, 16.5706, 1.70195 650.0, 13.7303, 1.43519 675.0, 11.3975, 1.21937 700.0, 9.51032, 1.04092 725.0, 7.9595, 0.885243 750.0, 6.69356, 0.769988 775.0, 5.63562, 0.654544 800.0, 4.75843, 0.564061 825.0, 4.02646, 0.478362 850.0, 3.42026, 0.412315 875.0, 2.90547, 0.366257 900.0, 2.49667, 0.314019 925.0, 2.12907, 0.26801 950.0, 1.8164, 0.242682 975.0, 1.56893, 0.217618 1000.0, 1.34352, 0.175604 1025.0, 1.15949, 0.155683 1050.0, 0.997903, 0.133077 1075.0, 0.86504, 0.117638 1100.0, 0.740372, 0.107178 1125.0, 0.647288, 0.0917503 1150.0, 0.555594, 0.0828113 1175.0, 0.486863, 0.0644736 1200.0, 0.415851, 0.0579252 1225.0, 0.362455, 0.0561888 1250.0, 0.316975, 0.046491 1275.0, 0.276522, 0.0430197 1300.0, 0.240739, 0.0339561 1325.0, 0.20999, 0.0288259 1350.0, 0.185601, 0.0309793 1375.0, 0.161343, 0.0231066 1400.0, 0.131074, 0.0188826 1425.0, 0.121045, 0.0184156 1450.0, 0.110889, 0.0173553 1475.0, 0.0906868, 0.0153453 1500.0, 0.0795585, 0.0130098 1525.0, 0.0694615, 0.0116491 1550.0, 0.0610387, 0.0106867 1575.0, 0.0531447, 0.0100985 1600.0, 0.0468796, 0.00943991 1625.0, 0.0413666, 0.00870228 1650.0, 0.0359383, 0.0078127 1675.0, 0.0313343, 0.00724488 1700.0, 0.0271773, 0.00682548 1725.0, 0.0239993, 0.00575157 1750.0, 0.0209773, 0.00520821 1775.0, 0.0183553, 0.00474575 1800.0, 0.0161098, 0.00436762 1825.0, 0.0139216, 0.00392561 1850.0, 0.0120539, 0.00376256 1875.0, 0.0104658, 0.00347714 1900.0, 0.00937288, 0.00298646 1925.0, 0.00814838, 0.0027116 1950.0, 0.00713734, 0.00244379 1975.0, 0.00621999, 0.00223617 2000.0, 0.00544778, 0.00207163 PK! ]Esusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_pm.info{ "document": { "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" }, "attributes": { "processes": ["p p > wino0 wino+", "p p > wino0 wino-"], "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "Envelope by LHC SUSY Cross Section Working Group" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "uncertainty", "unit": "fb" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc": [{ "column": "uncertainty", "type": "absolute" }] } ] } } PK!7<_?susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_m.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 8961.1, -1.1, -3.6, 0.0, 3.6 125.0, 3878.6, -0.8, -3.8, 0.0, 3.6 150.0, 1958.8, -0.5, -3.9, 0.0, 3.8 175.0, 1094.1, -0.5, -4.1, 0.1, 3.9 200.0, 656.69, -0.5, -4.3, 0.2, 4.1 225.0, 415.69, -0.5, -4.5, 0.2, 4.3 250.0, 274.3, -0.5, -4.6, 0.2, 4.4 275.0, 187.1, -0.4, -4.8, 0.3, 4.6 300.0, 131.12, -0.4, -4.9, 0.5, 4.8 325.0, 94.06, -0.3, -5.2, 0.4, 4.8 350.0, 68.76, -0.3, -5.1, 0.3, 5.3 375.0, 51.18, -0.3, -5.5, 0.3, 5.2 400.0, 38.61, -0.3, -5.5, 0.3, 5.4 425.0, 29.49, -0.2, -5.7, 0.0, 5.6 450.0, 22.81, -0.3, -6.2, 0.2, 5.5 475.0, 17.79, -0.2, -5.9, 0.0, 5.9 500.0, 14.01, -0.1, -6.0, 0.3, 6.2 525.0, 11.13, -0.2, -6.1, 0.0, 6.4 550.0, 8.91, -0.3, -6.4, 0.0, 6.5 575.0, 7.17, -0.5, -6.4, 0.0, 6.9 600.0, 5.81, -0.1, -6.4, 0.1, 7.2 625.0, 4.73, -0.4, -6.6, 0.0, 7.2 650.0, 3.88, -0.4, -6.7, 0.0, 7.5 675.0, 3.19, -0.6, -7.1, 0.1, 7.8 700.0, 2.63, -0.2, -6.8, 0.3, 8.3 725.0, 2.19, -0.7, -7.1, 0.0, 8.6 750.0, 1.82, -0.8, -7.6, 0.0, 8.7 775.0, 1.52, -0.5, -7.5, 0.1, 9.1 800.0, 1.28, -0.8, -8.0, 0.2, 8.8 825.0, 1.07, -0.5, -8.0, 0.3, 8.8 850.0, 0.9, -0.5, -8.2, 0.3, 10.1 875.0, 0.76, -1.0, -8.5, 0.1, 10.3 900.0, 0.65, -1.5, -9.0, 0.2, 10.9 925.0, 0.55, -1.3, -8.8, 0.2, 11.3 950.0, 0.47, -1.5, -9.4, 0.4, 11.6 975.0, 0.4, -1.7, -10.2, 0.4, 12.0 1000.0, 0.34, -1.6, -10.4, 0.5, 12.1 1025.0, 0.29, -1.3, -10.2, 0.7, 13.0 1050.0, 0.25, -1.5, -10.5, 0.7, 13.5 1075.0, 0.22, -1.1, -10.6, 0.7, 14.1 1100.0, 0.19, -1.1, -11.6, 0.6, 14.2 1125.0, 0.16, -1.1, -12.0, 0.5, 14.6 1150.0, 0.14, -1.2, -11.8, 0.5, 15.6 1175.0, 0.12, -0.9, -12.6, 0.9, 15.5 1200.0, 0.1, -1.3, -12.8, 0.9, 16.5 1225.0, 0.09, -1.3, -13.5, 0.9, 16.9 1250.0, 0.08, -1.3, -14.1, 0.8, 17.6 1275.0, 0.07, -1.4, -14.5, 1.0, 18.2 1300.0, 0.06, -1.6, -14.0, 1.1, 19.3 1325.0, 0.05, -1.9, -15.1, 1.1, 19.2 1350.0, 0.05, -0.6, -14.8, 0.9, 20.4 1375.0, 0.04, -0.5, -17.0, 0.2, 20.3 1400.0, 0.03, -0.9, -16.9, 0.4, 21.8 1425.0, 0.03, -1.0, -17.0, 0.3, 22.5 1450.0, 0.03, -1.3, -18.3, 0.5, 22.6 1475.0, 0.02, -1.5, -18.2, 1.1, 23.4 1500.0, 0.019957, -2.0, -18.2, 1.6, 23.8 1525.0, 0.0174699, -2.1, -18.7, 1.6, 24.5 1550.0, 0.0152999, -2.2, -19.2, 1.7, 25.2 1575.0, 0.0135224, -2.1, -19.9, 2.2, 26.9 1600.0, 0.0117497, -1.5, -20.0, 2.0, 27.3 1625.0, 0.0103025, -2.3, -20.5, 1.8, 28.3 1650.0, 0.00903611, -2.4, -21.0, 5.5, 30.9 1675.0, 0.00792775, -2.4, -20.9, 1.9, 32.1 1700.0, 0.00714025, -2.7, -25.4, 2.3, 26.8 1725.0, 0.00610664, -2.5, -22.7, 2.0, 30.3 1750.0, 0.00536083, -2.6, -23.2, 2.1, 30.9 1775.0, 0.00470688, -2.7, -23.7, 2.1, 31.7 1800.0, 0.00413321, -2.7, -24.3, 2.2, 32.4 1825.0, 0.00364245, -3.1, -23.9, 1.8, 33.7 1850.0, 0.00330822, -3.9, -27.9, 0.7, 32.3 1875.0, 0.00291906, -3.0, -29.4, 2.9, 33.0 1900.0, 0.00254405, -2.9, -29.1, 2.1, 36.7 1925.0, 0.00216326, -1.8, -24.8, 2.9, 45.6 1950.0, 0.00189888, -3.3, -27.8, 2.2, 40.1 1975.0, 0.00167329, -1.8, -27.3, 1.9, 40.1 2000.0, 0.00146377, -3.6, -29.1, 1.8, 40.6 PK!@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_m.info{ "document": { "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" }, "attributes": { "processes": "p p > wino0 wino-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "MSTW2008nlo90cl" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!{A  ?susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_p.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 13884.0, -1.2, -3.2, 0.6, 3.4 125.0, 6260.4, -0.6, -3.2, 0.4, 3.4 150.0, 3285.6, -0.5, -3.3, 0.3, 3.5 175.0, 1902.3, -0.6, -3.4, 0.2, 3.6 200.0, 1180.0, -0.6, -3.4, 0.4, 3.8 225.0, 770.73, -0.7, -3.6, 0.6, 3.8 250.0, 523.65, -0.6, -3.6, 0.7, 4.0 275.0, 367.41, -0.6, -3.8, 0.8, 4.1 300.0, 264.51, -0.5, -3.9, 0.9, 4.2 325.0, 194.59, -0.4, -4.0, 1.0, 4.4 350.0, 145.77, -0.3, -4.1, 1.1, 4.5 375.0, 110.96, -0.3, -4.2, 1.2, 4.7 400.0, 85.62, -0.3, -4.3, 1.3, 4.9 425.0, 66.88, -0.4, -4.4, 1.3, 5.1 450.0, 52.74, -0.4, -4.5, 1.4, 5.3 475.0, 41.98, -0.3, -4.6, 1.3, 5.4 500.0, 33.71, -0.4, -4.7, 1.3, 5.6 525.0, 27.25, -0.4, -4.6, 1.4, 5.9 550.0, 22.2, -0.5, -4.9, 1.4, 6.0 575.0, 18.19, -0.6, -5.0, 1.3, 6.1 600.0, 14.98, -0.6, -5.0, 1.3, 6.4 625.0, 12.39, -0.8, -5.1, 1.0, 6.5 650.0, 10.3, -0.8, -5.3, 0.9, 6.7 675.0, 8.59, -0.8, -5.3, 0.9, 6.8 700.0, 7.18, -0.7, -5.3, 1.2, 7.2 725.0, 6.04, -0.8, -5.9, 1.1, 7.0 750.0, 5.08, -0.7, -5.4, 1.3, 7.9 775.0, 4.29, -0.8, -5.6, 1.2, 7.9 800.0, 3.63, -0.7, -5.8, 1.1, 8.2 825.0, 3.08, -0.7, -5.8, 1.1, 8.4 850.0, 2.62, -0.8, -6.1, 1.1, 8.4 875.0, 2.24, -0.8, -6.2, 0.9, 8.6 900.0, 1.92, -0.6, -6.0, 1.0, 8.8 925.0, 1.64, -0.8, -6.7, 0.9, 8.8 950.0, 1.41, -1.1, -6.9, 0.8, 8.8 975.0, 1.21, -1.4, -7.1, 0.7, 10.6 1000.0, 1.04, -1.0, -7.4, 0.6, 9.4 1025.0, 0.9, -1.1, -7.1, 0.5, 9.7 1050.0, 0.77, -1.2, -7.3, 0.7, 10.0 1075.0, 0.66, -1.0, -7.2, 1.1, 10.8 1100.0, 0.57, -1.1, -7.2, 0.7, 10.6 1125.0, 0.5, -1.1, -7.7, 0.9, 11.1 1150.0, 0.43, -1.2, -8.1, 0.8, 10.8 1175.0, 0.37, -1.4, -8.2, 1.0, 11.5 1200.0, 0.32, -1.5, -8.5, 1.0, 11.6 1225.0, 0.28, -1.6, -8.8, 0.9, 11.9 1250.0, 0.24, -1.5, -9.1, 1.0, 12.2 1275.0, 0.21, -1.4, -9.3, 1.2, 12.7 1300.0, 0.18, -1.7, -9.8, 0.9, 12.8 1325.0, 0.16, -1.9, -12.5, 0.1, 11.4 1350.0, 0.13, -1.2, -5.5, 3.7, 20.0 1375.0, 0.12, -1.9, -11.3, 0.5, 13.6 1400.0, 0.1, -1.7, -11.6, 0.7, 13.4 1425.0, 0.09, -1.3, -12.0, 0.9, 14.1 1450.0, 0.08, -2.1, -12.2, 1.0, 14.3 1475.0, 0.07, -1.8, -12.3, 2.0, 16.1 1500.0, 0.0584941, -2.3, -12.8, 1.8, 15.9 1525.0, 0.050882, -2.4, -13.3, 1.9, 16.4 1550.0, 0.0442648, -2.4, -13.9, 1.9, 16.9 1575.0, 0.0382355, -2.6, -15.5, 1.4, 17.1 1600.0, 0.0335069, -4.8, -15.7, 2.0, 17.5 1625.0, 0.0291533, -2.6, -15.8, 2.1, 18.1 1650.0, 0.025364, -2.7, -17.0, 1.0, 19.1 1675.0, 0.0220669, -2.8, -19.0, 2.2, 18.6 1700.0, 0.0186373, -3.0, -19.1, 1.4, 23.9 1725.0, 0.0166997, -3.1, -18.7, 2.3, 21.2 1750.0, 0.0145246, -3.0, -19.5, 2.3, 22.1 1775.0, 0.0126312, -3.1, -20.4, 2.4, 22.9 1800.0, 0.0109832, -3.1, -21.3, 2.5, 23.8 1825.0, 0.00949805, -2.8, -23.7, 3.0, 24.1 1850.0, 0.00800207, -2.2, -26.0, 4.2, 27.0 1875.0, 0.00691565, -7.5, -27.8, 2.7, 31.3 1900.0, 0.00607454, -2.2, -24.4, 3.7, 28.7 1925.0, 0.00541098, -4.8, -29.2, 2.7, 25.9 1950.0, 0.00469803, -3.4, -29.0, 3.3, 31.0 1975.0, 0.00406287, -2.0, -31.8, 4.4, 31.7 2000.0, 0.00354198, -3.6, -33.7, 1.2, 30.6 PK!уT@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_p.info{ "document": { "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" }, "attributes": { "processes": "p p > wino0 wino+", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "MSTW2008nlo90cl" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_pm.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 22845.0, -1.2, -3.4, 0.36, 3.5 125.0, 10139.0, -0.68, -3.4, 0.25, 3.5 150.0, 5244.4, -0.5, -3.5, 0.19, 3.6 175.0, 2996.4, -0.56, -3.7, 0.16, 3.7 200.0, 1836.7, -0.56, -3.7, 0.33, 3.9 225.0, 1186.4, -0.63, -3.9, 0.46, 4.0 250.0, 797.95, -0.57, -3.9, 0.53, 4.1 275.0, 554.51, -0.53, -4.1, 0.63, 4.3 300.0, 395.63, -0.47, -4.2, 0.77, 4.4 325.0, 288.65, -0.37, -4.4, 0.8, 4.5 350.0, 214.53, -0.3, -4.4, 0.84, 4.8 375.0, 162.14, -0.3, -4.6, 0.92, 4.9 400.0, 124.23, -0.3, -4.7, 0.99, 5.1 425.0, 96.37, -0.34, -4.8, 0.9, 5.3 450.0, 75.55, -0.37, -5.0, 1.0, 5.4 475.0, 59.77, -0.27, -5.0, 0.91, 5.5 500.0, 47.72, -0.31, -5.1, 1.0, 5.8 525.0, 38.38, -0.34, -5.0, 0.99, 6.0 550.0, 31.11, -0.44, -5.3, 1.0, 6.1 575.0, 25.36, -0.57, -5.4, 0.93, 6.3 600.0, 20.79, -0.46, -5.4, 0.96, 6.6 625.0, 17.12, -0.69, -5.5, 0.72, 6.7 650.0, 14.18, -0.69, -5.7, 0.65, 6.9 675.0, 11.78, -0.75, -5.8, 0.68, 7.1 700.0, 9.81, -0.57, -5.7, 0.96, 7.5 725.0, 8.23, -0.77, -6.2, 0.81, 7.4 750.0, 6.9, -0.73, -6.0, 0.96, 8.1 775.0, 5.81, -0.72, -6.1, 0.91, 8.2 800.0, 4.91, -0.73, -6.4, 0.87, 8.4 825.0, 4.15, -0.65, -6.4, 0.89, 8.5 850.0, 3.52, -0.72, -6.6, 0.9, 8.8 875.0, 3.0, -0.85, -6.8, 0.7, 9.0 900.0, 2.57, -0.83, -6.8, 0.8, 9.3 925.0, 2.19, -0.93, -7.2, 0.72, 9.4 950.0, 1.88, -1.2, -7.5, 0.7, 9.5 975.0, 1.61, -1.5, -7.9, 0.63, 11.0 1000.0, 1.38, -1.1, -8.1, 0.58, 10.0 1025.0, 1.19, -1.1, -7.9, 0.55, 11.0 1050.0, 1.02, -1.3, -8.1, 0.7, 11.0 1075.0, 0.88, -1.0, -8.1, 1.0, 12.0 1100.0, 0.76, -1.1, -8.3, 0.67, 11.0 1125.0, 0.66, -1.1, -8.7, 0.8, 12.0 1150.0, 0.57, -1.2, -9.0, 0.73, 12.0 1175.0, 0.49, -1.3, -9.3, 0.98, 12.0 1200.0, 0.42, -1.5, -9.5, 0.98, 13.0 1225.0, 0.37, -1.5, -9.9, 0.9, 13.0 1250.0, 0.32, -1.4, -10.0, 0.95, 14.0 1275.0, 0.28, -1.4, -11.0, 1.1, 14.0 1300.0, 0.24, -1.7, -11.0, 0.95, 14.0 1325.0, 0.21, -1.9, -13.0, 0.34, 13.0 1350.0, 0.18, -1.0, -8.1, 2.9, 20.0 1375.0, 0.16, -1.5, -13.0, 0.43, 15.0 1400.0, 0.13, -1.5, -13.0, 0.63, 15.0 1425.0, 0.12, -1.2, -13.0, 0.75, 16.0 1450.0, 0.11, -1.9, -14.0, 0.86, 17.0 1475.0, 0.09, -1.7, -14.0, 1.8, 18.0 1500.0, 0.078451, -2.2, -14.0, 1.7, 18.0 1525.0, 0.068352, -2.3, -15.0, 1.8, 18.0 1550.0, 0.059565, -2.3, -15.0, 1.8, 19.0 1575.0, 0.051758, -2.5, -17.0, 1.6, 20.0 1600.0, 0.045257, -3.9, -17.0, 2.0, 20.0 1625.0, 0.039456, -2.5, -17.0, 2.0, 21.0 1650.0, 0.0344, -2.6, -18.0, 2.2, 22.0 1675.0, 0.029995, -2.7, -20.0, 2.1, 22.0 1700.0, 0.025778, -2.9, -21.0, 1.6, 25.0 1725.0, 0.022806, -2.9, -20.0, 2.2, 24.0 1750.0, 0.019885, -2.9, -20.0, 2.2, 24.0 1775.0, 0.017338, -3.0, -21.0, 2.3, 25.0 1800.0, 0.015116, -3.0, -22.0, 2.4, 26.0 1825.0, 0.01314, -2.9, -24.0, 2.7, 27.0 1850.0, 0.01131, -2.7, -27.0, 3.2, 29.0 1875.0, 0.0098347, -6.2, -28.0, 2.8, 32.0 1900.0, 0.0086186, -2.4, -26.0, 3.2, 31.0 1925.0, 0.0075742, -3.9, -28.0, 2.8, 32.0 1950.0, 0.0065969, -3.4, -29.0, 3.0, 34.0 1975.0, 0.0057362, -1.9, -30.0, 3.7, 34.0 2000.0, 0.0050057, -3.6, -32.0, 1.4, 34.0 PK!L'#Asusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_pm.info{ "document": { "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" }, "attributes": { "processes": ["p p > wino0 wino+", "p p > wino0 wino-"], "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "MSTW2008nlo90cl" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!Kq88;susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_ll.csvm l̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 50.0, 4104.9, -1.6, -3.6, 1.4, 3.1 100.0, 270.79, -0.4, -3.4, 0.0, 3.3 150.0, 63.34, -0.3, -3.9, 0.1, 3.4 200.0, 21.81, -0.4, -4.4, 0.1, 3.6 250.0, 9.21, -0.4, -5.0, 0.3, 3.9 300.0, 4.43, -0.3, -5.4, 0.1, 4.2 350.0, 2.33, -0.3, -5.9, 0.0, 4.6 400.0, 1.31, -0.3, -6.5, 0.0, 5.0 450.0, 0.77, -0.3, -6.8, 0.0, 5.4 500.0, 0.47, -0.4, -7.1, 0.0, 5.9 PK!ͣY+<susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_ll.info{ "document": { "title": "NLO-NLL slepton-pair cross sections", "authors": "LHC SUSY Cross Section Working Group", "calculator": "resummino", "source": "https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVslepslep", "version": "2017-06-15" }, "attributes": { "processes": "p p > el+ el-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CT10 NLO" }, "columns": [ { "name": "m_slep", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_slep", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!N888?susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_maxmix.csvm l̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 50.0, 943.29, -1.3, -4.4, 1.2, 3.8 100.0, 102.77, -0.3, -4.3, 0.0, 3.7 150.0, 25.53, -0.3, -4.6, 0.1, 3.8 200.0, 9.0, -0.4, -5.0, 0.1, 3.9 250.0, 3.85, -0.4, -5.4, 0.1, 4.3 300.0, 1.87, -0.3, -5.8, 0.2, 4.6 350.0, 0.99, -0.3, -6.3, 0.0, 4.9 400.0, 0.56, -0.3, -6.8, 0.0, 5.3 450.0, 0.33, -0.3, -7.1, 0.0, 5.7 500.0, 0.2, -0.3, -7.4, 0.0, 6.3 PK!ct@susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_maxmix.info{ "document": { "title": "NLO-NLL slepton-pair cross sections", "authors": "LHC SUSY Cross Section Working Group", "calculator": "resummino", "source": "https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVslepslep", "version": "2017-06-15" }, "attributes": { "processes": "p p > ta1+ ta1- (max-mixing)", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CT10 NLO" }, "columns": [ { "name": "m_slep", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_slep", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!-88;susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_rr.csvm l̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 50.0, 1377.6, -1.6, -3.7, 1.4, 3.3 100.0, 96.51, -0.3, -4.0, 0.0, 3.6 150.0, 23.32, -0.3, -4.5, 0.1, 3.7 200.0, 8.15, -0.4, -4.9, 0.1, 3.9 250.0, 3.47, -0.4, -5.3, 0.2, 4.2 300.0, 1.68, -0.3, -5.7, 0.2, 4.5 350.0, 0.89, -0.3, -6.1, 0.0, 4.9 400.0, 0.5, -0.4, -6.7, 0.0, 5.2 450.0, 0.3, -0.3, -7.0, 0.0, 5.7 500.0, 0.18, -0.3, -7.4, 0.0, 6.2 PK!QR#<susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_rr.info{ "document": { "title": "NLO-NLL slepton-pair cross sections", "authors": "LHC SUSY Cross Section Working Group", "calculator": "resummino", "source": "https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVslepslep", "version": "2017-06-15" }, "attributes": { "processes": "p p > er+ er-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CT10 NLO" }, "columns": [ { "name": "m_slep", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_slep", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!X]  =susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_cteq.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 11457.2, -0.3, -3.0, 0.1, 2.9 125.0, 5000.44, -0.4, -3.0, 0.3, 3.0 150.0, 2558.47, -0.5, -3.1, 0.4, 3.1 175.0, 1448.48, -0.6, -3.2, 0.5, 3.3 200.0, 880.476, -0.6, -3.4, 0.5, 3.5 225.0, 564.313, -0.6, -3.5, 0.5, 3.7 250.0, 376.84, -0.6, -3.7, 0.5, 3.9 275.0, 260.084, -0.6, -3.9, 0.5, 4.0 300.0, 184.398, -0.6, -4.0, 0.5, 4.2 325.0, 133.714, -0.5, -4.2, 0.5, 4.5 350.0, 98.838, -0.5, -4.3, 0.4, 4.6 375.0, 74.251, -0.5, -4.5, 0.4, 4.9 400.0, 56.582, -0.5, -4.6, 0.4, 5.0 425.0, 43.655, -0.5, -4.8, 0.4, 5.3 450.0, 34.053, -0.5, -4.9, 0.3, 5.4 475.0, 26.82, -0.4, -5.1, 0.3, 5.6 500.0, 21.309, -0.4, -5.2, 0.3, 5.8 525.0, 17.063, -0.4, -5.3, 0.2, 6.0 550.0, 13.76, -0.3, -5.5, 0.2, 6.2 575.0, 11.166, -0.3, -5.6, 0.2, 6.4 600.0, 9.115, -0.3, -5.7, 0.1, 6.6 625.0, 7.48, -0.3, -5.9, 0.1, 6.8 650.0, 6.169, -0.2, -6.0, 0.1, 7.0 675.0, 5.111, -0.2, -6.1, 0.0, 7.2 700.0, 4.253, -0.2, -6.3, 0.0, 7.3 725.0, 3.551, -0.1, -6.4, 0.0, 7.5 750.0, 2.977, -0.1, -6.6, 0.0, 7.6 775.0, 2.503, -0.1, -6.7, 0.0, 7.8 800.0, 2.112, -0.2, -6.8, 0.0, 8.0 825.0, 1.786, -0.2, -7.0, 0.0, 8.1 850.0, 1.516, -0.2, -7.2, 0.0, 8.2 875.0, 1.288, -0.1, -7.0, 0.0, 8.8 900.0, 1.097, -0.3, -7.2, 0.2, 8.9 925.0, 0.939, -0.5, -7.6, 0.1, 8.5 950.0, 0.804, -0.4, -7.8, 0.0, 8.6 975.0, 0.689, -0.3, -7.7, 0.2, 9.2 1000.0, 0.592, -0.5, -7.9, 0.2, 9.3 1025.0, 0.51, -0.5, -8.0, 0.2, 9.4 1050.0, 0.44, -0.7, -8.6, 0.1, 9.1 1075.0, 0.38, -0.5, -8.3, 0.3, 9.7 1100.0, 0.328, -0.6, -8.5, 0.2, 10.0 1125.0, 0.284, -0.5, -8.5, 0.4, 10.5 1150.0, 0.247, -0.7, -8.8, 0.4, 10.5 1175.0, 0.214, -0.6, -9.0, 0.4, 10.4 1200.0, 0.187, -0.8, -9.2, 0.4, 10.5 1225.0, 0.162, -0.8, -9.4, 0.4, 10.7 1250.0, 0.142, -0.8, -9.5, 0.5, 11.0 1275.0, 0.123, -0.8, -9.4, 0.5, 11.9 1300.0, 0.108, -0.9, -10.2, 0.4, 11.2 1325.0, 0.094, -0.9, -10.1, 0.5, 11.7 1350.0, 0.083, -0.9, -10.0, 0.7, 12.0 1375.0, 0.072, -1.0, -10.0, 0.8, 12.3 1400.0, 0.064, -1.0, -10.5, 0.7, 11.9 1425.0, 0.056, -1.0, -11.1, 0.7, 12.4 1450.0, 0.049, -1.4, -11.2, 0.4, 12.7 1475.0, 0.043, -1.4, -11.4, 0.7, 12.9 1500.0, 0.0375752, -1.5, -11.1, 1.2, 13.4 1525.0, 0.0330747, -1.5, -11.4, 1.3, 13.7 1550.0, 0.0291198, -1.5, -11.4, 1.4, 14.5 1575.0, 0.025671, -1.5, -11.2, 1.5, 15.2 1600.0, 0.0226399, -1.5, -11.7, 1.9, 16.0 1625.0, 0.0200683, -2.4, -13.2, 1.6, 14.8 1650.0, 0.0177339, -2.5, -12.9, 1.6, 15.5 1675.0, 0.0156837, -2.6, -12.9, 1.7, 15.6 1700.0, 0.0138762, -2.2, -13.3, 1.7, 15.1 1725.0, 0.0122833, -2.0, -13.6, 1.7, 15.6 1750.0, 0.0108791, -2.1, -13.7, 1.8, 16.4 1775.0, 0.00964131, -2.1, -14.6, 1.8, 16.6 1800.0, 0.0085226, -1.8, -13.7, 1.9, 17.4 1825.0, 0.00756007, -2.2, -14.0, 1.5, 18.2 1850.0, 0.00670845, -2.3, -14.7, 1.3, 18.4 1875.0, 0.00595739, -2.3, -15.1, 1.2, 18.0 1900.0, 0.00528231, -2.2, -15.9, 1.5, 22.1 1925.0, 0.00467608, -1.8, -15.7, 1.9, 19.8 1950.0, 0.0041441, -1.6, -15.5, 1.9, 25.8 1975.0, 0.00375435, -3.4, -23.5, 0.6, 13.9 2000.0, 0.00336575, -5.2, -27.7, 1.2, 12.9 PK!.>susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_cteq.info{ "document": { "title": "NLO-NLL wino-like chargino-chargino (C1C1) cross sections", "authors": "LHC SUSY Cross Section Working Group", "calculator": "resummino", "source": "https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVx1x1wino", "version": "2017-06-15" }, "attributes": { "processes": "p p > wino+ wino-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "CTEQ6.6" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!Q Asusy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_envelope.csvm χ̃ [GeV], xsec [fb], uncertainty [fb] 100.0, 11611.9, 518.613 125.0, 5090.52, 249.469 150.0, 2612.31, 138.156 175.0, 1482.42, 83.2672 200.0, 902.569, 53.7411 225.0, 579.564, 36.0699 250.0, 387.534, 25.3131 275.0, 267.786, 18.2886 300.0, 190.159, 13.4438 325.0, 138.086, 10.1835 350.0, 102.199, 7.75261 375.0, 76.8342, 6.02606 400.0, 58.6311, 4.7276 425.0, 45.2189, 3.71547 450.0, 35.3143, 2.97283 475.0, 27.8342, 2.41224 500.0, 22.1265, 1.94904 525.0, 17.7394, 1.5992 550.0, 14.3134, 1.32368 575.0, 11.6266, 1.09669 600.0, 9.49913, 0.912324 625.0, 7.80081, 0.768988 650.0, 6.43244, 0.638889 675.0, 5.33642, 0.541519 700.0, 4.4387, 0.457123 725.0, 3.70675, 0.385799 750.0, 3.10861, 0.330353 775.0, 2.61656, 0.283139 800.0, 2.21197, 0.245196 825.0, 1.86142, 0.201762 850.0, 1.58356, 0.177806 875.0, 1.34699, 0.150075 900.0, 1.15301, 0.135822 925.0, 0.981406, 0.114539 950.0, 0.842779, 0.102086 975.0, 0.713432, 0.0779702 1000.0, 0.621866, 0.0771005 1025.0, 0.535563, 0.0667594 1050.0, 0.458716, 0.0569349 1075.0, 0.398794, 0.0506191 1100.0, 0.342626, 0.0427672 1125.0, 0.301119, 0.0414674 1150.0, 0.262408, 0.0373521 1175.0, 0.224723, 0.0301438 1200.0, 0.196044, 0.0264135 1225.0, 0.168114, 0.021483 1250.0, 0.148219, 0.0198313 1275.0, 0.128682, 0.0173508 1300.0, 0.115645, 0.018756 1325.0, 0.0987141, 0.014292 1350.0, 0.0881654, 0.0135402 1375.0, 0.0778987, 0.0131703 1400.0, 0.0686671, 0.0114478 1425.0, 0.0591995, 0.00946571 1450.0, 0.0505255, 0.00707791 1475.0, 0.0478698, 0.00982729 1500.0, 0.0396228, 0.00627315 1525.0, 0.0348558, 0.00559845 1550.0, 0.0307165, 0.00495763 1575.0, 0.0271112, 0.00435237 1600.0, 0.0239083, 0.00394854 1625.0, 0.0209953, 0.00362692 1650.0, 0.0186409, 0.003244 1675.0, 0.01647, 0.00285616 1700.0, 0.0144992, 0.00249881 1725.0, 0.0128156, 0.00222519 1750.0, 0.0113544, 0.00198711 1775.0, 0.0100029, 0.00178698 1800.0, 0.0088942, 0.00155231 1825.0, 0.00788156, 0.00139556 1850.0, 0.00695506, 0.001247 1875.0, 0.00614707, 0.00114377 1900.0, 0.00543469, 0.00102872 1925.0, 0.00485995, 9.243020e-04 1950.0, 0.00432007, 8.969080e-04 1975.0, 0.00371358, 8.514820e-04 2000.0, 0.00323064, 8.140890e-04 PK!6Bsusy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_envelope.info{ "document": { "title": "NLO-NLL wino-like chargino-chargino (C1C1) cross sections", "authors": "LHC SUSY Cross Section Working Group", "calculator": "resummino", "source": "https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVx1x1wino", "version": "2017-06-15" }, "attributes": { "processes": "p p > wino+ wino-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "Envelope by LHC SUSY Cross Section Working Group" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "uncertainty", "unit": "fb" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc": [{ "column": "uncertainty", "type": "absolute" }] } ] } } PK!N  =susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_mstw.csvm χ̃ [GeV], xsec [fb], -scale unc [%], -pdf unc [%], +scale unc [%], +pdf unc [%] 100.0, 11743.0, -1.1, -3.0, 0.0, 3.3 125.0, 5169.4, -0.7, -3.1, 0.0, 3.3 150.0, 2662.6, -0.7, -3.1, 0.0, 3.3 175.0, 1514.2, -0.6, -3.2, 0.0, 3.4 200.0, 923.92, -0.5, -3.3, 0.2, 3.5 225.0, 594.17, -0.5, -3.5, 0.3, 3.6 250.0, 398.07, -0.5, -3.6, 0.3, 3.7 275.0, 275.57, -0.5, -3.7, 0.3, 3.8 300.0, 195.9, -0.4, -3.8, 0.5, 3.9 325.0, 142.37, -0.4, -3.9, 0.6, 4.1 350.0, 105.49, -0.4, -4.0, 0.5, 4.2 375.0, 79.43, -0.4, -4.1, 0.4, 4.3 400.0, 60.62, -0.4, -4.1, 0.4, 4.5 425.0, 46.87, -0.4, -4.4, 0.2, 4.4 450.0, 36.6, -0.4, -4.5, 0.3, 4.6 475.0, 28.86, -0.3, -4.4, 0.2, 4.8 500.0, 22.95, -0.3, -4.5, 0.2, 4.9 525.0, 18.4, -0.1, -4.4, 0.1, 5.1 550.0, 14.85, -0.2, -4.5, 0.0, 5.3 575.0, 12.06, -0.2, -4.5, 0.0, 5.5 600.0, 9.85, -0.2, -4.6, 0.0, 5.7 625.0, 8.1, -0.2, -4.7, 0.0, 5.8 650.0, 6.69, -0.2, -4.9, 0.0, 5.7 675.0, 5.54, -0.4, -4.7, 0.0, 6.1 700.0, 4.61, -0.4, -5.0, 0.0, 6.2 725.0, 3.85, -0.7, -4.9, 0.0, 6.3 750.0, 3.22, -0.7, -4.9, 0.0, 6.8 775.0, 2.71, -0.6, -5.0, 0.0, 7.0 800.0, 2.29, -0.5, -5.3, 0.0, 7.3 825.0, 1.93, -0.7, -5.3, 0.1, 6.9 850.0, 1.64, -0.9, -5.4, 0.1, 7.4 875.0, 1.39, -0.6, -5.6, 0.2, 7.7 900.0, 1.19, -0.7, -5.4, 0.3, 8.3 925.0, 1.01, -1.0, -5.5, 0.4, 8.5 950.0, 0.87, -1.2, -5.7, 0.3, 8.6 975.0, 0.74, -1.0, -4.6, 0.8, 6.9 1000.0, 0.64, -1.3, -5.8, 0.5, 9.2 1025.0, 0.55, -1.0, -6.1, 0.5, 9.5 1050.0, 0.47, -1.0, -6.1, 0.5, 9.7 1075.0, 0.41, -1.1, -6.7, 0.5, 9.6 1100.0, 0.35, -1.1, -6.6, 0.5, 10.1 1125.0, 0.31, -1.0, -6.7, 0.5, 10.5 1150.0, 0.27, -1.0, -6.8, 0.7, 11.0 1175.0, 0.23, -1.5, -7.6, 0.5, 10.8 1200.0, 0.2, -1.4, -7.3, 0.8, 11.2 1225.0, 0.17, -1.4, -7.6, 0.8, 11.5 1250.0, 0.15, -1.4, -7.8, 0.9, 12.0 1275.0, 0.13, -1.4, -7.9, 0.9, 12.3 1300.0, 0.12, -1.9, -9.6, 0.1, 12.0 1325.0, 0.1, -1.6, -8.2, 0.4, 13.0 1350.0, 0.09, -1.7, -8.4, 0.4, 13.0 1375.0, 0.08, -1.1, -8.6, 1.0, 13.8 1400.0, 0.07, -1.1, -9.2, 1.2, 14.4 1425.0, 0.06, -1.5, -9.8, 1.1, 14.4 1450.0, 0.05, -1.7, -9.1, 1.8, 15.1 1475.0, 0.05, -1.9, -9.6, 1.7, 15.3 1500.0, 0.0396777, -1.9, -10.0, 1.5, 15.6 1525.0, 0.0348504, -2.0, -10.3, 1.6, 16.0 1550.0, 0.0306274, -2.0, -10.5, 1.6, 16.4 1575.0, 0.0269641, -2.1, -10.9, 1.7, 16.6 1600.0, 0.0236914, -1.6, -11.0, 1.7, 17.5 1625.0, 0.0208521, -2.2, -11.4, 1.7, 18.0 1650.0, 0.0183612, -2.2, -11.6, 2.7, 19.0 1675.0, 0.0161748, -2.3, -11.8, 1.8, 19.4 1700.0, 0.0143338, -2.2, -13.2, 1.8, 18.5 1725.0, 0.0125662, -2.4, -12.8, 1.9, 19.6 1750.0, 0.0110821, -2.4, -13.1, 1.9, 20.3 1775.0, 0.00977625, -2.5, -13.5, 2.0, 20.5 1800.0, 0.00862671, -2.5, -13.8, 2.0, 21.0 1825.0, 0.00762398, -2.7, -14.0, 1.9, 21.6 1850.0, 0.0068088, -3.0, -15.8, 1.6, 20.4 1875.0, 0.00603353, -4.0, -16.6, 2.4, 20.7 1900.0, 0.00531043, -2.8, -16.8, 2.2, 21.6 1925.0, 0.00464231, -1.8, -15.0, 2.2, 24.5 1950.0, 0.00410234, -2.9, -16.3, 2.0, 24.7 1975.0, 0.00363257, -2.1, -15.9, 1.9, 25.6 2000.0, 0.00320795, -3.1, -17.1, 2.1, 26.0 PK!`>susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_mstw.info{ "document": { "title": "NLO-NLL wino-like chargino-chargino (C1C1) cross sections", "authors": "LHC SUSY Cross Section Working Group", "calculator": "resummino", "source": "https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVx1x1wino", "version": "2017-06-15" }, "attributes": { "processes": "p p > wino+ wino-", "collider": "pp", "ecm": "13TeV", "order": "NLO+NLL", "pdf_name": "MSTW2008nlo90cl" }, "columns": [ { "name": "m_wino", "unit": "GeV" }, { "name": "xsec", "unit": "fb" }, { "name": "unc-_scale", "unit": "%" }, { "name": "unc-_pdf", "unit": "%" }, { "name": "unc+_scale", "unit": "%" }, { "name": "unc+_pdf", "unit": "%" } ], "reader_options": { "skipinitialspace": 1 }, "data": { "parameters": [{ "column": "m_wino", "granularity": 1 }], "values": [ { "column": "xsec", "unc-": [ { "column": "unc-_scale", "type": "relative" }, { "column": "unc-_pdf", "type": "relative" } ], "unc+": [ { "column": "unc+_scale", "type": "relative" }, { "column": "unc+_pdf", "type": "relative" } ] } ] } } PK!!&"susy_cross_section/interpolator.py"""Interpolators of cross-section data.""" from __future__ import absolute_import, division, print_function # py2 import logging import sys from typing import (Any, Callable, List, Sequence, Tuple, Union, # noqa: F401 cast) import numpy import scipy.interpolate if sys.version_info[0] < 3: # py2 str = basestring # noqa: F821 logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) InterpolationType = Tuple[Any, Callable[[float], float], Callable[[float], float]] class InterpolationWithUncertainties: """An interpolation result of values accompanied by uncertainties.""" def __init__(self, central, central_plus_unc, central_minus_unc): # type: (Interpolation, Interpolation, Interpolation)->None self.f0 = central self.fp = central_plus_unc self.fm = central_minus_unc self.extra_p_source = lambda _x: 0 # type: Callable[[float], float] self.extra_m_source = lambda _x: 0 # type: Callable[[float], float] # py2 does not accept single kwarg after args. def __call__(self, *args, **kwargs): # py2; in py3, def __call__(self, *args, unc_level=0): # type: (Any, float)->float """Return the fitted value with requested uncertainty level.""" unc_level = kwargs.get('unc_level', 0) # py2 return self.f0(*args) + ( unc_level * self.unc_p_at(*args) if unc_level > 0 else unc_level * abs(self.unc_m_at(*args)) if unc_level < 0 else 0 ) def tuple_at(self, *args): # type: (Any, float)->Tuple[float, float, float] """Return the tuple (central, +unc, -unc) at the fit point.""" return float(self.f0(*args)), self.unc_p_at(*args), self.unc_m_at(*args) def unc_p_at(self, *args): # type: (Any)->float """Return the fitted value of positive uncertainty. Note that this is not the positive uncertainty of the fitting. """ return ((self.fp(*args) - self.f0(*args)) ** 2 + self.extra_p_source(*args) ** 2)**0.5 def unc_m_at(self, *args): # type: (Any)->float """Return the fitted value of negative uncertainty, which is negative. Note that this is not the negative uncertainty of the fitting. """ return -((self.f0(*args) - self.fm(*args)) ** 2 + self.extra_m_source(*args) ** 2)**0.5 WrapperType = Callable[[float], float] class Interpolation: """An interpolation result with modified axes.""" def __init__(self, f, x_wrapper, y_wrapper): # type: (Any, WrapperType, WrapperType)->None self.f = f # type: Any self.x_wrapper = x_wrapper # type: WrapperType self.y_wrapper = y_wrapper # type: WrapperType def __call__(self, x): # type: (float)->float """Return interpolation result with corrected axes.""" return self.y_wrapper(self.f(self.x_wrapper(x))) class AbstractInterpolator: """Abstract class for interpolators of values with 1sigma uncertainties. Actual interpolators, inheriting this abstract class, will perform interpolation of pandas data frame. """ @staticmethod def dim_index(df): # type: (Any)->int """Return the dimension of dataframe index.""" return len(df.index.names) @staticmethod def axes_wrapper(axes_type, x, y): # type: (str, Any, Any)->Tuple[Any, Any, Callable[[float], float], Callable[[float], float]] """Wrap x- and y-data to fit and return wrapped data with inverters. `axes_type` is the name of wrapper, and the grid data `x` and `y` are wrapped with it. The wrapped data of x, y, and the functions wx and wy to invert the wrap is returned, i.e., with fit function f, y_fit = wy(f(wx(x_fit))). """ if axes_type == 'linear': return x, y, lambda a: a, lambda a: a elif axes_type == 'log': return x, numpy.log10(y), lambda a: a, lambda a: 10**a elif axes_type == 'loglinear': return numpy.log10(x), y, lambda a: float(numpy.log10(a)), lambda a: a elif axes_type == 'loglog': return numpy.log10(x), numpy.log10(y), lambda a: float(numpy.log10(a)), lambda a: 10**a else: raise ValueError('Invalid axes_type: %s', axes_type) def interpolate(self, df_with_unc): # type: (Any)->InterpolationWithUncertainties """Interpolate the values accompanied by uncertainties.""" return InterpolationWithUncertainties( self._interpolate(df_with_unc['value']), self._interpolate(df_with_unc['value'] + df_with_unc['unc+']), self._interpolate(df_with_unc['value'] - abs(df_with_unc['unc-'])), ) def _interpolate(self, df): # type: (Any)->Interpolation return NotImplemented # type: ignore class Scipy1dInterpolator(AbstractInterpolator): """Interpolator for values with uncertainty based on Scipy interp1d.""" def __init__(self, kind=None, axes=None): # type: (str, str)->None self.kind = (kind or 'linear').lower() self.axes = (axes or 'linear').lower() def _interpolate(self, df): # type: (Any)->Interpolation if self.dim_index(df) != 1: raise Exception('Scipy1dInterpolator not handle multiindex data.') x0 = df.index.to_numpy() y0 = df.to_numpy() x, y, wx, wy = self.axes_wrapper(self.axes, x0, y0) return Interpolation(scipy.interpolate.interp1d(x, y, self.kind), wx, wy) PK!9T susy_cross_section/scripts.py"""Scripts for user's ease of handling the data.""" from __future__ import absolute_import, division, print_function # py2 import logging import os import pathlib import sys from typing import Any # noqa: F401 import click import susy_cross_section.config import susy_cross_section.utility from susy_cross_section.cross_section_table import CrossSectionTable from susy_cross_section.interpolator import Scipy1dInterpolator __author__ = 'Sho Iwamoto' __copyright__ = 'Copyright (C) 2018-2019 Sho Iwamoto / Misho' __license__ = 'MIT' __scriptname__ = 'XS interpolator' __version__ = '0.1.0' if sys.version_info[0] < 3: # py2 str = basestring # noqa: F821 logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) @click.command(help='Interpolate cross-section data using the standard scipy interpolator (with log-log axes).', context_settings={'help_option_names': ['-h', '--help']}) @click.argument('table', required=True, type=click.Path(exists=False)) @click.argument('args', type=float, required=True, nargs=-1) @click.option('--name', default='xsec', help='name of a table') @click.option('-0', 'simplest', is_flag=True, help='show in simplest format') @click.option('-1', 'simple', is_flag=True, help='show in simple format') @click.option('--unit/--no-unit', help='display unit', default=True, show_default=True) # @click.option('--config', type=click.Path(exists=True, dir_okay=False), # help='path of config json file for extra name dictionary') @click.option('--info', type=click.Path(exists=True, dir_okay=False), help='path of table-info file if non-standard file name') @click.version_option(__version__, '-V', '--version', prog_name=__scriptname__) def command_get(**kw): # type: (Any)->None """Script for cross-section interpolation.""" # handle arguments info_path = None if os.path.exists(kw['table']): table_path = pathlib.Path(kw['table']) elif kw['table'] in susy_cross_section.config.table_names: pwd = pathlib.Path(__file__).parent t = susy_cross_section.config.table_names[kw['table']] if isinstance(t, str): table_path = pwd / t else: table_path, info_path = pwd / t[0], pwd / t[1] else: click.echo('No table found: {}'.format(kw['table'])) exit(1) if kw['info']: info_path = kw['info'] # data evaluation table = CrossSectionTable(table_path, info_path) data = table.data[kw['name']] unit = table.units[kw['name']] if kw['unit'] else None interpolator = Scipy1dInterpolator(axes='loglog') central, unc_p, unc_m = interpolator.interpolate(data).tuple_at(*kw['args']) # display if kw['simplest']: click.echo(central) elif kw['simple']: click.echo('{} +{} -{}'.format(central, unc_p, abs(unc_m))) else: click.echo(susy_cross_section.utility.value_format(central, unc_p, unc_m, unit)) exit(0) if __name__ == '__main__': command_get() PK!OOW2W2 susy_cross_section/table_info.py"""Classes for annotations to a table.""" from __future__ import absolute_import, division, print_function # py2 import json import logging import pathlib # noqa: F401 import sys from typing import (Any, List, Mapping, MutableMapping, Optional, # noqa: F401 Sequence, Union) if sys.version_info[0] < 3: # py2 str = basestring # noqa: F821 logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) JSONDecodeError = Exception if sys.version_info[0] < 3 else json.decoder.JSONDecodeError # py2 class ColumnInfo(object): """Stores information of a column. A column is defined by `index`, but is referreed to by `name` for flexibility and readability. Also in physics context a column is accompanied by a unit. note: In this version `unit` is just a `str` and thus just for annotation, but in future numeric units such as 1000 to describe "x1000" could be implemented. Attributes ---------- index : int The index (zero-based indexing) of column. Non-negative. name : str The name of column, used as an identifier and thus should be unique in one table. unit : str The unit of column. If without unit, it must be an empty string. """ def __init__(self, index, name, unit=''): # type: (int, str, str)->None self.index = index # type: int self.name = name # type: str self.unit = unit or '' # type: str def validate(self): # type: ()->None """Validate the content. Perform the validation only within ColumnInfo. This is intended to be called from outside of this class upon the user (of this class)'s request. """ if not isinstance(self.index, int): raise TypeError('ColumnInfo.index must be int: %s', self.index) if not self.index >= 0: raise ValueError('ColumnInfo.index must be non-negative: %s', self.index) if not isinstance(self.name, str): raise TypeError('Column %d: `name` must be string: %s', self.index, self.name) if not self.name: raise ValueError('Column %d: `name` missing', self.index) if not isinstance(self.unit, str): raise TypeError('Column %d: `unit` must be string: %s', self.index, self.unit) class ParameterInfo(object): """Stores information of parameter. Parameter is a number characterized by its `column` name and users will interpolate the data according to them. For grid-based interpolation, another property `granularity` should be provided, Attributes ---------- column: str Name of the column that stores this parameter. granularity : int or float granularity of the parameter when interpreted as a list of grid-points. For a parameter list `v`, the integers round(v[i] / granularity) should specify one grid-point. For example, for a parameter grid [10, 20, 30, 50, 70, 200], it will be 10 in principle, but 5, 2, 1, or 0.1 are possible. For [33.3, 50, 70], it should be 0.1 (or 0.05, etc.) to track the first decimal point of 33.3. """ def __init__(self, column='', granularity=None): # type: (str, float)->None self.column = column # type: str self.granularity = granularity or None # type: Optional[float] def validate(self): # type: ()->None """Validate the content. Perform the validation only within this class. This is intended to be called from outside of this class upon the user (of this class)'s request. """ if not isinstance(self.column, str): raise TypeError('ParameterInfo.column must be string: %s', self.column) if not self.column: raise ValueError('ParameterInfo.column is missing') if self.granularity is not None: try: if not float(self.granularity) > 0: raise ValueError('ParameterInfo.granularity is not positive: %s', self.granularity) except TypeError: raise TypeError('ParameterInfo.granularity is not a number: %s', self.granularity) @classmethod def from_json(cls, json_data): # type: (Any)->ParameterInfo """Construct an object from json-based data.""" if not isinstance(json_data, Mapping): raise TypeError('Entry of "values" must be a dict: %s', json_data) column = json_data.get('column') granularity = json_data.get('granularity', None) if not column: raise ValueError('Entry of "values" must have a key "column": %s', json_data) return cls(column=column, granularity=granularity) def to_json(self): # type: ()->MutableMapping[str, Union[str, float]] """Dump json-based data from an object.""" json_data = {'column': self.column} # type: MutableMapping[str, Union[str, float]] if self.granularity: json_data['granularity'] = self.granularity return json_data class ValueInfo(object): """Stores information of value accompanied by uncertainties. This includes `column` as the name of column the value is stored, and plus- and minus-directed uncertainty sources of the value. An uncertainty source is characterized by a column-name and a type, which currently includes "relative" or "absolute". Attributes ---------- column: str Name of the column that stores this value. unc_p : dict of (str, str) The sources of "plus" uncertainties, where each key describe `name` of another `ColumnInfo` and each value denotes the "type" of the source. unc_m : dict of (str, str) The sources of "minus" uncertainties. """ def __init__(self, column='', unc_p=None, unc_m=None, **kw): # type: (str, MutableMapping[str, str], MutableMapping[str, str], Any)->None self.column = column self.unc_p = unc_p or {} # type: MutableMapping[str, str] self.unc_m = unc_m or {} # type: MutableMapping[str, str] def validate(self): # type: ()->None """Validate the content. Perform the validation only within this class. This is intended to be called from outside of this class upon the user (of this class)'s request. """ if not isinstance(self.column, str): raise TypeError('ValueInfo.column must be string: %s', self.column) if not self.column: raise ValueError('ValueInfo.column is missing') for title, unc in [('unc+', self.unc_p), ('unc-', self.unc_m)]: if not isinstance(unc, MutableMapping): raise TypeError('Value %s: %s must be dict', self.column, title) for k in unc.keys(): if not isinstance(k, str): raise TypeError('Value %s: %s has invalid column name: %s', self.column, title, k) @classmethod def from_json(cls, json_data): # type: (Any)->ValueInfo """Construct an object from json-based data.""" if not isinstance(json_data, Mapping): raise TypeError('Entry of "values" must be a dict: %s', json_data) if 'column' not in json_data: raise KeyError('Entry of "values" must have a key "column": %s', json_data) obj = cls() obj.column = json_data['column'] if ('unc' in json_data) and ('unc+' in json_data or 'unc-' in json_data): raise ValueError('Invalid uncertainties (asymmetric and symmetric): %s', obj.column) for attr_name, key_name in [('unc_p', 'unc+'), ('unc_m', 'unc-')]: u = json_data.get(key_name) or json_data.get('unc') or None if u is None: logger.warning('The uncertainty (%s) is missing in value "%s".', key_name, obj.column) continue if not isinstance(u, Sequence) or not all(isinstance(source, Mapping) for source in u): raise TypeError('Entry of "%s" in "%s" must be a list of dicts.', key_name, obj.column) try: setattr(obj, attr_name, {source['column']: source['type'] for source in u}) except KeyError as e: raise ValueError('Entry of "%s" in "%s" has a missing key: %s', key_name, obj.column, *e.args) if not(obj.unc_p and obj.unc_m): logger.warning('Value %s lacks uncertainties.', obj.column) return obj def to_json(self): # type: ()->MutableMapping[str, Union[str, List[MutableMapping[str, str]]]] """Dump json-based data from an object.""" return { 'column': self.column, 'unc+': [{'column': key, 'type': value} for key, value in self.unc_p.items()], 'unc-': [{'column': key, 'type': value} for key, value in self.unc_m.items()], } class TableInfo(object): """Stores annotations of a table. Attributes ---------- document : dict of (Any, Any) Any information just for documentation, i.e., without physical meanings. columns : list of ColumnInfo The list of columns. """ def __init__(self, document=None, columns=None, reader_options=None): # type: (MutableMapping[Any, Any], List[ColumnInfo], MutableMapping[str, Any])->None self.document = document or {} # type: MutableMapping[Any, Any] self.columns = columns or [] # type: List[ColumnInfo] self.reader_options = reader_options or {} # type: MutableMapping[str, Any] def validate(self): # type: ()->None """Validate the content.""" if not isinstance(self.document, MutableMapping): raise TypeError('document must be a dict.') if not isinstance(self.columns, List): raise TypeError('columns must be list.') # validate columns (`index` matches actual index, names are unique) names_dict = {} # type: MutableMapping[str, bool] for i, column in enumerate(self.columns): column.validate() if column.index != i: raise ValueError('Mismatched column index: %d has %d', i, column.index) if names_dict.get(column.name): raise ValueError('Duplicated column name: %s', column.name) names_dict[column.name] = True if not isinstance(self.reader_options, MutableMapping): raise TypeError('reader_options must be a dict.') if not all(k and isinstance(k, str) for k, v in self.reader_options.items()): raise TypeError('keys of reader_options must be str.') @classmethod def load(cls, source): # type: (Union[pathlib.Path, str])->TableInfo """Load and construct TableInfo from a json file.""" obj = cls() with open(source.__str__()) as f: # py2 try: obj._load(**(json.load(f))) except JSONDecodeError: # type: ignore logger.error('Invalid JSON file: %s', source) exit(1) return obj def _load(self, **kw): # type: (Any)->None """Construct TableInfo from a json data. Since no type-check is performed here, developers must be sure on validity of the information, e.g., by calling `validate` in this method. """ self.document = kw.get('document') or {} self.columns = [ColumnInfo(index=i, name=c.get('name'), unit=c.get('unit')) for i, c in enumerate(kw['columns']) ] if 'columns' in kw else [] self.reader_options = kw.get('reader_options') or {} try: self.validate() except ValueError as e: logger.error(*e.args) exit(1) except TypeError as e: logger.error(*e.args) exit(1) if not self.document: logger.warning('No document is given.') for key in kw: if key not in ['document', 'columns', 'reader_options']: logger.warning('Unrecognized attribute "%s"', key) def get_column(self, name): # type: (str)->ColumnInfo """Return a column with specified name. Search for a column with name `name` and returns it, or raise an error if not found. Note that this method is slow. """ for c in self.columns: if c.name == name: return c raise KeyError(name) def get_column_safe(self, name): # type: (str)->Union[ColumnInfo, None] """Get a column with specified name if exists.""" try: return self.get_column(name) except KeyError: return None PK!- N$susy_cross_section/tests/__init__.py"""Test codes.""" PK!V_(susy_cross_section/tests/test_scripts.py"""Test codes.""" from __future__ import absolute_import, division, print_function # py2 import logging import pathlib import unittest from click.testing import CliRunner from nose.tools import assert_almost_equals, eq_, ok_, raises # noqa: F401 from susy_cross_section.scripts import command_get logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) class TestScripts(unittest.TestCase): """Test codes for command-line scripts.""" def setUp(self): """Set up.""" self.data_dir = pathlib.Path(__file__).parent / 'data' self.runner = CliRunner() def test_get(self): """Assert that command_get runs without error.""" result = {} for mass in [300, 350]: result[mass] = self.runner.invoke(command_get, ['13TeV.slepslep.ll', str(mass)]) if result[mass].exit_code: logger.debug('%s', result[mass].__dict__) eq_(result[mass].exit_code, 0) eq_(result[300].output.strip(), '(4.43 +0.19 -0.24) fb') eq_(result[350].output.strip(), '(2.33 +0.11 -0.14) fb') def test_get_simple(self): """Assert that command_get returns sensible interpolation results.""" result = {} output = {} for mass in [450, 458, 475]: result[mass] = self.runner.invoke(command_get, ['-1', '13TeV.n2x1+-.wino', str(mass)]) output[mass] = [float(x) for x in result[mass].output.strip().split(' ')] logger.debug('Exit code %s with output: %s', result[mass].exit_code, output[mass]) eq_(result[mass].exit_code, 0) eq_(len(output[mass]), 3) assert_almost_equals(output[450][0], 73.4361) assert_almost_equals(output[450][1], 6.2389) assert_almost_equals(output[450][2], -6.2389) assert_almost_equals(output[475][0], 58.0811) assert_almost_equals(output[475][1], 5.05005) assert_almost_equals(output[475][2], -5.05005) assert(output[450][0] > output[458][0] > output[475][0]) assert(output[450][1] > output[458][1] > output[475][1]) assert(output[450][2] < output[458][2] < output[475][2]) PK!c% % susy_cross_section/utility.py"""Utility functions and classes.""" from __future__ import absolute_import, division, print_function # py2 import sys from typing import List, Mapping, MutableMapping, Optional, Union # noqa: F401 import numpy if sys.version_info[0] < 3: # py2 str = basestring # noqa: F821 class Unit: """The unit of a physical value. The constructor must be called with units, where units must be str. """ definitions = { '': [1], '%': [0.01], 'pb': [1000, 'fb'], } # type: Mapping[Union[float, str], List[Union[float, str]]] def __init__(self, *args): # type: (Union[float, str, Unit])->None self.factor = 1 # type: float self.units = {} # type: MutableMapping[str, int] for u in args: if isinstance(u, Unit): self.factor *= u.factor for k, v in u.units.items(): self.units[k] = self.units.get(k, 0) + v else: base_units = self.definitions.get(u, [u]) for b in base_units: if isinstance(b, str): self.units[b] = self.units.get(b, 0) + 1 else: try: self.factor *= float(b) except ValueError: raise TypeError('invalid unit: %s', u) def invert(self): # type: ()->Unit """Return an inverted unit.""" result = Unit() result.factor = 1 / self.factor result.units = {k: -v for k, v in self.units.items()} return result def __mul__(self, other): # type: (Union[float, str, Unit])->Unit """Return products of two units.""" return Unit(self, other) def __truediv__(self, other): # type: (Union[float, str, Unit])->Unit """Return division of two units.""" return self * Unit(other).invert() def __float__(self): # type: ()->float """Return factor if it is without units.""" if any(v != 0 for v in self.units.values()): raise ValueError('Unit conversion error: %s, %s', self.units, self.factor) return float(self.factor) def value_format(value, unc_p, unc_m, unit=None): # type: (float, float, float, Optional[str])->str """Format the value with uncertainty (and with unit).""" delta = min(abs(unc_p), abs(unc_m)) if delta == 0: value_str = '{:g} +0 -0'.format(value) return '({}) {}'.format(value_str, unit) if unit else value_str else: v_order = int(numpy.log10(value)) if abs(v_order) > 3: digits = max(int(-numpy.log10(delta / value) - 0.005) + 2, 3) v, p, m = value / 10**v_order, unc_p / 10**v_order, abs(unc_m) / 10**v_order f = '{{:.{}f}}'.format(digits) value_str = '({} +{} -{})'.format(f, f, f).format(v, p, m) + '*1e{}'.format(v_order) return '{} {}'.format(value_str, unit) if unit else value_str else: digits = max(int(-numpy.log10(delta) - 0.005) + (1 if delta > 1 else 2), 0) f = '{{:{}}}'.format('.{}f'.format(digits)) value_str = '{} +{} -{}'.format(f, f, f).format(value, unc_p, abs(unc_m)) return '({}) {}'.format(value_str, unit) if unit else value_str PK!HϤ!?F3susy_cross_section-0.0.2.dist-info/entry_points.txtN+I/N.,()*.-ԭ(MO-㓋SK2ꬒssRʸPK!HWY(susy_cross_section-0.0.2.dist-info/WHEEL A н#Z;/"b&F]xzwC;dhfCSTֻ0*Ri.4œh6-]{H, JPK!HX-d +susy_cross_section-0.0.2.dist-info/METADATAXr6ϧ@a9")_6iqƩӴ HHڝݧ7sJǭ;L.=8 ǼB>]gLe~1QQo9t7yy<`#Y"lj/rsV$s##xS<V*Vh5`w_݇0r{2gIYcY&0Tf$ f橌Dn;AɌg [oV=拌˴fbqS 7k;m].>E/8h^m]<;`;J1r${;8a!!bzË%Z52)5x=v~p;=zW4eE&lAڜQ<憦ĻwϤ2IfuP D`OdyfǛi<ٴm"Y̝垳94?9P ]٥(cUJH˂#"/y &wJ1̇FAT? tPT/Z%`m*Kx޽zz'LNd Q¡éх+o!#4pLJSB,P)*JQ .=yW J/SҥY [kȫOa$7%(ƌ̊tΦcʼnRpʸ{mT*Y! T/T_g(YwJ佻`&s:ok*č]9\9<vs A_U"$YBhA#$G#i#9cE2 <5ZĒ8:=!נ\U8" <#˾6H(4hLuGWj!m5ʦU*=#ժ{n1H-=XT#pmüSI^.L99+ T)0 ES̜]/ȵH'Z= |HMoۥ 9pI6DUhffE9jFʅuSp#QqW؝XKbH62uAc֊eL-\`X$eR!ڻ$7 h pú6zA=C4z oa-[\Xi7դE6RU^9l b#o/Nޞ>× .4!XrEw&Jl`T}cN zo-Pɣl[|6i46O($*`^ކ-sSgՍF+f`#Q u íQ>jqhSٸGrXqW mIy zEskY!'d(`/?L2*xF2g<\ `Ǻ^M}lg~u:!LL\>98~3,PK!H5t)susy_cross_section-0.0.2.dist-info/RECORDIo>.@& ag_ܯO47}zUT88zcNy'{ݘҳtBzRQJ 7U֚6 %::?ԅy'j &ӧr)s$Ϝs^cGP?W8sE2<;?˛.^("+% ^~P밇W_c#;?,~ޒa#hip{~  dLwRրA<<9𰟈ܡ$3n$ IIG?31ъCΜj;5g'[ĜQ݁@= jR ၊wZhn߳F]J؏·9s7w^eNF=.'L3u/)ƶpaF{$^>  ';/hD/?axvϞҢ1*L`U2͕W@O;6wܲa>"[h]!u#hƑ;}ZK~lL4bp:"$r#hLe"!Q~MK>\V Gf.]4ч:<6-kW҆++BIӕ3Mْ&P}#yt~o/ nA?f(iP`6TXl> !b յ,%fWQT`G(oxʟIAwnRv]m\, !m[eR ءm Ƨit ȱ-ENS'*rD{|L>&{}YNz<{˙rS1!wM'AGi$$ޡǭI 0 +g*G4 }*%Յ)<)TDǥ8;"zWQb|eyʫ|ڞθ0dG ,{tӊ %'(E c- { xޢ|+naQ4۴NMMO5TUMg<,MD kܖ땿HGx"@'41I1Ju$wg;_e֠ʠ>N{f!Vg_=]UCn)j Ȓ _Ϟ{P4fPK!U<<susy_cross_section/__init__.pyPK!V UUxsusy_cross_section/config.pyPK!?K$$)susy_cross_section/cross_section_table.pyPK!Rȡ?c(susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_m.csvPK!b:Ը@?susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_m.infoPK!^%?Dsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_p.csvPK!/@X\susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_p.infoPK!/=@nasusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_pm.csvPK!eAxsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_cteq_pm.infoPK!>? C}susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_m.csvPK!njDsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_m.infoPK!\ Csusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_p.csvPK!0gDsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_p.infoPK!4v} } Dsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_pm.csvPK! ]Easusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_envelope_pm.infoPK!7<_?gsusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_m.csvPK!@susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_m.infoPK!{A  ?susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_p.csvPK!уT@`susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_p.infoPK!@~susy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_pm.csvPK!L'#Asusy_cross_section/data/lhc_susy_xs_wg/13TeVn2x1wino_mstw_pm.infoPK!Kq88;susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_ll.csvPK!ͣY+<dsusy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_ll.infoPK!N888?[susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_maxmix.csvPK!ct@ susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_maxmix.infoPK!-88;susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_rr.csvPK!QR#<susy_cross_section/data/lhc_susy_xs_wg/13TeVslepslep_rr.infoPK!X]  =susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_cteq.csvPK!.>0susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_cteq.infoPK!Q A5susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_envelope.csvPK!6B@susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_envelope.infoPK!N  =Dsusy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_mstw.csvPK!`>:\susy_cross_section/data/lhc_susy_xs_wg/13TeVx1x1wino_mstw.infoPK!!&"Tasusy_cross_section/interpolator.pyPK!9T 큄wsusy_cross_section/scripts.pyPK!OOW2W2 큜susy_cross_section/table_info.pyPK!- N$1susy_cross_section/tests/__init__.pyPK!V_(susy_cross_section/tests/test_scripts.pyPK!c% % Msusy_cross_section/utility.pyPK!HϤ!?F3susy_cross_section-0.0.2.dist-info/entry_points.txtPK!HWY(=susy_cross_section-0.0.2.dist-info/WHEELPK!HX-d +susy_cross_section-0.0.2.dist-info/METADATAPK!H5t)susy_cross_section-0.0.2.dist-info/RECORDPK++l