From f9ff10059baeec3aa41f3750dd1532c2bed67f84 Mon Sep 17 00:00:00 2001 From: jacoterh <54140851+jacoterh@users.noreply.github.com> Date: Thu, 21 Nov 2024 17:40:53 +0000 Subject: [PATCH] converting relative to absolute before symmeterising --- .../commondata/ATLAS_SINGLETOP_7TEV/filter.py | 35 +++++------ .../uncertainties_T-Y-NORM.yaml | 60 +++++++++---------- .../uncertainties_TBAR-Y-NORM.yaml | 52 ++++++++-------- .../uncertainties_TCHANNEL-XSEC.yaml | 58 +++++++++--------- 4 files changed, 103 insertions(+), 102 deletions(-) diff --git a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/filter.py b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/filter.py index 4c3a396435..98fdb3e463 100644 --- a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/filter.py +++ b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/filter.py @@ -99,7 +99,7 @@ def get_data_values(hepdata: dict, bin_index: list, indx: int = 0) -> list: return np.array([central[i]["value"] for i in bin_index]) -def get_errors(hepdata: dict, bin_index: list) -> dict: +def get_errors(hepdata: dict, data_central: list, bin_index: list) -> dict: """ Extract the uncertainties from hepdata and computes the shift of the central value in case of asymmetric uncertainties @@ -119,8 +119,8 @@ def get_errors(hepdata: dict, bin_index: list) -> dict: # parse the systematics errors = [] shifts_cv = [] # relevant for asymmetric uncertainties - for i in bin_index: - bin = hepdata["dependent_variables"][i] + for i, j in enumerate(bin_index): + bin = hepdata["dependent_variables"][j] # loop over sources of uncertainty error_sources = [] @@ -129,14 +129,19 @@ def get_errors(hepdata: dict, bin_index: list) -> dict: if "errors" not in source: error_sources.append(None) elif "symerror" in source["errors"][0]: - error_sources.append(source["errors"][0]["symerror"]) + # convert to absolute uncertainties + abs_sym = source["errors"][0]["symerror"] * data_central[i] + error_sources.append(abs_sym) elif "asymerror" in source["errors"][0]: - delta_min = source["errors"][0]["asymerror"]["minus"] delta_plus = source["errors"][0]["asymerror"]["plus"] - se_delta, se_sigma = se(delta_plus, delta_min) - # shift central value + # convert to absolute uncertainties + delta_min_abs = delta_min * data_central[i] * 1e-2 + delta_plus_abs = delta_plus * data_central[i] * 1e-2 + + # symmeterise uncertainties and shift central value + se_delta, se_sigma = se(delta_plus_abs, delta_min_abs) shift_cv += se_delta error_sources.append(se_sigma) @@ -250,14 +255,11 @@ def main_filter() -> None: kinematics = get_kinematics(yaml_content_data, bin_index=range(NB_POINTS - 1), indx=0) data_central = get_data_values(yaml_content_data, bin_index=range(NB_POINTS - 1), indx=0) - uncertainties = get_errors(yaml_sys_sources, bin_index=range(NB_POINTS - 1)) + uncertainties = get_errors(yaml_sys_sources, data_central, bin_index=range(NB_POINTS - 1)) # TODO: do we multiply relative uncertainties by the shifted central value or the unshifted one? - data_central += uncertainties["shifts_cv"] * data_central * 1e-2 - uncertainties_absolute = ( - uncertainties["errors"] * data_central.reshape(NB_POINTS - 1, -1) * 1e-2 - ) - uncertainties_absolute = uncertainties_absolute.dropna( + data_central += uncertainties["shifts_cv"] + uncertainties_absolute = uncertainties["errors"].dropna( axis=1 ) # some systematics are empty on hepdata @@ -299,11 +301,10 @@ def main_filter() -> None: data_central = get_data_values(yaml_content_data, bin_index=[0], indx=2) kinematics = get_kinematics(yaml_content_data) - uncertainties = get_errors(yaml_uncertainties, bin_index=[2]) + uncertainties = get_errors(yaml_uncertainties, data_central, bin_index=[2]) - uncertainties_absolute = uncertainties["errors"] * data_central.reshape(1, -1) * 1e-2 - stat_abs = uncertainties_absolute.iloc[[0], [0]] - sys_abs = uncertainties_absolute.iloc[[0], 1:-2] + stat_abs = uncertainties["errors"].iloc[[0], [0]] + sys_abs = uncertainties["errors"].iloc[[0], 1:-2] errors = {"statistics": stat_abs, "systematics": sys_abs} n_sys = sys_abs.shape[1] diff --git a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_T-Y-NORM.yaml b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_T-Y-NORM.yaml index d2457c44cf..0c4eaf543a 100644 --- a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_T-Y-NORM.yaml +++ b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_T-Y-NORM.yaml @@ -40,33 +40,33 @@ definitions: treatment: MULT type: CORR bins: -- sys_corr_1: 5.30515497e-02 - sys_corr_2: -5.47850893e-03 - sys_corr_3: -7.50070638e-04 - sys_corr_4: 3.49666450e-02 - sys_corr_5: 2.96327500e-03 - sys_corr_6: 9.19570648e-03 - sys_corr_7: 7.11186000e-03 - sys_corr_8: 1.00751350e-02 - sys_corr_9: 5.58103563e-02 - sys_corr_10: 2.96327500e-03 -- sys_corr_1: -6.35831614e-03 - sys_corr_2: -1.77801471e-02 - sys_corr_3: -3.16382280e-02 - sys_corr_4: 2.76336000e-02 - sys_corr_5: 2.87850000e-03 - sys_corr_6: 1.08927552e-02 - sys_corr_7: 2.87850000e-03 - sys_corr_8: 1.03626000e-02 - sys_corr_9: 1.67151399e-02 - sys_corr_10: 2.87850000e-03 -- sys_corr_1: -7.11169304e-03 - sys_corr_2: -2.49717741e-02 - sys_corr_3: 2.26912839e-02 - sys_corr_4: 2.25287300e-02 - sys_corr_5: 5.05747000e-03 - sys_corr_6: 6.67458736e-03 - sys_corr_7: 7.35632000e-03 - sys_corr_8: 2.29885000e-03 - sys_corr_9: 2.29885000e-03 - sys_corr_10: 2.29885000e-03 +- sys_corr_1: 5.28140740e+00 + sys_corr_2: -5.48184643e-01 + sys_corr_3: -4.82642618e-02 + sys_corr_4: 3.481 + sys_corr_5: 0.295 + sys_corr_6: 9.15451118e-03 + sys_corr_7: 0.708 + sys_corr_8: 1.003 + sys_corr_9: 5.55603348e-02 + sys_corr_10: 0.295 +- sys_corr_1: -6.21517163e-01 + sys_corr_2: -1.82842573e+00 + sys_corr_3: -3.09491192e+00 + sys_corr_4: 2.73600000e+00 + sys_corr_5: 0.285 + sys_corr_6: 1.07849061e-02 + sys_corr_7: 0.285 + sys_corr_8: 1.026 + sys_corr_9: 1.65496435e-02 + sys_corr_10: 0.285 +- sys_corr_1: -7.18475744e-01 + sys_corr_2: -2.44794411e+00 + sys_corr_3: 2.32246900e+00 + sys_corr_4: 2.25400000e+00 + sys_corr_5: 5.06000000e-01 + sys_corr_6: 6.67792632e-03 + sys_corr_7: 7.36000000e-03 + sys_corr_8: 0.23 + sys_corr_9: 0.23 + sys_corr_10: 0.23 diff --git a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TBAR-Y-NORM.yaml b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TBAR-Y-NORM.yaml index 4cba2a3601..bfd3018af7 100644 --- a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TBAR-Y-NORM.yaml +++ b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TBAR-Y-NORM.yaml @@ -36,30 +36,30 @@ definitions: treatment: MULT type: CORR bins: -- sys_corr_1: 9.70729067e-02 - sys_corr_2: -8.38334543e-03 - sys_corr_3: 3.58054634e-03 - sys_corr_4: 0.09 - sys_corr_5: 0.0255 - sys_corr_6: 0.00375 - sys_corr_7: 1.20000000e-02 +- sys_corr_1: 9.70671334e+00 + sys_corr_2: -8.57805914e-01 + sys_corr_3: 3.26167250e-01 + sys_corr_4: 9.0 + sys_corr_5: 2.55 + sys_corr_6: 0.375 + sys_corr_7: 1.20000000e+00 sys_corr_8: 1.05000000e-02 - sys_corr_9: 1.42500000e-02 -- sys_corr_1: -7.19419643e-03 - sys_corr_2: -4.44720302e-02 - sys_corr_3: -3.92645363e-02 - sys_corr_4: 7.22370000e-02 - sys_corr_5: 1.57608000e-02 - sys_corr_6: 1.02158545e-02 - sys_corr_7: 6.56700000e-03 - sys_corr_8: 5.25688247e-02 - sys_corr_9: 3.28350000e-03 -- sys_corr_1: -1.34650861e-02 - sys_corr_2: -3.66767196e-02 - sys_corr_3: 4.67914444e-02 - sys_corr_4: 6.65001000e-02 - sys_corr_5: 6.09584250e-03 - sys_corr_6: 2.77083750e-03 - sys_corr_7: 2.77083750e-03 - sys_corr_8: 2.30279769e-02 - sys_corr_9: 2.77083750e-03 + sys_corr_9: 1.42500000e+00 +- sys_corr_1: -7.27052324e-01 + sys_corr_2: -4.32582320e+00 + sys_corr_3: -4.10252173e+00 + sys_corr_4: 7.26000000e+00 + sys_corr_5: 1.584 + sys_corr_6: 1.02671905e-02 + sys_corr_7: 0.66 + sys_corr_8: 5.28329897e-02 + sys_corr_9: 0.33 +- sys_corr_1: -1.35053932e+00 + sys_corr_2: -3.83652385e+00 + sys_corr_3: 4.55281818e+00 + sys_corr_4: 6.66 + sys_corr_5: 6.10500000e-01 + sys_corr_6: 0.2775 + sys_corr_7: 0.2775 + sys_corr_8: 2.30625707e-02 + sys_corr_9: 0.2775 diff --git a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TCHANNEL-XSEC.yaml b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TCHANNEL-XSEC.yaml index f7c4b0d784..a042395bee 100644 --- a/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TCHANNEL-XSEC.yaml +++ b/nnpdf_data/nnpdf_data/commondata/ATLAS_SINGLETOP_7TEV/uncertainties_TCHANNEL-XSEC.yaml @@ -116,32 +116,32 @@ definitions: treatment: MULT type: ATLASLUMI11 bins: -- stat: 0.12648 - sys_corr_1: 0.07344 - sys_corr_2: 0.03264 - sys_corr_3: 0.03876 - sys_corr_4: 0.0102 - sys_corr_5: 0.0102 - sys_corr_6: 0.0102 - sys_corr_7: 0.03672 - sys_corr_8: 0.0102 - sys_corr_9: 0.0102 - sys_corr_10: 0.0102 - sys_corr_11: 2.44800000e-02 - sys_corr_12: 0.0204 - sys_corr_13: 0.0102 - sys_corr_14: 0.0204 - sys_corr_15: 0.0102 - sys_corr_16: 0.0102 - sys_corr_17: 0.0102 - sys_corr_18: 0.0102 - sys_corr_19: 0.0102 - sys_corr_20: 0.03264 - sys_corr_21: 0.0204 - sys_corr_22: 0.051 - sys_corr_23: 0.0102 - sys_corr_24: 0.0102 - sys_corr_25: 0.0102 - sys_corr_26: 0.03264 - sys_corr_27: 0.0204 - sys_corr_28: 0.0102 +- stat: 1.26480000e+01 + sys_corr_1: 7.344 + sys_corr_2: 3.26400000e+00 + sys_corr_3: 3.876 + sys_corr_4: 1.02 + sys_corr_5: 1.02 + sys_corr_6: 1.02 + sys_corr_7: 3.672 + sys_corr_8: 1.02 + sys_corr_9: 1.02 + sys_corr_10: 1.02 + sys_corr_11: 2.448 + sys_corr_12: 2.04 + sys_corr_13: 1.02 + sys_corr_14: 2.04 + sys_corr_15: 1.02 + sys_corr_16: 1.02 + sys_corr_17: 1.02 + sys_corr_18: 1.02 + sys_corr_19: 1.02 + sys_corr_20: 3.26400000e+00 + sys_corr_21: 2.04 + sys_corr_22: 5.1 + sys_corr_23: 1.02 + sys_corr_24: 1.02 + sys_corr_25: 1.02 + sys_corr_26: 3.26400000e+00 + sys_corr_27: 2.04 + sys_corr_28: 1.02