diff --git a/extras/data/E155/e155_g1f1.yaml b/extras/data/E155/e155_g1f1.yaml new file mode 100644 index 00000000..bb5e4aee --- /dev/null +++ b/extras/data/E155/e155_g1f1.yaml @@ -0,0 +1,289 @@ +bins: +- x: + min: null + mid: 0.015 + max: null + Q2: + min: null + mid: 1.22 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.5 + max: null + Q2: + min: null + mid: 5.77 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.5 + max: null + Q2: + min: null + mid: 14.02 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.5 + max: null + Q2: + min: null + mid: 26.86 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.75 + max: null + Q2: + min: null + mid: 15.7 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.75 + max: null + Q2: + min: null + mid: 34.72 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.025 + max: null + Q2: + min: null + mid: 1.59 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.035 + max: null + Q2: + min: null + mid: 2.05 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.05 + max: null + Q2: + min: null + mid: 2.58 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.05 + max: null + Q2: + min: null + mid: 4.01 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.08 + max: null + Q2: + min: null + mid: 3.24 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.08 + max: null + Q2: + min: null + mid: 5.36 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.125 + max: null + Q2: + min: null + mid: 4.03 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.125 + max: null + Q2: + min: null + mid: 7.17 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.125 + max: null + Q2: + min: null + mid: 10.99 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.175 + max: null + Q2: + min: null + mid: 4.62 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.175 + max: null + Q2: + min: null + mid: 8.9 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.175 + max: null + Q2: + min: null + mid: 13.19 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.25 + max: null + Q2: + min: null + mid: 5.06 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.25 + max: null + Q2: + min: null + mid: 10.64 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.25 + max: null + Q2: + min: null + mid: 17.21 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.35 + max: null + Q2: + min: null + mid: 5.51 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.35 + max: null + Q2: + min: null + mid: 12.6 + max: null + y: + min: null + mid: 0.0 + max: null +- x: + min: null + mid: 0.35 + max: null + Q2: + min: null + mid: 22.73 + max: null + y: + min: null + mid: 0.0 + max: null diff --git a/extras/data/E155/metadata.yaml b/extras/data/E155/metadata.yaml new file mode 100644 index 00000000..517f5d87 --- /dev/null +++ b/extras/data/E155/metadata.yaml @@ -0,0 +1,5 @@ +E155_NC_9GEV_EP_G1F1RATIO: + description: Measurements with Polarised electron-proton beams + nnpdf_id: E155 + y_label: A1 + y_label_tex: $g_1 / F_1$ diff --git a/extras/data/machinery/generate/E155.py b/extras/data/machinery/generate/E155.py new file mode 100644 index 00000000..bf8cd14c --- /dev/null +++ b/extras/data/machinery/generate/E155.py @@ -0,0 +1,38 @@ +from .utils import load, obs_template + + +def dump(src_path, _target): + """Generate the input card for E155 measurements. + + Parameters + ---------- + src_path : str + input path + + Returns + ------- + dict + observables dictionary, corresponding to the runcard + + """ + obs = obs_template.copy() + data = load(src_path, 0, ["x", "Q2"]) + dict_kins = [ + dict(x=d["x"]["mid"], y=d["y"]["mid"], Q2=d["Q2"]["mid"]) + for d in data + ] + + # Details regarding the observables + obs["prDIS"] = "NC" + obs["ProjectileDIS"] = "electron" + obs["PolarizationDIS"] = 1.0 + obs["TargetDIS"] = "proton" + obs["observables"] = {"g1_total": dict_kins} + + return obs + + +# renaming +new_names = { + "e155_g1f1": "E155_NC_9GEV_EP_G1F1RATIO", +} diff --git a/extras/data/machinery/generate/__init__.py b/extras/data/machinery/generate/__init__.py index cc38f022..4807e9a9 100644 --- a/extras/data/machinery/generate/__init__.py +++ b/extras/data/machinery/generate/__init__.py @@ -1,8 +1,8 @@ -from . import BCDMS, CHORUS, HERA, NMC, NUTEV, POS, SLAC, utils +from . import BCDMS, CHORUS, E155, HERA, NMC, NUTEV, POS, SLAC, utils exps = { getattr(m, "__name__").rsplit(".", maxsplit=1)[-1]: m - for m in [BCDMS, CHORUS, HERA, NMC, NUTEV, POS, SLAC] + for m in [BCDMS, CHORUS, E155, HERA, NMC, NUTEV, POS, SLAC] } diff --git a/extras/data/machinery/generate/utils.py b/extras/data/machinery/generate/utils.py index 19987d70..60e3150d 100644 --- a/extras/data/machinery/generate/utils.py +++ b/extras/data/machinery/generate/utils.py @@ -28,6 +28,10 @@ def load(path, skiprows, fields): list(dict) list of datapoints """ + if path.suffix == ".yaml": + infile = yaml.safe_load(path.read_text()) + return infile["bins"] + data = np.loadtxt(path, skiprows=skiprows) data = data[:, : len(fields)] return [dict(zip(fields, d.tolist())) for d in data]