13 return re.search(
"t1tttt_(.*?)_(.*?)_lumi_(.*?)_met_(.*?)_inf_njets_(.*?)_inf_nbm_(.*?)_inf_tkveto_(.*?).root", name)
17 mglu = int(param_strings.group(1))
18 mlsp = int(param_strings.group(2))
19 lumi = float(param_strings.group(3))
20 met = float(param_strings.group(4))
21 njets = int(param_strings.group(5))
22 nbm = int(param_strings.group(6))
23 tkveto = param_strings.group(7)
28 return (mglu, mlsp, lumi, met, njets, nbm, tkveto)
31 f = ROOT.TFile(filename,
"read")
33 if wp.quantileExpected == 0.5:
39 f = ROOT.TFile(filename,
"read")
41 if wp.quantileExpected == -1.:
46 if __name__ ==
"__main__":
47 parser = argparse.ArgumentParser(description=
"Extracts binning parameters, limits, and significance from a single (aggregate) bin workspace")
48 parser.add_argument(
"-f",
"--file", required=
True, help=
"File from which to extract parameters")
49 parser.add_argument(
"-o",
"--output", default=
"", help=
"Directory in which to store results")
50 args = parser.parse_args()
55 workdir = tempfile.mkdtemp()
56 name = os.path.basename(args.file)
57 os.symlink(args.file, os.path.join(workdir, name))
60 subprocess.call([
"combine",
"-M",
"Asymptotic",
"-t",
"-1",
"--toysFreq",name])
61 subprocess.call([
"combine",
"-M",
"ProfileLikelihood",
"--significance",
"--expectSignal=1",
"-t",
"-1",
"--toysFreq",name])
63 limit =
GetLimit(os.path.join(workdir,
"higgsCombineTest.Asymptotic.mH120.root"))
64 signif =
GetSignificance(os.path.join(workdir,
"higgsCombineTest.ProfileLikelihood.mH120.root"))
66 params += (limit, signif,)
69 shutil.rmtree(workdir)
71 result =
" ".join(str(x)
for x
in params)
74 if(args.output !=
""):
75 with open(os.path.join(args.output, name.replace(
".root",
".txt")),
"w")
as f:
def GetSignificance(filename)