diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/data_WPWM-TOT-UNNORM.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/data_WPWM-TOT-UNNORM.yaml new file mode 100644 index 0000000000..3c03add16f --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/data_WPWM-TOT-UNNORM.yaml @@ -0,0 +1,6 @@ +data_central: +- 5.82064450e+05 +- 4.64341995e+05 +- 4.78111725e+05 +- 3.71450400e+05 +- 2.81840095e+05 diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/filter.py b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/filter.py new file mode 100644 index 0000000000..c8dc6a5327 --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/filter.py @@ -0,0 +1,17 @@ +''' +Filter script for CMS_WCHARM_13TEV +''' + +import logging +import os + +from filter_utils import Extractor + +logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(message)s') + +current_dir = os.path.dirname(os.path.abspath(__file__)) + +if __name__ == "__main__": + + CMS_WCHARM = Extractor(f"{current_dir}/metadata.yaml", "WPWM-TOT-UNNORM", mult_factor=1000) + CMS_WCHARM.generate_data() diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/filter_utils.py b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/filter_utils.py new file mode 100644 index 0000000000..2934b735b0 --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/filter_utils.py @@ -0,0 +1,257 @@ +import logging +import os + +from sys_uncertainties import SYS_DEFINITIONS, SYS_UNC_BY_BIN +import yaml + +from nnpdf_data.filter_utils.utils import prettify_float, symmetrize_errors + +current_dir = os.path.dirname(os.path.abspath(__file__)) + +yaml.add_representer(float, prettify_float) + +MW2 = 80.385**2 # W mass squared in GeV^2 +CMSLUMI13 = 2.5 # Luminosity uncertainty in percentage + +STAT_LABEL = 'stat_uncorr_unc' + + +class Extractor: + + def __init__(self, metadata_file, observable, mult_factor=1): + """ + Extracts kinematics, central data, and uncertainties for a given dataset + + Parameters + ---------- + metadata_file: str + Path to the metadata file + observable: str + Name of the observable for which the data is extracted. The name + must be listed in the metadata file. + mult_factor : float, optional + Multiplication factor to scale the data. For this dataset it is used + for a scaling from pb to fb, so a factor 1000. + """ + + # Open metadata and select process + with open(metadata_file) as file: + metadata = yaml.safe_load(file) + self.metadata = next( + ( + md + for md in metadata["implemented_observables"] + if md['observable_name'] == observable + ), + None, + ) + if self.metadata is None: + raise ValueError(f"{observable} is not listed in the metadata file.") + + self.observable = observable + self.mult_factor = mult_factor + + # Load the (only) table used for this dataset + table_id = self.metadata["tables"][0] + with open(f"{current_dir}/rawdata/{table_id}.yaml") as tab: + self.tab_dict = yaml.safe_load(tab) + + def _generate_kinematics(self): + """ + The function generates the kinematics by reading and processing it from + the referenced table. Kinematics is processed in the format of a list of + dictionaries. The keys in each dictionaries specify the label (i.e. name) + for the kinematic variables. For this dataset, they are 'abs_eta' and 'm_W2'. + The labels are taken from the matadata file. The corresponding values are + 'min', 'mid', and 'max'. + + For this dataset, 'm_W2' is used in the computation of the (x,Q2)-map and + does not have any active role in the fit. For that reason, every bin has the + same value. Moreover, only the mid value is used. + """ + [data] = self.tab_dict['independent_variables'] + label = self.metadata['kinematic_coverage'] # ['abs_eta', 'm_W2'] + kinematics = [] + for eta_bin in data['values']: + abs_eta_min = eta_bin['low'] + abs_eta_max = eta_bin['high'] + kin_bin = { + label[0]: { + 'min': abs_eta_min, + 'mid': (abs_eta_max + abs_eta_min) / 2, + 'max': abs_eta_max, + }, + label[1]: {'min': None, 'mid': MW2, 'max': None}, + } + kinematics.append(kin_bin) + + # Check number of data agrees with metadata + ndata = len(kinematics) + if not self.metadata['ndata'] == ndata: + raise ValueError( + f"Mismatch in 'ndata': expected {self.metadata['ndata']}, but got {ndata}" + ) + return kinematics + + def _generate_data_and_unc(self): + """ + Return a list with central data points and a list with the corresponding + statistical uncertainties. For this dataset, statistical uncertainties + are always symmetric. + + The table also provides the corresponding (asymmetric) systematic ucertainty for + data point. However, this uncertainty is not used as it is preferred to adopt the + full break-down of the systematic uncertainties. See `_generate_sym_sys_unc` + """ + logging.info(f"Generating central data for CMS_{self.observable}...") + + [data] = self.tab_dict['dependent_variables'] + + # Loop over bins + dat_central = [] + stat_unc = [] + for rap_bin in data['values']: + dat_central.append(rap_bin['value'] * self.mult_factor) + symerror_dict, _asymerror_dict = rap_bin['errors'] + stat_unc.append(symerror_dict['symerror'] * self.mult_factor) + + return dat_central, stat_unc + + def _generate_sym_sys_unc(self): + """ + The function reads the full break-down of the systematic uncertainties + as given in the paper. Since such a break-down is not provided in the form of + a table in HEPData, but rather given as a table in the paper, the list of sources of + systematic uncertainties is read from an external file (`sys_uncertainties.py`) + that copies the table in the paper. + + Some of the uncertainties are given in the form of asymmetric uncertainties. These + asymmetric uncertainties are symmetrized using the usual prescription (see `symmetrize_errors`). + + It returns a list containing a dict for each bin in the absolute rapidity. The keys + in each dictionary are the names of the sources of uncertainties. The values + are dicts with keys 'shift', containing the shift from the symmetric prescription, and 'sym_error', + which is the (symmetrized) value of the uncertainty. Note that the shift is zero if the + original source of uncertainty is already symmetric. + + Note that uncertainties are given in percentage relative to the central data point + of the corresponding bin. Moreover, also the shift is a relative value to the central + data point. + """ + symmetrized_uncs = [] + for bin in SYS_UNC_BY_BIN: + unc_dict = {} + for source in bin: + if 'asyserror' in source.keys(): + error_high_low = source['asyserror'] + plus = error_high_low['high'] + minus = error_high_low['low'] + data_delta, sym_error = symmetrize_errors(plus, minus) + unc_dict[source['label']] = {'shift': data_delta, 'sym_error': sym_error} + elif 'syserror' in source.keys(): + unc_dict[source['label']] = {'shift': 0.0, 'sym_error': source['syserror']} + symmetrized_uncs.append(unc_dict) + return symmetrized_uncs + + def _build_unc_definitions(self): + """ + Build the dictionary containing the definitions of the uncertainties to be + used in the uncertainty data file. + + The definitions of the systematic uncertainties are given in the + file `sys_uncertainties.py`. + """ + unc_definitions = {} + + # Statistical uncertainty + unc_definitions[STAT_LABEL] = { + 'description': f'Statistical uncertainty', + 'treatment': 'ADD', + 'type': 'UNCORR', + } + + # Add lumi uncertainty + unc_definitions['corr_lumi_unc'] = { + 'description': f'Luminosity uncertainty 2.5%', + 'treatment': 'MULT', + 'type': 'CMSLUMI13', + } + + # Add systematic uncertainty + unc_definitions = unc_definitions | SYS_DEFINITIONS + + return unc_definitions + + def generate_data(self): + ''' + The function collects central data, kinematics, and uncertainties and saves them + into yaml files. + + The function adds the shifts from the symmetrization prescription to the central + data points before saving them to the yaml file. + + The systematic uncertainties are given as percentages relative the central data point. + The absolute value of the uncertainty is obtained from the central data point before + the shifts are applied. + ''' + # Get central data, kinematics, and sys uncertainties + central_data, stat_unc = self._generate_data_and_unc() + kinematics = self._generate_kinematics() + symmetrized_sys_uncs = self._generate_sym_sys_unc() + + # Uncertainty definitions + unc_definitions = self._build_unc_definitions() + + # This loop iterates over the bins of the data.For each bin, it + # 1) computes the sys_artificial uncertainties, consisting of: + # - The effect of symmetrized systematic uncertainties (shift and + # sym_error). + # - The statistical uncertainty from stat_unc array. + # - The luminosity uncertainty. + # 2) Shifts the central data points central_data[data_idx] to account + # for the shift due to the uncertainty symmetrization + sys_artificial = [] # Initialize vector of artificial uncertainties + for data_idx, central_value in enumerate(central_data): + sys_unc_bin = symmetrized_sys_uncs[data_idx] # Dict of sys sources for the bin + shift = 0 # Initialize shift from symmetrization + + # Statistical uncertainty + unc_dict = {STAT_LABEL: stat_unc[data_idx]} + # Lmi uncertainty, 0.01 is to convert from percentage to relative value + unc_dict['corr_lumi_unc'] = central_value * CMSLUMI13 * 0.01 + + # Add shift from symmetrization + for key, value in sys_unc_bin.items(): + # 0.01 is to convert from percentage to relative value + shift += value['shift'] * 0.01 + unc_dict[key] = value['sym_error'] * central_value * 0.01 + + # output of this loop to be saved in the YAML file: + # 1) list containg uncertainties and + # 2) central values updated to account for the shift due to symmetization + sys_artificial.append(unc_dict) + central_data[data_idx] *= 1.0 + shift + + # Save kinematics into file + logging.info("Dumping kinematics to file...") + kinematics_yaml = {'bins': kinematics} + kins_file_name = self.metadata['kinematics']['file'] + with open(current_dir + "/" + kins_file_name, 'w') as file: + yaml.dump(kinematics_yaml, file, sort_keys=False) + logging.info("Done!") + + # Save central data into file + logging.info("Dumping kinematics to file...") + dat_central_yaml = {'data_central': central_data} + dat_file_name = self.metadata['data_central'] + with open(current_dir + "/" + dat_file_name, 'w') as file: + yaml.dump(dat_central_yaml, file, sort_keys=False) + logging.info("Done!") + + # Save unertainties + logging.info("Dumping kinematics to file...") + uncertainties_yaml = {'definitions': unc_definitions, 'bins': sys_artificial} + unc_file_name = self.metadata['data_uncertainties'][0] + with open(current_dir + "/" + unc_file_name, 'w') as file: + yaml.dump(uncertainties_yaml, file, sort_keys=False) + logging.info("Done!") diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_WPWM-TOT-UNNORM.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_WPWM-TOT-UNNORM.yaml index 793e9a279e..40784420b6 100644 --- a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_WPWM-TOT-UNNORM.yaml +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_WPWM-TOT-UNNORM.yaml @@ -1,61 +1,41 @@ bins: -- k1: - min: null +- abs_eta: + min: 0.0 mid: 0.2 - max: null - k2: - min: null - mid: 6463.838404 - max: null - k3: - min: null - mid: 13000.0 - max: null -- k1: - min: null - mid: 0.6 - max: null - k2: + max: 0.4 + m_W2: min: null - mid: 6463.838404 + mid: 6.46174823e+03 max: null - k3: +- abs_eta: + min: 0.4 + mid: 6.00000000e-01 + max: 0.8 + m_W2: min: null - mid: 13000.0 + mid: 6.46174823e+03 max: null -- k1: - min: null +- abs_eta: + min: 0.8 mid: 1.05 - max: null - k2: + max: 1.3 + m_W2: min: null - mid: 6463.838404 + mid: 6.46174823e+03 max: null - k3: - min: null - mid: 13000.0 - max: null -- k1: - min: null +- abs_eta: + min: 1.3 mid: 1.55 - max: null - k2: - min: null - mid: 6463.838404 - max: null - k3: + max: 1.8 + m_W2: min: null - mid: 13000.0 + mid: 6.46174823e+03 max: null -- k1: - min: null +- abs_eta: + min: 1.8 mid: 2.1 - max: null - k2: - min: null - mid: 6463.838404 - max: null - k3: + max: 2.4 + m_W2: min: null - mid: 13000.0 + mid: 6.46174823e+03 max: null diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_legacy_WPWM-TOT-UNNORM.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_legacy_WPWM-TOT-UNNORM.yaml new file mode 100644 index 0000000000..793e9a279e --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/kinematics_legacy_WPWM-TOT-UNNORM.yaml @@ -0,0 +1,61 @@ +bins: +- k1: + min: null + mid: 0.2 + max: null + k2: + min: null + mid: 6463.838404 + max: null + k3: + min: null + mid: 13000.0 + max: null +- k1: + min: null + mid: 0.6 + max: null + k2: + min: null + mid: 6463.838404 + max: null + k3: + min: null + mid: 13000.0 + max: null +- k1: + min: null + mid: 1.05 + max: null + k2: + min: null + mid: 6463.838404 + max: null + k3: + min: null + mid: 13000.0 + max: null +- k1: + min: null + mid: 1.55 + max: null + k2: + min: null + mid: 6463.838404 + max: null + k3: + min: null + mid: 13000.0 + max: null +- k1: + min: null + mid: 2.1 + max: null + k2: + min: null + mid: 6463.838404 + max: null + k3: + min: null + mid: 13000.0 + max: null diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/metadata.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/metadata.yaml index 0999feed3c..bf7e62fe65 100644 --- a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/metadata.yaml +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/metadata.yaml @@ -1,65 +1,63 @@ setname: CMS_WCHARM_13TEV -version: 1 -version_comment: Port of old commondata + nnpdf_metadata: nnpdf31_process: DY CC experiment: CMS + arXiv: url: https://arxiv.org/abs/1811.10021 journal: Eur. Phys. J. C 79 (2019) 269 iNSPIRE: - url: '' + url: https://inspirehep.net/literature/1705068 hepdata: - url: '' - version: -1 + url: https://www.hepdata.net/record/ins1705068 + version: 1 + +version: 2 +version_comment: Implementation in the new format + implemented_observables: - observable_name: WPWM-TOT-UNNORM observable: description: Jet Rapidity Distribution label: CMS $W+c$ total 13 TeV - units: '' - process_type: EWJ_RAP - tables: [] - npoints: [] + units: '[fb]' + process_type: DY_W_ETA + tables: ['WplusCharm_AbsEtaMu_Table'] ndata: 5 plotting: - kinematics_override: ewj_rap_sqrt_scale + kinematics_override: identity dataset_label: CMS $W+c$ total 13 TeV y_label: $d\sigma(W+c)/d|\eta^\mu|$ (fb) x_label: $|\eta^\mu|$ - plot_x: k1 - kinematic_coverage: - - k1 - - k2 - - k3 + plot_x: abs_eta + kinematic_coverage: [abs_eta, m_W2] kinematics: variables: - k1: - description: Variable k1 - label: k1 - units: '' - k2: - description: Variable k2 - label: k2 - units: '' - k3: - description: Variable k3 - label: k3 + abs_eta: + description: Absolute pseudo-rapidity of the Z boson + label: $|\eta|$ units: '' + m_W2: + description: Mass of the W boson squared + label: $m_W^2$ + units: GeV$^{2}$ file: kinematics_WPWM-TOT-UNNORM.yaml + data_central: data_WPWM-TOT-UNNORM.yaml + data_uncertainties: [uncertainties_WPWM-TOT-UNNORM.yaml] theory: conversion_factor: 1.0 operation: add FK_tables: - - CMS_WCHARM_DIFF_UNNORM_13TEV-CMS_WCHARM_13TEV_WPCB_leptrap - - CMS_WCHARM_DIFF_UNNORM_13TEV-CMS_WCHARM_13TEV_WMC_leptrap - data_uncertainties: [] variants: legacy: data_uncertainties: - uncertainties_legacy_WPWM-TOT-UNNORM.yaml + data_central: data_legacy_WPWM-TOT-UNNORM.yaml legacy_10: data_uncertainties: - - uncertainties_WPWM-TOT-UNNORM_sys_10.yaml - data_central: data_legacy_WPWM-TOT-UNNORM.yaml + - uncertainties_legacy_WPWM-TOT-UNNORM_sys_10.yaml + data_central: data_legacy_WPWM-TOT-UNNORM.yaml ported_from: CMS_WCHARM_DIFF_UNNORM_13TEV diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/rawdata/WplusCharm_AbsEtaMu_Table.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/rawdata/WplusCharm_AbsEtaMu_Table.yaml new file mode 100644 index 0000000000..5e02825090 --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/rawdata/WplusCharm_AbsEtaMu_Table.yaml @@ -0,0 +1,42 @@ +dependent_variables: +- header: {name: D(SIG(W + CQ))/DETA(MU), units: PB} + qualifiers: + - {name: MU ETA, value: -2.4-2.4} + - {name: MU PT, value: 26 GEV} + - {name: CQ PT, value: 5 GEV} + - {name: SQRT(S), units: GeV, value: '13000.0'} + values: + - errors: + - {label: stat, symerror: 37.17} + - asymerror: {minus: -52.74, plus: 61.16} + label: sys + value: 568.70 + - errors: + - {label: stat, symerror: 28.41} + - asymerror: {minus: -66.08, plus: 61.39} + label: sys + value: 466.91 + - errors: + - {label: stat, symerror: 30.21} + - asymerror: {minus: -53.87, plus: 57.25} + label: sys + value: 479.31 + - errors: + - {label: stat, symerror: 27.45} + - asymerror: {minus: -63.02, plus: 49.44} + label: sys + value: 395.16 + - errors: + - {label: stat, symerror: 24.68} + - asymerror: {minus: -33.91, plus: 38.73} + label: sys + value: 282.83 + +independent_variables: +- header: {name: ABS(ETA(MU))} + values: + - {high: 0.4, low: 0.0} + - {high: 0.8, low: 0.4} + - {high: 1.3, low: 0.8} + - {high: 1.8, low: 1.3} + - {high: 2.4, low: 1.8} diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/sys_uncertainties.py b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/sys_uncertainties.py new file mode 100644 index 0000000000..09a81b220d --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/sys_uncertainties.py @@ -0,0 +1,137 @@ +''' +The full break-down of the systematic uncertainties is not given in the +HepData format. However, Table 1 of the referenced paper provides the +different sources of systematic uncertainties bin-by-bin. This table +is reproduced in the following list of dicts. +''' + +# Common dict independent of the kinematics +IND_KIN_DICT = [ + {'label': 'track_sys_unc', 'syserror': 2.3}, + {'label': 'brch_sys_unc', 'syserror': 2.4}, + {'label': 'muons_sys_unc', 'syserror': 1.2}, + {'label': 'nsel_sys_unc', 'syserror': 1.5}, + {'label': 'dstar_sys_unc', 'syserror': 0.5}, +] + +SYS_UNC_BY_BIN = [ + # First bin [0, 0.4] + [ + *IND_KIN_DICT, + {'label': 'bkgnorm_sys_unc', 'asyserror': {'low': +0.9, 'high': -0.8}}, + {'label': 'ptmiss_sys_unc', 'asyserror': {'low': +0.4, 'high': -1.2}}, + {'label': 'pileup_sys_unc', 'asyserror': {'low': +0.4, 'high': -0.5}}, + {'label': 'secvrx_sys_unc', 'asyserror': {'low': +1.3, 'high': +1.3}}, + {'label': 'pdf_sys_unc', 'syserror': 1.3}, + {'label': 'frag_sys_unc', 'asyserror': {'low': +3.4, 'high': -1.8}}, + {'label': 'mc_sys_unc', 'asyserror': {'low': +8.8, 'high': -7.5}}, + ], + # Second bin [0.4, 0.8] + [ + *IND_KIN_DICT, + {'label': 'bkgnorm_sys_unc', 'asyserror': {'low': +1.9, 'high': -0.8}}, + {'label': 'ptmiss_sys_unc', 'asyserror': {'low': +1.3, 'high': -0.3}}, + {'label': 'pileup_sys_unc', 'asyserror': {'low': +2.9, 'high': -3.0}}, + {'label': 'secvrx_sys_unc', 'asyserror': {'low': -1.2, 'high': -1.2}}, + {'label': 'pdf_sys_unc', 'syserror': 0.9}, + {'label': 'frag_sys_unc', 'asyserror': {'low': +7.4, 'high': -5.2}}, + {'label': 'mc_sys_unc', 'asyserror': {'low': +9.0, 'high': -11.9}}, + ], + # Third bin [0.8, 1.3] + [ + *IND_KIN_DICT, + {'label': 'bkgnorm_sys_unc', 'asyserror': {'low': +1.4, 'high': -0.5}}, + {'label': 'ptmiss_sys_unc', 'asyserror': {'low': +1.1, 'high': -1.0}}, + {'label': 'pileup_sys_unc', 'asyserror': {'low': +2.0, 'high': -1.9}}, + {'label': 'secvrx_sys_unc', 'asyserror': {'low': -1.5, 'high': -1.5}}, + {'label': 'pdf_sys_unc', 'syserror': 1.4}, + {'label': 'frag_sys_unc', 'asyserror': {'low': +3.3, 'high': -3.0}}, + {'label': 'mc_sys_unc', 'asyserror': {'low': +7.9, 'high': -6.8}}, + ], + # Fourth bin [1.3, 1.8] + [ + *IND_KIN_DICT, + {'label': 'bkgnorm_sys_unc', 'asyserror': {'low': +0.8, 'high': -1.0}}, + {'label': 'ptmiss_sys_unc', 'asyserror': {'low': 0.0, 'high': -2.6}}, + {'label': 'pileup_sys_unc', 'asyserror': {'low': +4.6, 'high': -5.1}}, + {'label': 'secvrx_sys_unc', 'asyserror': {'low': -2.7, 'high': -2.7}}, + {'label': 'pdf_sys_unc', 'syserror': 1.5}, + {'label': 'frag_sys_unc', 'asyserror': {'low': +2.2, 'high': -1.2}}, + {'label': 'mc_sys_unc', 'asyserror': {'low': +9.8, 'high': -14.1}}, + ], + # Fifth bin [1.8, 2.4] + [ + *IND_KIN_DICT, + {'label': 'bkgnorm_sys_unc', 'asyserror': {'low': +0.0, 'high': -0.6}}, + {'label': 'ptmiss_sys_unc', 'asyserror': {'low': 0.0, 'high': +1.5}}, + {'label': 'pileup_sys_unc', 'asyserror': {'low': +2.7, 'high': -2.6}}, + {'label': 'secvrx_sys_unc', 'asyserror': {'low': -2.5, 'high': -2.5}}, + {'label': 'pdf_sys_unc', 'syserror': 1.7}, + {'label': 'frag_sys_unc', 'asyserror': {'low': +7.4, 'high': -5.7}}, + {'label': 'mc_sys_unc', 'asyserror': {'low': +10.1, 'high': -8.5}}, + ], +] + + +SYS_DEFINITIONS = { + 'track_sys_unc': { + 'description': f'Tracking efficiency systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'brch_sys_unc': { + 'description': f'Branching fraction systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'muons_sys_unc': { + 'description': f'Muon identification systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'nsel_sys_unc': { + 'description': f'N_sel determination systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'dstar_sys_unc': { + 'description': f'D*(2010)+- systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'bkgnorm_sys_unc': { + 'description': f'Background normalization systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'ptmiss_sys_unc': { + 'description': f'pT miss systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'pileup_sys_unc': { + 'description': f'Pileup systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'secvrx_sys_unc': { + 'description': f'PDF systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'pdf_sys_unc': { + 'description': f'Fragmentation systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'frag_sys_unc': { + 'description': f'MC statistics systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, + 'mc_sys_unc': { + 'description': f'Symmetrized systematic uncertainty', + 'treatment': 'MULT', + 'type': 'CORR', + }, +} diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_WPWM-TOT-UNNORM.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_WPWM-TOT-UNNORM.yaml new file mode 100644 index 0000000000..1f65c9407b --- /dev/null +++ b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_WPWM-TOT-UNNORM.yaml @@ -0,0 +1,128 @@ +definitions: + stat_uncorr_unc: + description: Statistical uncertainty + treatment: ADD + type: UNCORR + corr_lumi_unc: + description: Luminosity uncertainty 2.5% + treatment: MULT + type: CMSLUMI13 + track_sys_unc: + description: Tracking efficiency systematic uncertainty + treatment: MULT + type: CORR + brch_sys_unc: + description: Branching fraction systematic uncertainty + treatment: MULT + type: CORR + muons_sys_unc: + description: Muon identification systematic uncertainty + treatment: MULT + type: CORR + nsel_sys_unc: + description: N_sel determination systematic uncertainty + treatment: MULT + type: CORR + dstar_sys_unc: + description: D*(2010)+- systematic uncertainty + treatment: MULT + type: CORR + bkgnorm_sys_unc: + description: Background normalization systematic uncertainty + treatment: MULT + type: CORR + ptmiss_sys_unc: + description: pT miss systematic uncertainty + treatment: MULT + type: CORR + pileup_sys_unc: + description: Pileup systematic uncertainty + treatment: MULT + type: CORR + secvrx_sys_unc: + description: PDF systematic uncertainty + treatment: MULT + type: CORR + pdf_sys_unc: + description: Fragmentation systematic uncertainty + treatment: MULT + type: CORR + frag_sys_unc: + description: MC statistics systematic uncertainty + treatment: MULT + type: CORR + mc_sys_unc: + description: Symmetrized systematic uncertainty + treatment: MULT + type: CORR +bins: +- stat_uncorr_unc: 37170.0 + corr_lumi_unc: 14217.5 + track_sys_unc: 13080.1 + brch_sys_unc: 1.36488000e+04 + muons_sys_unc: 6.82440000e+03 + nsel_sys_unc: 8530.5 + dstar_sys_unc: 2843.5 + bkgnorm_sys_unc: 4.85064763e+03 + ptmiss_sys_unc: 5.57209927e+03 + pileup_sys_unc: 2.59055179e+03 + secvrx_sys_unc: 1.04554223e+04 + pdf_sys_unc: 7393.1 + frag_sys_unc: 1.61254281e+04 + mc_sys_unc: 4.66429352e+04 +- stat_uncorr_unc: 28410.0 + corr_lumi_unc: 11672.75 + track_sys_unc: 10738.93 + brch_sys_unc: 11205.84 + muons_sys_unc: 5602.92 + nsel_sys_unc: 7.00365000e+03 + dstar_sys_unc: 2334.55 + bkgnorm_sys_unc: 7.27466158e+03 + ptmiss_sys_unc: 4.98523461e+03 + pileup_sys_unc: 1.37778013e+04 + secvrx_sys_unc: 7.92372545e+03 + pdf_sys_unc: 4.20219000e+03 + frag_sys_unc: 3.02988257e+04 + mc_sys_unc: 4.97226268e+04 +- stat_uncorr_unc: 30210.0 + corr_lumi_unc: 11982.75 + track_sys_unc: 1.10241300e+04 + brch_sys_unc: 11503.44 + muons_sys_unc: 5751.72 + nsel_sys_unc: 7.18965000e+03 + dstar_sys_unc: 2396.55 + bkgnorm_sys_unc: 5.48071651e+03 + ptmiss_sys_unc: 5.04415423e+03 + pileup_sys_unc: 9.35268798e+03 + secvrx_sys_unc: 1.01677005e+04 + pdf_sys_unc: 6710.34 + frag_sys_unc: 1.51324627e+04 + mc_sys_unc: 3.54260028e+04 +- stat_uncorr_unc: 27450.0 + corr_lumi_unc: 9879.0 + track_sys_unc: 9.08868000e+03 + brch_sys_unc: 9483.84 + muons_sys_unc: 4741.92 + nsel_sys_unc: 5.92740000e+03 + dstar_sys_unc: 1975.8 + bkgnorm_sys_unc: 3.60007893e+03 + ptmiss_sys_unc: 8.89768356e+03 + pileup_sys_unc: 1.92161152e+04 + secvrx_sys_unc: 1.50886970e+04 + pdf_sys_unc: 5.92740000e+03 + frag_sys_unc: 7.27566721e+03 + mc_sys_unc: 4.87262084e+04 +- stat_uncorr_unc: 24680.0 + corr_lumi_unc: 7070.75 + track_sys_unc: 6505.09 + brch_sys_unc: 6787.92 + muons_sys_unc: 3393.96 + nsel_sys_unc: 4242.45 + dstar_sys_unc: 1414.15 + bkgnorm_sys_unc: 1.46962779e+03 + ptmiss_sys_unc: 3.67406947e+03 + pileup_sys_unc: 7.49766273e+03 + secvrx_sys_unc: 9.99955055e+03 + pdf_sys_unc: 4808.11 + frag_sys_unc: 1.88347580e+04 + mc_sys_unc: 2.64971109e+04 diff --git a/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_WPWM-TOT-UNNORM_sys_10.yaml b/nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_legacy_WPWM-TOT-UNNORM_sys_10.yaml similarity index 100% rename from nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_WPWM-TOT-UNNORM_sys_10.yaml rename to nnpdf_data/nnpdf_data/commondata/CMS_WCHARM_13TEV/uncertainties_legacy_WPWM-TOT-UNNORM_sys_10.yaml