diff --git a/buildmaster/E142_NC_2GEV_EN/data.yaml b/buildmaster/E142_NC_2GEV_EN/data.yaml new file mode 100644 index 0000000000..1704c8bf7c --- /dev/null +++ b/buildmaster/E142_NC_2GEV_EN/data.yaml @@ -0,0 +1,9 @@ +data_central: +- -0.311 +- -0.195 +- -0.154 +- -0.142 +- -0.099 +- -0.042 +- 0.01 +- 0.0 diff --git a/buildmaster/E142_NC_2GEV_EN/filter.py b/buildmaster/E142_NC_2GEV_EN/filter.py new file mode 100644 index 0000000000..96fabc5b36 --- /dev/null +++ b/buildmaster/E142_NC_2GEV_EN/filter.py @@ -0,0 +1,105 @@ +import pandas as pd +import yaml +import numpy as np +import glob + + +def read_data(fnames): + df = pd.DataFrame() + for fname in fnames: + with open(fname, "r") as file: + data = yaml.safe_load(file) + + xsub = data["independent_variables"][0]["values"] + y = 0.0 + Q2 = 2.0 + Gsub = data["dependent_variables"][0]["values"] + + + for i in range(len(xsub)): + try: + xsub[i]["low"] + except NameError: + xsub[i]["low"] = None + try: + xsub[i]["high"] + except NameError: + xsub[i]["high"] = None + df = pd.concat( + [ + df, + pd.DataFrame( + { + "x": [xsub[i]["value"]], + "x_low": [xsub[i]["low"]], + "x_high": [xsub[i]["high"]], + "y": [y], + "Q2": [Q2], + "G": [Gsub[i]["value"]], + "stat": [Gsub[i]["errors"][0]["symerror"]], + "sys": [Gsub[i]["errors"][1]["symerror"]], + } + ), + ], + ignore_index=True, + ) + + return df + + +def write_data(df): + data_central = [] + for i in range(len(df["G"])): + data_central.append(float(df.loc[i, "G"])) + + data_central_yaml = {"data_central": data_central} + with open("data.yaml", "w") as file: + yaml.dump(data_central_yaml, file, sort_keys=False) + + # Write kin file + kin = [] + for i in range(len(df["G"])): + kin_value = { + "x": {"min": float(df.loc[i, "x_low"]), "mid": float(df.loc[i, "x"]), "max": float(df.loc[i, "x_high"])}, + "Q2": {"min": None, "mid": float(df.loc[i, "Q2"]), "max": None}, + "y": {"min": None, "mid": float(df.loc[i, "y"]), "max": None}, + } + kin.append(kin_value) + + kinematics_yaml = {"bins": kin} + + with open("kinematics.yaml", "w") as file: + yaml.dump(kinematics_yaml, file, sort_keys=False) + + # Write unc file + error = [] + for i in range(len(df)): + e = { + "stat": float(df.loc[i, "stat"]), + "sys": float(df.loc[i, "sys"]), + } + error.append(e) + + error_definition = { + "stat": { + "description": "statistical uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + "sys": { + "description": "systematic uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + } + + uncertainties_yaml = {"definitions": error_definition, "bins": error} + + with open("uncertainties.yaml", "w") as file: + yaml.dump(uncertainties_yaml, file, sort_keys=False) + + +if __name__ == "__main__": + fnames = glob.glob("rawdata/*.yaml") + df = read_data(fnames) + write_data(df) diff --git a/buildmaster/E142_NC_2GEV_EN/kinematics.yaml b/buildmaster/E142_NC_2GEV_EN/kinematics.yaml new file mode 100644 index 0000000000..28f6e5b988 --- /dev/null +++ b/buildmaster/E142_NC_2GEV_EN/kinematics.yaml @@ -0,0 +1,97 @@ +bins: +- x: + min: 0.03 + mid: 0.04 + max: 0.04 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.04 + mid: 0.05 + max: 0.06 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.06 + mid: 0.081 + max: 0.1 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.1 + mid: 0.124 + max: 0.15 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.15 + mid: 0.174 + max: 0.2 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.2 + mid: 0.245 + max: 0.3 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.3 + mid: 0.341 + max: 0.4 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.4 + mid: 0.466 + max: 0.6 + Q2: + min: null + mid: 2.0 + max: null + y: + min: null + mid: 0.0 + max: null diff --git a/buildmaster/E142_NC_2GEV_EN/metadata.yaml b/buildmaster/E142_NC_2GEV_EN/metadata.yaml new file mode 100644 index 0000000000..c01c06b855 --- /dev/null +++ b/buildmaster/E142_NC_2GEV_EN/metadata.yaml @@ -0,0 +1,55 @@ +# Generalia +setname: "E142_NC_2GEV_EN_G1" + +version: 1 +version_comment: "Initial implementation" + +# References +APS: + url: "https://journals.aps.org/prd/abstract/10.1103/PhysRevD.54.6620" +iNSPIRE: + url: "https://inspirehep.net/literature/424108" +hepdata: + url: "https://www.hepdata.net/record/ins424108" + version: 1 + +nnpdf_metadata: + nnpdf31_process: "DIS" + experiment: "E142" + +implemented_observables: + - observable_name: "G1" + observable: + description: "E142 DIS scattering experiment polarized structure function" + label: "$g_1$" + units: "" + process_type: "DIS" + ndata: 8 + tables: [5] + npoints: [8] # number of datapoints in each table + + # Plotting information + plotting: + kinematics_override: dis_sqrt_scale + dataset_label: "E142 (g1)" + plot_x: x + y_label: '$g_{1,N}(x, Q^2)$' + figure_by: + - Q2 + kinematic_coverage: [x, y, Q2] + + kinematics: + variables: + x: {description: "momentum fraction", label: "$x$", units: ""} + Q2: {description: "virtuality", label: "$Q^2$", units: "$GeV^2$"} + y: {description: "inelasticity", label: "$y$", units: ""} + file: kinematics.yaml + + data_central: data.yaml + data_uncertainties: + - uncertainties.yaml + + theory: + FK_tables: + - - E142_NC_2GEV_EN_G1 + operation: 'null' diff --git a/buildmaster/E142_NC_2GEV_EN/rawdata/Table5.yaml b/buildmaster/E142_NC_2GEV_EN/rawdata/Table5.yaml new file mode 100644 index 0000000000..a78a71e859 --- /dev/null +++ b/buildmaster/E142_NC_2GEV_EN/rawdata/Table5.yaml @@ -0,0 +1,51 @@ +dependent_variables: +- header: {name: G1} + qualifiers: + - {name: PLAB, units: GEV, value: 19.42 + 22.66 + 25.51} + - {name: Q**2, units: GeV^2, value: '2.0'} + - {name: RE, value: E- N --> E- X} + - {name: SQRT(S), units: GeV, value: '58.056'} + values: + - errors: + - {label: stat, symerror: 0.207} + - {label: sys, symerror: 0.074} + value: -0.311 + - errors: + - {label: stat, symerror: 0.09} + - {label: sys, symerror: 0.036} + value: -0.195 + - errors: + - {label: stat, symerror: 0.044} + - {label: sys, symerror: 0.026} + value: -0.154 + - errors: + - {label: stat, symerror: 0.031} + - {label: sys, symerror: 0.022} + value: -0.142 + - errors: + - {label: stat, symerror: 0.026} + - {label: sys, symerror: 0.016} + value: -0.099 + - errors: + - {label: stat, symerror: 0.018} + - {label: sys, symerror: 0.009} + value: -0.042 + - errors: + - {label: stat, symerror: 0.02} + - {label: sys, symerror: 0.006} + value: 0.01 + - errors: + - {label: stat, symerror: 0.02} + - {label: sys, symerror: 0.003} + value: 0.0 +independent_variables: +- header: {name: X} + values: + - {high: 0.04, low: 0.03, value: 0.04} + - {high: 0.06, low: 0.04, value: 0.05} + - {high: 0.1, low: 0.06, value: 0.081} + - {high: 0.15, low: 0.1, value: 0.124} + - {high: 0.2, low: 0.15, value: 0.174} + - {high: 0.3, low: 0.2, value: 0.245} + - {high: 0.4, low: 0.3, value: 0.341} + - {high: 0.6, low: 0.4, value: 0.466} diff --git a/buildmaster/E142_NC_2GEV_EN/uncertainties.yaml b/buildmaster/E142_NC_2GEV_EN/uncertainties.yaml new file mode 100644 index 0000000000..ee1b9eaa7b --- /dev/null +++ b/buildmaster/E142_NC_2GEV_EN/uncertainties.yaml @@ -0,0 +1,26 @@ +definitions: + stat: + description: statistical uncertainty + treatment: ADD + type: UNCORR + sys: + description: systematic uncertainty + treatment: ADD + type: UNCORR +bins: +- stat: 0.207 + sys: 0.074 +- stat: 0.09 + sys: 0.036 +- stat: 0.044 + sys: 0.026 +- stat: 0.031 + sys: 0.022 +- stat: 0.026 + sys: 0.016 +- stat: 0.018 + sys: 0.009 +- stat: 0.02 + sys: 0.006 +- stat: 0.02 + sys: 0.003 diff --git a/buildmaster/E142_NC_EN/data.yaml b/buildmaster/E142_NC_EN/data.yaml new file mode 100644 index 0000000000..1f29dcf2d8 --- /dev/null +++ b/buildmaster/E142_NC_EN/data.yaml @@ -0,0 +1,9 @@ +data_central: +- -0.269 +- -0.177 +- -0.151 +- -0.146 +- -0.105 +- -0.045 +- 0.011 +- 0.0 diff --git a/buildmaster/E142_NC_EN/filter.py b/buildmaster/E142_NC_EN/filter.py new file mode 100644 index 0000000000..995530360c --- /dev/null +++ b/buildmaster/E142_NC_EN/filter.py @@ -0,0 +1,105 @@ +import pandas as pd +import yaml +import numpy as np +import glob + + +def read_data(fnames): + df = pd.DataFrame() + for fname in fnames: + with open(fname, "r") as file: + data = yaml.safe_load(file) + + xsub = data["independent_variables"][0]["values"] + y = 0.0 + Qsub = data["independent_variables"][1]["values"] + Gsub = data["dependent_variables"][1]["values"] + + + for i in range(len(xsub)): + try: + xsub[i]["low"] + except NameError: + xsub[i]["low"] = None + try: + xsub[i]["high"] + except NameError: + xsub[i]["high"] = None + df = pd.concat( + [ + df, + pd.DataFrame( + { + "x": [xsub[i]["value"]], + "x_low": [xsub[i]["low"]], + "x_high": [xsub[i]["high"]], + "y": [y], + "Q2": [Qsub[i]["value"]], + "G": [Gsub[i]["value"]], + "stat": [Gsub[i]["errors"][0]["symerror"]], + "sys": [Gsub[i]["errors"][1]["symerror"]], + } + ), + ], + ignore_index=True, + ) + + return df + + +def write_data(df): + data_central = [] + for i in range(len(df["G"])): + data_central.append(float(df.loc[i, "G"])) + + data_central_yaml = {"data_central": data_central} + with open("data.yaml", "w") as file: + yaml.dump(data_central_yaml, file, sort_keys=False) + + # Write kin file + kin = [] + for i in range(len(df["G"])): + kin_value = { + "x": {"min": float(df.loc[i, "x_low"]), "mid": float(df.loc[i, "x"]), "max": float(df.loc[i, "x_high"])}, + "Q2": {"min": None, "mid": float(df.loc[i, "Q2"]), "max": None}, + "y": {"min": None, "mid": float(df.loc[i, "y"]), "max": None}, + } + kin.append(kin_value) + + kinematics_yaml = {"bins": kin} + + with open("kinematics.yaml", "w") as file: + yaml.dump(kinematics_yaml, file, sort_keys=False) + + # Write unc file + error = [] + for i in range(len(df)): + e = { + "stat": float(df.loc[i, "stat"]), + "sys": float(df.loc[i, "sys"]), + } + error.append(e) + + error_definition = { + "stat": { + "description": "statistical uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + "sys": { + "description": "systematic uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + } + + uncertainties_yaml = {"definitions": error_definition, "bins": error} + + with open("uncertainties.yaml", "w") as file: + yaml.dump(uncertainties_yaml, file, sort_keys=False) + + +if __name__ == "__main__": + fnames = glob.glob("rawdata/*.yaml") + df = read_data(fnames) + write_data(df) diff --git a/buildmaster/E142_NC_EN/kinematics.yaml b/buildmaster/E142_NC_EN/kinematics.yaml new file mode 100644 index 0000000000..37d6d67adc --- /dev/null +++ b/buildmaster/E142_NC_EN/kinematics.yaml @@ -0,0 +1,97 @@ +bins: +- x: + min: 0.03 + mid: 0.04 + max: 0.04 + Q2: + min: null + mid: 1.1 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.04 + mid: 0.05 + max: 0.06 + Q2: + min: null + mid: 1.2 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.06 + mid: 0.081 + max: 0.1 + Q2: + min: null + mid: 1.8 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.1 + mid: 0.124 + max: 0.15 + Q2: + min: null + mid: 2.5 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.15 + mid: 0.174 + max: 0.2 + Q2: + min: null + mid: 3.1 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.2 + mid: 0.245 + max: 0.3 + Q2: + min: null + mid: 3.7 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.3 + mid: 0.341 + max: 0.4 + Q2: + min: null + mid: 4.4 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: 0.4 + mid: 0.466 + max: 0.6 + Q2: + min: null + mid: 5.5 + max: null + y: + min: null + mid: 0.0 + max: null diff --git a/buildmaster/E142_NC_EN/metadata.yaml b/buildmaster/E142_NC_EN/metadata.yaml new file mode 100644 index 0000000000..c01c06b855 --- /dev/null +++ b/buildmaster/E142_NC_EN/metadata.yaml @@ -0,0 +1,55 @@ +# Generalia +setname: "E142_NC_2GEV_EN_G1" + +version: 1 +version_comment: "Initial implementation" + +# References +APS: + url: "https://journals.aps.org/prd/abstract/10.1103/PhysRevD.54.6620" +iNSPIRE: + url: "https://inspirehep.net/literature/424108" +hepdata: + url: "https://www.hepdata.net/record/ins424108" + version: 1 + +nnpdf_metadata: + nnpdf31_process: "DIS" + experiment: "E142" + +implemented_observables: + - observable_name: "G1" + observable: + description: "E142 DIS scattering experiment polarized structure function" + label: "$g_1$" + units: "" + process_type: "DIS" + ndata: 8 + tables: [5] + npoints: [8] # number of datapoints in each table + + # Plotting information + plotting: + kinematics_override: dis_sqrt_scale + dataset_label: "E142 (g1)" + plot_x: x + y_label: '$g_{1,N}(x, Q^2)$' + figure_by: + - Q2 + kinematic_coverage: [x, y, Q2] + + kinematics: + variables: + x: {description: "momentum fraction", label: "$x$", units: ""} + Q2: {description: "virtuality", label: "$Q^2$", units: "$GeV^2$"} + y: {description: "inelasticity", label: "$y$", units: ""} + file: kinematics.yaml + + data_central: data.yaml + data_uncertainties: + - uncertainties.yaml + + theory: + FK_tables: + - - E142_NC_2GEV_EN_G1 + operation: 'null' diff --git a/buildmaster/E142_NC_EN/rawdata/Table1.yaml b/buildmaster/E142_NC_EN/rawdata/Table1.yaml new file mode 100644 index 0000000000..9c07476ee7 --- /dev/null +++ b/buildmaster/E142_NC_EN/rawdata/Table1.yaml @@ -0,0 +1,98 @@ +dependent_variables: +- header: {name: A1} + qualifiers: + - {name: PLAB, value: 19.42 + 22.66 + 25.51} + - {name: RE, value: E- N --> E- X} + - {name: SQRT(S), units: GeV, value: '58.056'} + values: + - errors: + - {label: stat, symerror: 0.061} + - {label: sys, symerror: 0.022} + value: -0.092 + - errors: + - {label: stat, symerror: 0.038} + - {label: sys, symerror: 0.017} + value: -0.082 + - errors: + - {label: stat, symerror: 0.031} + - {label: sys, symerror: 0.021} + value: -0.109 + - errors: + - {label: stat, symerror: 0.033} + - {label: sys, symerror: 0.03} + value: -0.162 + - errors: + - {label: stat, symerror: 0.041} + - {label: sys, symerror: 0.042} + value: -0.17 + - errors: + - {label: stat, symerror: 0.044} + - {label: sys, symerror: 0.055} + value: -0.113 + - errors: + - {label: stat, symerror: 0.083} + - {label: sys, symerror: 0.107} + value: 0.05 + - errors: + - {label: stat, symerror: 0.159} + - {label: sys, symerror: 0.108} + value: 0.006 +- header: {name: G1} + qualifiers: + - {name: PLAB, value: 19.42 + 22.66 + 25.51} + - {name: RE, value: E- N --> E- X} + - {name: SQRT(S), units: GeV, value: '58.056'} + values: + - errors: + - {label: stat, symerror: 0.182} + - {label: sys, symerror: 0.065} + value: -0.269 + - errors: + - {label: stat, symerror: 0.083} + - {label: sys, symerror: 0.033} + value: -0.177 + - errors: + - {label: stat, symerror: 0.044} + - {label: sys, symerror: 0.025} + value: -0.151 + - errors: + - {label: stat, symerror: 0.031} + - {label: sys, symerror: 0.022} + value: -0.146 + - errors: + - {label: stat, symerror: 0.026} + - {label: sys, symerror: 0.017} + value: -0.105 + - errors: + - {label: stat, symerror: 0.018} + - {label: sys, symerror: 0.009} + value: -0.045 + - errors: + - {label: stat, symerror: 0.019} + - {label: sys, symerror: 0.005} + value: 0.011 + - errors: + - {label: stat, symerror: 0.016} + - {label: sys, symerror: 0.003} + value: 0.0 +independent_variables: +- header: {name: X} + values: + - {high: 0.04, low: 0.03, value: 0.04} + - {high: 0.06, low: 0.04, value: 0.05} + - {high: 0.1, low: 0.06, value: 0.081} + - {high: 0.15, low: 0.1, value: 0.124} + - {high: 0.2, low: 0.15, value: 0.174} + - {high: 0.3, low: 0.2, value: 0.245} + - {high: 0.4, low: 0.3, value: 0.341} + - {high: 0.6, low: 0.4, value: 0.466} +- header: {name: Q**2, units: GEV**2} + values: + - {value: 1.1} + - {value: 1.2} + - {value: 1.8} + - {value: 2.5} + - {value: 3.1} + - {value: 3.7} + - {value: 4.4} + - {value: 5.5} diff --git a/buildmaster/E142_NC_EN/uncertainties.yaml b/buildmaster/E142_NC_EN/uncertainties.yaml new file mode 100644 index 0000000000..4760a1f17c --- /dev/null +++ b/buildmaster/E142_NC_EN/uncertainties.yaml @@ -0,0 +1,26 @@ +definitions: + stat: + description: statistical uncertainty + treatment: ADD + type: UNCORR + sys: + description: systematic uncertainty + treatment: ADD + type: UNCORR +bins: +- stat: 0.182 + sys: 0.065 +- stat: 0.083 + sys: 0.033 +- stat: 0.044 + sys: 0.025 +- stat: 0.031 + sys: 0.022 +- stat: 0.026 + sys: 0.017 +- stat: 0.018 + sys: 0.009 +- stat: 0.019 + sys: 0.005 +- stat: 0.016 + sys: 0.003 diff --git a/buildmaster/EMC_NC_MUP/data.yaml b/buildmaster/EMC_NC_MUP/data.yaml new file mode 100644 index 0000000000..b861b4d10c --- /dev/null +++ b/buildmaster/EMC_NC_MUP/data.yaml @@ -0,0 +1,11 @@ +data_central: +- 0.279 +- 0.564 +- 0.115 +- 0.254 +- 0.28 +- 0.225 +- 0.311 +- 0.253 +- 0.167 +- 0.094 diff --git a/buildmaster/EMC_NC_MUP/filter.py b/buildmaster/EMC_NC_MUP/filter.py new file mode 100644 index 0000000000..b8848fff8d --- /dev/null +++ b/buildmaster/EMC_NC_MUP/filter.py @@ -0,0 +1,101 @@ +import pandas as pd +import yaml +import numpy as np +import glob + + +def read_data(fnames): + df = pd.DataFrame() + for fname in fnames: + with open(fname, "r") as file: + data = yaml.safe_load(file) + + xsub = data["independent_variables"][0]["values"] + y = 0.0 + Qsub = data["independent_variables"][1]["values"] + Gsub = data["dependent_variables"][0]["values"] + + for i in range(len(Qsub)): + df = pd.concat( + [ + df, + pd.DataFrame( + { + "x": [xsub[i]["value"]], + "y": y, + "Q2": [Qsub[i]["value"]], + "G": [Gsub[i]["value"]], + "stat": [Gsub[i]["errors"][0]["symerror"]], + "sys": [Gsub[i]["errors"][1]["symerror"]], + "sys_norm": [Gsub[i]["errors"][2]["symerror"]] + } + ), + ], + ignore_index=True, + ) + + return df + + +def write_data(df): + data_central = [] + for i in range(len(df["G"])): + data_central.append(float(df.loc[i, "G"])) + + data_central_yaml = {"data_central": data_central} + with open("data.yaml", "w") as file: + yaml.dump(data_central_yaml, file, sort_keys=False) + + # Write kin file + kin = [] + for i in range(len(df["G"])): + kin_value = { + "x": {"min": None, "mid": float(df.loc[i, "x"]), "max": None}, + "Q2": {"min": None, "mid": float(df.loc[i, "Q2"]), "max": None}, + "y": {"min": None, "mid": float(df.loc[i, "y"]), "max": None}, + } + kin.append(kin_value) + + kinematics_yaml = {"bins": kin} + + with open("kinematics.yaml", "w") as file: + yaml.dump(kinematics_yaml, file, sort_keys=False) + + # Write unc file + error = [] + for i in range(len(df)): + e = { + "stat": float(df.loc[i, "stat"]), + "sys": float(df.loc[i, "sys"]), + "sys_norm": float(df.loc[i, "sys_norm"].strip('%'))/100, + } + error.append(e) + + error_definition = { + "stat": { + "description": "statistical uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + "sys": { + "description": "systematic uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + "sys_norm": { + "description": "systematic uncertainty due to errors in polarisation and F2 value", + "treatment": "MUL", + "type": "UNCORR", + }, + } + + uncertainties_yaml = {"definitions": error_definition, "bins": error} + + with open("uncertainties.yaml", "w") as file: + yaml.dump(uncertainties_yaml, file, sort_keys=False) + + +if __name__ == "__main__": + fnames = glob.glob("rawdata/*.yaml") + df = read_data(fnames) + write_data(df) diff --git a/buildmaster/EMC_NC_MUP/kinematics.yaml b/buildmaster/EMC_NC_MUP/kinematics.yaml new file mode 100644 index 0000000000..19209303ab --- /dev/null +++ b/buildmaster/EMC_NC_MUP/kinematics.yaml @@ -0,0 +1,121 @@ +bins: +- x: + min: null + mid: 0.015 + max: null + Q2: + min: null + mid: 3.5 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.025 + max: null + Q2: + min: null + mid: 4.5 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.035 + max: null + Q2: + min: null + mid: 6.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.05 + max: null + Q2: + min: null + mid: 8.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.078 + max: null + Q2: + min: null + mid: 10.3 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.124 + max: null + Q2: + min: null + mid: 12.9 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.175 + max: null + Q2: + min: null + mid: 15.2 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.248 + max: null + Q2: + min: null + mid: 18.0 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.344 + max: null + Q2: + min: null + mid: 22.5 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.466 + max: null + Q2: + min: null + mid: 29.5 + max: null + y: + min: null + mid: 0.0 + max: null diff --git a/buildmaster/EMC_NC_MUP/metadata.yaml b/buildmaster/EMC_NC_MUP/metadata.yaml new file mode 100644 index 0000000000..6930ecbd65 --- /dev/null +++ b/buildmaster/EMC_NC_MUP/metadata.yaml @@ -0,0 +1,55 @@ +# Generalia +setname: "EMC_NC_MUP_G1" + +version: 1 +version_comment: "Initial implementation" + +# References +ScienceDirect: + url: "https://www.sciencedirect.com/science/article/abs/pii/0550321389900898" +iNSPIRE: + url: "https://inspirehep.net/literature/280143" +hepdata: + url: "https://www.hepdata.net/record/ins280143" + version: 1 + +nnpdf_metadata: + nnpdf31_process: "DIS" + experiment: "EMC" + +implemented_observables: + - observable_name: "G1" + observable: + description: "EMC DIS scattering experiment polarized structure function" + label: "$g_1$" + units: "" + process_type: "DIS" + ndata: 10 + tables: [7] + npoints: [10] # number of datapoints in each table + + # Plotting information + plotting: + kinematics_override: dis_sqrt_scale + dataset_label: "EMC (g1)" + plot_x: x + y_label: '$g_{1,N}(x, Q^2)$' + figure_by: + - Q2 + kinematic_coverage: [x, y, Q2] + + kinematics: + variables: + x: {description: "momentum fraction", label: "$x$", units: ""} + Q2: {description: "virtuality", label: "$Q^2$", units: "$GeV^2$"} + y: {description: "inelasticity", label: "$y$", units: ""} + file: kinematics.yaml + + data_central: data.yaml + data_uncertainties: + - uncertainties.yaml + + theory: + FK_tables: + - - EMC_NC_MUP_G1 + operation: 'null' \ No newline at end of file diff --git a/buildmaster/EMC_NC_MUP/rawdata/Table7.yaml b/buildmaster/EMC_NC_MUP/rawdata/Table7.yaml new file mode 100644 index 0000000000..f1bd397f02 --- /dev/null +++ b/buildmaster/EMC_NC_MUP/rawdata/Table7.yaml @@ -0,0 +1,93 @@ +dependent_variables: +- header: {name: G1} + qualifiers: + - {name: RE, value: MU+ P --> MU+ X} + - {name: SQRT(S), units: GeV, value: 13.729-19.393} + - {name: SYS, value: Radiative corrections were made using MO and TSAI procedure + (Rev. Mod. Phys. 41 (1965) 205)} + values: + - errors: + - {label: stat, symerror: 0.361} + - {label: sys, symerror: 0.106} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.279 + - errors: + - {label: stat, symerror: 0.26} + - {label: sys, symerror: 0.08} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.564 + - errors: + - {label: stat, symerror: 0.23} + - {label: sys, symerror: 0.057} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.115 + - errors: + - {label: stat, symerror: 0.146} + - {label: sys, symerror: 0.044} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.254 + - errors: + - {label: stat, symerror: 0.093} + - {label: sys, symerror: 0.036} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.28 + - errors: + - {label: stat, symerror: 0.076} + - {label: sys, symerror: 0.028} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.225 + - errors: + - {label: stat, symerror: 0.072} + - {label: sys, symerror: 0.026} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.311 + - errors: + - {label: stat, symerror: 0.048} + - {label: sys, symerror: 0.019} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.253 + - errors: + - {label: stat, symerror: 0.044} + - {label: sys, symerror: 0.013} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.167 + - errors: + - {label: stat, symerror: 0.025} + - {label: sys, symerror: 0.007} + - {label: 'sys,Normalisation uncertainty due to errors in polarisation and F2 + value', symerror: 14.0%} + value: 0.094 +independent_variables: +- header: {name: X} + values: + - {value: 0.015} + - {value: 0.025} + - {value: 0.035} + - {value: 0.05} + - {value: 0.078} + - {value: 0.124} + - {value: 0.175} + - {value: 0.248} + - {value: 0.344} + - {value: 0.466} +- header: {name: Q2, units: GEV**2} + values: + - {value: 3.5} + - {value: 4.5} + - {value: 6.0} + - {value: 8.0} + - {value: 10.3} + - {value: 12.9} + - {value: 15.2} + - {value: 18.0} + - {value: 22.5} + - {value: 29.5} diff --git a/buildmaster/EMC_NC_MUP/uncertainties.yaml b/buildmaster/EMC_NC_MUP/uncertainties.yaml new file mode 100644 index 0000000000..3d486fb21d --- /dev/null +++ b/buildmaster/EMC_NC_MUP/uncertainties.yaml @@ -0,0 +1,44 @@ +definitions: + stat: + description: statistical uncertainty + treatment: ADD + type: UNCORR + sys: + description: systematic uncertainty + treatment: ADD + type: UNCORR + sys_norm: + description: systematic uncertainty due to errors in polarisation and F2 value + treatment: MUL + type: UNCORR +bins: +- stat: 0.361 + sys: 0.106 + sys_norm: 0.14 +- stat: 0.26 + sys: 0.08 + sys_norm: 0.14 +- stat: 0.23 + sys: 0.057 + sys_norm: 0.14 +- stat: 0.146 + sys: 0.044 + sys_norm: 0.14 +- stat: 0.093 + sys: 0.036 + sys_norm: 0.14 +- stat: 0.076 + sys: 0.028 + sys_norm: 0.14 +- stat: 0.072 + sys: 0.026 + sys_norm: 0.14 +- stat: 0.048 + sys: 0.019 + sys_norm: 0.14 +- stat: 0.044 + sys: 0.013 + sys_norm: 0.14 +- stat: 0.025 + sys: 0.007 + sys_norm: 0.14 diff --git a/buildmaster/SMC_NC_MUD/data.yaml b/buildmaster/SMC_NC_MUD/data.yaml new file mode 100644 index 0000000000..5f2fb824c8 --- /dev/null +++ b/buildmaster/SMC_NC_MUD/data.yaml @@ -0,0 +1,15 @@ +data_central: +- 0.06 +- -0.22 +- 0.13 +- -0.06 +- 0.36 +- -0.16 +- -0.03 +- -0.11 +- -0.07 +- -0.03 +- -0.11 +- -0.17 +- 0.09 +- 0.09 diff --git a/buildmaster/SMC_NC_MUD/filter.py b/buildmaster/SMC_NC_MUD/filter.py new file mode 100644 index 0000000000..f145c782e6 --- /dev/null +++ b/buildmaster/SMC_NC_MUD/filter.py @@ -0,0 +1,104 @@ +import pandas as pd +import yaml +import numpy as np +import glob + + +def read_data(fnames): + df = pd.DataFrame() + for fname in fnames: + with open(fname, "r") as file: + data = yaml.safe_load(file) + + xsub = data["independent_variables"][0]["values"] + Qsub = data["independent_variables"][1]["values"] + ysub = data["independent_variables"][2]["values"] + Gsub = data["dependent_variables"][1]["values"] + + for i in range(len(Qsub)): + try: + xsub[i]["low"] + except NameError: + xsub[i]["low"] = None + try: + xsub[i]["high"] + except NameError: + xsub[i]["high"] = None + df = pd.concat( + [ + df, + pd.DataFrame( + { + "x": [xsub[i]["value"]], + "x_low": [xsub[i]["low"]], + "x_high": [xsub[i]["high"]], + "y": [ysub[i]["value"]], + "Q2": [Qsub[i]["value"]], + "G": [Gsub[i]["value"]], + "stat": [Gsub[i]["errors"][0]["symerror"]], + "sys": [Gsub[i]["errors"][1]["symerror"]], + } + ), + ], + ignore_index=True, + ) + + return df + + +def write_data(df): + data_central = [] + for i in range(len(df["G"])): + data_central.append(float(df.loc[i, "G"])) + + data_central_yaml = {"data_central": data_central} + with open("data.yaml", "w") as file: + yaml.dump(data_central_yaml, file, sort_keys=False) + + # Write kin file + kin = [] + for i in range(len(df["G"])): + kin_value = { + "x": {"min": float(df.loc[i, "x_low"]), "mid": float(df.loc[i, "x"]), "max": float(df.loc[i, "x_high"])}, + "Q2": {"min": None, "mid": float(df.loc[i, "Q2"]), "max": None}, + "y": {"min": None, "mid": float(df.loc[i, "y"]), "max": None}, + } + kin.append(kin_value) + + kinematics_yaml = {"bins": kin} + + with open("kinematics.yaml", "w") as file: + yaml.dump(kinematics_yaml, file, sort_keys=False) + + # Write unc file + error = [] + for i in range(len(df)): + e = { + "stat": float(df.loc[i, "stat"]), + "sys": float(df.loc[i, "sys"]), + } + error.append(e) + + error_definition = { + "stat": { + "description": "statistical uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + "sys": { + "description": "systematic uncertainty", + "treatment": "ADD", + "type": "UNCORR", + }, + } + + uncertainties_yaml = {"definitions": error_definition, "bins": error} + + with open("uncertainties.yaml", "w") as file: + yaml.dump(uncertainties_yaml, file, sort_keys=False) + + +if __name__ == "__main__": + fnames = glob.glob("rawdata/*.yaml") + df = read_data(fnames) + write_data(df) diff --git a/buildmaster/SMC_NC_MUD/kinematics.yaml b/buildmaster/SMC_NC_MUD/kinematics.yaml new file mode 100644 index 0000000000..341aeee131 --- /dev/null +++ b/buildmaster/SMC_NC_MUD/kinematics.yaml @@ -0,0 +1,169 @@ +bins: +- x: + min: 6.3e-05 + mid: 5.2e-05 + max: 4.0e-05 + Q2: + min: null + mid: 0.0068 + max: null + y: + min: null + mid: 0.44 + max: null +- x: + min: 4.0e-05 + mid: 8.1e-05 + max: 0.0001 + Q2: + min: null + mid: 0.012 + max: null + y: + min: null + mid: 0.49 + max: null +- x: + min: 0.0001 + mid: 0.00013 + max: 0.00016 + Q2: + min: null + mid: 0.021 + max: null + y: + min: null + mid: 0.53 + max: null +- x: + min: 0.00016 + mid: 0.0002 + max: 0.00025 + Q2: + min: null + mid: 0.034 + max: null + y: + min: null + mid: 0.56 + max: null +- x: + min: 0.00025 + mid: 0.00032 + max: 0.0004 + Q2: + min: null + mid: 0.054 + max: null + y: + min: null + mid: 0.56 + max: null +- x: + min: 0.0004 + mid: 0.0005 + max: 0.00063 + Q2: + min: null + mid: 0.085 + max: null + y: + min: null + mid: 0.56 + max: null +- x: + min: 0.00063 + mid: 0.00079 + max: 0.001 + Q2: + min: null + mid: 0.13 + max: null + y: + min: null + mid: 0.55 + max: null +- x: + min: 0.001 + mid: 0.0013 + max: 0.0016 + Q2: + min: null + mid: 0.2 + max: null + y: + min: null + mid: 0.54 + max: null +- x: + min: 0.0016 + mid: 0.002 + max: 0.0025 + Q2: + min: null + mid: 0.32 + max: null + y: + min: null + mid: 0.54 + max: null +- x: + min: 0.0025 + mid: 0.0031 + max: 0.004 + Q2: + min: null + mid: 0.5 + max: null + y: + min: null + mid: 0.53 + max: null +- x: + min: 0.004 + mid: 0.0049 + max: 0.0063 + Q2: + min: null + mid: 0.63 + max: null + y: + min: null + mid: 0.43 + max: null +- x: + min: 0.0063 + mid: 0.0077 + max: 0.01 + Q2: + min: null + mid: 0.68 + max: null + y: + min: null + mid: 0.3 + max: null +- x: + min: 0.01 + mid: 0.012 + max: 0.0158 + Q2: + min: null + mid: 0.74 + max: null + y: + min: null + mid: 0.2 + max: null +- x: + min: 0.0158 + mid: 0.019 + max: 0.025 + Q2: + min: null + mid: 0.82 + max: null + y: + min: null + mid: 0.14 + max: null diff --git a/buildmaster/SMC_NC_MUD/metadata.yaml b/buildmaster/SMC_NC_MUD/metadata.yaml new file mode 100644 index 0000000000..0570b17906 --- /dev/null +++ b/buildmaster/SMC_NC_MUD/metadata.yaml @@ -0,0 +1,54 @@ +# Generalia +setname: "SMC_NC_MUD_G1" + +version: 1 +version_comment: "Initial implementation" + +# References +ScienceDirect: + url: "https://www.sciencedirect.com/science/article/pii/S0370269307002419?via%3Dihub" +iNSPIRE: + url: "https://inspirehep.net/literature/742118" +hepdata: + url: "https://www.hepdata.net/record/ins742118" + version: 1 +nnpdf_metadata: + nnpdf31_process: "DIS" + experiment: "SMC" + +implemented_observables: + - observable_name: "G1" + observable: + description: "SMC DIS scattering experiment polarized structure function" + label: "$g_1$" + units: "" + process_type: "DIS" + ndata: 13 + tables: [1] + npoints: [13] # number of datapoints in each table + + # Plotting information + plotting: + kinematics_override: dis_sqrt_scale + dataset_label: "SMC (g1)" + plot_x: x + y_label: '$g_{1,N}(x, Q^2)$' + figure_by: + - Q2 + kinematic_coverage: [x, y, Q2] + + kinematics: + variables: + x: {description: "momentum fraction", label: "$x$", units: ""} + Q2: {description: "virtuality", label: "$Q^2$", units: "$GeV^2$"} + y: {description: "inelasticity", label: "$y$", units: ""} + file: kinematics.yaml + + data_central: data.yaml + data_uncertainties: + - uncertainties.yaml + + theory: + FK_tables: + - - SMC_NC_MUD_G1 + operation: 'null' \ No newline at end of file diff --git a/buildmaster/SMC_NC_MUD/rawdata/Table1.yaml b/buildmaster/SMC_NC_MUD/rawdata/Table1.yaml new file mode 100644 index 0000000000..d4a349e4d7 --- /dev/null +++ b/buildmaster/SMC_NC_MUD/rawdata/Table1.yaml @@ -0,0 +1,172 @@ +dependent_variables: + - header: { name: A1 } + qualifiers: + - { name: PLAB, units: GEV, value: 160 (BIN=140 TO 180) } + - { name: RE, value: MU+ DEUT --> MU+ X } + values: + - errors: + - { label: stat, symerror: 0.0036 } + - { label: sys, symerror: 0.0034 } + value: 0.0008 + - errors: + - { label: stat, symerror: 0.0027 } + - { label: sys, symerror: 0.0017 } + value: -0.0027 + - errors: + - { label: stat, symerror: 0.0023 } + - { label: sys, symerror: 0.0014 } + value: 0.0015 + - errors: + - { label: stat, symerror: 0.0022 } + - { label: sys, symerror: 0.0015 } + value: -0.0007 + - errors: + - { label: stat, symerror: 0.0022 } + - { label: sys, symerror: 0.0017 } + value: 0.0045 + - errors: + - { label: stat, symerror: 0.0023 } + - { label: sys, symerror: 0.0013 } + value: -0.0022 + - errors: + - { label: stat, symerror: 0.0025 } + - { label: sys, symerror: 0.0015 } + value: -0.0005 + - errors: + - { label: stat, symerror: 0.0029 } + - { label: sys, symerror: 0.0022 } + value: -0.0035 + - errors: + - { label: stat, symerror: 0.0035 } + - { label: sys, symerror: 0.0025 } + value: -0.0023 + - errors: + - { label: stat, symerror: 0.0043 } + - { label: sys, symerror: 0.0034 } + value: -0.0013 + - errors: + - { label: stat, symerror: 0.0061 } + - { label: sys, symerror: 0.0033 } + value: -0.0069 + - errors: + - { label: stat, symerror: 0.01 } + - { label: sys, symerror: 0.008 } + value: -0.016 + - errors: + - { label: stat, symerror: 0.019 } + - { label: sys, symerror: 0.012 } + value: 0.013 + - errors: + - { label: stat, symerror: 0.04 } + - { label: sys, symerror: 0.019 } + value: 0.019 + - header: { name: G1 } + qualifiers: + - { name: PLAB, units: GEV, value: 160 (BIN=140 TO 180) } + - { name: RE, value: MU+ DEUT --> MU+ X } + values: + - errors: + - { label: stat, symerror: 0.27 } + - { label: sys, symerror: 0.26 } + value: 0.06 + - errors: + - { label: stat, symerror: 0.23 } + - { label: sys, symerror: 0.14 } + value: -0.22 + - errors: + - { label: stat, symerror: 0.21 } + - { label: sys, symerror: 0.12 } + value: 0.13 + - errors: + - { label: stat, symerror: 0.19 } + - { label: sys, symerror: 0.13 } + value: -0.06 + - errors: + - { label: stat, symerror: 0.18 } + - { label: sys, symerror: 0.14 } + value: 0.36 + - errors: + - { label: stat, symerror: 0.17 } + - { label: sys, symerror: 0.09 } + value: -0.16 + - errors: + - { label: stat, symerror: 0.16 } + - { label: sys, symerror: 0.09 } + value: -0.03 + - errors: + - { label: stat, symerror: 0.09 } + - { label: sys, symerror: 0.09 } + value: -0.11 + - errors: + - { label: stat, symerror: 0.1 } + - { label: sys, symerror: 0.07 } + value: -0.07 + - errors: + - { label: stat, symerror: 0.1 } + - { label: sys, symerror: 0.08 } + value: -0.03 + - errors: + - { label: stat, symerror: 0.1 } + - { label: sys, symerror: 0.06 } + value: -0.11 + - errors: + - { label: stat, symerror: 0.11 } + - { label: sys, symerror: 0.09 } + value: -0.17 + - errors: + - { label: stat, symerror: 0.13 } + - { label: sys, symerror: 0.09 } + value: 0.09 + - errors: + - { label: stat, symerror: 0.2 } + - { label: sys, symerror: 0.09 } + value: 0.09 +independent_variables: + - header: { name: X } + values: + - { high: 4.0e-05, low: 6.3e-05, value: 5.2e-05 } + - { high: 0.0001, low: 4.0e-05, value: 8.1e-05 } + - { high: 0.00016, low: 0.0001, value: 0.00013 } + - { high: 0.00025, low: 0.00016, value: 0.0002 } + - { high: 0.0004, low: 0.00025, value: 0.00032 } + - { high: 0.00063, low: 0.0004, value: 0.0005 } + - { high: 0.001, low: 0.00063, value: 0.00079 } + - { high: 0.0016, low: 0.001, value: 0.0013 } + - { high: 0.0025, low: 0.0016, value: 0.002 } + - { high: 0.004, low: 0.0025, value: 0.0031 } + - { high: 0.0063, low: 0.004, value: 0.0049 } + - { high: 0.01, low: 0.0063, value: 0.0077 } + - { high: 0.0158, low: 0.01, value: 0.012 } + - { high: 0.025, low: 0.0158, value: 0.019 } + - header: { name: MEAN(NAME=Q**2), units: GEV**2 } + values: + - { value: 0.0068 } + - { value: 0.012 } + - { value: 0.021 } + - { value: 0.034 } + - { value: 0.054 } + - { value: 0.085 } + - { value: 0.13 } + - { value: 0.2 } + - { value: 0.32 } + - { value: 0.5 } + - { value: 0.63 } + - { value: 0.68 } + - { value: 0.74 } + - { value: 0.82 } + - header: { name: MEAN(NAME=Y) } + values: + - { value: 0.44 } + - { value: 0.49 } + - { value: 0.53 } + - { value: 0.56 } + - { value: 0.56 } + - { value: 0.56 } + - { value: 0.55 } + - { value: 0.54 } + - { value: 0.54 } + - { value: 0.53 } + - { value: 0.43 } + - { value: 0.3 } + - { value: 0.2 } + - { value: 0.14 } diff --git a/buildmaster/SMC_NC_MUD/uncertainties.yaml b/buildmaster/SMC_NC_MUD/uncertainties.yaml new file mode 100644 index 0000000000..bdf870db26 --- /dev/null +++ b/buildmaster/SMC_NC_MUD/uncertainties.yaml @@ -0,0 +1,38 @@ +definitions: + stat: + description: statistical uncertainty + treatment: ADD + type: UNCORR + sys: + description: systematic uncertainty + treatment: ADD + type: UNCORR +bins: +- stat: 0.27 + sys: 0.26 +- stat: 0.23 + sys: 0.14 +- stat: 0.21 + sys: 0.12 +- stat: 0.19 + sys: 0.13 +- stat: 0.18 + sys: 0.14 +- stat: 0.17 + sys: 0.09 +- stat: 0.16 + sys: 0.09 +- stat: 0.09 + sys: 0.09 +- stat: 0.1 + sys: 0.07 +- stat: 0.1 + sys: 0.08 +- stat: 0.1 + sys: 0.06 +- stat: 0.11 + sys: 0.09 +- stat: 0.13 + sys: 0.09 +- stat: 0.2 + sys: 0.09