sub.add_link('arXiv', 'https://arxiv.org/abs/%s' % arxiv) sub.add_link('CDS', 'https://cds.cern.ch/record/%s' % cds) sub.add_link('DOI', 'https://doi.org/%s' % doi) sub.add_record_id(inspire, 'inspire') #### f = fig002 t = f.tables['a'] add_variable(t, hepdata.Variable('$d_{VV}$', is_independent=True, is_binned=True, units='mm'), f.reps['a']['x_edges']) for signame in signames: o = f.objs['a'][signame] v = hepdata.Variable(r'Predicted multijet signal yield, $c\tau = %s~\textrm{mm}$, $m = 800~\textrm{GeV}$, $\sigma = 1~\textrm{fb}$' % nicesigname[signame], is_independent=False, is_binned=False) u = hepdata.Uncertainty('Statistical (~sqrt(n_generated))') add_variable(t, v, o['y'], [(u, o['dy'])]) sub.add_table(t) #### f = fig003 for subfig in 'ab': o = f.reps[subfig] t = f.tables[subfig] t.location += ' (%s plot)' % {'a': 'upper', 'b': 'lower'}[subfig] particle = {'a': r'\tilde{\chi}^{0} / \tilde{g}', 'b': r'\tilde{t}'}[subfig] add_variable(t, hepdata.Variable(r'$m_{%s}$' % particle, is_independent=True, is_binned=False, units='GeV'), o['x']) add_variable(t, hepdata.Variable(r'$c\tau_{%s}$' % particle, is_independent=True, is_binned=False, units='mm'), o['y'])
] table.add_variable(x) y = hepdata_lib.Variable('y', is_independent=False, is_binned=False, units='GeV') y.values = [ 0.051528779333327564, 1.6546832058356766, 6.320493448437572, 3.6741550071911946, 2.2145138336614534, 1.520367789083682, 1.2488500519692582, 0.866646224820301, 0.8382429211482135, 0.7893714421512917, 0.7696185170346984 ] table.add_variable(y) yerr1 = hepdata_lib.Uncertainty('err1', is_symmetric=True) yerr1.values = [ 0.021099959427066828, 0.15962100141035176, 0.3694098739929236, 0.2663855349397847, 0.16382789804566147, 0.1589536500131101, 0.13023012060144698, 0.10656990869338458, 0.11757103350238172, 0.09700799171590394, 0.10694129311692076 ] y.add_uncertainty(yerr1) yerr2 = hepdata_lib.Uncertainty('err2', is_symmetric=True) yerr2.values = [ 13.496569905975372, 3.5963862583510835, 1.3764269292639162, 2.1596102403742337, 1.134859741048597, 0.9572467734877419, 3.295904153818115, 3.4138799690957224, 1.696395158770446, 3.905857923961752, 3.4993529618066215 ]
def add_hepdata_table(self, i, jetR, obs_label, obs_setting, grooming_setting, min_pt, max_pt): index = self.set_hepdata_table_index(i, jetR, min_pt) table = hepdata_lib.Table(f'Table {index}') table.keywords["reactions"] = ['P P --> jet+X'] table.keywords["cmenergies"] = ['5020'] # Set observable-specific info in table x_label, y_label = self.set_hepdata_table_descriptors(table, jetR, obs_label, obs_setting, grooming_setting, min_pt, max_pt) # Create readers to read histograms final_result_root_filename = os.path.join(getattr(self, 'output_dir_final_results'), 'fFinalResults.root') hepdata_reader = hepdata_lib.RootFileReader(final_result_root_filename) systematics_root_filename = os.path.join(self.output_dir_systematics, 'fSystematics.root') hepdata_reader_systematics = hepdata_lib.RootFileReader(systematics_root_filename) # Define variables h_name = 'hmain_{}_R{}_{}_{}-{}'.format(self.observable, jetR, obs_label, min_pt, max_pt) if self.observable == 'ang': h_name += '_trunc' h = hepdata_reader.read_hist_1d(h_name) n_significant_digits = 3 # Note: use 2 significant digits for uncertainties x = hepdata_lib.Variable(x_label, is_independent=True, is_binned=True, units='') x.digits = n_significant_digits x.values = h['x_edges'] y = hepdata_lib.Variable(y_label, is_independent=False, is_binned=False, units='') y.digits = n_significant_digits y.values = h['y'] if self.is_pp: y.add_qualifier('RE', 'P P --> jet+X') else: y.add_qualifier('RE', 'Pb Pb --> jet+X') y.add_qualifier('SQRT(S)', 5.02, 'TeV') y.add_qualifier('ETARAP', '|0.9-R|') y.add_qualifier('jet radius', jetR) y.add_qualifier('jet method', 'Anti-$k_{T}$') # Define uncertainties stat = hepdata_lib.Uncertainty('stat', is_symmetric=True) stat.values = [float('{:.2g}'.format(dy)) for dy in h['dy']] # Add tables to submission table.add_variable(x) table.add_variable(y) y.add_uncertainty(stat) # Add unfolding systematic name = 'hSystematic_Unfolding_R{}_{}_{}-{}'.format(self.utils.remove_periods(jetR), obs_label, int(min_pt), int(max_pt)) h_sys_unfolding = hepdata_reader_systematics.read_hist_1d(getattr(self, name).GetName()) sys_unfolding = hepdata_lib.Uncertainty('sys,unfolding', is_symmetric=True) sys_unfolding.values = ['{:.2g}%'.format(y) for y in h_sys_unfolding['y']] y.add_uncertainty(sys_unfolding) # Add systematic uncertainty breakdown for systematic in self.systematics_list: if systematic in ['main', 'prior1', 'truncation', 'binning']: continue h_sys = self.retrieve_systematic(systematic, jetR, obs_label, None, min_pt, max_pt) if not h_sys: continue if 'generator' in systematic: sys_label = 'generator' else: sys_label = systematic h_sys = hepdata_reader_systematics.read_hist_1d(h_sys.GetName()) sys = hepdata_lib.Uncertainty('sys,{}'.format(sys_label), is_symmetric=True) sys.values = ['{:.2g}%'.format(y) for y in h_sys['y']] y.add_uncertainty(sys) # Add table to the submission self.hepdata_submission.add_table(table)
def add_hepdata_table(self, is_pp=False, is_ratio=False): result_index = self.set_hepdata_table_index() if is_ratio: h = self.h_ratio h_sys = self.h_ratio_sys index = 3*result_index elif is_pp: h = self.h_main_pp h_sys = self.h_sys_pp index = 3*result_index-2 else: h = self.h_main_AA h_sys = self.h_sys_AA index = 3*result_index-1 table = hepdata_lib.Table(f'Table {index}') if is_ratio: table.keywords["reactions"] = ['P P --> jet+X, Pb Pb --> jet+X'] elif is_pp: table.keywords["reactions"] = ['P P --> jet+X'] else: table.keywords["reactions"] = ['Pb Pb --> jet+X'] table.keywords["cmenergies"] = ['5020'] # Set observable-specific info in table x_label, y_label = self.set_hepdata_table_descriptors(table, result_index, is_pp, is_ratio) # Define variables h = hepdata_lib.root_utils.get_hist_1d_points(h) n_significant_digits = 3 # Note: use 2 significant digits for uncertainties x = hepdata_lib.Variable(x_label, is_independent=True, is_binned=True, units='') x.digits = n_significant_digits x.values = h['x_edges'] y = hepdata_lib.Variable(y_label, is_independent=False, is_binned=False, units='') y.digits = n_significant_digits y.values = h['y'] if is_ratio: y.add_qualifier('RE', 'P P --> jet+X, Pb Pb --> jet+X') y.add_qualifier('CENTRALITY', str(self.centrality)) elif is_pp: y.add_qualifier('RE', 'P P --> jet+X') else: y.add_qualifier('RE', 'Pb Pb --> jet+X') y.add_qualifier('CENTRALITY', str(self.centrality)) y.add_qualifier('SQRT(S)', 5.02, 'TeV') y.add_qualifier('ETARAP', '|0.9-R|') y.add_qualifier('jet radius', self.jetR) y.add_qualifier('jet method', 'Anti-$k_{T}$') # Define uncertainties stat = hepdata_lib.Uncertainty('stat', is_symmetric=True) stat.values = [float('{:.2g}'.format(dy)) for dy in h['dy']] # Add tables to submission table.add_variable(x) table.add_variable(y) y.add_uncertainty(stat) # Add unfolding systematic if self.centrality == [0,10]: h_sys = hepdata_lib.root_utils.get_hist_1d_points(h_sys) sys = hepdata_lib.Uncertainty('sys', is_symmetric=True) sys.values = [float('{:.2g}'.format(dy)) for dy in h_sys['dy']] elif self.centrality == [30,50]: h_sys = hepdata_lib.root_utils.get_graph_points(h_sys) sys = hepdata_lib.Uncertainty('sys', is_symmetric=False) sys.values = [(float('{:.2g}'.format(dy[0])), float('{:.2g}'.format(dy[1]))) for dy in h_sys['dy']] y.add_uncertainty(sys) # Add table to the submission self.hepdata_submission.add_table(table)