def files(args): if args[0].startswith('/'): dira = args[0] else: dira = os.path.join(attr.base, args[0]) if args[1].startswith('/'): dirb = args[1] else: dirb = os.path.join(attr.base, args[1]) d = filecmp.dircmp(dira, dirb) sys.stdout.write('There are %s different files. \n' % len(d.diff_files)) tab = DHadTable() tab.row_append(['FileName', 'A', 'B']) for f in d.diff_files: filea = os.path.join(dira, f) fileb = os.path.join(dirb, f) tab.row_append_from_files(f, [filea, fileb]) tab.output_org()
def events(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label_A = parsed[3] label_B = args[3] datpath = attr.datpath tab = DHadTable() tab.row_append(['Mode', label_A, label_B, 'Common', 'Unique(%s)' %label_A, 'Unique(%s)' %label_B ]) tab.head = tab.data[0] for mode in modes: modename = mode.replace('Single_', '') evtname = datatype + '_' + mode + '.evt' evtpath_A = os.path.join(datpath, 'evt', label_A, 'events') evtfile_A = os.path.join(evtpath_A, evtname) f_A = UserFile(evtfile_A) events_A = Set(f_A.data) evtpath_B = os.path.join(datpath, 'evt', label_B, 'events') evtfile_B = os.path.join(evtpath_B, evtname) f_B = UserFile(evtfile_B) events_B = Set(f_B.data) events_inter = events_A & events_B entries_A = len(events_A) entries_B = len(events_B) common = len(events_inter) unique_A = len(events_A - events_inter) unique_B = len(events_B - events_inter) row = [modename, entries_A, entries_B, common, unique_A, unique_B] tab.row_append(map(str, row)) tab.output(_tabname)
def entries(args): dt_type = args[0] tag = args[1] label_A = args[2] label_B = args[3] evtpath = attr.evtpath rnd='.01' err_type=None label = None diff = 'pct' tab = DHadTable() tab.row_append(['Mode', label_A, label_B]) tab.head = tab.data[0] for mode in attr.modes: for sign in [1, -1]: evtfile_A = tools.set_file('evt', dt_type, mode, tag, sign=sign, prefix='dir_'+label_A, extbase=evtpath) evtfile_B = tools.set_file('evt', dt_type, mode, tag, sign=sign, prefix='dir_'+label_B, extbase=evtpath) entries_A = tools.count_lines(evtfile_A) entries_B = tools.count_lines(evtfile_B) if sign == 1: modename = attr.modes[mode]['fname'] else: modename = attr.modes[mode]['fnamebar'] row = [modename, entries_A, entries_B] tab.row_append(map(str, row)) tab.column_append_by_diff_pct('diff(%)', label_B,label_A, rnd=rnd, err_type=err_type) tab.output(_tabname)
def events(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] unique_evt_label = label if _set and 'events' in _set: unique_evt_label = _set.split('=')[1] tab = DHadTable() row = ['Mode'] row.extend(attr.datasets_281) tab.row_append(row) for mode in modes: modename = mode.replace('Single_', '') evtfile = get_unique_evtfile( datatype, mode, unique_evt_label, debug=_debug) f = EventsFile(evtfile) row = map(str, f.datasets_sorted) row.insert(0, modename) tab.row_append(row) tab.output(_tabname)
def events(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] unique_evt_label = label if _set and 'events' in _set: unique_evt_label = _set.split('=')[1] tab = DHadTable() row = ['Mode'] row.extend(attr.datasets_281) tab.row_append(row) for mode in modes: modename = mode.replace('Single_', '') evtfile = get_unique_evtfile(datatype, mode, unique_evt_label, debug=_debug) f = EventsFile(evtfile) row = map(str, f.datasets_sorted) row.insert(0, modename) tab.row_append(row) tab.output(_tabname)
def bkg_generic_cont(tabname, datatype, tag, modes, label, test, debug): tab = DHadTable() row = ['Mode', 'Continuum Backgrounds'] tab.row_append(row) for mode in modes: new_row = bkg_cont_single_mode(datatype, mode, label, debug) tab.row_append(new_row) tab.output(tabname, test=test)
def make_overview_table(tabname, datatype, modes, label, test=False): tab = DHadTable() tab.row_append(['Mode', 'Backgrounds']) for mode in modes: modename = mode.replace('Single_', '') bkgtable = get_bkg_tab_link(datatype, mode, label) line = [modename, bkgtable] tab.row_append(line) tab.output(tabname, test=test)
def evt(opts, args): tabname = 'entries_evt_' + '_'.join(args).replace('/', '_') if args[0] == 'log': return evt_log(args[1:]) if args[0] not in ['data']: raise NameError(args) dt_type = args[0] tag = args[1] label = args[2] evtpath = attr.evtpath() if '/' in label: ver = label.split('/')[0] label = label.split('/')[1] evtpath = attr.evtpath(ver) prefix = 'dir_' + label tab = DHadTable() tab.row_append(['Mode', 'fname', 'fnamebar', 'combined', 'sum(theory)']) for mode in attr.modes: evtfile1 = tools.set_file('evt', dt_type, mode, tag, sign=-1, prefix=prefix, extbase=evtpath) evtfile2 = tools.set_file('evt', dt_type, mode, tag, sign=1, prefix=prefix, extbase=evtpath) evtfile_combined = tools.set_file('evt', dt_type, mode, tag, prefix=prefix, extbase=evtpath) entries1 = tools.count_lines(evtfile1) entries2 = tools.count_lines(evtfile2) sumup = entries1 + entries2 entries_combined = tools.count_lines(evtfile_combined) row = [mode, entries1, entries2, entries_combined, sumup] tab.row_append(map(str, row)) tab.output(tabname)
def bkg_generic_ddbar(tabname, datatype, tag, modes, label, test, debug): ranges = ['>0', '>50', '>100', '>200', '>500', '>1000', '>2000', '>3000'] tab = DHadTable() row = ['Mode', 'Backgrounds'] row.extend(ranges) tab.row_append(row) for mode in modes: new_row = bkg_ddbar_single_mode(datatype, mode, label, ranges, debug) tab.row_append(new_row) tab.output(tabname, test=test)
def evt(opts, args): tabname = 'entries_evt_' + '_'.join(args).replace('/', '_') if args[0] == 'log': return evt_log(args[1:]) if args[0] not in ['data'] : raise NameError(args) dt_type = args[0] tag = args[1] label = args[2] evtpath = attr.evtpath() if '/' in label: ver = label.split('/')[0] label = label.split('/')[1] evtpath = attr.evtpath(ver) prefix = 'dir_' + label tab = DHadTable() tab.row_append(['Mode', 'fname', 'fnamebar', 'combined', 'sum(theory)']) for mode in attr.modes: evtfile1 = tools.set_file('evt', dt_type, mode, tag, sign=-1, prefix=prefix, extbase=evtpath) evtfile2 = tools.set_file('evt', dt_type, mode, tag, sign=1, prefix=prefix, extbase=evtpath) evtfile_combined = tools.set_file('evt', dt_type, mode, tag, prefix=prefix, extbase=evtpath) entries1 = tools.count_lines(evtfile1) entries2 = tools.count_lines(evtfile2) sumup = entries1 + entries2 entries_combined = tools.count_lines(evtfile_combined) row = [mode, entries1, entries2, entries_combined, sumup] tab.row_append(map(str, row)) tab.output(tabname)
def main(opts, args): if args[0] == 'names': return bkg_names(opts, args[1:]) tabname = 'bkg_' + '_'.join(args).replace('/', '_') debug = opts.debug test = opts.test parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if args[0] == 'generic': return bkg_generic_ddbar(tabname, datatype, tag, modes, label, test, debug) elif args[0] == 'generic/cont': return bkg_generic_cont(tabname, datatype, tag, modes, label, test, debug) elif args[0] == 'generic/ddbar': return bkg_generic_ddbar(tabname, datatype, tag, modes, label, test, debug) tab = DHadTable() row = [ 'Mode', 'Number of DDbar Backgrounds', 'Number of Continuum Backgrounds' ] tab.row_append(row) for mode in modes: modename = mode.replace('Single_', '') ddbarnum = get_bkg_total('generic/ddbar', mode, label, debug) contnum = get_bkg_total('generic/cont', mode, label, debug) row = [modename, ddbarnum, contnum] tab.row_append(row) tab.column_trim('Number of DDbar Backgrounds', rnd='1') tab.column_trim('Number of Continuum Backgrounds', rnd='1') tab.output(tabname, test=test)
def main(opts, args): if args[0] == 'names': return bkg_names(opts, args[1:]) tabname = 'bkg_' + '_'.join(args).replace('/', '_') debug = opts.debug test = opts.test parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if args[0] == 'generic': return bkg_generic_ddbar(tabname, datatype, tag, modes, label, test, debug) elif args[0] == 'generic/cont': return bkg_generic_cont(tabname, datatype, tag, modes, label, test, debug) elif args[0] == 'generic/ddbar': return bkg_generic_ddbar(tabname, datatype, tag, modes, label, test, debug) tab = DHadTable() row = ['Mode', 'Number of DDbar Backgrounds', 'Number of Continuum Backgrounds'] tab.row_append(row) for mode in modes: modename = mode.replace('Single_', '') ddbarnum = get_bkg_total('generic/ddbar', mode, label, debug) contnum = get_bkg_total('generic/cont', mode, label, debug) row = [modename, ddbarnum, contnum] tab.row_append(row) tab.column_trim('Number of DDbar Backgrounds', rnd='1') tab.column_trim('Number of Continuum Backgrounds', rnd='1') tab.output(tabname, test=test)
def runs(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] unique_evt_label = label datatype = 'data' run_event_set = Set([]) for mode in attr.single_mode_list: evtname = '%s_%s_unqiue_%s.evt' %(datatype, mode, label) evtpath = os.path.join(attr.datpath, 'evt', label, 'events') unique_file = os.path.join(evtpath, evtname) f = UserFile(unique_file) events = Set(f.data) run_event_set.update(events) fe = EventsFile() fe.data = list(run_event_set) fe.parse() tab = DHadTable() row = ['Dataset', 'Run', 'Number of Events'] tab.row_append(row) for run, num in sorted(fe.runs.iteritems()): dataset = get_dataset_by_run(run) row = [dataset, run, num] tab.row_append(map(str, row)) if _test: tab.output() sys.stdout.write('\ntest: Will write to %s\n' %_tabname) else: tab.output(_tabname)
def runs(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] unique_evt_label = label datatype = 'data' run_event_set = Set([]) for mode in attr.single_mode_list: evtname = '%s_%s_unqiue_%s.evt' % (datatype, mode, label) evtpath = os.path.join(attr.datpath, 'evt', label, 'events') unique_file = os.path.join(evtpath, evtname) f = UserFile(unique_file) events = Set(f.data) run_event_set.update(events) fe = EventsFile() fe.data = list(run_event_set) fe.parse() tab = DHadTable() row = ['Dataset', 'Run', 'Number of Events'] tab.row_append(row) for run, num in sorted(fe.runs.iteritems()): dataset = get_dataset_by_run(run) row = [dataset, run, num] tab.row_append(map(str, row)) if _test: tab.output() sys.stdout.write('\ntest: Will write to %s\n' % _tabname) else: tab.output(_tabname)
def draw_momenta_kpipi0(datatype, mode, label, test): modekey = tools.get_modekey(mode) sname = attr.modes[modekey]['sname'].lower() figname = '%s_momenta' % sname figpath = os.path.join(attr.figpath, label, 'trkmtm') epsfile = set_file(extbase=figpath, comname=figname, ext='eps') h_mbc = {}; kpi1 = {} ; pipih = {}; kpiz = {}; kpipih = {}; h_pk = {}; h_ppi1 = {}; h_ppiz = {} h_pk_c = {}; h_ppi1_c = {}; h_ppiz_c = {} h_pk_sb = {}; h_ppi1_sb = {}; h_ppiz_sb = {} h_pk_sb_c = {}; h_ppi1_sb_c = {}; h_ppiz_sb_c = {} h_angk = {}; h_angpi1 = {}; h_angpiz = {} for datatype in datatype.split('/'): selfile = get_selfile(datatype, mode, label, test=test) selfile = selfile.replace('/trkmtm/', '/trkmtm2/') f = TFile(selfile) if datatype == 'signal' or datatype == 'generic': tp = 'mc' if datatype == 'data': tp = 'data' h_mbc[tp]= f.Get('h_mbc_'+tp) kpi1[tp]= f.Get('kpi1_'+tp) pipih[tp]= f.Get('pipih_'+tp) kpiz[tp]= f.Get('kpiz_'+tp) kpipih[tp]= f.Get('kpipih_'+tp) h_pk[tp]= f.Get('h_pk_'+tp) h_ppi1[tp]= f.Get('h_ppi1_'+tp) h_ppiz[tp]= f.Get('h_ppiz_'+tp) h_pk_c[tp]= f.Get('h_pk_c_'+tp) h_ppi1_c[tp]= f.Get('h_ppi1_c_'+tp) h_ppiz_c[tp]= f.Get('h_ppiz_c_'+tp) h_pk_sb[tp]= f.Get('h_pk_sb_'+tp) h_ppi1_sb[tp]= f.Get('h_ppi1_sb_'+tp) h_ppiz_sb[tp]= f.Get('h_ppiz_sb_'+tp) h_pk_sb_c[tp]= f.Get('h_pk_sb_c_'+tp) h_ppi1_sb_c[tp]= f.Get('h_ppi1_sb_c_'+tp) h_ppiz_sb_c[tp]= f.Get('h_ppiz_sb_c_'+tp) h_angk[tp]= f.Get('h_angk_'+tp) h_angpi1[tp]= f.Get('h_angpi1_'+tp) h_angpiz[tp]= f.Get('h_angpiz_'+tp) f.Clear() ratio = h_pk['data'].Integral()/h_pk['mc'].Integral() c1 = TCanvas('c1', 'canvas', 900, 900) c1.Divide(2,2) c1.cd(1) h_pk['data'].Draw('PE') h_pk['mc'].Scale(ratio) h_pk['mc'].Draw('SAME') c1.cd(2) h_ppi1['data'].Draw('PE') h_ppi1['mc'].Scale(ratio) h_ppi1['mc'].Draw('SAME') c1.cd(3) c1.cd(4) h_ppiz['data'].Draw('PE') h_ppiz['mc'].Scale(ratio) h_ppiz['mc'].Draw('SAME') c1.Print(epsfile) tools.eps2pdf(epsfile) tab = DHadTable() tab.row_append(['Name', 'Data/MC']) c1.Clear() c1.Divide(2,2) c1.cd(1) h_pk_c['data'].Draw('PE') lratio = h_pk_c['data'].Integral()/h_pk_c['mc'].Integral() #print 'k:', lratio/ratio tab.row_append(['K', lratio/ratio]) h_pk_c['mc'].Scale(lratio) h_pk_c['mc'].Draw('SAME') c1.cd(2) h_ppi1_c['data'].Draw('PE') lratio = h_ppi1_c['data'].Integral()/h_ppi1_c['mc'].Integral() #print 'pi1:', lratio/ratio tab.row_append(['pi1', lratio/ratio]) h_ppi1_c['mc'].Scale(lratio) h_ppi1_c['mc'].Draw('SAME') c1.cd(3) c1.cd(4) h_ppiz_c['data'].Draw('PE') lratio = h_ppiz_c['data'].Integral()/h_ppiz_c['mc'].Integral() #print 'piz:', lratio/ratio tab.row_append(['piz', lratio/ratio]) h_ppiz_c['mc'].Scale(lratio) h_ppiz_c['mc'].Draw('SAME') tab.column_trim('Data/MC', rnd='.0001') figname = '%s_momentacor' % sname epsfile = set_file(extbase=figpath, comname=figname, ext='eps') c1.Print(epsfile) tools.eps2pdf(epsfile) tabname = '%s_syst' % sname tab.output(tabname, label=label, export_html=False)
def draw_momenta_kkpi(figpath, datatype, mode, label, test): modekey = tools.get_modekey(mode) sname = attr.modes[modekey]['sname'].lower() figname = '%s_momenta' % sname epsfile = set_file(extbase=figpath, comname=figname, ext='eps') tab = DHadTable() tab.row_append(['Name', 'Data/MC']) # -------------------------------------------------- h_pkm = {}; h_pkp = {}; h_ppi = {} h_pkm_c = {}; h_pkp_c = {}; h_ppi_c = {} for datatype in datatype.split('/'): selfile = get_selfile(datatype, mode, label, test=test) selfile = selfile.replace('/trkmtm/', '/trkmtm2/') f = TFile(selfile) if datatype == 'signal' or datatype == 'generic': tp = 'mc' if datatype == 'data': tp = 'data' h_pkm[tp]= f.Get('h_pk'+tp) h_pkp[tp]= f.Get('h_ppi1'+tp) h_ppi[tp]= f.Get('h_ppiz'+tp) h_pkm_c[tp]= f.Get('h_pk_c'+tp) h_pkp_c[tp]= f.Get('h_ppi1_c'+tp) h_ppi_c[tp]= f.Get('h_ppiz_c'+tp) f.Clear() ratio = h_pkm['data'].Integral()/h_pkm['mc'].Integral() c1 = TCanvas('c1', 'canvas', 900, 900) c1.Divide(2,2) c1.cd(1) h_pkm['data'].Draw('PE') h_pkm['mc'].Scale(ratio) h_pkm['mc'].Draw('SAME') c1.cd(2) h_pkp['data'].Draw('PE') h_pkp['mc'].Scale(ratio) h_pkp['mc'].Draw('SAME') c1.cd(3) c1.cd(4) h_ppi['data'].Draw('PE') h_ppi['mc'].Scale(ratio) h_ppi['mc'].Draw('SAME') c1.Print(epsfile) tools.eps2pdf(epsfile) # -------------------------------------------------- c1.Clear() c1.Divide(2,2) c1.cd(1) h_pkm_c['data'].Draw('PE') lratio = h_pkm_c['data'].Integral()/h_pkm_c['mc'].Integral() #print 'km:', lratio/ratio tab.row_append(['Km', lratio/ratio]) h_pkm_c['mc'].Scale(lratio) h_pkm_c['mc'].Draw('SAME') c1.cd(2) h_pkp_c['data'].Draw('PE') lratio = h_pkp_c['data'].Integral()/h_pkp_c['mc'].Integral() #print 'kp:', lratio/ratio tab.row_append(['Kp', lratio/ratio]) h_pkp_c['mc'].Scale(lratio) h_pkp_c['mc'].Draw('SAME') c1.cd(3) c1.cd(4) h_ppi_c['data'].Draw('PE') lratio = h_ppi_c['data'].Integral()/h_ppi_c['mc'].Integral() #print 'pi:', lratio/ratio tab.row_append(['pi', lratio/ratio]) h_ppi_c['mc'].Scale(lratio) h_ppi_c['mc'].Draw('SAME') tab.column_trim('Data/MC', rnd='.0001') figname = '%s_momentacor' % sname epsfile = set_file(extbase=figpath, comname=figname, ext='eps') c1.Print(epsfile) tools.eps2pdf(epsfile) tabname = '%s_syst' % sname tab.output(tabname, label=label, export_html=False)
def draw_momenta_ks3pi(datatype, mode, label, test): modekey = tools.get_modekey(mode) sname = attr.modes[modekey]['sname'].lower() figname = '%s_momenta' % sname figpath = os.path.join(attr.figpath, label, 'trkmtm') epsfile = set_file(extbase=figpath, comname=figname, ext='eps') tab = DHadTable() tab.row_append(['Name', 'Data/MC']) # -------------------------------------------------- h_pks = {}; h_ppi1 = {}; h_ppi2 = {}; h_ppim = {} h_pks_c = {}; h_ppi1_c = {}; h_ppi2_c = {}; h_ppim_c = {} for datatype in datatype.split('/'): selfile = get_selfile(datatype, mode, label, test=test) selfile = selfile.replace('/trkmtm/', '/trkmtm2/') f = TFile(selfile) if datatype == 'signal' or datatype == 'generic': tp = 'mc' if datatype == 'data': tp = 'data' h_pks[tp]= f.Get('h_pks'+tp) h_ppi1[tp]= f.Get('h_ppi1'+tp) h_ppi2[tp]= f.Get('h_ppi2'+tp) h_ppim[tp]= f.Get('h_ppim'+tp) h_pks_c[tp]= f.Get('h_pk_c'+tp) h_ppi1_c[tp]= f.Get('h_ppi1_c'+tp) h_ppi2_c[tp]= f.Get('h_ppi2_c'+tp) h_ppim_c[tp]= f.Get('h_ppim_c'+tp) f.Clear() ratio = h_pks['data'].Integral()/h_pks['mc'].Integral() c1 = TCanvas('c1', 'canvas', 900, 900) c1.Divide(2,2) c1.cd(1) h_pks['data'].Draw('PE') h_pks['mc'].Scale(ratio) h_pks['mc'].Draw('SAME') c1.cd(2) h_ppi1['data'].Draw('PE') h_ppi1['mc'].Scale(ratio) h_ppi1['mc'].Draw('SAME') c1.cd(3) h_ppi2['data'].Draw('PE') h_ppi2['mc'].Scale(ratio) h_ppi2['mc'].Draw('SAME') c1.cd(4) h_ppim['data'].Draw('PE') h_ppim['mc'].Scale(ratio) h_ppim['mc'].Draw('SAME') c1.Print(epsfile) tools.eps2pdf(epsfile) # -------------------------------------------------- c1.Clear() c1.Divide(2,2) c1.cd(1) h_pks_c['data'].Draw('PE') lratio = h_pks_c['data'].Integral()/h_pks_c['mc'].Integral() #print 'k:', lratio/ratio tab.row_append(['K', lratio/ratio]) h_pks_c['mc'].Scale(lratio) h_pks_c['mc'].Draw('SAME,HIST') c1.cd(2) h_ppi1_c['data'].Draw('PE') lratio = h_ppi1_c['data'].Integral()/h_ppi1_c['mc'].Integral() #print 'pi1:', lratio/ratio tab.row_append(['pi1', lratio/ratio]) h_ppi1_c['mc'].Scale(lratio) h_ppi1_c['mc'].Draw('SAME,HIST') c1.cd(3) h_ppi2_c['data'].Draw('PE') lratio = h_ppi2_c['data'].Integral()/h_ppi2_c['mc'].Integral() #print 'pi2:', lratio/ratio tab.row_append(['pi2', lratio/ratio]) h_ppi2_c['mc'].Scale(lratio) h_ppi2_c['mc'].Draw('SAME,HIST') c1.cd(4) h_ppim_c['data'].Draw('PE') lratio = h_ppim_c['data'].Integral()/h_ppim_c['mc'].Integral() #print 'pim:', lratio/ratio tab.row_append(['pim', lratio/ratio]) h_ppim_c['mc'].Scale(lratio) h_ppim_c['mc'].Draw('SAME,HIST') tab.column_trim('Data/MC', rnd='.0001') figname = '%s_momentacor' % sname epsfile = set_file(extbase=figpath, comname=figname, ext='eps') c1.Print(epsfile) tools.eps2pdf(epsfile) tabname = '%s_syst' % sname tab.output(tabname, label=label, export_html=False)