import sys, os from collections import defaultdict from JMTucker.Tools.ROOTTools import * from JMTucker.Tools.general import bool_from_argv set_style() ROOT.gStyle.SetOptStat(1110) ROOT.gStyle.SetPadTopMargin(0.05) ROOT.gStyle.SetPadBottomMargin(0.1) ROOT.gStyle.SetPadLeftMargin(0.05) ROOT.gStyle.SetPadRightMargin(0.02) draw_individual_dists = bool_from_argv('draw_individual_dists') if draw_individual_dists: ps = plot_saver(plot_dir('vtoy'), size=(400, 300), log=False) else: ps = plot_saver(plot_dir('vtoy'), size=(1200, 500)) path = sys.argv[1] fn = os.path.join(path, 'expected.root') f = ROOT.TFile(fn) limit_t = f.Get('limit') limit_by_toy = {} for _ in ttree_iterator(limit_t): limit_by_toy[limit_t.iToy] = limit_t.limit limit_by_dist = defaultdict(list) toys = f.Get('toys') for ktoy in toys.GetListOfKeys(): toy = ktoy.GetName()
#!/usr/bin/env python import os, sys, shutil, re from fnmatch import fnmatch from pprint import pprint from collections import defaultdict from JMTucker.Tools.ROOTTools import * from JMTucker.Tools.general import bool_from_argv if len(sys.argv) < 5: print 'usage: mergeByRunTH1.py in_fn out_fn min_run max_run [glob_pattern_1 ...]' sys.exit(1) yes = bool_from_argv('yes') in_fn = sys.argv[1] out_fn = sys.argv[2] min_run = int(sys.argv[3]) max_run = int(sys.argv[4]) patterns = sys.argv[5:] def use(path): return not patterns or any(fnmatch(path, pattern) for pattern in patterns) if not os.path.isfile(in_fn): print 'no file', in_fn sys.exit(1) if os.path.isfile(out_fn): print 'refusing to clobber', out_fn sys.exit(1) shutil.copy2(in_fn, out_fn)
#!/usr/bin/env python import os, sys, shutil, re from fnmatch import fnmatch from pprint import pprint from collections import defaultdict from JMTucker.Tools.ROOTTools import * from JMTucker.Tools.general import bool_from_argv if len(sys.argv) < 5: print 'usage: mergeByRunTH1.py in_fn out_fn min_run max_run [glob_pattern_1 ...]' sys.exit(1) yes = bool_from_argv('yes') in_fn = sys.argv[1] out_fn = sys.argv[2] min_run = int(sys.argv[3]) max_run = int(sys.argv[4]) patterns = sys.argv[5:] def use(path): return not patterns or any(fnmatch(path, pattern) for pattern in patterns) if not os.path.isfile(in_fn): print 'no file', in_fn sys.exit(1) if os.path.isfile(out_fn): print 'refusing to clobber', out_fn
import sys, os from collections import defaultdict from JMTucker.Tools.ROOTTools import * from JMTucker.Tools.general import bool_from_argv set_style() ROOT.gStyle.SetOptStat(1110) ROOT.gStyle.SetPadTopMargin(0.05) ROOT.gStyle.SetPadBottomMargin(0.1) ROOT.gStyle.SetPadLeftMargin(0.05) ROOT.gStyle.SetPadRightMargin(0.02) draw_individual_dists = bool_from_argv('draw_individual_dists') if draw_individual_dists: ps = plot_saver(plot_dir('vtoy'), size=(400,300), log=False) else: ps = plot_saver(plot_dir('vtoy'), size=(1200,500)) path = sys.argv[1] fn = os.path.join(path, 'expected.root') f = ROOT.TFile(fn) limit_t = f.Get('limit') limit_by_toy = {} for _ in ttree_iterator(limit_t): limit_by_toy[limit_t.iToy] = limit_t.limit limit_by_dist = defaultdict(list) toys = f.Get('toys') for ktoy in toys.GetListOfKeys(): toy = ktoy.GetName()
#!/usr/bin/env python from JMTucker.Tools.ROOTTools import * from JMTucker.Tools.Sample import norm_from_file from JMTucker.Tools.Year import year from JMTucker.Tools.general import typed_from_argv, bool_from_argv from JMTucker.Tools import Samples import JMTucker.MFVNeutralino.AnalysisConstants as ac year = typed_from_argv(int, year, name='year') yearcheck = not bool_from_argv('noyearcheck') nosig = bool_from_argv('nosig') nodata = bool_from_argv('nodata') nobkg = bool_from_argv('nobkg') onlysig = bool_from_argv('onlysig') onlydata = bool_from_argv('onlydata') onlybkg = bool_from_argv('onlybkg') sumbkg = not bool_from_argv('nosumbkg') sumall = bool_from_argv('sumall') sort = not bool_from_argv('nosort') genmatch = bool_from_argv('genmatch') minnjets = typed_from_argv(int, name='minnjets') maxnjets = typed_from_argv(int, name='maxnjets') minht = typed_from_argv(float, name='minht') maxht = typed_from_argv(float, name='maxht') mindbv = typed_from_argv(float, name='mindbv') maxdbv = typed_from_argv(float, name='maxdbv') which = typed_from_argv(int, -1) ntks = ('mfvMiniTreeNtk3', 'mfvMiniTreeNtk4', 'mfvMiniTree')
#!/usr/bin/env python import os, sys, tempfile from JMTucker.Tools.general import bool_from_argv remove_newlines = bool_from_argv('remove_newlines') remove_blanks = bool_from_argv('remove_blanks') in_fn = sys.argv[1] tmp_f, tmp_fn = tempfile.mkstemp() out_f, out_fn = tempfile.mkstemp() file = os.fdopen(tmp_f, 'wt') file.write(open(in_fn).read()) file.write('\nopen("%s", "wt").write(process.dumpPython())\n' % out_fn) file.close() os.system('python %s > /dev/null' % tmp_fn) parens = 0 for line in os.fdopen(out_f): if remove_newlines: for c in line: if c in '{[(': parens += 1 elif c in '}])': parens -= 1 if parens: line = line.strip() if not remove_blanks or line.strip(): print line,
raise ValueError('only found %i files, expected %i' % (len(exp_fns), njobs)) if not hadd(exp_fn, exp_fns): raise ValueError('problem hadding %s from %s files' % (exp_fn, len(exp_fns))) exp = fromtree(exp_fn) if len(exp) != njobs * ntoysperjob: raise ValueError( 'unexpected number of points in %s' % exp_fn) # this can't be given the asserts in fromtree right now stats(out_fn, obs, exp) def rrange(path): l = fromtree(os.path.join(path, 'expected.root')) minl, maxl = min(l), max(l) print 'rm *.root %(path)s/observed_byhand.root ; combine -M BayesianToyMC %(path)s/datacard.txt --rMin %(minl)f --rMax %(maxl)f | tee %(path)s/byhand ; mv higgsCombineTest.BayesianToyMC.mH120.root %(path)s/observed_byhand.root' % locals( ) if __name__ == '__main__': remake = bool_from_argv('remake') for path in sys.argv[1:]: out_fn = os.path.join(path, 'results') if not remake and os.path.isfile(out_fn): continue print path doit(path, out_fn)
#!/usr/bin/env python import sys, os from glob import glob from JMTucker.MFVNeutralino.NtupleCommon import ntuple_version_use as version from JMTucker.Tools.ROOTTools import * from JMTucker.Tools.Sample import norm_from_file from JMTucker.Tools.general import typed_from_argv, bool_from_argv from JMTucker.Tools import Samples import JMTucker.MFVNeutralino.AnalysisConstants as ac nosig = bool_from_argv('nosig') nodata = bool_from_argv('nodata') nobkg = bool_from_argv('nobkg') onlysig = bool_from_argv('onlysig') onlydata = bool_from_argv('onlydata') onlybkg = bool_from_argv('onlybkg') sumall = bool_from_argv('sumall') which = typed_from_argv(int, -1) ntks = ('mfvMiniTreeNtk3', 'mfvMiniTreeNtk4', 'mfvMiniTree') if which != -1: ntks_to_trees = {3: 'mfvMiniTreeNtk3', 4: 'mfvMiniTreeNtk4', 5: 'mfvMiniTree', 7: 'mfvMiniTreeNtk3or4'} if which not in ntks_to_trees: raise ValueError('bad ntks %s' % which) ntks = (ntks_to_trees[which],) ROOT.gErrorIgnoreLevel = 6000 fns = [] for x in sys.argv[1:]: if x.endswith('.root') and (os.path.isfile(x) or x.startswith('root://')):
import sys, os, re from collections import Counter from pprint import pprint from JMTucker.Tools import eos, SampleFiles from JMTucker.Tools.general import bool_from_argv from JMTucker.Tools.hadd import hadd if len(sys.argv) < 3: sys.exit( 'usage: %s dataset sample\n where dataset and sample are as registered in SampleFiles. sample can be "*" to mean all samples having the dataset.' % sys.argv[0]) verbosity = 0 rm = bool_from_argv('rm') while '-v' in sys.argv: verbosity += 1 sys.argv.remove('-v') dataset = sys.argv[1] sample = sys.argv[2] if sample == '*': samples = [] for s, ds in SampleFiles.keys(): if ds == dataset: samples.append(s) else: samples = [sample] bn_re = re.compile(r'(.*)_(\d+)\.root')
p.expect('.*GRID.*:') p.sendline(pp) p.interact() p = pexpect.spawn('myproxy-init -d -n -s myproxy.cern.ch') p.expect('.*GRID.*:') p.sendline(pp) p.interact() else: os.system('voms-proxy-init -voms cms -valid 192:00') os.system('myproxy-init -d -n -s myproxy.cern.ch') if __name__ == '__main__': from pprint import pprint from FWCore.PythonUtilities.LumiList import LumiList if bool_from_argv('-cleanUp'): print 'executing crab_cleanup()' crab_cleanup() elif bool_from_argv('-countJobs'): print len(crab_jobs_from_argv()) elif bool_from_argv('-expectedLumis'): print 'writing out JSONs for expected lumis:' for d in crab_dirs_from_argv(): print d ll = LumiList(runsAndLumis=crab_lumis_from_arguments_xml(d)) ll.writeJSON(os.path.join(d, 'res/expectedLumis.json')) elif bool_from_argv('-checkLumiDups'): print 'comparing lumiSummary.jsons:'