From 6e3e918d98617a16a67595140d0c44bc39e92bc0 Mon Sep 17 00:00:00 2001 From: juacrumar Date: Wed, 3 Aug 2022 13:02:33 +0200 Subject: [PATCH] reader for new commondata, from #1548 and #1500; only with the necessary files for the reader (no removals or rawdata) --- .github/workflows/tests.yml | 2 +- ...ground for the new commondata format.ipynb | 520 +++ buildmaster/NMCPD/data.yaml | 261 ++ buildmaster/NMCPD/filter.py | 69 + buildmaster/NMCPD/kinematics.yaml | 3121 +++++++++++++++++ buildmaster/NMCPD/metadata.yaml | 60 + buildmaster/NMCPD/uncertainties.yaml | 530 +++ buildmaster/NMCPD/uncertainties_dw.yaml | 266 ++ buildmaster/NMCPD/uncertainties_sh.yaml | 266 ++ validphys2/src/validphys/commondataparser.py | 184 +- validphys2/src/validphys/pineparser.py | 7 + validphys2/src/validphys/plotoptions/core.py | 6 +- validphys2/src/validphys/utils.py | 14 +- 13 files changed, 5281 insertions(+), 25 deletions(-) create mode 100644 Playground for the new commondata format.ipynb create mode 100644 buildmaster/NMCPD/data.yaml create mode 100644 buildmaster/NMCPD/filter.py create mode 100644 buildmaster/NMCPD/kinematics.yaml create mode 100644 buildmaster/NMCPD/metadata.yaml create mode 100644 buildmaster/NMCPD/uncertainties.yaml create mode 100644 buildmaster/NMCPD/uncertainties_dw.yaml create mode 100644 buildmaster/NMCPD/uncertainties_sh.yaml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e12b15d9d2..e1263e3145 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - python-version: [3.8, 3.9] + python-version: [3.9] include: - os: ubuntu-latest CONDA_OS: linux-64 diff --git a/Playground for the new commondata format.ipynb b/Playground for the new commondata format.ipynb new file mode 100644 index 0000000000..162485f5cf --- /dev/null +++ b/Playground for the new commondata format.ipynb @@ -0,0 +1,520 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "cc3f217c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[PosixPath('uncertainties.yaml'), PosixPath('uncertainties_sh.yaml')]\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "\n", + "from reportengine.compat import yaml\n", + "import validphys\n", + "from validphys.commondataparser import parse_commondata_folder\n", + "\n", + "# Path to your buildmaster, here I'm guessing vp as installed in edit mode\n", + "BUILDMASTER_PATH = Path(validphys.__file__).parent / \"../../../buildmaster\"\n", + "DATASET = \"NMCPD\"\n", + "\n", + "#from validphys.core import CommonDataSpec\n", + "#import pandas as pd\n", + "#import numpy as np\n", + "#from collections import defaultdict\n", + "\n", + "dataset_path = BUILDMASTER_PATH / DATASET\n", + "metadata_file = dataset_path / \"metadata.yaml\"\n", + "metadata = yaml.safe_load(metadata_file.read_text())\n", + "ndata = metadata[\"ndata\"]\n", + "\n", + "ret = parse_commondata_folder(dataset_path, variant=\"shifted\")\n", + "print(ret.data_uncertainties)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b3c5ed78", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
xq2y
midmidmid
index
10.00150.160.120852
20.00150.250.188831
30.00150.350.264363
40.00150.450.339895
50.00150.600.453194
............
2560.675026.490.044463
2570.675035.400.059419
2580.675047.030.078940
2590.675063.530.106635
2600.675099.030.166221
\n", + "

260 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " x q2 y\n", + " mid mid mid\n", + "index \n", + "1 0.0015 0.16 0.120852\n", + "2 0.0015 0.25 0.188831\n", + "3 0.0015 0.35 0.264363\n", + "4 0.0015 0.45 0.339895\n", + "5 0.0015 0.60 0.453194\n", + "... ... ... ...\n", + "256 0.6750 26.49 0.044463\n", + "257 0.6750 35.40 0.059419\n", + "258 0.6750 47.03 0.078940\n", + "259 0.6750 63.53 0.106635\n", + "260 0.6750 99.03 0.166221\n", + "\n", + "[260 rows x 3 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Read the kinematics dataframe\n", + "kin_df = None\n", + "if True:\n", + " kin_file = dataset_path / \"kinematics.yaml\"\n", + " kinyaml = yaml.safe_load(kin_file.read_text())\n", + " \n", + " kin_dict = {i+1: pd.DataFrame(d).stack() for i, d in enumerate(kinyaml[\"bins\"])}\n", + " kin_df = pd.concat(kin_dict, axis=1, names=[\"index\"]).swaplevel(0,1).T\n", + "kin_df" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "365489c7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namestat_1syst_1nuclear
treatmentADDADDADD
typeUNCORRCORRNUC_DW
index
10.02030.01090.0203
20.02120.01340.0212
30.02050.01120.0205
40.02580.01950.0258
50.01760.01210.0176
............
2560.02350.00340.0235
2570.03300.00330.0330
2580.03730.00260.0373
2590.05130.00290.0513
2600.06450.00340.0645
\n", + "

260 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + "name stat_1 syst_1 nuclear\n", + "treatment ADD ADD ADD\n", + "type UNCORR CORR NUC_DW\n", + "index \n", + "1 0.0203 0.0109 0.0203\n", + "2 0.0212 0.0134 0.0212\n", + "3 0.0205 0.0112 0.0205\n", + "4 0.0258 0.0195 0.0258\n", + "5 0.0176 0.0121 0.0176\n", + "... ... ... ...\n", + "256 0.0235 0.0034 0.0235\n", + "257 0.0330 0.0033 0.0330\n", + "258 0.0373 0.0026 0.0373\n", + "259 0.0513 0.0029 0.0513\n", + "260 0.0645 0.0034 0.0645\n", + "\n", + "[260 rows x 3 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Read the kinematics dataframe\n", + "variant = True\n", + "unc_df = None\n", + "\n", + "def read_uncertainties(unc_file):\n", + " uncyaml = yaml.safe_load(unc_file.read_text())\n", + " \n", + " mindex = pd.MultiIndex.from_tuples([(k, v[\"treatment\"], v[\"type\"]) for k,v in uncyaml[\"definition\"].items()], names=[\"name\", \"treatment\", \"type\"])\n", + " # I'm guessing there will be a better way of doing this than calling dataframe twice for the same thing\n", + " final_df = pd.DataFrame(pd.DataFrame(uncyaml[\"bins\"]).values, columns=mindex, index=range(1,ndata+1))\n", + " final_df.index.name = \"index\"\n", + " return final_df \n", + "\n", + "if True:\n", + " unc_df = read_uncertainties(dataset_path / \"uncertainties.yaml\")\n", + " \n", + " if variant:\n", + " # With a variant\n", + " var_df = read_uncertainties(dataset_path / \"uncertainties_dw.yaml\")\n", + " \n", + " unc_df = pd.concat([unc_df, var_df], axis=1)\n", + " \n", + "unc_df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d3c39164", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
data
index
10.9815
21.0030
30.9675
41.0330
50.9912
......
2560.6717
2570.7194
2580.6959
2590.7020
2600.7724
\n", + "

