Skip to content

Commit 48dfc0b

Browse files
committed
add GoF driver script
1 parent 094c803 commit 48dfc0b

File tree

2 files changed

+139
-6
lines changed

2 files changed

+139
-6
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ python ../plotTF.py
7474
Fitting Z
7575
```
7676
# Baseline
77-
combineTool.py -M Impacts -d model_combined.root -m 125 --doInitialFit --robustFit 1 --setParameterRanges r=-1,5 --cminDefaultMinimizerStrategy 0 --X-rtd FITTER_DYN_STEP --expectSignal 1 -t -1 --toysFrequentist
77+
combineTool.py -M Impacts -d model_combined.root -m 125 --doInitialFit --robustFit 1 --setParameterRanges r=-1,5 --cminDefaultMinimizerStrategy 0 --X-rtd FITTER_DYN_STEP --expectSignal 1 -t -1 --toysFrequentist --redefineSignalPOIs z
7878
# Condor
79-
combineTool.py -M Impacts -d model_combined.root -m 125 --doFits --robustFit 1 --allPars --setParameterRanges r=-1,5 -t -1 --toysFrequentist --expectSignal 1 --cminDefaultMinimizerStrategy 0 --X-rtd MINIMIZER_analytic --job-mode condor --sub-opts='+JobFlavour = "workday"' --task-name ggHccZ --exclude 'rgx{qcdparams*}'
79+
combineTool.py -M Impacts -d model_combined.root -m 125 --doFits --robustFit 1 --allPars --setParameterRanges r=-1,5 -t -1 --toysFrequentist --expectSignal 1 --redefineSignalPOIs z --cminDefaultMinimizerStrategy 0 --X-rtd MINIMIZER_analytic --job-mode condor --sub-opts='+JobFlavour = "workday"' --task-name ggHccZ --exclude 'rgx{qcdparams*}'
8080
# Collect
81-
combineTool.py -M Impacts -d model_combined.root -o impacts.json
82-
plotImpacts.py -i impacts.json -o plots/impacts_out_Z --blind
81+
combineTool.py -M Impacts -d model_combined.root -m 125 --redefineSignalPOIs z -o impactsZ.json
82+
plotImpacts.py -i impactsZ.json -o plots/impacts_out_Z --blind
8383
```
8484

