Example #1
0
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'])
Example #2
0
]
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
]
Example #3
0
  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)
Example #4
0
    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)