1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
import numpy as np
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import GolemFitPy as gf
FASTMODE = True
PARAMETERS = [
# 'astroFlavorAngle1', 'astroFlavorAngle2',
'convNorm',
# 'promptNorm', 'muonNorm', 'astroNorm'
]
DEFAULTS = [
# 4/9., 0., 1., 0., 1., 6.9
1.
]
RANGES = [
# (0, 1), (-1, 1), (0.01, 10), (0., 30), (0.01, 10), (0.01, 30)
(0.01, 10)
]
BINS = 50
def steering_params():
steering_categ = 'p2_0'
params = gf.SteeringParams(gf.sampleTag.HESE)
if FASTMODE:
params.fastmode = True
params.quiet = False
params.simToLoad= steering_categ.lower()
return params
def set_up_as(fitter, params):
print 'Injecting the model', params
asimov_params = gf.FitParameters(gf.sampleTag.HESE)
for x in params.iterkeys():
asimov_params.__setattr__(x, float(params[x]))
fitter.SetupAsimov(asimov_params)
priors = gf.Priors()
priors.convNormWidth = 9e9
fitter.SetFitPriors(priors)
def setup_fitter(asimov_paramset):
datapaths = gf.DataPaths()
sparams = steering_params()
npp = gf.NewPhysicsParams()
fitter = gf.GolemFit(datapaths, sparams, npp)
set_up_as(fitter, asimov_paramset)
return fitter
def get_llh(fitter, params):
fitparams = gf.FitParameters(gf.sampleTag.HESE)
for x in params.iterkeys():
fitparams.__setattr__(x, float(params[x]))
llh = -fitter.EvalLLH(fitparams)
return llh
for ip, param in enumerate(PARAMETERS):
asimov_paramset = {param: DEFAULTS[ip]}
print 'injecting', asimov_paramset
fitter = setup_fitter(asimov_paramset)
binning = np.linspace(RANGES[ip][0], RANGES[ip][1], BINS)
llhs = []
for b in binning:
test_paramset = {param: b}
print 'testing', test_paramset
llh = get_llh(fitter, test_paramset)
print 'llh', llh
llhs.append(llh)
plt.plot(binning, llhs)
plt.axvline(x=DEFAULTS[ip])
plt.xlabel(param)
plt.ylabel('LLH')
outfile = 'llh_profile_noprior_'
if FASTMODE:
plt.savefig(outfile + 'fastmode_{0}.png'.format(param))
else:
plt.savefig(outfile + '{0}.png'.format(param))
plt.clf()
|