-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2071 from NNPDF/ATLAS_RAP_8TEV_data
ATLAS lepton rapidity 8 TeV data
- Loading branch information
Showing
8 changed files
with
508 additions
and
0 deletions.
There are no files selected for viewing
8 changes: 8 additions & 0 deletions
8
nnpdf_data/nnpdf_data/new_commondata/ATLAS_Z0_8TEV_ZMASS/data.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
data_central: | ||
- 353.152 | ||
- 345.985 | ||
- 336.195 | ||
- 322.483 | ||
- 303.973 | ||
- 273.198 | ||
- 173.171 |
91 changes: 91 additions & 0 deletions
91
nnpdf_data/nnpdf_data/new_commondata/ATLAS_Z0_8TEV_ZMASS/filter.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
|
||
import yaml | ||
import numpy as np | ||
|
||
from filter_utils import get_kinematics, get_data_values, get_systematics | ||
|
||
|
||
def filter_ATLAS_Z0_8TEV_data_kinetic(): | ||
""" | ||
writes data central values and kinematics | ||
to respective .yaml file | ||
""" | ||
kin = get_kinematics() | ||
central_values = get_data_values() | ||
|
||
data_central_yaml = {"data_central": central_values} | ||
kinematics_yaml = {"bins": kin} | ||
|
||
# write central values and kinematics to yaml file | ||
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) | ||
|
||
|
||
def filter_ATLAS_Z0_8TEV_uncertainties(): | ||
""" | ||
writes uncertainties to respective .yaml file | ||
""" | ||
systematics = get_systematics() | ||
|
||
# load correlation matrix from .txt file | ||
corr_matrix = np.loadtxt("rawdata/zy.txt") | ||
|
||
# generate covariance matrix from correlation matrix | ||
tot_systematics = np.array([syst[0]['value'] for syst in systematics['tot']]) | ||
|
||
# TODO: this should be done with utils.correlation_to_covariance once that is merged in master | ||
cov_matrix_no_lumi = np.outer(tot_systematics, tot_systematics) * corr_matrix | ||
|
||
# add lumi uncertainty | ||
lumi_unc = np.array([syst[0]['value'] for syst in systematics['lumi']]) | ||
lumi_cov = lumi_unc[:, None] @ lumi_unc[:, None].T | ||
|
||
# add covariances | ||
cov_matrix = cov_matrix_no_lumi + lumi_cov | ||
|
||
# compute decomposition of covariance matrix so as to get artificial systematics | ||
# TODO: use utils once merged in master | ||
lamb, mat = np.linalg.eig(cov_matrix) | ||
art_sys = np.multiply(np.sqrt(lamb), mat) | ||
|
||
uncertainties = [] | ||
|
||
for i, unc in enumerate(art_sys.T): | ||
|
||
name = f"artificial_uncertainty_{i+1}" | ||
values = [unc[i] for i in range(len(unc))] | ||
uncertainties.append([{"name": name, "values": values}]) | ||
|
||
# error definition | ||
error_definitions = {} | ||
errors = [] | ||
|
||
for sys in uncertainties: | ||
|
||
error_definitions[sys[0]['name']] = { | ||
"description": f"{sys[0]['name']}", | ||
"treatment": "ADD", | ||
"type": "CORR", | ||
} | ||
|
||
for i in range(cov_matrix.shape[0]): | ||
error_value = {} | ||
|
||
for sys in uncertainties: | ||
error_value[sys[0]['name']] = float(sys[0]['values'][i]) | ||
|
||
errors.append(error_value) | ||
|
||
uncertainties_yaml = {"definitions": error_definitions, "bins": errors} | ||
|
||
# write uncertainties | ||
with open(f"uncertainties.yaml", 'w') as file: | ||
yaml.dump(uncertainties_yaml, file, sort_keys=False) | ||
|
||
|
||
if __name__ == "__main__": | ||
filter_ATLAS_Z0_8TEV_data_kinetic() | ||
filter_ATLAS_Z0_8TEV_uncertainties() |
108 changes: 108 additions & 0 deletions
108
nnpdf_data/nnpdf_data/new_commondata/ATLAS_Z0_8TEV_ZMASS/filter_utils.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
import yaml | ||
|
||
|
||
def get_kinematics(): | ||
""" | ||
returns the relevant kinematics values. | ||
Parameters | ||
---------- | ||
table : list | ||
version : int | ||
integer read from metadata.yaml that | ||
indicated the version of the hepdata | ||
tables | ||
Returns | ||
------- | ||
list | ||
list containing the kinematic values for all | ||
hepdata tables | ||
""" | ||
kin = [] | ||
|
||
hepdata_table = f"rawdata/HEPData-ins2698794-v1-Table_9.yaml" | ||
|
||
with open(hepdata_table, 'r') as file: | ||
input = yaml.safe_load(file) | ||
|
||
for yll in input["independent_variables"][0]['values']: | ||
kin_value = { | ||
'y': { | ||
'min': yll['low'], | ||
'mid': 0.5 * (yll['low'] + yll['high']), | ||
'max': yll['high'], | ||
}, | ||
'm_Z2': {'min': None, 'mid': 8317.44, 'max': None}, | ||
'sqrts': {'min': None, 'mid': 8000.0, 'max': None}, | ||
} | ||
|
||
kin.append(kin_value) | ||
|
||
return kin | ||
|
||
|
||
def get_data_values(): | ||
""" | ||
returns the central data. | ||
Parameters | ||
---------- | ||
tables : list | ||
list that enumerates the table number | ||
version : int | ||
integer read from metadata.yaml that | ||
indicated the version of the hepdata | ||
tables | ||
Returns | ||
------- | ||
list | ||
list containing the central values for all | ||
hepdata tables | ||
""" | ||
|
||
data_central = [] | ||
|
||
hepdata_table = f"rawdata/HEPData-ins2698794-v1-Table_9.yaml" | ||
|
||
with open(hepdata_table, 'r') as file: | ||
input = yaml.safe_load(file) | ||
|
||
values = input['dependent_variables'][0]['values'] | ||
|
||
for value in values: | ||
data_central.append(value['value']) | ||
|
||
return data_central | ||
|
||
|
||
def get_systematics(): | ||
""" """ | ||
tot_uncertainties = [] | ||
lumi_uncertainties = [] | ||
|
||
hepdata_table = f"rawdata/HEPData-ins2698794-v1-Table_9.yaml" | ||
|
||
with open(hepdata_table, 'r') as file: | ||
input = yaml.safe_load(file) | ||
|
||
dependent_vars = input['dependent_variables'][0] | ||
|
||
# skip 1st entry as these are central data values | ||
for err_values in dependent_vars['values']: | ||
|
||
tot_uncertainties.append( | ||
[ | ||
{ | ||
"name": err_values['errors'][0]['label'], | ||
"value": err_values['errors'][0]['symerror'], | ||
} | ||
] | ||
) | ||
lumi_uncertainties.append( | ||
[ | ||
{ | ||
"name": err_values['errors'][1]['label'], | ||
"value": err_values['errors'][1]['symerror'], | ||
} | ||
] | ||
) | ||
|
||
return {'tot': tot_uncertainties, 'lumi': lumi_uncertainties} |
85 changes: 85 additions & 0 deletions
85
nnpdf_data/nnpdf_data/new_commondata/ATLAS_Z0_8TEV_ZMASS/kinematics.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
bins: | ||
- y: | ||
min: 0.4 | ||
mid: 0.6000000000000001 | ||
max: 0.8 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null | ||
- y: | ||
min: 0.8 | ||
mid: 1.0 | ||
max: 1.2 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null | ||
- y: | ||
min: 1.2 | ||
mid: 1.4 | ||
max: 1.6 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null | ||
- y: | ||
min: 1.6 | ||
mid: 1.8 | ||
max: 2 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null | ||
- y: | ||
min: 2 | ||
mid: 2.2 | ||
max: 2.4 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null | ||
- y: | ||
min: 2.4 | ||
mid: 2.5999999999999996 | ||
max: 2.8 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null | ||
- y: | ||
min: 2.8 | ||
mid: 3.2 | ||
max: 3.6 | ||
m_Z2: | ||
min: null | ||
mid: 8317.44 | ||
max: null | ||
sqrts: | ||
min: null | ||
mid: 8000.0 | ||
max: null |
59 changes: 59 additions & 0 deletions
59
nnpdf_data/nnpdf_data/new_commondata/ATLAS_Z0_8TEV_ZMASS/metadata.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Generalia | ||
setname: "ATLAS_Z0_8TEV_ZMASS" | ||
|
||
version: 1 | ||
|
||
version_comment: "Initial implementation" | ||
|
||
# References | ||
arXiv: | ||
url: "https://arxiv.org/pdf/2309.09318" | ||
iNSPIRE: | ||
url: "https://inspirehep.net/literature/2698794" | ||
hepdata: | ||
url: "https://www.hepdata.net/record/149333" | ||
version: 1 | ||
|
||
nnpdf_metadata: | ||
nnpdf31_process: "DY NC" | ||
experiment: "ATLAS" | ||
|
||
|
||
implemented_observables: | ||
|
||
- observable_name: "LL" | ||
observable: | ||
description: "ATLAS 8 TeV, Z boson rapidity distribution in full phase space of decay leptons" | ||
label: r"$d\\sigma/d|\|y_{ll}||$" | ||
units: "[pb]" | ||
|
||
ndata: 7 | ||
|
||
tables: [9] | ||
process_type: DY_Z_Y | ||
|
||
plotting: | ||
dataset_label: 'ATLAS 8 TeV $Z \to l^+ l^-$, absolute rapidity' | ||
kinematics_override: identity | ||
x_scale: linear | ||
plot_x: y | ||
|
||
kinematic_coverage: [y, m_Z2, sqrts] | ||
|
||
kinematics: | ||
variables: | ||
y: {description: "Z > l+ l- absolute rapidity", label: '$|y_{ll}|$', units: ""} | ||
m_Z2: {description: "Z boson mass squared", label: '$M_Z^2$', units: "GeV"} | ||
sqrts: {description: "center of mass energy", label: '$\sqrt(s)$', units: "GeV"} | ||
file: kinematics.yaml | ||
|
||
# Data | ||
data_central: data.yaml | ||
data_uncertainties: | ||
- uncertainties.yaml | ||
|
||
# Theory | ||
theory: | ||
FK_tables: | ||
- - ATLAS_Z0_8TEV_ZMASS | ||
operation: 'null' |
Oops, something went wrong.