def crossSections(opts, tabname, label): bffilename = 'bf_stat_sys' bffile = tools.set_file( extbase=attr.brfpath, prefix='dir_'+label, comname=bffilename) brf = BrfFile(bffile) tab = THSTable() tab.row_append(['Quantity', 'Value']) names = ['sigma(D0D0bar)', 'sigma(D+D-)', 'sigma(DDbar)', 'chg/neu'] for name in names: row = [name, brf.parsed[name]] if name == 'chg/neu': tab.row_append(row, rnd='.001') else: name = row[0] value = row[1] value = tab.cell_trim( cell=value, factor=0.001, rnd='.001', opt='(cell){~\\rm nb}') row = [name, value] tab.row_append(row) tab.output(tabname, trans_dict=attr.cross_sections_dict) sys.stdout.write('%s\n' % brf.parsed['coeff_ddbar'])
def fitResultsMC(opts, tabname, label): bffilename = 'bf_stat' bffile = tools.set_file( extbase=attr.brfpath, prefix='dir_'+label, comname=bffilename) if '281ipbv0' in label and '/generic' in label: generated = attr.Generic281v0_NBF power = '10E6' factor = 0.000001 else: raise NameError(label) tab = THSTable() tab.column_append(parse_result(bffile, 'paras'), 'Parameters') tab.column_append(generated, 'Input value') tab.column_append(parse_result(bffile, 'value_err'), 'Fitted value') tab.column_append_by_diff_sigma('Difference', 'Fitted value', 'Input value') tab.column_trim('Fitted value', row=['ND0D0Bar', 'ND+D-'], rnd='.001', factor=factor, opt='(cell)x%s' %power) tab.column_trim('Fitted value', rnd='.00001', except_row=['ND0D0Bar', 'ND+D-']) tab.column_append(parse_result(bffile, 'err_frac'), 'Frac. Err', rnd='.1', opt='~(cell%)') tab.columns_join('Fitted value','Fitted value','Frac. Err', str=' ') tab.column_trim('Input value', row=['ND0D0Bar', 'ND+D-'], rnd='.001', factor=factor, opt='cellx%s'%power) tab.output(tabname, trans_dict=attr.NBF_dict) diff_from_seeds = 'chisq 13.5813 ndof 11 prob 0.257036' sys.stdout.write('%s\n' %diff_from_seeds) sys.exit() chisq = tab.cell_get_by_square_sum(column='Difference') ndof = 11 from ROOT import TMath prob = TMath.Prob(float(chisq), ndof) prob = tab.cell_trim(prob, rnd='.1', factor=100) sys.stdout.write('Chisq is %s for %s d.o.f, Prob = %s%% \n' % ( chisq, ndof, prob))