Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
#!/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
Exemplo n.º 5
0
#!/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
Exemplo n.º 6
0
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()