8585
Fitting H
@@ -89,8 +89,8 @@ combineTool.py -M Impacts -d model_combined.root -m 125 --doInitialFit --robustF
8989
# Condor
9090
combineTool.py -M Impacts -d model_combined.root -m 125 --doFits --robustFit 1 --allPars --setParameterRanges r=-500,500 -t -1 --toysFrequentist --expectSignal 40 --cminDefaultMinimizerStrategy 0 --X-rtd MINIMIZER_analytic --job-mode condor --sub-opts='+JobFlavour = "workday"' --task-name ggHccH --exclude 'rgx{qcdparams*}'
9191
# Collect
92-
combineTool.py -M Impacts -m 125 -d model_combined.root -o impacts.json
93-
plotImpacts.py -i impacts.json -o plots/impacts_out_H --blind
92+
combineTool.py -M Impacts -m 125 -d model_combined.root -o impactsH.json
93+
plotImpacts.py -i impactsH.json -o plots/impacts_out_H --blind
9494
```
9595

9696

gofer.py

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import os
2+
import sys
3+
import time
4+
import argparse
5+
6+
BASE = os.getcwd()
7+
8+
if __name__ == "__main__":
9+
parser = argparse.ArgumentParser(description='Make plots for ftest/gof files.')
10+
parser.add_argument('dname', nargs='?', default=os.getcwd())
11+
parser.add_argument('--make', action='store_true', help='')
12+
parser.add_argument('--blind', action='store_true', help='')
13+
parser.add_argument('--mc', action='store_true', help='')
14+
15+
parser.add_argument('--build', action='store_true', help='')
16+
parser.add_argument('--run', action='store_true', help='')
17+
parser.add_argument('--condor', action='store_true', help='')
18+
parser.add_argument('--collect', action='store_true', help='')
19+
parser.add_argument('--plot', action='store_true', help='')
20+
parser.add_argument('--year', type=str, default=None, help="Year to display on plots.")
21+
args = parser.parse_args()
22+
23+
dname = args.dname
24+
print("X", dname)
25+
start = time.time()
26+
27+
if args.make:
28+
# Made workspaces
29+
for pt in range(0, 4):
30+
for rho in range(0, 4):
31+
if args.mc:
32+
os.system(
33+
"python new_Hxx.py --MC --year {year} --templates tau/templates_ref{yearshort}_CC.root -o {dname}{p}{r} --degs {p},{r} "
34+
" --justZ True --muCR False --MCTF False --muCR False --systs False --scale False --smear False --unblind "
35+
.format(year=args.year, yearshort=args.year[-2:], dname=dname, p=str(pt), r=str(rho))
36+
)
37+
else:
38+
os.system(
39+
"python new_Hxx.py --data --year {year} --templates reft/templates_ref{yearshort}_CC.root -o {dname}{p}{r} --degs {p},{r} "
40+
"--mutemplates reft/templatesmuCR_ref{yearshort}_CC.root --muCR True"
41+
.format(year=args.year, yearshort=args.year[-2:], dname=dname, p=str(pt), r=str(rho))
42+
+ (" --unblind " if not args.blind else "")
43+
)
44+
45+
N = 3
46+
if args.build:
47+
N = 4
48+
for pt in range(0, N):
49+
for rho in range(0, N):
50+
path = "{}/{}{}{}".format(BASE, dname, pt, rho)
51+
print("XXXXXXXXXXXXXXXX")
52+
print("Working in:")
53+
print(" ", path)
54+
print("XXXXXXXXXXXXXXXX")
55+
os.chdir(path)
56+
57+
if args.build:
58+
os.system("bash build.sh")
59+
60+
if args.run:
61+
# os.system(
62+
# "combine -M FitDiagnostics --expectSignal 1 -d model_combined.root --cminDefaultMinimizerStrategy 0 --robustFit=1 "
63+
# " -t -1 --toysFrequentist"
64+
# " --redefineSignalPOIs z"
65+
# )
66+
67+
# os.system(
68+
# "combineTool.py -M AsymptoticLimits -m 125 -d model_combined.root --there --expectSignal 1 "
69+
# " -t -1 --toysFrequentist"
70+
# " --redefineSignalPOIs r"
71+
# )
72+
# os.system("combine -M Significance model_combined.root --expectSignal 1 -t -1 --toysFrequentist")
73+
# os.system("combine -M Significance model_combined.root --expectSignal 1")
74+
# os.system("python ../plot.py --MC")
75+
# os.system("python ../plotTF.py")
76+
# os.system(
77+
# "combineTool.py -M GoodnessOfFit model_combined.root --algorithm saturated -n {} --expectSignal 1"
78+
# .format("ptrho" + str(pt) + str(rho)))
79+
80+
### F-tests\
81+
# continue
82+
_seed = "1:10:1"
83+
_toys = '50'
84+
os.system(
85+
"python ../workflows.py -w model_combined.root --method FTest --altmodel ../{}{}{}/model_combined.root "
86+
" -t {} --seed {} ".format(dname, pt + 1, rho, _toys, _seed)
87+
+ (" --condor" if args.condor else "")
88+
+ (" --collect" if args.collect else "")
89+
+ " --freezeParameters r,z"
90+
# " --debug"
91+
)
92+
93+
os.system(
94+
"python ../workflows.py -w model_combined.root --method FTest --altmodel ../{}{}{}/model_combined.root "
95+
" -t {} --seed {} ".format(dname, pt, rho + 1, _toys, _seed)
96+
+ (" --condor" if args.condor else "")
97+
+ (" --collect" if args.collect else "")
98+
+ " --freezeParameters r,z"
99+
# " --debug"
100+
)
101+
102+
os.system(
103+
"python ../workflows.py -w model_combined.root --method FTest --altmodel ../{}{}{}/model_combined.root "
104+
" -t {} --seed {} ".format(dname, pt + 1, rho + 1, _toys, _seed)
105+
+ (" --condor" if args.condor else "")
106+
+ (" --collect" if args.collect else "")
107+
+ " --freezeParameters r,z"
108+
# " --debug"
109+
)
110+
111+
### Impacts
112+
# os.system("combineTool.py -M Impacts -d model_combined.root -m 125 --doInitialFit --robustFit 1 --setParameterRanges r=-1,5 --cminDefaultMinimizerStrategy 0 --X-rtd FITTER_DYN_STEP --expectSignal 1 -t -1 --toysFrequentist")
113+
# os.system("combineTool.py -M Impacts -d model_combined.root -m 125 --doFits --robustFit 1 --allPars --setParameterRanges r=-1,5 --expectSignal 1 --cminDefaultMinimizerStrategy 0 --X-rtd MINIMIZER_analytic" +
114+
# """ --job-mode condor --sub-opts='+JobFlavour = "workday"' -t -1 --toysFrequentist """ +
115+
# " --task-name 'tf%s%s' --exclude 'rgx{qcdparams*}'" % (pt, rho) )
116+
# os.system(
117+
# "combineTool.py -M Impacts -d model_combined.root -m 125 --allPars -o impacts_toys.json"
118+
# )
119+
# os.system("plotImpacts.py -i impacts_toys.json -o impacts_toys")
120+
121+
# # Collect plots
122+
if args.plot:
123+
os.chdir(BASE)
124+
os.mkdir('plots_{}'.format(dname))
125+
for pt in range(0, 3):
126+
for rho in range(0, 3):
127+
print("X", pt, rho)
128+
os.system("python fplots.py {}{}{} --year {} --out {}".format(dname, str(pt), str(rho), args.year, 'plots_{}'.format(dname)))
129+
130+
print("Done")
131+
end = time.time()
132+
print("TIME:", time.strftime("%H:%M:%S", time.gmtime(end - start)))
133+

0 commit comments

Comments
 (0)