260 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " data\n", + "index \n", + "1 0.9815\n", + "2 1.0030\n", + "3 0.9675\n", + "4 1.0330\n", + "5 0.9912\n", + "... ...\n", + "256 0.6717\n", + "257 0.7194\n", + "258 0.6959\n", + "259 0.7020\n", + "260 0.7724\n", + "\n", + "[260 rows x 1 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_df = None\n", + " \n", + "if True:\n", + " data_file = dataset_path / \"data.yaml\"\n", + " datayaml = yaml.safe_load(data_file.read_text(encoding=\"utf-8\"))\n", + " \n", + " data_df = pd.DataFrame(datayaml[\"data_central\"], index=range(1, ndata+1), columns=[\"data\"])\n", + " data_df.index.name = \"index\"\n", + " \n", + "data_df" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nnvortex", + "language": "python", + "name": "nnvortex" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/buildmaster/NMCPD/data.yaml b/buildmaster/NMCPD/data.yaml new file mode 100644 index 0000000000..4831d2f4e6 --- /dev/null +++ b/buildmaster/NMCPD/data.yaml @@ -0,0 +1,261 @@ +data_central: +- 0.9815 +- 1.003 +- 0.9675 +- 1.033 +- 0.9912 +- 1.008 +- 0.9824 +- 0.9825 +- 0.9736 +- 0.9704 +- 0.9921 +- 0.9959 +- 1.005 +- 1.0 +- 1.014 +- 0.9945 +- 0.9795 +- 0.9966 +- 0.9893 +- 0.9959 +- 0.9842 +- 0.9817 +- 1.011 +- 0.9993 +- 1.02 +- 0.9618 +- 0.9775 +- 0.9642 +- 0.9714 +- 0.9891 +- 0.975 +- 0.9837 +- 0.9924 +- 0.9683 +- 1.008 +- 0.953 +- 0.969 +- 0.9872 +- 0.968 +- 0.9624 +- 0.9797 +- 0.9747 +- 0.9738 +- 0.9813 +- 0.9844 +- 0.9734 +- 0.9821 +- 0.9573 +- 0.9747 +- 1.007 +- 0.9939 +- 0.9645 +- 0.9685 +- 0.9834 +- 0.9925 +- 0.9763 +- 0.968 +- 0.9761 +- 0.9716 +- 0.9817 +- 0.9942 +- 0.9493 +- 0.9601 +- 0.9408 +- 0.962 +- 0.9585 +- 0.9631 +- 0.9849 +- 0.9802 +- 0.9677 +- 0.9581 +- 0.979 +- 0.9764 +- 0.9592 +- 0.9893 +- 0.9738 +- 0.9557 +- 0.9264 +- 0.9308 +- 0.9618 +- 0.9723 +- 0.9633 +- 0.9554 +- 0.9572 +- 0.9766 +- 0.9565 +- 0.9611 +- 0.9669 +- 0.9817 +- 0.9686 +- 0.9572 +- 0.9439 +- 0.9101 +- 0.9539 +- 0.9204 +- 0.9738 +- 0.94 +- 0.9532 +- 0.9526 +- 0.9642 +- 0.9597 +- 0.9551 +- 0.9577 +- 0.9682 +- 0.9578 +- 0.9532 +- 0.9698 +- 0.9635 +- 0.9488 +- 0.9595 +- 1.001 +- 0.981 +- 0.971 +- 0.9477 +- 0.9449 +- 0.9486 +- 0.937 +- 0.945 +- 0.9367 +- 0.9394 +- 0.9328 +- 0.9432 +- 0.9371 +- 0.9592 +- 0.9678 +- 0.9351 +- 0.9385 +- 0.9413 +- 0.9313 +- 0.9445 +- 0.936 +- 0.9397 +- 0.942 +- 0.9245 +- 0.9218 +- 0.9254 +- 0.9291 +- 0.9319 +- 0.9554 +- 0.9233 +- 0.9264 +- 0.9005 +- 0.9227 +- 0.915 +- 0.9292 +- 0.9205 +- 0.9114 +- 0.9409 +- 0.9291 +- 0.9266 +- 0.9263 +- 0.9272 +- 0.9123 +- 0.9272 +- 0.905 +- 0.9039 +- 0.914 +- 0.9427 +- 0.9056 +- 0.9223 +- 0.8966 +- 0.9132 +- 0.9242 +- 0.9212 +- 0.9147 +- 0.8981 +- 0.9068 +- 0.9018 +- 0.8924 +- 0.905 +- 0.8453 +- 0.8859 +- 0.8781 +- 0.9173 +- 0.8983 +- 0.8811 +- 0.9134 +- 0.8869 +- 0.8622 +- 0.8676 +- 0.8787 +- 0.862 +- 0.8684 +- 0.8641 +- 0.8715 +- 0.897 +- 0.8552 +- 0.8761 +- 0.8714 +- 0.8702 +- 0.8445 +- 0.8607 +- 0.8464 +- 0.8534 +- 0.8549 +- 0.8617 +- 0.8651 +- 0.867 +- 0.8343 +- 0.8218 +- 0.8219 +- 0.8637 +- 0.8542 +- 0.8505 +- 0.8302 +- 0.8377 +- 0.8202 +- 0.8459 +- 0.8269 +- 0.8334 +- 0.832 +- 0.8444 +- 0.8104 +- 0.8027 +- 0.8205 +- 0.7953 +- 0.8332 +- 0.7939 +- 0.8222 +- 0.8188 +- 0.7828 +- 0.792 +- 0.8055 +- 0.8197 +- 0.762 +- 0.7732 +- 0.7614 +- 0.7771 +- 0.7608 +- 0.7698 +- 0.7793 +- 0.7754 +- 0.7626 +- 0.7529 +- 0.7705 +- 0.7474 +- 0.7575 +- 0.7632 +- 0.7254 +- 0.7209 +- 0.7323 +- 0.7442 +- 0.728 +- 0.7345 +- 0.7419 +- 0.7263 +- 0.7281 +- 0.7641 +- 0.6626 +- 0.7622 +- 0.6989 +- 0.7365 +- 0.7418 +- 0.7988 +- 0.7357 +- 0.6717 +- 0.7194 +- 0.6959 +- 0.702 +- 0.7724 diff --git a/buildmaster/NMCPD/filter.py b/buildmaster/NMCPD/filter.py new file mode 100644 index 0000000000..87293497bb --- /dev/null +++ b/buildmaster/NMCPD/filter.py @@ -0,0 +1,69 @@ +#Filter for NMCPD + +import sys +import yaml + +def filter_NMCPD(): + with open('metadata.yaml', 'r') as file: + metadata = yaml.safe_load(file) + + version = metadata['hepdata']['version'] + tables = metadata['hepdata']['tables'] + + data_central = [] + kin = [] + error = [] + error_nuc = [] + + for i in tables: + hepdata_tables="rawdata/HEPData-ins426595-v"+str(version)+"-Table_"+str(i)+".yaml" + with open(hepdata_tables, 'r') as file: + input = yaml.safe_load(file) + + values = input['dependent_variables'][0]['values'] + x = float(input['dependent_variables'][0]['qualifiers'][4]['value']) + sqrts = float(input['dependent_variables'][0]['qualifiers'][3]['value']) + + for j in range(len(values)): + + data_central_value = input['dependent_variables'][0]['values'][j]['value'] + data_central.append(data_central_value) + Q2 = input['independent_variables'][0]['values'][j]['value'] + y = Q2 / ( sqrts * sqrts * x ) + kin_value = {'x' : {'min': None, 'mid': x , 'max': None}, 'q2' : {'min': None, 'mid': Q2 , 'max': None} , 'y' : {'min': None, 'mid': y , 'max': None}} + kin.append(kin_value) + + error_value = {'stat_1': input['dependent_variables'][0]['values'][j]['errors'][0]['symerror'], 'syst_1': input['dependent_variables'][0]['values'][j]['errors'][1]['symerror']} + error.append(error_value) + + error_value_nuc = {'nuclear': input['dependent_variables'][0]['values'][j]['errors'][0]['symerror']} + error_nuc.append(error_value_nuc) + + error_definition = {'stat_1': {'description': "total statistical uncertainty", 'treatment': "ADD", 'type': "UNCORR"}, + 'syst_1': {'description': "total systematic uncertainty", 'treatment': "ADD", 'type': "CORR"}} + + error_definition_dw = {'nuclear': {'description': "nuclear uncertainty (deweighted)", 'treatment': "ADD", 'type': "NUC_DW"}} + error_definition_sh = {'nuclear': {'description': "nuclear uncertainty (shifted)", 'treatment': "ADD", 'type': "NUC_SH"}} + + data_central_yaml = { 'data_central' : data_central } + kinematics_yaml = { 'bins' : kin } + uncertainties_yaml = { 'definition': error_definition, 'bins' : error } + uncertainties_dw_yaml = { 'definition': error_definition_dw, 'bins' : error_nuc } + uncertainties_sh_yaml = { 'definition': error_definition_sh, 'bins' : error_nuc } + + with open('data.yaml', 'w') as file: + yaml.dump(data_central_yaml, file, sort_keys=False) + + with open('kinematics.yaml', 'w') as file: + yaml.dump(kinematics_yaml, file, sort_keys=False) + + with open('uncertainties.yaml', 'w') as file: + yaml.dump(uncertainties_yaml, file, sort_keys=False) + + with open('uncertainties_dw.yaml', 'w') as file: + yaml.dump(uncertainties_dw_yaml, file, sort_keys=False) + + with open('uncertainties_sh.yaml', 'w') as file: + yaml.dump(uncertainties_sh_yaml, file, sort_keys=False) + +filter_NMCPD() diff --git a/buildmaster/NMCPD/kinematics.yaml b/buildmaster/NMCPD/kinematics.yaml new file mode 100644 index 0000000000..fbb8b2c22e --- /dev/null +++ b/buildmaster/NMCPD/kinematics.yaml @@ -0,0 +1,3121 @@ +bins: +- x: + min: null + mid: 0.0015 + max: null + q2: + min: null + mid: 0.16 + max: null + y: + min: null + mid: 0.12085166998255134 + max: null +- x: + min: null + mid: 0.0015 + max: null + q2: + min: null + mid: 0.25 + max: null + y: + min: null + mid: 0.18883073434773648 + max: null +- x: + min: null + mid: 0.0015 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.26436302808683104 + max: null +- x: + min: null + mid: 0.0015 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.3398953218259257 + max: null +- x: + min: null + mid: 0.0015 + max: null + q2: + min: null + mid: 0.6 + max: null + y: + min: null + mid: 0.45319376243456755 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 0.17 + max: null + y: + min: null + mid: 0.06420244967823041 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 0.25 + max: null + y: + min: null + mid: 0.09441536717386824 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.13218151404341552 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.16994766091296284 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 0.63 + max: null + y: + min: null + mid: 0.23792672527814795 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 0.88 + max: null + y: + min: null + mid: 0.3323420924520162 + max: null +- x: + min: null + mid: 0.003 + max: null + q2: + min: null + mid: 1.12 + max: null + y: + min: null + mid: 0.42298084493892973 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 0.16 + max: null + y: + min: null + mid: 0.036255500994765405 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 0.25 + max: null + y: + min: null + mid: 0.056649220304320944 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.07930890842604932 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.1019685965477777 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 0.61 + max: null + y: + min: null + mid: 0.1382240975425431 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 0.88 + max: null + y: + min: null + mid: 0.1994052554712097 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 1.13 + max: null + y: + min: null + mid: 0.25605447577553064 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 1.38 + max: null + y: + min: null + mid: 0.3127036960798516 + max: null +- x: + min: null + mid: 0.005 + max: null + q2: + min: null + mid: 1.71 + max: null + y: + min: null + mid: 0.38748066688155525 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 0.16 + max: null + y: + min: null + mid: 0.022659688121728378 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 0.25 + max: null + y: + min: null + mid: 0.03540576269020059 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.049568067766280824 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.06373037284236106 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 0.64 + max: null + y: + min: null + mid: 0.09063875248691351 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 0.86 + max: null + y: + min: null + mid: 0.12179582365429004 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 1.12 + max: null + y: + min: null + mid: 0.15861781685209866 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 1.37 + max: null + y: + min: null + mid: 0.19402357954229926 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 1.75 + max: null + y: + min: null + mid: 0.24784033883140413 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.31723563370419733 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 2.73 + max: null + y: + min: null + mid: 0.38663092857699044 + max: null +- x: + min: null + mid: 0.008 + max: null + q2: + min: null + mid: 3.46 + max: null + y: + min: null + mid: 0.4900157556323762 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 0.16 + max: null + y: + min: null + mid: 0.014502200397906163 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 0.26 + max: null + y: + min: null + mid: 0.023566075646597514 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.031723563370419726 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.040787438619111084 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 0.62 + max: null + y: + min: null + mid: 0.05619602654188638 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 0.88 + max: null + y: + min: null + mid: 0.0797621021884839 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 1.12 + max: null + y: + min: null + mid: 0.10151540278534314 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 1.37 + max: null + y: + min: null + mid: 0.12417509090707152 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 1.74 + max: null + y: + min: null + mid: 0.1577114293272295 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 2.23 + max: null + y: + min: null + mid: 0.20212441804581713 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.24835018181414303 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 3.46 + max: null + y: + min: null + mid: 0.31361008360472076 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.40515522361650336 + max: null +- x: + min: null + mid: 0.0125 + max: null + q2: + min: null + mid: 5.41 + max: null + y: + min: null + mid: 0.4903556509542021 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 0.25 + max: null + y: + min: null + mid: 0.01618549151552027 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.022659688121728375 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.029133884727936488 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 0.62 + max: null + y: + min: null + mid: 0.040140018958490266 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 0.88 + max: null + y: + min: null + mid: 0.05697293013463135 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 1.12 + max: null + y: + min: null + mid: 0.07251100198953081 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 1.37 + max: null + y: + min: null + mid: 0.08869649350505109 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 1.75 + max: null + y: + min: null + mid: 0.11329844060864189 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.14502200397906162 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 2.73 + max: null + y: + min: null + mid: 0.17674556734948135 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 3.48 + max: null + y: + min: null + mid: 0.22530204189604217 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.2893965882975024 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 5.49 + max: null + y: + min: null + mid: 0.35543339368082516 + max: null +- x: + min: null + mid: 0.0175 + max: null + q2: + min: null + mid: 6.83 + max: null + y: + min: null + mid: 0.44218762820401375 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 0.26 + max: null + y: + min: null + mid: 0.011783037823298757 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 0.35 + max: null + y: + min: null + mid: 0.015861781685209863 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.020393719309555542 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 0.62 + max: null + y: + min: null + mid: 0.02809801327094319 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 0.86 + max: null + y: + min: null + mid: 0.038974663569372806 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 1.13 + max: null + y: + min: null + mid: 0.05121089515510613 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 1.37 + max: null + y: + min: null + mid: 0.06208754545353576 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 1.74 + max: null + y: + min: null + mid: 0.07885571466361475 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.10151540278534314 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.12417509090707152 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 3.45 + max: null + y: + min: null + mid: 0.1563518480399258 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.20257761180825168 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 5.48 + max: null + y: + min: null + mid: 0.24835018181414303 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 6.92 + max: null + y: + min: null + mid: 0.31361008360472076 + max: null +- x: + min: null + mid: 0.025 + max: null + q2: + min: null + mid: 8.92 + max: null + y: + min: null + mid: 0.40424883609163426 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 0.36 + max: null + y: + min: null + mid: 0.011653553891174593 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 0.45 + max: null + y: + min: null + mid: 0.014566942363968244 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 0.64 + max: null + y: + min: null + mid: 0.020717429139865944 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 0.86 + max: null + y: + min: null + mid: 0.027839045406694865 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 1.13 + max: null + y: + min: null + mid: 0.03657921082507581 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 1.38 + max: null + y: + min: null + mid: 0.04467195658283594 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 1.74 + max: null + y: + min: null + mid: 0.05632551047401054 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.07251100198953081 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.08869649350505109 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 3.46 + max: null + y: + min: null + mid: 0.11200360128740026 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 4.45 + max: null + y: + min: null + mid: 0.14405087448813042 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 5.47 + max: null + y: + min: null + mid: 0.17706927717979173 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 6.92 + max: null + y: + min: null + mid: 0.22400720257480053 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 8.96 + max: null + y: + min: null + mid: 0.29004400795812324 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 11.45 + max: null + y: + min: null + mid: 0.37064775570541414 + max: null +- x: + min: null + mid: 0.035 + max: null + q2: + min: null + mid: 14.36 + max: null + y: + min: null + mid: 0.4648473163257421 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 0.46 + max: null + y: + min: null + mid: 0.010423456535995055 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 0.61 + max: null + y: + min: null + mid: 0.01382240975425431 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 0.88 + max: null + y: + min: null + mid: 0.019940525547120974 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 1.13 + max: null + y: + min: null + mid: 0.025605447577553064 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 1.37 + max: null + y: + min: null + mid: 0.03104377272676788 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 1.74 + max: null + y: + min: null + mid: 0.03942785733180738 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 2.25 + max: null + y: + min: null + mid: 0.050984298273888846 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.06208754545353576 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 3.46 + max: null + y: + min: null + mid: 0.07840252090118019 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 4.46 + max: null + y: + min: null + mid: 0.10106220902290856 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 5.46 + max: null + y: + min: null + mid: 0.12372189714463694 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 6.9 + max: null + y: + min: null + mid: 0.1563518480399258 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 8.93 + max: null + y: + min: null + mid: 0.20235101492703442 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 11.44 + max: null + y: + min: null + mid: 0.25922683211257264 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 14.82 + max: null + y: + min: null + mid: 0.33581657796401454 + max: null +- x: + min: null + mid: 0.05 + max: null + q2: + min: null + mid: 19.19 + max: null + y: + min: null + mid: 0.43483941505596757 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 0.68 + max: null + y: + min: null + mid: 0.011006134230553783 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 0.86 + max: null + y: + min: null + mid: 0.013919522703347433 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 1.11 + max: null + y: + min: null + mid: 0.0179658955822275 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 1.38 + max: null + y: + min: null + mid: 0.02233597829141797 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 1.74 + max: null + y: + min: null + mid: 0.02816275523700527 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.036255500994765405 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 2.75 + max: null + y: + min: null + mid: 0.04451010166768074 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 3.47 + max: null + y: + min: null + mid: 0.05616365555885534 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.0723491470743756 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 5.47 + max: null + y: + min: null + mid: 0.08853463858989587 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 6.91 + max: null + y: + min: null + mid: 0.11184174637224506 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 8.91 + max: null + y: + min: null + mid: 0.1442127294032856 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 11.4 + max: null + y: + min: null + mid: 0.1845146032769311 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 14.89 + max: null + y: + min: null + mid: 0.24100196866609683 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 19.63 + max: null + y: + min: null + mid: 0.3177211984496629 + max: null +- x: + min: null + mid: 0.07 + max: null + q2: + min: null + mid: 26.07 + max: null + y: + min: null + mid: 0.4219557638096134 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 0.9 + max: null + y: + min: null + mid: 0.01132984406086419 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 1.11 + max: null + y: + min: null + mid: 0.013973474341732503 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 1.38 + max: null + y: + min: null + mid: 0.017372427559991757 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 1.76 + max: null + y: + min: null + mid: 0.022156139496801085 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.028198722995928655 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 2.75 + max: null + y: + min: null + mid: 0.0346189679637517 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 3.49 + max: null + y: + min: null + mid: 0.0439346175249067 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.05627155883562548 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 5.46 + max: null + y: + min: null + mid: 0.0687343873025761 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 6.91 + max: null + y: + min: null + mid: 0.08698802495619062 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 8.92 + max: null + y: + min: null + mid: 0.11229134335878731 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 11.37 + max: null + y: + min: null + mid: 0.14313369663558426 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 14.87 + max: null + y: + min: null + mid: 0.1871942013167228 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 19.74 + max: null + y: + min: null + mid: 0.24850124640162125 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 26.36 + max: null + y: + min: null + mid: 0.33183854382708894 + max: null +- x: + min: null + mid: 0.09 + max: null + q2: + min: null + mid: 34.74 + max: null + y: + min: null + mid: 0.4373319807493578 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 1.13 + max: null + y: + min: null + mid: 0.011638839807978666 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 1.38 + max: null + y: + min: null + mid: 0.014213804367265982 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 1.75 + max: null + y: + min: null + mid: 0.01802475191501121 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.02307168245121435 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.02822161156978898 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 3.49 + max: null + y: + min: null + mid: 0.03594650524765093 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.0460403663200572 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 5.46 + max: null + y: + min: null + mid: 0.05623722597483497 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 6.9 + max: null + y: + min: null + mid: 0.07106902183632992 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 8.92 + max: null + y: + min: null + mid: 0.09187473547537142 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 11.37 + max: null + y: + min: null + mid: 0.1171093881563871 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 14.85 + max: null + y: + min: null + mid: 0.15295289482166655 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 19.74 + max: null + y: + min: null + mid: 0.20331920160132644 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 26.52 + max: null + y: + min: null + mid: 0.27315224044919845 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 35.32 + max: null + y: + min: null + mid: 0.36379099293611195 + max: null +- x: + min: null + mid: 0.11 + max: null + q2: + min: null + mid: 44.94 + max: null + y: + min: null + mid: 0.4628756291774878 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 1.4 + max: null + y: + min: null + mid: 0.011329844060864187 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 1.75 + max: null + y: + min: null + mid: 0.014162305076080236 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.018127750497382702 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.02217412337626277 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 3.47 + max: null + y: + min: null + mid: 0.02808182777942767 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 4.48 + max: null + y: + min: null + mid: 0.036255500994765405 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 5.47 + max: null + y: + min: null + mid: 0.044267319294947934 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 6.9 + max: null + y: + min: null + mid: 0.055839945728544935 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 8.92 + max: null + y: + min: null + mid: 0.0721872921592204 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 11.37 + max: null + y: + min: null + mid: 0.09201451926573273 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 14.84 + max: null + y: + min: null + mid: 0.1200963470451604 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 19.76 + max: null + y: + min: null + mid: 0.15991265617334027 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 26.55 + max: null + y: + min: null + mid: 0.2148623998685316 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 35.28 + max: null + y: + min: null + mid: 0.28551207033377757 + max: null +- x: + min: null + mid: 0.14 + max: null + q2: + min: null + mid: 46.95 + max: null + y: + min: null + mid: 0.3799544133268384 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 1.82 + max: null + y: + min: null + mid: 0.011455731217096015 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 2.24 + max: null + y: + min: null + mid: 0.014099361497964327 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 2.75 + max: null + y: + min: null + mid: 0.01730948398187585 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 3.47 + max: null + y: + min: null + mid: 0.021841421606221524 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.02813577941781274 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 5.49 + max: null + y: + min: null + mid: 0.034556024385635785 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 6.92 + max: null + y: + min: null + mid: 0.043556956056211224 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 8.93 + max: null + y: + min: null + mid: 0.056208615257509566 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 11.37 + max: null + y: + min: null + mid: 0.07156684831779213 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 14.85 + max: null + y: + min: null + mid: 0.09347121350212957 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 19.75 + max: null + y: + min: null + mid: 0.12431356677892653 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 26.61 + max: null + y: + min: null + mid: 0.16749286136644229 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 35.37 + max: null + y: + min: null + mid: 0.22263143579598133 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 47.01 + max: null + y: + min: null + mid: 0.2958977607229031 + max: null +- x: + min: null + mid: 0.18 + max: null + q2: + min: null + mid: 63.04 + max: null + y: + min: null + mid: 0.39679631644271035 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 2.28 + max: null + y: + min: null + mid: 0.011480908648342378 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 2.74 + max: null + y: + min: null + mid: 0.013797232323007946 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 3.48 + max: null + y: + min: null + mid: 0.017523492147469948 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.022508623534250188 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 5.47 + max: null + y: + min: null + mid: 0.02754410978352316 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 6.97 + max: null + y: + min: null + mid: 0.03509733915743262 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 8.93 + max: null + y: + min: null + mid: 0.04496689220600765 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 11.38 + max: null + y: + min: null + mid: 0.05730383351672644 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 14.85 + max: null + y: + min: null + mid: 0.07477697080170365 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 19.74 + max: null + y: + min: null + mid: 0.09940049856064848 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 26.64 + max: null + y: + min: null + mid: 0.134145353680632 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 35.42 + max: null + y: + min: null + mid: 0.1783569229492487 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 46.95 + max: null + y: + min: null + mid: 0.2364160794033661 + max: null +- x: + min: null + mid: 0.225 + max: null + q2: + min: null + mid: 63.23 + max: null + y: + min: null + mid: 0.3183937955415301 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 2.78 + max: null + y: + min: null + mid: 0.011453442359709978 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 3.46 + max: null + y: + min: null + mid: 0.014255003800214579 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 4.47 + max: null + y: + min: null + mid: 0.01841614652802288 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 5.47 + max: null + y: + min: null + mid: 0.022536089822882584 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 6.89 + max: null + y: + min: null + mid: 0.028386409301583364 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 8.94 + max: null + y: + min: null + mid: 0.03683229305604576 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 11.37 + max: null + y: + min: null + mid: 0.04684375526255484 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 14.87 + max: null + y: + min: null + mid: 0.06126355679456381 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 19.74 + max: null + y: + min: null + mid: 0.08132768064053057 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 26.6 + max: null + y: + min: null + mid: 0.10959049164326816 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 35.43 + max: null + y: + min: null + mid: 0.14596959093687933 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 46.98 + max: null + y: + min: null + mid: 0.19355493599250892 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 63.48 + max: null + y: + min: null + mid: 0.26153400035769403 + max: null +- x: + min: null + mid: 0.275 + max: null + q2: + min: null + mid: 90.68 + max: null + y: + min: null + mid: 0.37359645797787805 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 3.57 + max: null + y: + min: null + mid: 0.011556440942081473 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 4.51 + max: null + y: + min: null + mid: 0.014599313346999284 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 5.48 + max: null + y: + min: null + mid: 0.01773929870101022 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 6.9 + max: null + y: + min: null + mid: 0.022335978291417976 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 8.91 + max: null + y: + min: null + mid: 0.028842545880657124 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 11.43 + max: null + y: + min: null + mid: 0.03700003360447934 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 14.85 + max: null + y: + min: null + mid: 0.048070909801095206 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 19.74 + max: null + y: + min: null + mid: 0.06390032050327403 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 26.63 + max: null + y: + min: null + mid: 0.08620392781166096 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 35.45 + max: null + y: + min: null + mid: 0.11475513484503874 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 47.12 + max: null + y: + min: null + mid: 0.15253207204226304 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 63.52 + max: null + y: + min: null + mid: 0.20562048421316956 + max: null +- x: + min: null + mid: 0.35 + max: null + q2: + min: null + mid: 96.35 + max: null + y: + min: null + mid: 0.31189442150407565 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 4.54 + max: null + y: + min: null + mid: 0.011430553785849649 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 5.47 + max: null + y: + min: null + mid: 0.01377205489176158 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 6.93 + max: null + y: + min: null + mid: 0.017447959853730852 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 8.92 + max: null + y: + min: null + mid: 0.02245826867175746 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 11.34 + max: null + y: + min: null + mid: 0.028551207033377757 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 14.89 + max: null + y: + min: null + mid: 0.03748919512583729 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 19.77 + max: null + y: + min: null + mid: 0.04977578157406334 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 26.64 + max: null + y: + min: null + mid: 0.067072676840316 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 35.5 + max: null + y: + min: null + mid: 0.08937988092459527 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 47.26 + max: null + y: + min: null + mid: 0.11898854007032035 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 63.65 + max: null + y: + min: null + mid: 0.16025434988311235 + max: null +- x: + min: null + mid: 0.45 + max: null + q2: + min: null + mid: 98.05 + max: null + y: + min: null + mid: 0.2468647133706075 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 5.53 + max: null + y: + min: null + mid: 0.011391643210287085 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 6.88 + max: null + y: + min: null + mid: 0.014172604934317384 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 8.91 + max: null + y: + min: null + mid: 0.018354347378599985 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 11.34 + max: null + y: + min: null + mid: 0.023360078481854528 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 14.85 + max: null + y: + min: null + mid: 0.030590578964333308 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 19.74 + max: null + y: + min: null + mid: 0.040663840320265286 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 26.64 + max: null + y: + min: null + mid: 0.05487764468753127 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 35.57 + max: null + y: + min: null + mid: 0.07327319149907985 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 47.16 + max: null + y: + min: null + mid: 0.09714826289279184 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 63.56 + max: null + y: + min: null + mid: 0.13093179791064144 + max: null +- x: + min: null + mid: 0.55 + max: null + q2: + min: null + mid: 98.82 + max: null + y: + min: null + mid: 0.203566398199018 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 7.04 + max: null + y: + min: null + mid: 0.011816607731627243 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 8.88 + max: null + y: + min: null + mid: 0.014905039297848002 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 11.36 + max: null + y: + min: null + mid: 0.019067707930580324 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 14.85 + max: null + y: + min: null + mid: 0.024925656933901214 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 19.79 + max: null + y: + min: null + mid: 0.03321742429103738 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 26.49 + max: null + y: + min: null + mid: 0.044463343581080346 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 35.4 + max: null + y: + min: null + mid: 0.05941873774142108 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 47.03 + max: null + y: + min: null + mid: 0.07893963943443598 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 63.53 + max: null + y: + min: null + mid: 0.10663481380543732 + max: null +- x: + min: null + mid: 0.675 + max: null + q2: + min: null + mid: 99.03 + max: null + y: + min: null + mid: 0.16622140108850084 + max: null diff --git a/buildmaster/NMCPD/metadata.yaml b/buildmaster/NMCPD/metadata.yaml new file mode 100644 index 0000000000..cdd23273ea --- /dev/null +++ b/buildmaster/NMCPD/metadata.yaml @@ -0,0 +1,60 @@ +# Generalia +setname: "NMCPD" +ndata: 260 +observable: {description: "Ratio of deuterium to proton structure function F2", label:"$F_2^d/F_2^p(x,Q^2)$", units: "" } +kinematics: + variables: + q2: {description: "Parton momentum transfer", label: "$Q^2$", units: "GeV²"} + x: {description: "Bjorken x", label: '$x$', units: ""} + y: {description: "Inelasticity", units: ""} + file: kinematics.yaml + +version: 0 +version_comment: "Initial implementation" + +# References +arXiv: + url: "https://arxiv.org/abs/hep-ex/9611022" +iNSPIRE: + url: "https://inspirehep.net/literature/424154" +hepdata: + url: "https://www.hepdata.net/record/ins426595" + version: 1 + tables: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] + +# Data +data_central: data.yaml +data_uncertainties: + - uncertainties.yaml + +# Data (variants) +variants: + deweighted: + data_uncertainties: + - uncertainties.yaml + - uncertainties_dw.yaml + shifted: + data_uncertainties: + - uncertainties.yaml + - uncertainties_sh.yaml + +# Plotting +kinematic_coverage: + x: x + q2: q2 +dataset_label: "NMC $d/p$" +plot_x: x +figure_by: + - q2 + +# Theory +theory: + FK_tables: + - - NMCPD_D1 + - NMCPD_D2 + - - NMCPD_P + operation: "RATIO" + +nnpdf_metadata: + nnpdf31_process: "DIS NC" + experiment: "NMC" diff --git a/buildmaster/NMCPD/uncertainties.yaml b/buildmaster/NMCPD/uncertainties.yaml new file mode 100644 index 0000000000..9e23417c8b --- /dev/null +++ b/buildmaster/NMCPD/uncertainties.yaml @@ -0,0 +1,530 @@ +definition: + stat_1: + description: total statistical uncertainty + treatment: ADD + type: UNCORR + syst_1: + description: total systematic uncertainty + treatment: ADD + type: CORR +bins: +- stat_1: 0.0203 + syst_1: 0.0109 +- stat_1: 0.0212 + syst_1: 0.0134 +- stat_1: 0.0205 + syst_1: 0.0112 +- stat_1: 0.0258 + syst_1: 0.0195 +- stat_1: 0.0176 + syst_1: 0.0121 +- stat_1: 0.0277 + syst_1: 0.007 +- stat_1: 0.0171 + syst_1: 0.0047 +- stat_1: 0.0137 + syst_1: 0.0113 +- stat_1: 0.0129 + syst_1: 0.0099 +- stat_1: 0.0118 + syst_1: 0.0057 +- stat_1: 0.0108 + syst_1: 0.0073 +- stat_1: 0.0116 + syst_1: 0.0078 +- stat_1: 0.0615 + syst_1: 0.003 +- stat_1: 0.025 + syst_1: 0.0037 +- stat_1: 0.0208 + syst_1: 0.0043 +- stat_1: 0.0172 + syst_1: 0.0046 +- stat_1: 0.0092 + syst_1: 0.0094 +- stat_1: 0.0157 + syst_1: 0.0032 +- stat_1: 0.0137 + syst_1: 0.0033 +- stat_1: 0.0128 + syst_1: 0.0032 +- stat_1: 0.0098 + syst_1: 0.0048 +- stat_1: 0.0547 + syst_1: 0.0041 +- stat_1: 0.025 + syst_1: 0.003 +- stat_1: 0.0213 + syst_1: 0.0028 +- stat_1: 0.018 + syst_1: 0.0035 +- stat_1: 0.0091 + syst_1: 0.0036 +- stat_1: 0.0083 + syst_1: 0.0051 +- stat_1: 0.0088 + syst_1: 0.0054 +- stat_1: 0.01 + syst_1: 0.0045 +- stat_1: 0.0083 + syst_1: 0.002 +- stat_1: 0.0086 + syst_1: 0.0023 +- stat_1: 0.0097 + syst_1: 0.0042 +- stat_1: 0.0122 + syst_1: 0.0084 +- stat_1: 0.0543 + syst_1: 0.0065 +- stat_1: 0.032 + syst_1: 0.0034 +- stat_1: 0.0233 + syst_1: 0.0026 +- stat_1: 0.0205 + syst_1: 0.0022 +- stat_1: 0.0127 + syst_1: 0.0023 +- stat_1: 0.0108 + syst_1: 0.0025 +- stat_1: 0.0092 + syst_1: 0.0035 +- stat_1: 0.0098 + syst_1: 0.0035 +- stat_1: 0.0072 + syst_1: 0.003 +- stat_1: 0.0085 + syst_1: 0.0041 +- stat_1: 0.0103 + syst_1: 0.0016 +- stat_1: 0.0087 + syst_1: 0.0022 +- stat_1: 0.0095 + syst_1: 0.0043 +- stat_1: 0.0134 + syst_1: 0.0058 +- stat_1: 0.0402 + syst_1: 0.0064 +- stat_1: 0.0301 + syst_1: 0.0033 +- stat_1: 0.0268 + syst_1: 0.0028 +- stat_1: 0.0161 + syst_1: 0.0025 +- stat_1: 0.0155 + syst_1: 0.0021 +- stat_1: 0.0129 + syst_1: 0.0026 +- stat_1: 0.0119 + syst_1: 0.0026 +- stat_1: 0.0084 + syst_1: 0.0025 +- stat_1: 0.0087 + syst_1: 0.0022 +- stat_1: 0.0098 + syst_1: 0.002 +- stat_1: 0.0092 + syst_1: 0.0018 +- stat_1: 0.01 + syst_1: 0.0028 +- stat_1: 0.0143 + syst_1: 0.0027 +- stat_1: 0.0107 + syst_1: 0.004 +- stat_1: 0.0375 + syst_1: 0.0063 +- stat_1: 0.0287 + syst_1: 0.0064 +- stat_1: 0.0313 + syst_1: 0.0037 +- stat_1: 0.0131 + syst_1: 0.0022 +- stat_1: 0.0154 + syst_1: 0.002 +- stat_1: 0.0124 + syst_1: 0.0023 +- stat_1: 0.0107 + syst_1: 0.0027 +- stat_1: 0.0076 + syst_1: 0.0023 +- stat_1: 0.0071 + syst_1: 0.002 +- stat_1: 0.0074 + syst_1: 0.0018 +- stat_1: 0.0065 + syst_1: 0.0023 +- stat_1: 0.0085 + syst_1: 0.0017 +- stat_1: 0.0097 + syst_1: 0.0017 +- stat_1: 0.0085 + syst_1: 0.0032 +- stat_1: 0.01 + syst_1: 0.0043 +- stat_1: 0.0375 + syst_1: 0.0064 +- stat_1: 0.034 + syst_1: 0.0061 +- stat_1: 0.0207 + syst_1: 0.003 +- stat_1: 0.0179 + syst_1: 0.0023 +- stat_1: 0.0183 + syst_1: 0.0023 +- stat_1: 0.0138 + syst_1: 0.0025 +- stat_1: 0.0089 + syst_1: 0.0024 +- stat_1: 0.0087 + syst_1: 0.0022 +- stat_1: 0.009 + syst_1: 0.0019 +- stat_1: 0.0069 + syst_1: 0.0021 +- stat_1: 0.0088 + syst_1: 0.0016 +- stat_1: 0.0111 + syst_1: 0.0018 +- stat_1: 0.0101 + syst_1: 0.0018 +- stat_1: 0.0115 + syst_1: 0.0021 +- stat_1: 0.0107 + syst_1: 0.0015 +- stat_1: 0.0144 + syst_1: 0.0031 +- stat_1: 0.0412 + syst_1: 0.006 +- stat_1: 0.0214 + syst_1: 0.0063 +- stat_1: 0.0213 + syst_1: 0.0029 +- stat_1: 0.0167 + syst_1: 0.0025 +- stat_1: 0.0138 + syst_1: 0.0025 +- stat_1: 0.0092 + syst_1: 0.0025 +- stat_1: 0.0077 + syst_1: 0.0023 +- stat_1: 0.0077 + syst_1: 0.002 +- stat_1: 0.0058 + syst_1: 0.0017 +- stat_1: 0.0069 + syst_1: 0.0015 +- stat_1: 0.0085 + syst_1: 0.0015 +- stat_1: 0.0076 + syst_1: 0.0015 +- stat_1: 0.0097 + syst_1: 0.0018 +- stat_1: 0.0087 + syst_1: 0.0014 +- stat_1: 0.009 + syst_1: 0.0015 +- stat_1: 0.0119 + syst_1: 0.0022 +- stat_1: 0.0438 + syst_1: 0.0063 +- stat_1: 0.0344 + syst_1: 0.0063 +- stat_1: 0.0542 + syst_1: 0.0068 +- stat_1: 0.0197 + syst_1: 0.0028 +- stat_1: 0.0117 + syst_1: 0.0027 +- stat_1: 0.0111 + syst_1: 0.0023 +- stat_1: 0.0096 + syst_1: 0.0023 +- stat_1: 0.0069 + syst_1: 0.0019 +- stat_1: 0.0079 + syst_1: 0.0016 +- stat_1: 0.0095 + syst_1: 0.0014 +- stat_1: 0.0082 + syst_1: 0.0015 +- stat_1: 0.0105 + syst_1: 0.0015 +- stat_1: 0.0105 + syst_1: 0.0018 +- stat_1: 0.0103 + syst_1: 0.0014 +- stat_1: 0.0103 + syst_1: 0.0013 +- stat_1: 0.0157 + syst_1: 0.0018 +- stat_1: 0.054 + syst_1: 0.0065 +- stat_1: 0.0537 + syst_1: 0.0062 +- stat_1: 0.0281 + syst_1: 0.0032 +- stat_1: 0.014 + syst_1: 0.0028 +- stat_1: 0.0136 + syst_1: 0.0025 +- stat_1: 0.0124 + syst_1: 0.0024 +- stat_1: 0.0082 + syst_1: 0.0021 +- stat_1: 0.0089 + syst_1: 0.0018 +- stat_1: 0.0106 + syst_1: 0.0016 +- stat_1: 0.0092 + syst_1: 0.0016 +- stat_1: 0.0114 + syst_1: 0.0014 +- stat_1: 0.0115 + syst_1: 0.0017 +- stat_1: 0.0116 + syst_1: 0.0014 +- stat_1: 0.0114 + syst_1: 0.0013 +- stat_1: 0.0147 + syst_1: 0.0012 +- stat_1: 0.0222 + syst_1: 0.0017 +- stat_1: 0.068 + syst_1: 0.0063 +- stat_1: 0.0306 + syst_1: 0.0031 +- stat_1: 0.0169 + syst_1: 0.0031 +- stat_1: 0.0151 + syst_1: 0.0026 +- stat_1: 0.0153 + syst_1: 0.0027 +- stat_1: 0.0097 + syst_1: 0.0022 +- stat_1: 0.0098 + syst_1: 0.002 +- stat_1: 0.0117 + syst_1: 0.0018 +- stat_1: 0.0102 + syst_1: 0.0017 +- stat_1: 0.0127 + syst_1: 0.0014 +- stat_1: 0.0126 + syst_1: 0.0017 +- stat_1: 0.013 + syst_1: 0.0015 +- stat_1: 0.0124 + syst_1: 0.0012 +- stat_1: 0.0147 + syst_1: 0.0011 +- stat_1: 0.0209 + syst_1: 0.0011 +- stat_1: 0.0345 + syst_1: 0.0019 +- stat_1: 0.031 + syst_1: 0.0037 +- stat_1: 0.0143 + syst_1: 0.0036 +- stat_1: 0.0127 + syst_1: 0.003 +- stat_1: 0.0125 + syst_1: 0.0028 +- stat_1: 0.009 + syst_1: 0.0023 +- stat_1: 0.0087 + syst_1: 0.0022 +- stat_1: 0.0095 + syst_1: 0.002 +- stat_1: 0.0081 + syst_1: 0.0019 +- stat_1: 0.01 + syst_1: 0.0016 +- stat_1: 0.0097 + syst_1: 0.0016 +- stat_1: 0.0101 + syst_1: 0.0017 +- stat_1: 0.0098 + syst_1: 0.0013 +- stat_1: 0.011 + syst_1: 0.0011 +- stat_1: 0.0149 + syst_1: 0.0011 +- stat_1: 0.0191 + syst_1: 0.001 +- stat_1: 0.0193 + syst_1: 0.0047 +- stat_1: 0.0146 + syst_1: 0.0037 +- stat_1: 0.015 + syst_1: 0.0033 +- stat_1: 0.0106 + syst_1: 0.0027 +- stat_1: 0.0117 + syst_1: 0.0022 +- stat_1: 0.012 + syst_1: 0.0025 +- stat_1: 0.0093 + syst_1: 0.0022 +- stat_1: 0.0108 + syst_1: 0.0018 +- stat_1: 0.0109 + syst_1: 0.0017 +- stat_1: 0.0114 + syst_1: 0.0018 +- stat_1: 0.0108 + syst_1: 0.0014 +- stat_1: 0.0122 + syst_1: 0.0013 +- stat_1: 0.0153 + syst_1: 0.0011 +- stat_1: 0.0202 + syst_1: 0.001 +- stat_1: 0.0297 + syst_1: 0.0011 +- stat_1: 0.0172 + syst_1: 0.0055 +- stat_1: 0.0161 + syst_1: 0.0044 +- stat_1: 0.0109 + syst_1: 0.0032 +- stat_1: 0.0121 + syst_1: 0.0027 +- stat_1: 0.0137 + syst_1: 0.0023 +- stat_1: 0.0101 + syst_1: 0.0024 +- stat_1: 0.0112 + syst_1: 0.0021 +- stat_1: 0.0112 + syst_1: 0.0018 +- stat_1: 0.0116 + syst_1: 0.0019 +- stat_1: 0.0112 + syst_1: 0.0017 +- stat_1: 0.0126 + syst_1: 0.0015 +- stat_1: 0.0155 + syst_1: 0.0013 +- stat_1: 0.0186 + syst_1: 0.0011 +- stat_1: 0.0248 + syst_1: 0.001 +- stat_1: 0.0203 + syst_1: 0.0068 +- stat_1: 0.0155 + syst_1: 0.0051 +- stat_1: 0.0141 + syst_1: 0.0033 +- stat_1: 0.0163 + syst_1: 0.003 +- stat_1: 0.0142 + syst_1: 0.0023 +- stat_1: 0.0134 + syst_1: 0.0025 +- stat_1: 0.0128 + syst_1: 0.002 +- stat_1: 0.0135 + syst_1: 0.0022 +- stat_1: 0.0127 + syst_1: 0.0019 +- stat_1: 0.014 + syst_1: 0.0017 +- stat_1: 0.0169 + syst_1: 0.0014 +- stat_1: 0.0214 + syst_1: 0.0013 +- stat_1: 0.0265 + syst_1: 0.001 +- stat_1: 0.0349 + syst_1: 0.001 +- stat_1: 0.0158 + syst_1: 0.008 +- stat_1: 0.0134 + syst_1: 0.0045 +- stat_1: 0.0143 + syst_1: 0.0041 +- stat_1: 0.012 + syst_1: 0.0031 +- stat_1: 0.0165 + syst_1: 0.0026 +- stat_1: 0.0118 + syst_1: 0.0028 +- stat_1: 0.0113 + syst_1: 0.0025 +- stat_1: 0.0109 + syst_1: 0.0023 +- stat_1: 0.012 + syst_1: 0.002 +- stat_1: 0.0147 + syst_1: 0.0018 +- stat_1: 0.0162 + syst_1: 0.0013 +- stat_1: 0.0213 + syst_1: 0.0011 +- stat_1: 0.0253 + syst_1: 0.001 +- stat_1: 0.0242 + syst_1: 0.0092 +- stat_1: 0.0245 + syst_1: 0.0066 +- stat_1: 0.0161 + syst_1: 0.0044 +- stat_1: 0.0211 + syst_1: 0.0035 +- stat_1: 0.0227 + syst_1: 0.0026 +- stat_1: 0.0158 + syst_1: 0.0036 +- stat_1: 0.0146 + syst_1: 0.0027 +- stat_1: 0.016 + syst_1: 0.0025 +- stat_1: 0.0187 + syst_1: 0.002 +- stat_1: 0.0222 + syst_1: 0.0015 +- stat_1: 0.0281 + syst_1: 0.0012 +- stat_1: 0.0296 + syst_1: 0.001 +- stat_1: 0.0356 + syst_1: 0.0072 +- stat_1: 0.0296 + syst_1: 0.0055 +- stat_1: 0.028 + syst_1: 0.0042 +- stat_1: 0.03 + syst_1: 0.0032 +- stat_1: 0.0282 + syst_1: 0.0037 +- stat_1: 0.0205 + syst_1: 0.0037 +- stat_1: 0.0216 + syst_1: 0.0029 +- stat_1: 0.0267 + syst_1: 0.0023 +- stat_1: 0.0331 + syst_1: 0.0021 +- stat_1: 0.0345 + syst_1: 0.001 +- stat_1: 0.0458 + syst_1: 0.0012 +- stat_1: 0.0361 + syst_1: 0.0067 +- stat_1: 0.0465 + syst_1: 0.0053 +- stat_1: 0.0353 + syst_1: 0.0046 +- stat_1: 0.0395 + syst_1: 0.0051 +- stat_1: 0.0281 + syst_1: 0.0049 +- stat_1: 0.0235 + syst_1: 0.0034 +- stat_1: 0.033 + syst_1: 0.0033 +- stat_1: 0.0373 + syst_1: 0.0026 +- stat_1: 0.0513 + syst_1: 0.0029 +- stat_1: 0.0645 + syst_1: 0.0034 diff --git a/buildmaster/NMCPD/uncertainties_dw.yaml b/buildmaster/NMCPD/uncertainties_dw.yaml new file mode 100644 index 0000000000..0a4fcdf5ab --- /dev/null +++ b/buildmaster/NMCPD/uncertainties_dw.yaml @@ -0,0 +1,266 @@ +definition: + nuclear: + description: nuclear uncertainty (deweighted) + treatment: ADD + type: NUC_DW +bins: +- nuclear: 0.0203 +- nuclear: 0.0212 +- nuclear: 0.0205 +- nuclear: 0.0258 +- nuclear: 0.0176 +- nuclear: 0.0277 +- nuclear: 0.0171 +- nuclear: 0.0137 +- nuclear: 0.0129 +- nuclear: 0.0118 +- nuclear: 0.0108 +- nuclear: 0.0116 +- nuclear: 0.0615 +- nuclear: 0.025 +- nuclear: 0.0208 +- nuclear: 0.0172 +- nuclear: 0.0092 +- nuclear: 0.0157 +- nuclear: 0.0137 +- nuclear: 0.0128 +- nuclear: 0.0098 +- nuclear: 0.0547 +- nuclear: 0.025 +- nuclear: 0.0213 +- nuclear: 0.018 +- nuclear: 0.0091 +- nuclear: 0.0083 +- nuclear: 0.0088 +- nuclear: 0.01 +- nuclear: 0.0083 +- nuclear: 0.0086 +- nuclear: 0.0097 +- nuclear: 0.0122 +- nuclear: 0.0543 +- nuclear: 0.032 +- nuclear: 0.0233 +- nuclear: 0.0205 +- nuclear: 0.0127 +- nuclear: 0.0108 +- nuclear: 0.0092 +- nuclear: 0.0098 +- nuclear: 0.0072 +- nuclear: 0.0085 +- nuclear: 0.0103 +- nuclear: 0.0087 +- nuclear: 0.0095 +- nuclear: 0.0134 +- nuclear: 0.0402 +- nuclear: 0.0301 +- nuclear: 0.0268 +- nuclear: 0.0161 +- nuclear: 0.0155 +- nuclear: 0.0129 +- nuclear: 0.0119 +- nuclear: 0.0084 +- nuclear: 0.0087 +- nuclear: 0.0098 +- nuclear: 0.0092 +- nuclear: 0.01 +- nuclear: 0.0143 +- nuclear: 0.0107 +- nuclear: 0.0375 +- nuclear: 0.0287 +- nuclear: 0.0313 +- nuclear: 0.0131 +- nuclear: 0.0154 +- nuclear: 0.0124 +- nuclear: 0.0107 +- nuclear: 0.0076 +- nuclear: 0.0071 +- nuclear: 0.0074 +- nuclear: 0.0065 +- nuclear: 0.0085 +- nuclear: 0.0097 +- nuclear: 0.0085 +- nuclear: 0.01 +- nuclear: 0.0375 +- nuclear: 0.034 +- nuclear: 0.0207 +- nuclear: 0.0179 +- nuclear: 0.0183 +- nuclear: 0.0138 +- nuclear: 0.0089 +- nuclear: 0.0087 +- nuclear: 0.009 +- nuclear: 0.0069 +- nuclear: 0.0088 +- nuclear: 0.0111 +- nuclear: 0.0101 +- nuclear: 0.0115 +- nuclear: 0.0107 +- nuclear: 0.0144 +- nuclear: 0.0412 +- nuclear: 0.0214 +- nuclear: 0.0213 +- nuclear: 0.0167 +- nuclear: 0.0138 +- nuclear: 0.0092 +- nuclear: 0.0077 +- nuclear: 0.0077 +- nuclear: 0.0058 +- nuclear: 0.0069 +- nuclear: 0.0085 +- nuclear: 0.0076 +- nuclear: 0.0097 +- nuclear: 0.0087 +- nuclear: 0.009 +- nuclear: 0.0119 +- nuclear: 0.0438 +- nuclear: 0.0344 +- nuclear: 0.0542 +- nuclear: 0.0197 +- nuclear: 0.0117 +- nuclear: 0.0111 +- nuclear: 0.0096 +- nuclear: 0.0069 +- nuclear: 0.0079 +- nuclear: 0.0095 +- nuclear: 0.0082 +- nuclear: 0.0105 +- nuclear: 0.0105 +- nuclear: 0.0103 +- nuclear: 0.0103 +- nuclear: 0.0157 +- nuclear: 0.054 +- nuclear: 0.0537 +- nuclear: 0.0281 +- nuclear: 0.014 +- nuclear: 0.0136 +- nuclear: 0.0124 +- nuclear: 0.0082 +- nuclear: 0.0089 +- nuclear: 0.0106 +- nuclear: 0.0092 +- nuclear: 0.0114 +- nuclear: 0.0115 +- nuclear: 0.0116 +- nuclear: 0.0114 +- nuclear: 0.0147 +- nuclear: 0.0222 +- nuclear: 0.068 +- nuclear: 0.0306 +- nuclear: 0.0169 +- nuclear: 0.0151 +- nuclear: 0.0153 +- nuclear: 0.0097 +- nuclear: 0.0098 +- nuclear: 0.0117 +- nuclear: 0.0102 +- nuclear: 0.0127 +- nuclear: 0.0126 +- nuclear: 0.013 +- nuclear: 0.0124 +- nuclear: 0.0147 +- nuclear: 0.0209 +- nuclear: 0.0345 +- nuclear: 0.031 +- nuclear: 0.0143 +- nuclear: 0.0127 +- nuclear: 0.0125 +- nuclear: 0.009 +- nuclear: 0.0087 +- nuclear: 0.0095 +- nuclear: 0.0081 +- nuclear: 0.01 +- nuclear: 0.0097 +- nuclear: 0.0101 +- nuclear: 0.0098 +- nuclear: 0.011 +- nuclear: 0.0149 +- nuclear: 0.0191 +- nuclear: 0.0193 +- nuclear: 0.0146 +- nuclear: 0.015 +- nuclear: 0.0106 +- nuclear: 0.0117 +- nuclear: 0.012 +- nuclear: 0.0093 +- nuclear: 0.0108 +- nuclear: 0.0109 +- nuclear: 0.0114 +- nuclear: 0.0108 +- nuclear: 0.0122 +- nuclear: 0.0153 +- nuclear: 0.0202 +- nuclear: 0.0297 +- nuclear: 0.0172 +- nuclear: 0.0161 +- nuclear: 0.0109 +- nuclear: 0.0121 +- nuclear: 0.0137 +- nuclear: 0.0101 +- nuclear: 0.0112 +- nuclear: 0.0112 +- nuclear: 0.0116 +- nuclear: 0.0112 +- nuclear: 0.0126 +- nuclear: 0.0155 +- nuclear: 0.0186 +- nuclear: 0.0248 +- nuclear: 0.0203 +- nuclear: 0.0155 +- nuclear: 0.0141 +- nuclear: 0.0163 +- nuclear: 0.0142 +- nuclear: 0.0134 +- nuclear: 0.0128 +- nuclear: 0.0135 +- nuclear: 0.0127 +- nuclear: 0.014 +- nuclear: 0.0169 +- nuclear: 0.0214 +- nuclear: 0.0265 +- nuclear: 0.0349 +- nuclear: 0.0158 +- nuclear: 0.0134 +- nuclear: 0.0143 +- nuclear: 0.012 +- nuclear: 0.0165 +- nuclear: 0.0118 +- nuclear: 0.0113 +- nuclear: 0.0109 +- nuclear: 0.012 +- nuclear: 0.0147 +- nuclear: 0.0162 +- nuclear: 0.0213 +- nuclear: 0.0253 +- nuclear: 0.0242 +- nuclear: 0.0245 +- nuclear: 0.0161 +- nuclear: 0.0211 +- nuclear: 0.0227 +- nuclear: 0.0158 +- nuclear: 0.0146 +- nuclear: 0.016 +- nuclear: 0.0187 +- nuclear: 0.0222 +- nuclear: 0.0281 +- nuclear: 0.0296 +- nuclear: 0.0356 +- nuclear: 0.0296 +- nuclear: 0.028 +- nuclear: 0.03 +- nuclear: 0.0282 +- nuclear: 0.0205 +- nuclear: 0.0216 +- nuclear: 0.0267 +- nuclear: 0.0331 +- nuclear: 0.0345 +- nuclear: 0.0458 +- nuclear: 0.0361 +- nuclear: 0.0465 +- nuclear: 0.0353 +- nuclear: 0.0395 +- nuclear: 0.0281 +- nuclear: 0.0235 +- nuclear: 0.033 +- nuclear: 0.0373 +- nuclear: 0.0513 +- nuclear: 0.0645 diff --git a/buildmaster/NMCPD/uncertainties_sh.yaml b/buildmaster/NMCPD/uncertainties_sh.yaml new file mode 100644 index 0000000000..d88571f56b --- /dev/null +++ b/buildmaster/NMCPD/uncertainties_sh.yaml @@ -0,0 +1,266 @@ +definition: + nuclear: + description: nuclear uncertainty (shifted) + treatment: ADD + type: NUC_SH +bins: +- nuclear: 0.0203 +- nuclear: 0.0212 +- nuclear: 0.0205 +- nuclear: 0.0258 +- nuclear: 0.0176 +- nuclear: 0.0277 +- nuclear: 0.0171 +- nuclear: 0.0137 +- nuclear: 0.0129 +- nuclear: 0.0118 +- nuclear: 0.0108 +- nuclear: 0.0116 +- nuclear: 0.0615 +- nuclear: 0.025 +- nuclear: 0.0208 +- nuclear: 0.0172 +- nuclear: 0.0092 +- nuclear: 0.0157 +- nuclear: 0.0137 +- nuclear: 0.0128 +- nuclear: 0.0098 +- nuclear: 0.0547 +- nuclear: 0.025 +- nuclear: 0.0213 +- nuclear: 0.018 +- nuclear: 0.0091 +- nuclear: 0.0083 +- nuclear: 0.0088 +- nuclear: 0.01 +- nuclear: 0.0083 +- nuclear: 0.0086 +- nuclear: 0.0097 +- nuclear: 0.0122 +- nuclear: 0.0543 +- nuclear: 0.032 +- nuclear: 0.0233 +- nuclear: 0.0205 +- nuclear: 0.0127 +- nuclear: 0.0108 +- nuclear: 0.0092 +- nuclear: 0.0098 +- nuclear: 0.0072 +- nuclear: 0.0085 +- nuclear: 0.0103 +- nuclear: 0.0087 +- nuclear: 0.0095 +- nuclear: 0.0134 +- nuclear: 0.0402 +- nuclear: 0.0301 +- nuclear: 0.0268 +- nuclear: 0.0161 +- nuclear: 0.0155 +- nuclear: 0.0129 +- nuclear: 0.0119 +- nuclear: 0.0084 +- nuclear: 0.0087 +- nuclear: 0.0098 +- nuclear: 0.0092 +- nuclear: 0.01 +- nuclear: 0.0143 +- nuclear: 0.0107 +- nuclear: 0.0375 +- nuclear: 0.0287 +- nuclear: 0.0313 +- nuclear: 0.0131 +- nuclear: 0.0154 +- nuclear: 0.0124 +- nuclear: 0.0107 +- nuclear: 0.0076 +- nuclear: 0.0071 +- nuclear: 0.0074 +- nuclear: 0.0065 +- nuclear: 0.0085 +- nuclear: 0.0097 +- nuclear: 0.0085 +- nuclear: 0.01 +- nuclear: 0.0375 +- nuclear: 0.034 +- nuclear: 0.0207 +- nuclear: 0.0179 +- nuclear: 0.0183 +- nuclear: 0.0138 +- nuclear: 0.0089 +- nuclear: 0.0087 +- nuclear: 0.009 +- nuclear: 0.0069 +- nuclear: 0.0088 +- nuclear: 0.0111 +- nuclear: 0.0101 +- nuclear: 0.0115 +- nuclear: 0.0107 +- nuclear: 0.0144 +- nuclear: 0.0412 +- nuclear: 0.0214 +- nuclear: 0.0213 +- nuclear: 0.0167 +- nuclear: 0.0138 +- nuclear: 0.0092 +- nuclear: 0.0077 +- nuclear: 0.0077 +- nuclear: 0.0058 +- nuclear: 0.0069 +- nuclear: 0.0085 +- nuclear: 0.0076 +- nuclear: 0.0097 +- nuclear: 0.0087 +- nuclear: 0.009 +- nuclear: 0.0119 +- nuclear: 0.0438 +- nuclear: 0.0344 +- nuclear: 0.0542 +- nuclear: 0.0197 +- nuclear: 0.0117 +- nuclear: 0.0111 +- nuclear: 0.0096 +- nuclear: 0.0069 +- nuclear: 0.0079 +- nuclear: 0.0095 +- nuclear: 0.0082 +- nuclear: 0.0105 +- nuclear: 0.0105 +- nuclear: 0.0103 +- nuclear: 0.0103 +- nuclear: 0.0157 +- nuclear: 0.054 +- nuclear: 0.0537 +- nuclear: 0.0281 +- nuclear: 0.014 +- nuclear: 0.0136 +- nuclear: 0.0124 +- nuclear: 0.0082 +- nuclear: 0.0089 +- nuclear: 0.0106 +- nuclear: 0.0092 +- nuclear: 0.0114 +- nuclear: 0.0115 +- nuclear: 0.0116 +- nuclear: 0.0114 +- nuclear: 0.0147 +- nuclear: 0.0222 +- nuclear: 0.068 +- nuclear: 0.0306 +- nuclear: 0.0169 +- nuclear: 0.0151 +- nuclear: 0.0153 +- nuclear: 0.0097 +- nuclear: 0.0098 +- nuclear: 0.0117 +- nuclear: 0.0102 +- nuclear: 0.0127 +- nuclear: 0.0126 +- nuclear: 0.013 +- nuclear: 0.0124 +- nuclear: 0.0147 +- nuclear: 0.0209 +- nuclear: 0.0345 +- nuclear: 0.031 +- nuclear: 0.0143 +- nuclear: 0.0127 +- nuclear: 0.0125 +- nuclear: 0.009 +- nuclear: 0.0087 +- nuclear: 0.0095 +- nuclear: 0.0081 +- nuclear: 0.01 +- nuclear: 0.0097 +- nuclear: 0.0101 +- nuclear: 0.0098 +- nuclear: 0.011 +- nuclear: 0.0149 +- nuclear: 0.0191 +- nuclear: 0.0193 +- nuclear: 0.0146 +- nuclear: 0.015 +- nuclear: 0.0106 +- nuclear: 0.0117 +- nuclear: 0.012 +- nuclear: 0.0093 +- nuclear: 0.0108 +- nuclear: 0.0109 +- nuclear: 0.0114 +- nuclear: 0.0108 +- nuclear: 0.0122 +- nuclear: 0.0153 +- nuclear: 0.0202 +- nuclear: 0.0297 +- nuclear: 0.0172 +- nuclear: 0.0161 +- nuclear: 0.0109 +- nuclear: 0.0121 +- nuclear: 0.0137 +- nuclear: 0.0101 +- nuclear: 0.0112 +- nuclear: 0.0112 +- nuclear: 0.0116 +- nuclear: 0.0112 +- nuclear: 0.0126 +- nuclear: 0.0155 +- nuclear: 0.0186 +- nuclear: 0.0248 +- nuclear: 0.0203 +- nuclear: 0.0155 +- nuclear: 0.0141 +- nuclear: 0.0163 +- nuclear: 0.0142 +- nuclear: 0.0134 +- nuclear: 0.0128 +- nuclear: 0.0135 +- nuclear: 0.0127 +- nuclear: 0.014 +- nuclear: 0.0169 +- nuclear: 0.0214 +- nuclear: 0.0265 +- nuclear: 0.0349 +- nuclear: 0.0158 +- nuclear: 0.0134 +- nuclear: 0.0143 +- nuclear: 0.012 +- nuclear: 0.0165 +- nuclear: 0.0118 +- nuclear: 0.0113 +- nuclear: 0.0109 +- nuclear: 0.012 +- nuclear: 0.0147 +- nuclear: 0.0162 +- nuclear: 0.0213 +- nuclear: 0.0253 +- nuclear: 0.0242 +- nuclear: 0.0245 +- nuclear: 0.0161 +- nuclear: 0.0211 +- nuclear: 0.0227 +- nuclear: 0.0158 +- nuclear: 0.0146 +- nuclear: 0.016 +- nuclear: 0.0187 +- nuclear: 0.0222 +- nuclear: 0.0281 +- nuclear: 0.0296 +- nuclear: 0.0356 +- nuclear: 0.0296 +- nuclear: 0.028 +- nuclear: 0.03 +- nuclear: 0.0282 +- nuclear: 0.0205 +- nuclear: 0.0216 +- nuclear: 0.0267 +- nuclear: 0.0331 +- nuclear: 0.0345 +- nuclear: 0.0458 +- nuclear: 0.0361 +- nuclear: 0.0465 +- nuclear: 0.0353 +- nuclear: 0.0395 +- nuclear: 0.0281 +- nuclear: 0.0235 +- nuclear: 0.033 +- nuclear: 0.0373 +- nuclear: 0.0513 +- nuclear: 0.0645 diff --git a/validphys2/src/validphys/commondataparser.py b/validphys2/src/validphys/commondataparser.py index ab2cbaf8c5..7eff57f1fd 100644 --- a/validphys2/src/validphys/commondataparser.py +++ b/validphys2/src/validphys/commondataparser.py @@ -1,18 +1,172 @@ """ -This module implements parsers for commondata and systype files into useful -datastructures, contained in the :py:mod:`validphys.coredata` module, which are -not backed by C++ managed memory, and so they can be easily pickled and -interfaces with common Python libraries. The integration of these objects into -the codebase is currently work in progress, and at the moment this module -serves as a proof of concept. +This module implements parsers for commondata and its associated metadata and uncertainties files +into useful structures that can be fed to the main :py:class:`validphys.coredata.CommonData` class. + +In this module a few auxiliary dataclasses that hold special information: + - TheoryMeta: contains the necessary information to read the (new style) fktables + - ReferenceMeta: literature references for the dataset + +The CommonMetaData defines how the CommonData file is to be loaded, +by modifying the CommonMetaData using one of the loaded Variants one can change the resulting +:py:class:`validphys.coredata.CommonData` object. """ +from copy import copy from operator import attrgetter +from dataclasses import dataclass, field +from pathlib import Path +import typing import pandas as pd +from validobj.custom import Parser +from validobj import ValidationError, parse_input +from validphys import convolution +from validphys.utils import parse_yaml_inp from validphys.core import peek_commondata_metadata from validphys.coredata import CommonData +# Auxiliary parser for common types or sanity checks +@Parser +def ValidPath(path_str: str) -> Path: + """Parse strings into paths""" + try: + return Path(path_str) + except Exception as e: + raise ValidationError(f"{path_str} is not a valid path") from e + + +@Parser +def ValidOperation(op_str: str) -> str: + """Ensures that the operation defined in the commondata file is implemented in validphys""" + ret = op_str.upper() + if ret not in convolution.OP: + raise ValidationError(f"The operation '{op_str}' is not implemented in validphys") + return ret + + +# Auxiliary objects +@dataclass +class TheoryMeta: + """Contains the necessary information to load the associated fktables""" + + FK_tables: list + operation: ValidOperation + conversion_factor: float = 1.0 + apfelcomb: typing.Optional[dict] = None + + @classmethod + def parser(cls, meta: dict): + return parse_input(meta, cls) + + +@dataclass +class ReferenceMeta: + """Holds literature information for the dataset""" + + url: str + version: int = 0 + tables: typing.List[int] = field(default_factory=list) + + @classmethod + def parser(cls, meta: dict): + return parse_input(meta, cls) + + +@dataclass +class Variant: + """Defines the keys of the CommonMetaData that can be overwritten""" + + data_uncertainties: typing.List[ValidPath] + + +# Define parsers for the more complicated structures +ValidTheory = Parser(TheoryMeta.parser) +ValidReference = Parser(ReferenceMeta.parser) + + +@Parser +def ValidVariants(variant_dict: dict) -> dict: + """Variants of a dataset are allowed to overwrite a subset of the keys of a dataset + (those defined in the Variant dataclass). + This wrapper class runs over the dictionary of variant and parses them into valid Variants + """ + return {k: parse_input(v, Variant) for k, v in variant_dict.items()} + + +@dataclass +class CommonMetaData: + setname: str + ndata: int + observable: dict + kinematics: dict + kinematic_coverage: dict + data_central: ValidPath + data_uncertainties: typing.List[ValidPath] + dataset_label: str + plot_x: str + figure_by: typing.List[str] + theory: ValidTheory + nnpdf_metadata: dict + version: int + version_comment: str = "" + arXiv: typing.Optional[ValidReference] = None + iNSPIRE: typing.Optional[ValidReference] = None + hepdata: typing.Optional[ValidReference] = None + variants: typing.Optional[ValidVariants] = None + + _enabled_variant: typing.List[str] = field(default=None, repr=False) + _default: dict = field(default=None, repr=False) + + def enable_variant(self, variant): + """Enable a variant for this class by giving its name. + Note that more than one variant can be enabled at once, but the last one will take priority + """ + if self.variants is None: + raise ValueError(f"There are no variants defined for {self.setname}") + if variant not in self.variants: + raise ValueError(f"The variant {variant} is not defined for {self.setname}") + # If there were not enabled variants, save the current state of the class + if self._enabled_variant is None: + # A shallow copy is enough because the variants update attributes of this class + self._default = copy(self.__dict__) + self._enabled_variant = [] + + self.__dict__.update(self.variants[variant].__dict__.items()) + self._enabled_variant.append(variant) + + def disable_variants(self): + """Get the CommonMetaData back to its original state""" + if self._default is not None: + self.__dict__.update(self._default) + + +# TODO: will be moved to coredata.py and will substitute CommonData.py +@dataclass(eq=False) +class _CommonData: + metadata: CommonMetaData + kinematics: pd.DataFrame + uncertainties: pd.DataFrame + data: pd.DataFrame + + +def parse_commondata_folder(commondata, variant=None): + """Given a commondata folder, parse the entire content into the appropiate objects""" + # First read the metadata which will define the commondata being read + metadata_file = commondata / "metadata.yaml" + common_meta = parse_yaml_inp(metadata_file, CommonMetaData) + if variant is not None: + common_meta.enable_variant(variant) + + # + return common_meta + + +def parse_commondata_metadata(metadata_file): + """Transitional function, it will be part of the load_commondata function below""" + return parse_yaml_inp(metadata_file, CommonMetaData) + + +##### TODO: the functions below have not been touched yet so they are targetting old commondata def load_commondata(spec): """ Load the data corresponding to a CommonDataSpec object. @@ -42,12 +196,12 @@ def parse_commondata(commondatafile, systypefile, setname): and systype files. """ # First parse commondata file - commondatatable = pd.read_csv(commondatafile, sep=r'\s+', skiprows=1, header=None) + commondatatable = pd.read_csv(commondatafile, sep=r"\s+", skiprows=1, header=None) # Remove NaNs # TODO: replace commondata files with bad formatting # Build header - commondataheader = ['entry', 'process', 'kin1', 'kin2', 'kin3', 'data', 'stat'] - nsys = (commondatatable.shape[1] - len(commondataheader)) // 2 + commondataheader = ["entry", "process", "kin1", "kin2", "kin3", "data", "stat"] + nsys = (commondatatable.shape[1] - len(commondataheader)) // 2 commondataheader += ["ADD", "MULT"] * nsys commondatatable.columns = commondataheader @@ -55,8 +209,8 @@ def parse_commondata(commondatafile, systypefile, setname): ndata = len(commondatatable) commondataproc = commondatatable["process"][1] # Check for consistency with commondata metadata - cdmetadata = peek_commondata_metadata(commondatafile) - if (setname, nsys, ndata) != attrgetter('name', 'nsys', 'ndata')(cdmetadata): + cdmetadata = peek_commondata_metadata(commondatafile) + if (setname, nsys, ndata) != attrgetter("name", "nsys", "ndata")(cdmetadata): raise ValueError("Commondata table information does not match metadata") # Now parse the systype file @@ -70,18 +224,18 @@ def parse_commondata(commondatafile, systypefile, setname): nkin=3, nsys=nsys, commondata_table=commondatatable, - systype_table=systypetable + systype_table=systypetable, ) + def parse_systypes(systypefile): - """Parses a systype file and returns a pandas dataframe. - """ + """Parses a systype file and returns a pandas dataframe.""" systypeheader = ["sys_index", "type", "name"] try: systypetable = pd.read_csv( systypefile, sep=r"\s+", names=systypeheader, skiprows=1, header=None ) - systypetable.dropna(axis='columns', inplace=True) + systypetable.dropna(axis="columns", inplace=True) # Some datasets e.g. CMSWCHARMRAT have no systematics except pd.errors.EmptyDataError: systypetable = pd.DataFrame(columns=systypeheader) diff --git a/validphys2/src/validphys/pineparser.py b/validphys2/src/validphys/pineparser.py index a0c696ec56..4a3954a3f9 100644 --- a/validphys2/src/validphys/pineparser.py +++ b/validphys2/src/validphys/pineparser.py @@ -68,6 +68,13 @@ def pineko_yaml(yaml_file, grids_folder, check_grid_existence=True): """ yaml_content = _load_yaml(yaml_file) + # TODO: the theory metadata can be found inside the commondata metadata + # however, for the time being, pineappl tables contain this information in the `yamldb` database + # they should be 100% compatible (and if they are not there is something wrong somewhere) + # For now this is inside just to check for compatibility (as there are circular imports to fix) + from validphys.commondataparser import ValidTheory + theory_meta = ValidTheory(yaml_content) + # Turn the operands and the members into paths (and check all of them exist) ret = [] for operand in yaml_content["operands"]: diff --git a/validphys2/src/validphys/plotoptions/core.py b/validphys2/src/validphys/plotoptions/core.py index d96aef7290..652165f58d 100644 --- a/validphys2/src/validphys/plotoptions/core.py +++ b/validphys2/src/validphys/plotoptions/core.py @@ -159,10 +159,8 @@ def from_commondata(cls, commondata, cuts=None, normalize=False): plot_params = ChainMap() if commondata.plotfiles: for file in commondata.plotfiles: - with open(file) as f: - processed_input = yaml.round_trip_load(f) - pf = parse_yaml_inp(processed_input, PlottingFile, file) - config_params = dataclasses.asdict(pf, dict_factory=dict_factory) + pf = parse_yaml_inp(file, PlottingFile) + config_params = dataclasses.asdict(pf, dict_factory=dict_factory) plot_params = plot_params.new_child(config_params) if normalize and 'normalize' in plot_params: plot_params = plot_params.new_child(config_params['normalize']) diff --git a/validphys2/src/validphys/utils.py b/validphys2/src/validphys/utils.py index 0c2956daaa..01583cee2a 100644 --- a/validphys2/src/validphys/utils.py +++ b/validphys2/src/validphys/utils.py @@ -12,14 +12,18 @@ import numpy as np from validobj import parse_input, ValidationError +from reportengine.compat import yaml -def parse_yaml_inp(inp, spec, path): - """Helper function to parse yaml using the `validobj` library and print +def parse_yaml_inp(input_yaml, spec): + """ + Helper function to parse yaml using the `validobj` library and print useful error messages in case of a parsing error. https://validobj.readthedocs.io/en/latest/examples.html#yaml-line-numbers """ + input_yaml = pathlib.Path(input_yaml) + inp = yaml.round_trip_load(input_yaml.open("r", encoding="utf-8")) try: return parse_input(inp, spec) except ValidationError as e: @@ -34,7 +38,7 @@ def parse_yaml_inp(inp, spec, path): # ``(line_number, column)`` for a given item in # the mapping. line = current_inp.lc.item(wrong_field)[0] - error_text_lines.append(f"Problem processing key at line {line} in {path}:") + error_text_lines.append(f"Problem processing key at line {line} in {input_yaml}:") current_inp = current_inp[wrong_field] elif hasattr(current_exc, 'wrong_index'): wrong_index = current_exc.wrong_index @@ -42,7 +46,7 @@ def parse_yaml_inp(inp, spec, path): # a given item. line = current_inp.lc.item(wrong_index)[0] current_inp = current_inp[wrong_index] - error_text_lines.append(f"Problem processing list item at line {line} in {path}:") + error_text_lines.append(f"Problem processing list item at line {line} in {input_yaml}:") elif hasattr(current_exc, 'unknown'): unknown_lines = [] for u in current_exc.unknown: @@ -50,7 +54,7 @@ def parse_yaml_inp(inp, spec, path): unknown_lines.sort() for line, key in unknown_lines: error_text_lines.append( - f"Unknown key {key!r} defined at line {line} in {path}:" + f"Unknown key {key!r} defined at line {line} in {input_yaml}:" ) error_text_lines.append(str(current_exc)) current_exc = current_exc.__cause__