def dump_xsec(jobid): json_files = [ i for i in glob.glob('inputs/%s/*.json' % jobid) if 'data_' not in i ] lumi_files = [ i for i in glob.glob('inputs/%s/*.sum' % jobid) if 'data_' not in i ] datasets = {} for json_file in json_files: dname = json_file.split('/')[-1].split('.')[0] datasets[dname] = {} datasets[dname]['numevts'] = prettyjson.loads( open(json_file).read())['n_evts'] for lumi_file in lumi_files: dname = lumi_file.split('/')[-1].split('.')[0] datasets[dname]['lumi'] = float(open(lumi_file).read().strip()) out_format = '%60s' + '%15s' * 3 print out_format % ('dataset', '# evts', 'lumi [/pb]', 'xsec [pb]') for dataset, info in datasets.iteritems(): print out_format % (dataset, '%.3f' % info['numevts'], '%.3f' % info['lumi'], '%.5f' % (info['numevts'] / info['lumi']))
def dump_xsec(jobid): json_files = [i for i in glob.glob('inputs/%s/*.json' % jobid) if 'data_' not in i] lumi_files = [i for i in glob.glob('inputs/%s/*.sum' % jobid) if 'data_' not in i] datasets = {} for json_file in json_files: dname = json_file.split('/')[-1].split('.')[0] datasets[dname] = {} datasets[dname]['numevts'] = prettyjson.loads(open(json_file).read())['n_evts'] for lumi_file in lumi_files: dname = lumi_file.split('/')[-1].split('.')[0] datasets[dname]['lumi'] = float( open(lumi_file).read().strip() ) out_format = '%30s'+'%15s'*3 print out_format % ('dataset', '# evts', 'lumi [/pb]', 'xsec [pb]') for dataset, info in datasets.iteritems(): print out_format % (dataset, '%.3f' % info['numevts'], '%.3f' % info['lumi'], '%.5f' % (info['numevts']/info['lumi']) )
## parser.add_option('--png', action='store_true', dest='png', default = False, ## help='prints in png format') ## parser.add_option('--pdf', action='store_true', dest='pdf', default = False, ## help='prints in pdf format') ## parser.add_option('--tex', action='store_true', dest='tex', default = False, ## help='prints in LaTex format') ## parser.add_option('--txt', action='store_true', dest='txt', default = False, ## help='prints in txt format') ## parser.add_option('--root', action='store_true', dest='root', default = False, ## help='prints in root format') ## parser.add_option('--cpp', action='store_true', dest='cpp', default = False, ## help='prints in .C format') (options,jsons) = parser.parse_args() jmaps= [prettyjson.loads( open(json).read() ) for json in jsons] exps = [j for j in jmaps if j['kind'] == 'expected'] exp = exps[0] if len(exps) > 0 else None obss = [j for j in jmaps if j['kind'] == 'observed'] obs = obss[0] if len(obss) > 0 else None canvas = plotting.Canvas(name='adsf', title='asdf') to_print = [] one_line = None if exp: to_print.append( json2graph( exp,
#! /bin/env python import FinalStateAnalysis.Utilities.prettyjson as prettyjson from optparse import OptionParser import logging parser = OptionParser() parser.add_option('--tag', '-t', type=str, default = None, help='value of the tag to be added',dest='tag') parser.add_option('--label', '-l', type=str, default = 'tag', help='label of the tag to be added',dest='label') (options,jsons) = parser.parse_args() tagVal = options.tag for jfile in jsons: json = prettyjson.loads( open(jfile).read() ) json[options.label] = tagVal with open(jfile,'w') as out: out.write(prettyjson.dumps(json))
## parser.add_option('--png', action='store_true', dest='png', default = False, ## help='prints in png format') ## parser.add_option('--pdf', action='store_true', dest='pdf', default = False, ## help='prints in pdf format') ## parser.add_option('--tex', action='store_true', dest='tex', default = False, ## help='prints in LaTex format') ## parser.add_option('--txt', action='store_true', dest='txt', default = False, ## help='prints in txt format') ## parser.add_option('--root', action='store_true', dest='root', default = False, ## help='prints in root format') ## parser.add_option('--cpp', action='store_true', dest='cpp', default = False, ## help='prints in .C format') (options, jsons) = parser.parse_args() jmaps = [prettyjson.loads(open(json).read()) for json in jsons] exps = [j for j in jmaps if j['kind'] == 'expected'] exp = exps[0] if len(exps) > 0 else None obss = [j for j in jmaps if j['kind'] == 'observed'] obs = obss[0] if len(obss) > 0 else None canvas = plotting.Canvas(name='adsf', title='asdf') to_print = [] one_line = None if exp: to_print.append( json2graph( exp,
parser.add_option('--name-by', type=str, default = "channel", help='which information use to name',dest='name_by') parser.add_option('--compare-by', type=str, default = "", help='which information use compare. Json with same info will be plotted with same color but different line style', dest='compare_by') parser.add_option('--ref', type=str, default = "", help='limit to be used as reference',dest='ref') parser.add_option('--legend-on-the-left', action='store_true', dest='legend_left', default = False, help='puts the legend on the left') (options,jsons) = parser.parse_args() jmaps= [] for json in jsons: print 'adding json limit file %s to stack' % json jmaps.append(prettyjson.loads( open(json).read() )) to_print = [] mycols = [ colors['red'], colors['blue'], 'darkgreen', 'darkviolet', colors['cyan'], colors['orange'], ] canvas = plotting.Canvas(name='adsf', title='asdf') style_dict = {} one_line = None first = True
) signal_region = yields.os signal_region.mc_sum = signal_region.bkg_sum + signal_region.zmm signal_region.zmm_estimate = signal_region.data - signal_region.bkg_sum signal_region.zmm_ratio = signal_region.zmm_estimate / signal_region.zmm ######################################################################################################################################################## ###################################### Loads summary tables from json ###################################### ######################################################################################################################################################## jobid = os.environ['jobid'] mt_table = convert_table( prettyjson.loads( open('results/%s/plots/mt/yield_dump.json' % jobid).read() ), sys_map_mt ) #convert to struct, easier access mt_table = RecursiveStruct(**mt_table) mm_table = convert_table( prettyjson.loads( open('results/%s/plots/mm/yield_dump.json' % jobid).read() ), sys_map_mm ) #convert to struct, easier access mm_table = RecursiveStruct(**mm_table)
def txt2tuple(line): return tuple([ int(i.strip()) for i in line.split(':') ]) def is_in_json(evt, jsonmask): run = evt[0] lumi = evt[1] if str(run) in jsonmask: for lumis in jsonmask[str(run)]: if lumis[0] <= lumi <= lumis[1]: return True return False parser = argparse.ArgumentParser() parser.add_argument('event') parser.add_argument('masks', nargs='+') args = parser.parse_args() event = txt2tuple(args.event) #print args.masks jsons = [ (i, prettyjson.loads( open(i).read() )) for i in args.masks ] for name, mask in jsons: if is_in_json(event, mask): print "Event %s should be in %s" % (args.event, name) sys.exit(0) print "Event %s not found in any json!" % args.event
parser.add_option('--ref', type=str, default="", help='limit to be used as reference', dest='ref') parser.add_option('--legend-on-the-left', action='store_true', dest='legend_left', default=False, help='puts the legend on the left') (options, jsons) = parser.parse_args() jmaps = [] for json in jsons: print 'adding json limit file %s to stack' % json jmaps.append(prettyjson.loads(open(json).read())) to_print = [] mycols = [ colors['red'], colors['blue'], 'darkgreen', 'darkviolet', colors['cyan'], colors['orange'], ] canvas = plotting.Canvas(name='adsf', title='asdf') style_dict = {} one_line = None first = True
#! /bin/env python import FinalStateAnalysis.Utilities.prettyjson as prettyjson from optparse import OptionParser import logging parser = OptionParser() parser.add_option('--tag', '-t', type=str, default=None, help='value of the tag to be added', dest='tag') parser.add_option('--label', '-l', type=str, default='tag', help='label of the tag to be added', dest='label') (options, jsons) = parser.parse_args() tagVal = options.tag for jfile in jsons: json = prettyjson.loads(open(jfile).read()) json[options.label] = tagVal with open(jfile, 'w') as out: out.write(prettyjson.dumps(json))