def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] figname = '_'.join(args).replace('/', '_') org = UserFile() org.append(attr.fig_web_header) if 'allinone' in opts.set: msg = create_fig(datatype, label) org.append(msg) else: for mode in modes: msg = create_fig_mode(tag, datatype, mode, label) org.append(msg) org.append(attr.fig_web_footer) orgname = '%s.org' % figname orgfile = os.path.join(attr.figpath, orgname) org.output(orgfile) tools.org_export_as_html(orgfile) orglink = '[[./%s/fig/%s][figure]]' %(attr.analysis, orgname) sys.stdout.write('\n%s\n\n' % orglink)
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 main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] figname = 'kpimass_' + '_'.join(args[:-1]).replace('/', '_') org = UserFile() org.append(attr.fig_web_header) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') for i in xrange(numbins): lowmass = binbase + i * binwidth highmass = binbase + (i + 1) * binwidth for mode in modes: msg = create_fig_mode(opts, tag, datatype, mode, lowmass, highmass, label) org.append(msg) org.append(attr.fig_web_footer) orgname = '%s.org' % figname orgfile = os.path.join(attr.figpath, label, orgname) org.output(orgfile, verbose=1) orglink = '[[./fig/%s/%s][figure]]' % (label, orgname) sys.stdout.write('\n%s\n\n' % orglink) tools.org_export_as_html(orgfile)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] figname = 'kkmass_'+'_'.join(args[:-1]).replace('/', '_') org = UserFile() org.append(attr.fig_web_header) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') for i in xrange(numbins): lowmass = binbase+i*binwidth highmass = binbase+(i+1)*binwidth for mode in modes: msg = create_fig_mode(opts, tag, datatype, mode, lowmass, highmass, label) org.append(msg) org.append(attr.fig_web_footer) orgname = '%s.org' % figname orgfile = os.path.join(attr.figpath, label, orgname) org.output(orgfile, verbose=1) orglink = '[[./fig/%s/%s][figure]]' %(label, orgname) sys.stdout.write('\n%s\n\n' % orglink) tools.org_export_as_html(orgfile)
def main(opts, args): if args[0] == 'peak': process_peak(opts, args[1:]) return parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if 'generic' in datatype and tag == 'single': process_generic_single_mode(datatype, mode, label, opts.test) else: raise ValueError(tag) continue script, logfile, qjobname = create_script_logfile_jobname( datatype, tag, mode, label, opts.test) bash_file = yld.create_bash_file(script, 'get_backgrounds.sh') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
def deltae(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] alt_deltae = {'decutl': -1, 'decuth': 1} canvas = ROOT.TCanvas("aCanvas", "Canvas", 1000, 1000) canvas.Divide(3,3) deltae_hist = {} hist = ROOT.TH1F('deltae', 'DeltaE', 100, -0.1, 0.1) pad = 1 for mode in modes: frametitle = tools.get_mode_root_name(mode) canvas.cd(pad) pad += 1 modekey, sign = get_modekey_sign(mode) deltae_hist[modekey] = ROOT.TH1F('deltae-%s' % modekey, frametitle, 100, -0.1, 0.1) rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) for pte in pt: d =chooseD(modekey, pte, sign, alt_deltae=alt_deltae) if d != None: deltae_hist[modekey].Fill(pte.ddeltae[d]) deltae_hist[modekey].Draw() canvas_output(canvas, figname, opts.test)
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 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 main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] figname = '_'.join(args).replace('/', '_') org = UserFile() org.append(attr.fig_web_header) if 'allinone' in opts.set: msg = create_fig(datatype, label) org.append(msg) else: for mode in modes: msg = create_fig_mode(tag, datatype, mode, label) org.append(msg) org.append(attr.fig_web_footer) orgname = '%s.org' % figname orgfile = os.path.join(attr.figpath, orgname) org.output(orgfile) tools.org_export_as_html(orgfile) orglink = '[[./%s/fig/%s][figure]]' % (attr.analysis, orgname) sys.stdout.write('\n%s\n\n' % orglink)
def momentum_pi(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) canvas = ROOT.TCanvas("aCanvas", "Canvas", 600, 600) hist = ROOT.TH1F('pip', '#pi momentum in %s' %modename, 100, 0, 1) num = 0 for pte in pt: if opts.test and num >1000: break d =chooseD(modekey, pte, sign) if d != None: num += 1 npi = pte.ddau2[d] pipx = pte.trpipx[npi] pipy = pte.trpipy[npi] pipz = pte.trpipz[npi] pip = sqrt(pipx**2 + pipy**2 + pipz**2) hist.Fill(pip) hist.Draw() canvas_output(canvas, figname, opts.test) hist.Delete()
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] for mode in modes: unique_file_A = get_unique_file(datatype, mode, label_A) unique_file_B = get_unique_file(datatype, mode, label_B) inputfile_A, outputfile_A = get_input_output_file( datatype, mode, label_A, 'sel/diff/events/%s' % label_B) inputfile_B, outputfile_B = get_input_output_file( datatype, mode, label_B, 'sel/diff/events/%s' % label_A) unique_file_A = get_unique_file(datatype, mode, label_A) unique_file_B = get_unique_file(datatype, mode, label_B) source = os.path.join(attr.srcselpath, 'DNTClass.C') ROOT.gROOT.ProcessLine('.L %s' % source) ROOT.gROOT.ProcessLine('DNTClass a("%s", "%s")' % (inputfile_A, outputfile_A)) ROOT.gROOT.ProcessLine('a.Skim("%s")' % unique_file_A) sys.stdout.write('Save as %s \n' % outputfile_A) ROOT.gROOT.ProcessLine('DNTClass b("%s", "%s")' % (inputfile_B, outputfile_B)) ROOT.gROOT.ProcessLine('b.Skim("%s")' % unique_file_B) sys.stdout.write('Save as %s \n' % outputfile_B)
def main(opts, args): if args[0] == 'peak': process_peak(opts, args[1:]) return parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if 'generic' in datatype and tag == 'single': process_generic_single_mode(datatype, mode, label, opts.test) else: raise ValueError(tag) continue script, logfile, qjobname = create_script_logfile_jobname( datatype, tag, mode, label, opts.test) bash_file = yld.create_bash_file(script, 'get_backgrounds.sh') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
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] for mode in modes: unique_file_A = get_unique_file(datatype, mode, label_A) unique_file_B = get_unique_file(datatype, mode, label_B) inputfile_A, outputfile_A = get_input_output_file( datatype, mode, label_A, 'sel/diff/events/%s' %label_B) inputfile_B, outputfile_B = get_input_output_file( datatype, mode, label_B, 'sel/diff/events/%s' %label_A) unique_file_A = get_unique_file(datatype, mode, label_A) unique_file_B = get_unique_file(datatype, mode, label_B) source = os.path.join(attr.srcselpath, 'DNTClass.C') ROOT.gROOT.ProcessLine('.L %s' % source ) ROOT.gROOT.ProcessLine('DNTClass a("%s", "%s")' %(inputfile_A, outputfile_A)) ROOT.gROOT.ProcessLine('a.Skim("%s")' %unique_file_A) sys.stdout.write('Save as %s \n' % outputfile_A) ROOT.gROOT.ProcessLine('DNTClass b("%s", "%s")' %(inputfile_B, outputfile_B)) ROOT.gROOT.ProcessLine('b.Skim("%s")' %unique_file_B) sys.stdout.write('Save as %s \n' % outputfile_B)
def mbc(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes) labels = [label] if ',' in label: labels = label.split(',') figname = shorten_figname(figname) mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] frametitle = modename hnames = parse_opts_set(opts.set, 'legend') if hnames: hist_names = hnames.split(',') else: hist_names = labels nBins = 100 Xmin = 1.83 Xmax = 1.89 hist_list = [] for label, hist_name in zip(labels, hist_names): hist_title = frametitle hist = ROOT.TH1D(hist_name, hist_title, nBins, Xmin, Xmax) rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) ntotal = 0 nselected = 0 for pte in pt: ntotal += 1 d =chooseD(modekey, pte, sign, opt=label) if d != None: hist.Fill(pte.dmbc[d]) nselected += 1 sys.stdout.write('Selected %s out of %s. \n' %(nselected, ntotal)) hist_list.append(hist) xtitle = 'mBC (GeV)' legend = ROOT.TLegend(0.66, 0.8, 0.9, 0.9) canvas = draw_hist(hist_list, xtitle, legend) Logy = parse_opts_set(opts.set, 'SetLogy') if Logy != None: canvas.SetLogy(Logy) canvas_output(canvas, figname, opts.test) hist.Delete()
def kpimass0(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] mode = modes[0] modekey = tools.get_modekey(mode) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') dbfile = os.path.join(attr.figpath, label, figname+'.db') fullrangedata, fullrangemc = get_fullrange_data_mc( opts, dbfile, label, 'kpimass', modekey, tag, binbase, binwidth, numbins) scaledict(fullrangedata, 1/sumdict(fullrangedata)) scaledict(fullrangemc, 1/sumdict(fullrangemc)) gdata = TGraph(len(fullrangedata['x']), getarray('x', fullrangedata), getarray('y', fullrangedata)) gmc = TGraph(len(fullrangemc['x']), getarray('x', fullrangemc), getarray('y', fullrangemc)) c1 = TCanvas('c','kpi', 600, 600) c1.SetLeftMargin(0.15) c1.SetRightMargin(0.05) c1.SetBottomMargin(0.15) c1.SetTopMargin(0.05) hr = c1.DrawFrame(0.5, 0.0, 1.5, 0.04) hr.GetYaxis().SetTitle('Yield (arbitrary units)') hr.GetXaxis().SetTitle('M(K^{-} #pi^{+}) (GeV/#font[72]{c}^{2})') hr.GetYaxis().SetTitleOffset(1.4) hr.GetYaxis().SetTitleSize(0.05) hr.GetXaxis().SetTitleOffset(1.3) hr.GetXaxis().SetTitleSize(0.05) gmc.SetMarkerStyle(21) gmc.SetMarkerColor(kRed) gmc.SetMarkerSize(0.6) gmc.SetLineColor(kRed) gmc.Draw("PL") gdata.SetMarkerStyle(20) gdata.SetMarkerColor(kBlue) gdata.SetMarkerSize(0.6) gdata.Draw("P") leg = TLegend(0.6, 0.75, 0.95, 0.95) leg.AddEntry(gdata, 'Data', 'pl') leg.AddEntry(gmc, 'MC', 'pl') leg.Draw() canvas_output(c1, figname, label, opts.test)
def events(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if _set and 'events' in _set: unique_evt_label = _set.split('=')[1] for mode in modes: events = get_events_list(datatype, mode, unique_evt_label, debug=_debug) if _debug: sys.stdout.write('\ndebug: total events %s\n' % len(events)) pt = chain_rootfile(datatype, mode, label) mode_key, sign = get_modekey_sign(mode) nselected = 0 ntotal = len(events) for pte in pt: if found_this_event(events, pte.run, pte.event): d = chooseD(mode_key, pte, sign, opt=label) if d != None: if _debug: sys.stdout.write('\ndebug: selected %s %s \n' % (pte.run, pte.event)) nselected += 1 sys.stdout.write(' selected %s out of %s.\n' % (nselected, ntotal)) sys.exit() evtname = datatype + '_' + mode + '.evt' unique_A, unique_B = get_unique_list(evtname, label_A, label_B) for evt in unique_B: evt = evt.strip().split(' ') run = int(evt[0]) event = int(evt[1]) print run, event for pte in pt_A: if pte.run == run and pte.event == event: print pte.ecm sys.exit() sys.exit() events_A, unique_file_A = get_events_set(datpath, evtname, label_A) events_B, unique_file_B = get_events_set(datpath, evtname, label_B) events_inter = events_A & events_B unique_A = events_A - events_inter unique_B = events_B - events_inter sys.stdout.write('Writing the unique events for mode %s ...' % mode) output_set_to_file(unique_A, unique_file_A) output_set_to_file(unique_B, unique_file_B) sys.stdout.write(' done.\n')
def kpimass0(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] mode = modes[0] modekey = tools.get_modekey(mode) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') dbfile = os.path.join(attr.figpath, label, figname + '.db') fullrangedata, fullrangemc = get_fullrange_data_mc(opts, dbfile, label, 'kpimass', modekey, tag, binbase, binwidth, numbins) scaledict(fullrangedata, 1 / sumdict(fullrangedata)) scaledict(fullrangemc, 1 / sumdict(fullrangemc)) gdata = TGraph(len(fullrangedata['x']), getarray('x', fullrangedata), getarray('y', fullrangedata)) gmc = TGraph(len(fullrangemc['x']), getarray('x', fullrangemc), getarray('y', fullrangemc)) c1 = TCanvas('c', 'kpi', 600, 600) c1.SetLeftMargin(0.15) c1.SetRightMargin(0.05) c1.SetBottomMargin(0.15) c1.SetTopMargin(0.05) hr = c1.DrawFrame(0.5, 0.0, 1.5, 0.04) hr.GetYaxis().SetTitle('Yield (arbitrary units)') hr.GetXaxis().SetTitle('M(K^{-} #pi^{+}) (GeV/#font[72]{c}^{2})') hr.GetYaxis().SetTitleOffset(1.4) hr.GetYaxis().SetTitleSize(0.05) hr.GetXaxis().SetTitleOffset(1.3) hr.GetXaxis().SetTitleSize(0.05) gmc.SetMarkerStyle(21) gmc.SetMarkerColor(kRed) gmc.SetMarkerSize(0.6) gmc.SetLineColor(kRed) gmc.Draw("PL") gdata.SetMarkerStyle(20) gdata.SetMarkerColor(kBlue) gdata.SetMarkerSize(0.6) gdata.Draw("P") leg = TLegend(0.6, 0.75, 0.95, 0.95) leg.AddEntry(gdata, 'Data', 'pl') leg.AddEntry(gmc, 'MC', 'pl') leg.Draw() canvas_output(c1, figname, label, opts.test)
def events(args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if _set and 'events' in _set: unique_evt_label = _set.split('=')[1] for mode in modes: events = get_events_list( datatype, mode, unique_evt_label, debug=_debug) if _debug: sys.stdout.write('\ndebug: total events %s\n' %len(events)) pt = chain_rootfile(datatype, mode, label) mode_key, sign = get_modekey_sign(mode) nselected = 0 ntotal = len(events) for pte in pt: if found_this_event(events, pte.run, pte.event): d = chooseD(mode_key, pte, sign, opt = label) if d != None: if _debug: sys.stdout.write('\ndebug: selected %s %s \n' % (pte.run, pte.event)) nselected += 1 sys.stdout.write(' selected %s out of %s.\n' % (nselected, ntotal)) sys.exit() evtname = datatype + '_' + mode + '.evt' unique_A, unique_B = get_unique_list(evtname, label_A, label_B) for evt in unique_B: evt = evt.strip().split(' ') run = int(evt[0]) event = int(evt[1]) print run, event for pte in pt_A: if pte.run == run and pte.event == event: print pte.ecm sys.exit() sys.exit() events_A, unique_file_A = get_events_set(datpath, evtname, label_A) events_B, unique_file_B = get_events_set(datpath, evtname, label_B) events_inter = events_A & events_B unique_A = events_A - events_inter unique_B = events_B - events_inter sys.stdout.write('Writing the unique events for mode %s ...' %mode) output_set_to_file(unique_A, unique_file_A) output_set_to_file(unique_B, unique_file_B) sys.stdout.write(' done.\n')
def momentum_pi0(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) #canvas = ROOT.TCanvas("aCanvas", "Canvas", 900, 900) var = 'pi0p' title = modename unit = 'GeV' nBins = 100 Xmin = 0. Xmax = 1. xtitle = '#pi^{0} momentum (GeV)' ytitle = 'Events / (%s %s)' % ((Xmax-Xmin)/nBins, unit) hist = ROOT.TH1F(var, title, nBins, Xmin, Xmax) num = 0 for pte in pt: if opts.test and num >1000: break d =chooseD(modekey, pte, sign) if d != None: num += 1 if modekey == 1 or modekey == 203: npi0 = pte.ddau3[d] if modekey == 201: npi0 = pte.ddau4[d] pi0px = pte.pi0px[npi0] pi0py = pte.pi0py[npi0] pi0pz = pte.pi0pz[npi0] pi0p = sqrt(pi0px**2 + pi0py**2 + pi0pz**2) hist.Fill(pi0p) canvas = draw_hist(hist, xtitle, ytitle) canvas_output(canvas, figname, label, test=opts.test)
def kpimass(opts, args, figname): var = 'kpimass' parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] if ',' in datatype: datatypes = datatype.split(',') else: datatypes = [datatype] hist_list = [] nBins = 100 Xmin = 0.5 Xmax = 1.5 labels = [label, label] hist_names = ['Signal MC', 'Data'] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] hist_title = 'K^{-} #pi^{+} mass in %s' % modename for datatype, hist_name in zip(datatypes, hist_names): hist = ROOT.TH1D(hist_name, hist_title, nBins, Xmin, Xmax) evtfile = get_evtfile_kkmass(datatype, mode, label, var, test=opts.test) f = open(evtfile, 'r') for line in f: kpimass = float(line.split()[2]) hist.Fill(kpimass) hist_list.append(hist) xtitle = 'M(K^{+}#pi^{-}) (GeV/c^{2})' legend = ROOT.TLegend(0.1, 0.8, 0.3, 0.9) canvas = tools.draw_hist(hist_list, xtitle, legend, reverse=True) canvas_output(canvas, figname, label, opts.test, outputhtml=False) hist.Delete()
def bkg_names(opts, args): debug_ = opts.debug test_ = opts.test set_ = opts.set prefix = None if args[0] == 'peak': prefix = 'peak' args = args[1:] parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] limit = None if set_ != None and 'min' in set_: min_ = set_.split('=')[1] limit = '>%s' %min_ bkgmodes = 20 if set_ != None and 'bkgmodes' in set_: bkgmodes = int(set_.split('=')[1]) for mode in modes: tabname = 'bkg_names_%s_%s_%s' %( datatype, mode, label) if prefix != None: tabname = 'bkg_names_%s_%s_%s_%s' %( prefix, datatype, mode, label) tabname = tabname.replace('/', '_') tab = DHadTable() modename = get_orgname_from_fname(mode) bkg_names, bkg_numbers = bkg_names_single_mode( datatype, mode, label, limit, bkgmodes, debug_, prefix) tab.column_append(bkg_names, title='Backgrounds for %s' %modename) tab.column_append(bkg_numbers, title='Number of Events') tab.sort_by_column('Number of Events', reverse=True) orgfooter = ': '+sys.argv[0].split('/')[-1]+\ ' tab backgrounds names %s %s %s ' %( datatype, mode, label) if prefix != None: orgfooter = ': '+sys.argv[0].split('/')[-1]+\ ' tab backgrounds names %s %s %s %s ' %( prefix, datatype, mode, label) tab.output(tabname, orgfooter=orgfooter, test=test_)
def ksmass(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] var = 'ksmass' varname = 'K_{S} mass' unit = 'GeV' nBins = 100 Xmin = 0.45 Xmax = 0.55 if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] histname = '%s in %s' %(varname, modename) rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) canvas = ROOT.TCanvas("aCanvas", "Canvas", 600, 600) hist = ROOT.TH1F(var, histname, nBins, Xmin, Xmax) ntotal = 0 nselected = 0 def alt_checkVetoes(mode, pte, index, opt='', sign=None): return True if modekey not in (202, 203, 204): raise ValueError(modekey) for pte in pt: ntotal += 1 if opts.test and ntotal >1000: break d =chooseD(modekey, pte, sign, checkVetoes=alt_checkVetoes) if d != None: nselected += 1 ksmass = pte.ksmass[pte.ddau1[d]] hist.Fill(ksmass) hist.Draw() canvas_output(canvas, figname, opts.test) hist.Delete() sys.stdout.write(' selected %s out of %s.\n' % (nselected, ntotal))
def mctruth_names(opts, args): debug_ = opts.debug test_ = opts.test set_ = opts.set prefix = None if args[0] == 'peak': prefix = 'peak' args = args[1:] parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] limit = None if set_ != None and 'min' in set_: min_ = set_.split('=')[1] limit = '>%s' % min_ mctruthmodes = 50 if set_ != None and 'mctruthmodes' in set_: mctruthmodes = int(set_.split('=')[1]) for mode in modes: tabname = 'mctruth_names_%s_%s_%s' % (datatype, mode, label) if prefix != None: tabname = 'mctruth_names_%s_%s_%s_%s' % (prefix, datatype, mode, label) tabname = tabname.replace('/', '_') tab = DHadTable() modename = get_orgname_from_fname(mode) mctruth_names, mctruth_numbers = mctruth_names_single_mode( datatype, mode, label, limit, mctruthmodes, debug_, prefix) tab.column_append(mctruth_names, title='MC Truth for %s' % modename) tab.column_append(mctruth_numbers, title='Number of Events') tab.sort_by_column('Number of Events', reverse=True) orgfooter = ': '+sys.argv[0].split('/')[-1]+\ ' tab mctruth names %s %s %s ' %( datatype, mode, label) if prefix != None: orgfooter = ': '+sys.argv[0].split('/')[-1]+\ ' tab mctruth names %s %s %s %s ' %( prefix, datatype, mode, label) tab.output(tabname, orgfooter=orgfooter, test=test_)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] debug = opts.debug test = opts.test for mode in modes: if opts.set and opts.set == 'interact': fit_sidebands_single_mode(datatype, mode, label, test) else: submit_batch_job(datatype, mode, label, opts)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] debug = opts.debug test = opts.test for mode in modes: if opts.set and opts.set == 'interact': single_tag_mode(datatype, mode, label, test) else: submit_batch_job(datatype, mode, label, opts)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: sys.stdout.write('Processing mode %s ...' % mode) prefix = 'dir_%s' % label if mode == 'double_all_d0s': comname = '%s_%s' % (datatype, 'Double_all_D0s') elif mode == 'double_all_dps': comname = '%s_%s' % (datatype, 'Double_all_Dps') else: comname = '%s_%s' % (datatype, mode) finname = set_file('root', comname=comname, prefix=prefix, extbase=attr.figpath) foutname = finname.replace('.root', '_trim.eps') comname1 = '%s_%s' % (datatype, mode.split('__')[0]) #comname2 = '%s_%s_%s' %(datatype, tag, mode.split('__')[1]) foutname1 = foutname.replace(comname, comname1) #foutname2 = foutname.replace(comname, comname2) #load_roofit_lib(datatype, label) fin = TFile.Open(finname, 'READ') if tag == 'single': canvas_name = 'canvas' else: canvas_name = 'c' canvas = fin.Get(canvas_name) pad1 = canvas.GetPrimitive(canvas_name + '_1') if mode == 'double_all_d0s' or mode == 'double_all_dps': pad1 = trim_pad2(pad1, opts) else: pad1 = trim_pad(pad1, opts) pad1.Draw() pad1.SaveAs(foutname1) eps2pdf(foutname1)
def process_peak(opts, args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': process_peak_generic_single_mode(datatype, mode, label, opts.test) continue script, logfile, qjobname = create_peak_script_logfile_jobname( datatype, tag, mode, label, opts.test) bash_file = yld.create_bash_file(script, 'get_backgrounds_peak.sh') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
def main(opts, args): reweight = args[0] parsed = parse_args(args[1:]) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if tag == 'single': single_tag_mode(reweight, datatype, mode, label, opts.test) else: raise ValueError(tag) else: submit_batch_job(reweight, datatype, tag, mode, label, opts)
def process_peak(opts, args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': process_peak_generic_single_mode(datatype, mode, label, opts.test) continue script, logfile, qjobname = create_peak_script_logfile_jobname( datatype, tag, mode, label, opts.test) bash_file = yld.create_bash_file(script, 'get_backgrounds_peak.sh') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
def main(opts, args): reweight = args[0] parsed = parse_args(args[1:]) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if tag == 'single': single_tag_mode(reweight, datatype, mode, label, opts.test) else: raise ValueError(tag) else: submit_batch_job(reweight, datatype, tag, mode, label, opts)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: sys.stdout.write('Processing mode %s ...' %mode) prefix = 'dir_%s' % label if mode == 'double_all_d0s': comname = '%s_%s' %(datatype, 'Double_all_D0s') elif mode == 'double_all_dps': comname = '%s_%s' %(datatype, 'Double_all_Dps') else: comname = '%s_%s' %(datatype, mode) finname = set_file('root', comname=comname, prefix=prefix, extbase=attr.figpath) foutname = finname.replace('.root', '_trim.eps') comname1 = '%s_%s' %(datatype, mode.split('__')[0]) #comname2 = '%s_%s_%s' %(datatype, tag, mode.split('__')[1]) foutname1 = foutname.replace(comname, comname1) #foutname2 = foutname.replace(comname, comname2) #load_roofit_lib(datatype, label) fin = TFile.Open(finname, 'READ') if tag == 'single': canvas_name = 'canvas' else: canvas_name = 'c' canvas = fin.Get(canvas_name) pad1 = canvas.GetPrimitive(canvas_name+'_1') if mode == 'double_all_d0s' or mode == 'double_all_dps': pad1 = trim_pad2(pad1, opts) else: pad1 = trim_pad(pad1, opts) pad1.Draw() pad1.SaveAs(foutname1) eps2pdf(foutname1)
def mass_kk(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) canvas = ROOT.TCanvas("aCanvas", "Canvas", 600, 600) hist = ROOT.TH1F('kkmass', 'KK mass in %s' %modename, 100, 0, 2) hist.SetXTitle('M(K^{+}K^{-}) (GeV/c^{2})') num = 0 for pte in pt: if opts.test and num >10000: break d =chooseD(modekey, pte, sign) if modekey != 205: raise NameError(modekey) if d != None: num += 1 kaons = [pte.ddau1[d], pte.ddau2[d]] fourvecs = [] for index in kaons: fourvecs.append([pte.trke[index], pte.trkpy[index], pte.trkpy[index], pte.trkpz[index]]) kkmass = invmass(fourvecs[0], fourvecs[1]) hist.Fill(kkmass) hist.Draw() canvas_output(canvas, figname, label, opts.test, outputroot=True) hist.Delete()
def pi0mass(opts, args, figname): var = 'pi0mass' varname = '#pi^{0} mass' unit = 'GeV' nBins = 100 Xmin = 0.115 Xmax = 0.16 parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] figname = shorten_figname(figname) mode = modes[0] modekey = get_modekey(mode) modename = attr.modes[modekey]['uname'] frametitle = '#pi^{0} mass in %s' % modename labels = [label] if ',' in label: labels = label.split(',') hnames = parse_opts_set(opts.set, 'legend') if hnames: hist_names = hnames.split(',') else: hist_names = labels hist_list = [] for label, hist_name in zip(labels, hist_names): hist_title = frametitle hist = ROOT.TH1D(hist_name, hist_title, nBins, Xmin, Xmax) evtfile = get_evtfile(datatype, mode, label, var, test=False) hist = tools.fill_hist_evtfile(hist, evtfile) hist_list.append(hist) xtitle = '%s (%s)' %(varname, unit) legend = ROOT.TLegend(0.66, 0.8, 0.9, 0.9) canvas = draw_hist(hist_list, xtitle, legend) canvas_output(canvas, figname, test=opts.test)
def main(opts, args): if args[0] == 'names': return mctruth_names(opts, args[1:]) tabname = 'mctruth_' + '_'.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 mctruth_generic_ddbar(tabname, datatype, tag, modes, label, test, debug) else: raise NameError(args)
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 momentum_K(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] rootfile = get_rootfile(datatype, mode, label) pt = add_rootfile(rootfile, debug=opts.debug) canvas = ROOT.TCanvas("aCanvas", "Canvas") pmax = 1 if modekey == 0: pmax = 1.5 hist = ROOT.TH1F('K', 'K momentum in %s' %modename, 100, 0, pmax) num = 0 for pte in pt: if opts.test and num >1000: break d =chooseD(modekey, pte, sign) if d != None: num += 1 nK = pte.ddau1[d] Kpx = pte.trkpx[nK] Kpy = pte.trkpy[nK] Kpz = pte.trkpz[nK] Kp = sqrt(Kpx**2 + Kpy**2 + Kpz**2) hist.Fill(Kp) hist.Draw() canvas_output(canvas, figname, opts.test) hist.Delete()
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if tag == 'single': single_tag_mode(datatype, mode, label, opts.test) else: raise ValueError(tag) continue script, logfile, qjobname = create_script_logfile_jobname( opts, datatype, tag, mode, label) bash_file = create_bash_file(opts, datatype, label, script, 'trkmtm.sh', 'sel') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if tag == 'single': single_tag_mode(datatype, mode, label, opts.test) else: raise ValueError(tag) continue script, logfile, qjobname = create_script_logfile_jobname( datatype, tag, mode, label, opts) bash_file = create_bash_file(opts, datatype, label, script, 'kssideband.sh', 'sel') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
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 for mode in modes: modename = mode.replace('Single_', '') evtname = datatype + '_' + mode + '.evt' events_A, unique_file_A = get_events_set(datpath, evtname, label_A) events_B, unique_file_B = get_events_set(datpath, evtname, label_B) events_inter = events_A & events_B unique_A = events_A - events_inter unique_B = events_B - events_inter sys.stdout.write('Writing the unique events for mode %s ...' %mode) output_set_to_file(unique_A, unique_file_A) output_set_to_file(unique_B, unique_file_B) sys.stdout.write(' done.\n')
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 for mode in modes: modename = mode.replace('Single_', '') evtname = datatype + '_' + mode + '.evt' events_A, unique_file_A = get_events_set(datpath, evtname, label_A) events_B, unique_file_B = get_events_set(datpath, evtname, label_B) events_inter = events_A & events_B unique_A = events_A - events_inter unique_B = events_B - events_inter sys.stdout.write('Writing the unique events for mode %s ...' % mode) output_set_to_file(unique_A, unique_file_A) output_set_to_file(unique_B, unique_file_B) sys.stdout.write(' done.\n')
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') for i in xrange(numbins): lowmass = binbase+i*binwidth highmass = binbase+(i+1)*binwidth for mode in modes: if opts.set and 'interact' in opts.set: fit_single_mode(datatype, mode, label, lowmass, highmass, opts.test) else: submit_batch_job(datatype, mode, label, lowmass, highmass, opts)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] debug = opts.debug test = opts.test if 'allinone' in opts.set: if 'interact' in opts.set: fit_backgrounds_single(datatype, modes, label, test) else: submit_batch_job_allinone(datatype, modes, label, test) return for mode in modes: if opts.set and opts.set == 'interact': fit_backgrounds_single_mode(datatype, mode, label, test) else: submit_batch_job(datatype, mode, label, 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 main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] debug = opts.debug test = opts.test if 'allinone' in opts.set: if 'interact' in opts.set: fit_backgrounds_single(datatype, modes, label, test) else: submit_batch_job_allinone(datatype, modes, label, test) return for mode in modes: if opts.set and opts.set == 'interact': fit_backgrounds_single_mode(datatype, mode, label, test) else: submit_batch_job(datatype, mode, label, test)
def main(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') for i in xrange(numbins): lowmass = binbase + i * binwidth highmass = binbase + (i + 1) * binwidth for mode in modes: if opts.set and 'interact' in opts.set: fit_single_mode(datatype, mode, label, lowmass, highmass, opts.test) else: submit_batch_job(datatype, mode, label, lowmass, highmass, opts)
def mass_pi0(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if len(modes) > 1: raise ValueError(modes, 'Only handle one mode at this time!') mode = modes[0] modekey, sign = get_modekey_sign(mode) modename = attr.modes[modekey]['uname'] rootfile = get_rootfile(datatype, mode, label) print rootfile, label sys.exit() pt = add_rootfile(rootfile, debug=opts.debug) canvas = ROOT.TCanvas("aCanvas", "Canvas") hist = ROOT.TH1F('pi0mass', '#pi^{0} mass in %s' %modename, 100, 0.1, 0.2) num = 0 for pte in pt: if opts.test and num >1000: break d =chooseD(modekey, pte, sign) if d != None: num += 1 if modekey == 1 or modekey == 203: npi0 = pte.ddau3[d] if modekey == 201: npi0 = pte.ddau4[d] pi0mass = pte.pi0mass[npi0] hist.Fill(pi0mass) hist.Draw() canvas_output(canvas, figname, opts.test) hist.Delete()
def entry(opts, args): parsed = yld.parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if datatype == 'signal' and tag == 'single': process_signal_single_mode(mode, label, opts.test) else: raise ValueError(tag) continue script, logfile, qjobname = create_script_logfile_jobname( opts, datatype, tag, mode, label) bash_file = yld.create_bash_file( opts, datatype, label, script, 'get_crossfeeds.sh') tools.qsub_jobs(logfile, qjobname, bash_file, opts.test)
def main(opts, args): var = args[0] parsed = yld.parse_args(args[1:]) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] for mode in modes: if opts.set and opts.set == 'interact': if tag == 'single': single_tag_mode(var, datatype, mode, label, opts.test) else: raise ValueError(tag) continue script, logfile, qjobname = create_script_logfile_jobname( var, datatype, tag, mode, label, opts.test) bash_file = yld.create_bash_file(script, 'get_var.sh') tools.qsub_jobs(logfile, qjobname, bash_file, opts.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 kkmass2(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] mode = modes[0] modekey = tools.get_modekey(mode) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') fullrangedata = {} init_dict(fullrangedata) fullrangemc = {} init_dict(fullrangemc) evtpath = os.path.join(attr.datpath, 'sel', label, 'kkmass') evtfilemc = tools.set_file('evt', 'signal', modekey, tag, prefix='', forceCombine=1, extbase=evtpath) for i in xrange(numbins): lowmass = binbase + i * binwidth highmass = binbase + (i + 1) * binwidth prefix = 'dir_%s/kkmass/%s_%s' % (label, lowmass, highmass) datafile = tools.set_file('txt', 'data', modekey, tag, prefix=prefix, extbase=attr.fitpath) #mcfile = tools.set_file('txt', 'signal', modekey, tag, # prefix=prefix, extbase=attr.fitpath) if os.access(datafile, os.F_OK): # and os.access(mcfile, os.F_OK): parsefile(datafile, lowmass, highmass, fullrangedata) parse_evtfile(evtfilemc, lowmass, highmass, fullrangemc) else: sys.stdout.write('Skipped %s %s ...\n' % (lowmass, highmass)) scaledict(fullrangedata, 1 / sumdict(fullrangedata)) scaledict(fullrangemc, 1 / sumdict(fullrangemc)) gdata = TGraphAsymmErrors(len(fullrangedata['x']), getarray('x', fullrangedata), getarray('y', fullrangedata), getarray('exl', fullrangedata), getarray('exh', fullrangedata), getarray('eyl', fullrangedata), getarray('eyh', fullrangedata)) gmc = TGraph(len(fullrangemc['x']), getarray('x', fullrangemc), getarray('y', fullrangemc)) c1 = TCanvas('c', 'kk', 600, 600) c1.SetLeftMargin(0.15) c1.SetRightMargin(0.05) c1.SetBottomMargin(0.15) c1.SetTopMargin(0.05) #hr = c1.DrawFrame(0.95, 0.0, 1.95, 0.12) hr = c1.DrawFrame(0.9, 0.0, 1.8, 0.1) hr.GetYaxis().SetTitle('Yield (arbitrary units)') hr.GetXaxis().SetTitle('M(K^{-} K^{+}) (GeV/#font[72]{c}^{2})') hr.GetYaxis().SetTitleOffset(1.4) hr.GetYaxis().SetTitleSize(0.05) hr.GetXaxis().SetTitleOffset(1.3) hr.GetXaxis().SetTitleSize(0.05) gmc.SetMarkerStyle(21) gmc.SetMarkerColor(kRed) gmc.SetMarkerSize(0.6) gmc.SetLineColor(kRed) gmc.Draw("PL") gdata.SetMarkerStyle(20) gdata.SetMarkerColor(kBlue) gdata.SetMarkerSize(0.6) gdata.Draw("P") leg = TLegend(0.6, 0.75, 0.95, 0.95) leg.AddEntry(gdata, 'Data', 'pl') leg.AddEntry(gmc, 'MC', 'pl') leg.Draw() c1.Print('comparison.eps') eps2pdf('comparison.eps')
def kkmass1(opts, args, figname): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] mode = modes[0] modekey = tools.get_modekey(mode) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') nohtml = parse_opts_set(opts.set, 'nohtml') if nohtml == None: outputhtml = True else: outputhtml = False dbfile = os.path.join(attr.figpath, label, figname + '.db') alldata, fullrangemc = get_fullrange_data_mc(opts, dbfile, label, 'kkmass', modekey, tag, binbase, binwidth, numbins) fullrangedata = {} init_dict(fullrangedata) evtpath = os.path.join(attr.datpath, 'sel', label, 'kkmass') evtfilemc = tools.set_file('evt', 'signal', modekey, tag, prefix='', forceCombine=1, extbase=evtpath) for i in xrange(numbins): lowmass = binbase + i * binwidth highmass = binbase + (i + 1) * binwidth prefix = 'dir_%s/kkmass/%s_%s' % (label, lowmass, highmass) datafile = tools.set_file('txt', 'data', modekey, tag, prefix=prefix, extbase=attr.fitpath) if os.access(datafile, os.F_OK): parsefile(datafile, lowmass, highmass, fullrangedata) else: sys.stdout.write('Skipped %s %s ...\n' % (lowmass, highmass)) scaledict(fullrangedata, 1 / sumdict(fullrangedata)) scaledict(fullrangemc, 1 / sumdict(fullrangemc)) gdata = TGraphAsymmErrors(len(fullrangedata['x']), getarray('x', fullrangedata), getarray('y', fullrangedata), getarray('exl', fullrangedata), getarray('exh', fullrangedata), getarray('eyl', fullrangedata), getarray('eyh', fullrangedata)) gmc = TGraph(len(fullrangemc['x']), getarray('x', fullrangemc), getarray('y', fullrangemc)) c1 = TCanvas('c', 'kk', 600, 600) c1.SetLeftMargin(0.15) c1.SetRightMargin(0.05) c1.SetBottomMargin(0.15) c1.SetTopMargin(0.05) #hr = c1.DrawFrame(0.5, 0.0, 1.5, 0.04) hr = c1.DrawFrame(0.9, 0.0, 1.8, 0.1) hr.GetYaxis().SetTitle('Yield (arbitrary units)') hr.GetXaxis().SetTitle('M(K^{-} #pi^{+}) (GeV/#font[72]{c}^{2})') hr.GetYaxis().SetTitleOffset(1.4) hr.GetYaxis().SetTitleSize(0.05) hr.GetXaxis().SetTitleOffset(1.3) hr.GetXaxis().SetTitleSize(0.05) gmc.SetMarkerStyle(21) gmc.SetMarkerColor(kRed) gmc.SetMarkerSize(0.6) gmc.SetLineColor(kRed) gmc.Draw("PL") gdata.SetMarkerStyle(20) gdata.SetMarkerColor(kBlue) gdata.SetMarkerSize(0.6) gdata.Draw("P") leg = TLegend(0.6, 0.75, 0.92, 0.92) leg.AddEntry(gdata, 'Data', 'pl') leg.AddEntry(gmc, 'MC', 'pl') leg.SetFillColor(0) leg.SetBorderSize(0) leg.Draw() canvas_output(c1, figname, label, opts.test, outputhtml=outputhtml)
def main(opts, args): tools.set_root_style(stat=1, grid=0, PadTopMargin=0.1, PadLeftMargin = 0.15) parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] if tag != 'single': # only deal with single tag raise NameError(tag) figpath = os.path.join(attr.figpath, label, 'trkmtm') for mode in modes: modekey = tools.get_modekey(mode) selfile = get_selfile(datatype, mode, label, test=opts.test) efffile = selfile.replace('.root', '.db') sname = attr.modes[modekey]['sname'].lower() f = TFile(selfile) effs = shelve.open(efffile) if sname == 'kpipi0': h_pk = {}; h_ppi1 = {}; h_ppiz = {} for tp in ('mc', 'mctruth'): h_pk[tp] = f.Get('h_pk_' + tp) h_ppi1[tp] = f.Get('h_ppi1_' + tp) h_ppiz[tp] = f.Get('h_ppiz_' + tp) draw_effmomenta_kpipi0(figpath, effs, sname, h_pk, h_ppi1, h_ppiz) elif sname == 'k3pi': h_pk = {}; h_ppi1 = {}; h_ppi2 = {}; h_ppim = {} for tp in ('mc', 'mctruth'): h_pk[tp] = f.Get('h_pk_' + 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) draw_effmomenta_k3pi(figpath, effs, sname, h_pk, h_ppi1, h_ppi2, h_ppim) elif sname == 'kpipi': h_pk = {}; h_ppi1 = {}; h_ppi2 = {} for tp in ('mc', 'mctruth'): h_pk[tp] = f.Get('h_pk_' + tp) h_ppi1[tp] = f.Get('h_ppi1_' + tp) h_ppi2[tp] = f.Get('h_ppi2_' + tp) draw_effmomenta_kpipi(figpath, effs, sname, h_pk, h_ppi1, h_ppi2) elif sname == 'kpipipi0': h_pk = {}; h_ppi1 = {}; h_ppi2 = {}; h_ppiz = {} for tp in ('mc', 'mctruth'): h_pk[tp] = f.Get('h_pk_' + tp) h_ppi1[tp] = f.Get('h_ppi1_' + tp) h_ppi2[tp] = f.Get('h_ppi2_' + tp) h_ppiz[tp] = f.Get('h_ppim_' + tp) draw_effmomenta_kpipipi0(figpath, effs, sname, h_pk, h_ppi1, h_ppi2, h_ppiz) elif sname == 'kspipi0': h_pks = {}; h_ppi1 = {}; h_ppiz = {} for tp in ('mc', 'mctruth'): h_pks[tp] = f.Get('h_pks_' + tp) h_ppi1[tp] = f.Get('h_ppi1_' + tp) h_ppiz[tp] = f.Get('h_ppiz_' + tp) draw_effmomenta_kspipi0(figpath, effs, sname, h_pks, h_ppi1, h_ppiz) elif sname == 'ks3pi': h_pks = {}; h_ppi1 = {}; h_ppi2 = {}; h_ppim = {} for tp in ('mc', 'mctruth'): h_pks[tp] = f.Get('h_pk_' + 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) draw_effmomenta_ks3pi(figpath, effs, sname, h_pks, h_ppi1, h_ppi2, h_ppim) elif sname == 'kkpi': h_pkm = {}; h_pkp = {}; h_ppi = {} for tp in ('mc', 'mctruth'): h_pkm[tp] = f.Get('h_pkm_' + tp) h_pkp[tp] = f.Get('h_pkp_' + tp) h_ppi[tp] = f.Get('h_ppi_' + tp) draw_effmomenta_kkpi(figpath, effs, sname, h_pkp, h_pkm, h_ppi) else: raise NameError(sname)
def kkmass0_old(opts, args): parsed = parse_args(args) datatype = parsed[0] tag = parsed[1] modes = parsed[2] label = parsed[3] mode = modes[0] modekey = tools.get_modekey(mode) binbase = parse_opts_set(opts.set, 'binbase') binwidth = parse_opts_set(opts.set, 'binwidth') numbins = parse_opts_set(opts.set, 'numbins') figname = 'kkmass0_' + '_'.join(args[:-1]).replace('/', '_') figname = figname.replace(',', '_') + '.eps' epsfile = os.path.join(attr.figpath, label, figname) fullrangedata = {} init_dict(fullrangedata) fullrangemc = {} init_dict(fullrangemc) evtpath = os.path.join(attr.datpath, 'sel', label, 'kkmass') evtfiledata = tools.set_file('evt', 'data', modekey, tag, prefix='', forceCombine=1, extbase=evtpath) evtfilemc = tools.set_file('evt', 'signal', modekey, tag, prefix='', forceCombine=1, extbase=evtpath) for i in xrange(numbins): lowmass = binbase + i * binwidth highmass = binbase + (i + 1) * binwidth parse_evtfile(evtfiledata, lowmass, highmass, fullrangedata) parse_evtfile(evtfilemc, lowmass, highmass, fullrangemc) scaledict(fullrangedata, 1 / sumdict(fullrangedata)) scaledict(fullrangemc, 1 / sumdict(fullrangemc)) gdata = TGraph(len(fullrangedata['x']), getarray('x', fullrangedata), getarray('y', fullrangedata)) gmc = TGraph(len(fullrangemc['x']), getarray('x', fullrangemc), getarray('y', fullrangemc)) c1 = TCanvas('c', 'kk', 600, 600) c1.SetLeftMargin(0.15) c1.SetRightMargin(0.05) c1.SetBottomMargin(0.15) c1.SetTopMargin(0.05) #hr = c1.DrawFrame(0.95, 0.0, 1.95, 0.12) hr = c1.DrawFrame(0.9, 0.0, 1.8, 0.1) hr.GetYaxis().SetTitle('Yield (arbitrary units)') hr.GetXaxis().SetTitle('M(K^{-} K^{+}) (GeV/#font[72]{c}^{2})') hr.GetYaxis().SetTitleOffset(1.4) hr.GetYaxis().SetTitleSize(0.05) hr.GetXaxis().SetTitleOffset(1.3) hr.GetXaxis().SetTitleSize(0.05) gmc.SetMarkerStyle(21) gmc.SetMarkerColor(kRed) gmc.SetMarkerSize(0.6) gmc.SetLineColor(kRed) gmc.Draw("PL") gdata.SetMarkerStyle(20) gdata.SetMarkerColor(kBlue) gdata.SetMarkerSize(0.6) gdata.Draw("P") leg = TLegend(0.6, 0.75, 0.95, 0.95) leg.AddEntry(gdata, 'Data', 'pl') leg.AddEntry(gmc, 'MC', 'pl') leg.Draw() c1.Print(epsfile) eps2pdf(epsfile)