def __init__(self, threadnr: int, rundir: str, protomodel, pid1, pid2, mpid1, mpid2, nevents: int, predictor): self.rundir = setup(rundir) self.threadnr = threadnr self.M = copy.deepcopy(protomodel) self.M.createNewSLHAFileName(prefix="lthrd%d_%d" % (threadnr, pid1)) self.pid1 = pid1 self.pid2 = pid2 self.mpid1 = mpid1 self.mpid2 = mpid2 self.nevents = nevents self.predictor = predictor
def __init__(self, protomodel, pid1, pid2, nproc, rundir): self.rundirarg = rundir self.rundir = setup(rundir) self.M = protomodel self.pid1 = pid1 self.pid2 = pid2 self.nproc = nproc expected = False select = "all" dbpath = rundir + "/default.pcl" self.predictor = Predictor(0, dbpath=dbpath, expected=expected, select=select)
def main(): import argparse argparser = argparse.ArgumentParser(description='perform likelhood scans') argparser.add_argument('-n', '--number', help='which hiscore to plot [0]', type=int, default=0) argparser.add_argument('-1', '--pid1', help='pid1 [1000006]', type=int, default=1000006) argparser.add_argument('-2', '--pid2', help='pid2 [1000022]', type=int, default=1000022) argparser.add_argument( '-P', '--nproc', help= 'number of process to run in parallel. zero is autodetect. Negative numbers are added to autodetect [0]', type=int, default=0) argparser.add_argument('-m1', '--min1', help='minimum mass of pid1 [None]', type=float, default=None) argparser.add_argument('-M1', '--max1', help='maximum mass of pid1 [2200.]', type=float, default=None) argparser.add_argument('-d1', '--deltam1', help='delta m of pid1 [None]', type=float, default=None) argparser.add_argument('-m2', '--min2', help='minimum mass of pid2 [None]', type=float, default=None) argparser.add_argument('-M2', '--max2', help='maximum mass of pid2 [None]', type=float, default=None) argparser.add_argument('-d2', '--deltam2', help='delta m of pid1 [None]', type=float, default=None) argparser.add_argument('-t', '--topo', help='topology [None]', type=str, default=None) argparser.add_argument('-R', '--rundir', help='override the default rundir [None]', type=str, default=None) argparser.add_argument('-e', '--nevents', help='number of events [100000]', type=int, default=100000) argparser.add_argument( '-p', '--picklefile', help='pickle file to draw from [<rundir>/hiscore.hi]', type=str, default="default") argparser.add_argument('-D', '--draw', help='also perform the plotting, ie call plotLlhds', action='store_true') argparser.add_argument('-v', '--verbosity', help='verbosity -- debug, info, warn, err [info]', type=str, default="info") argparser.add_argument('-o', '--output', help="prefix for output file [llhd]", type=str, default="llhd") args = argparser.parse_args() rundir = setup(args.rundir) nproc = args.nproc if nproc < 1: nproc = nCPUs() + nproc if args.picklefile == "default": args.picklefile = "%s/hiscore.hi" % rundir protomodel = obtain(args.number, args.picklefile) pid1s = [args.pid1] if args.pid1 == 0: pid1s = findPids(rundir) for pid1 in pid1s: scanner = LlhdScanner(protomodel, pid1, args.pid2, nproc, rundir) args.pid1 = pid1 args = scanner.overrideWithDefaults(args) scanner.scanLikelihoodFor ( args.min1, args.max1, args.deltam1, args.min2, args.max2, args.deltam2, \ args.nevents, args.topo, args.output ) if args.draw: verbose = args.verbosity copy = True max_anas = 5 interactive = False drawtimestamp = True compress = False upload = "latest" plot = plotLlhds.LlhdPlot(pid1, args.pid2, verbose, copy, max_anas, interactive, drawtimestamp, compress, rundir, upload) plot.plot()
#!/usr/bin/env python3 """ script used to produce the likelihood scans """ import os, sys, multiprocessing, time, numpy, subprocess, copy, glob from csetup import setup setup() from smodels.tools.wrapperBase import WrapperBase WrapperBase.defaulttempdir = "./" ## keep the temps in our folder from smodels.tools.physicsUnits import fb from smodels.tools.runtime import nCPUs from tester.combiner import Combiner from tester.predictor import Predictor from plotting.plotHiscore import obtain from plotting import plotLlhds def findPids(rundir): """ search for llhd*pcl files, report the corresponding pids. :returns: set of pids """ ret = set() files = glob.glob("llhd*pcl") files += glob.glob("%s/llhd*pcl" % rundir) for f in files: p = f.find("llhd") s = f[p + 4:] s = s.replace(".pcl", "") s = s.replace("1000022", "") ret.add(int(s)) print("[llhdscanner] pids are %s" % ret) return ret
#!/usr/bin/env python3 """ draw Z as a function of a model parameter """ import numpy, sys, os, copy, time, subprocess, glob from csetup import setup setup() from smodels.tools.wrapperBase import WrapperBase WrapperBase.defaulttempdir="./" ## keep the temps in our folder from builder.manipulator import Manipulator from smodels.tools.runtime import nCPUs from tester.predictor import Predictor from ptools.sparticleNames import SParticleNames def getHiscore( force_copy = False, rundir = None ): """ get the hiscore from the picklefile :param force_copy: if True, force a cp command on the pickle file """ from walker.hiscore import Hiscore # spids = str(pids).replace("[","").replace("]","").replace(" ","").replace(",","").replace("0","") picklefile =rundir + "hiscore2.hi" # % spids backupfile = rundir+"hiscore.hi" # picklefile =rundir + "hiscore.hi" # % spids ## do this always h2Outdated = False if os.path.exists ( picklefile ) and os.path.exists ( backupfile ): if os.stat ( picklefile ).st_mtime < os.stat ( backupfile ).st_mtime: h2Outdated = True if force_copy or (not os.path.exists ( picklefile )) or h2Outdated: cmd = "cp %s %s" % ( backupfile, picklefile ) import subprocess
def main(): import argparse argparser = argparse.ArgumentParser( description='hiscore proto-model plotter') argparser.add_argument('-n', '--number', help='which hiscore to plot [0]', type=int, default=0) argparser.add_argument( '-f', '--picklefile', help='pickle file to draw from [<rundir>/hiscore.hi]', type=str, default="default") argparser.add_argument('-v', '--verbosity', help='verbosity -- debug, info, warn, err [info]', type=str, default="warn") argparser.add_argument('-H', '--html', help='produce index.html', action="store_true") argparser.add_argument('-R', '--ruler', help='produce ruler plot', action="store_true") argparser.add_argument('-D', '--decays', help='produce decays plot', action="store_true") argparser.add_argument('-P', '--predictions', help='list all predictions', action="store_true") argparser.add_argument('-T', '--tex', help='produce the latex version', action="store_true") argparser.add_argument( '-A', '--all', help='produce everything (equivalent to -H -R -D -P -T)', action="store_true") argparser.add_argument('-t', '--test', help='produce test.pdf file', action="store_true") argparser.add_argument('-k', '--keep', help='keep latex files', action="store_true") argparser.add_argument('--horizontal', help='horizontal, not vertical ruler plot?', action="store_true") argparser.add_argument( '-u', '--upload', help= 'upload to one of the following destinations: none, gpu, github, anomaly, latest, interesting [none]. run --destinations to learn more', type=str, default="") argparser.add_argument( '-c', '--commit', help= 'also commit and push to smodels.github.io (works only with -u github, anomaly, latest, or interesting)', action="store_true") argparser.add_argument('--rundir', help='override the default rundir [None]', type=str, default=None) argparser.add_argument('--dbpath', help='path to database [<rundir>/database.pcl]', type=str, default="<rundir>/database.pcl") argparser.add_argument("--destinations", help="learn more about the upload destinations", action="store_true") args = argparser.parse_args() rundir = setup(args.rundir) if args.all: args.html = True args.ruler = True args.decays = True args.predictions = True args.tex = True if args.picklefile == "default": args.picklefile = "%s/hiscore.hi" % rundir runPlotting(args) if args.test: compileTestText()