Skip to content

Commit

Permalink
Merge in changed from dmcat-fermipy
Browse files Browse the repository at this point in the history
  • Loading branch information
eacharles committed Feb 3, 2018
2 parents ea771b0 + 68c739e commit 7e82c3c
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions fermipy/gtanalysis.py
Expand Up @@ -1776,8 +1776,8 @@ def set_parameter(self, name, par, value, true_value=True, scale=None,
if bounds is not None:
self.like[idx].setBounds(*bounds)
except RuntimeError:
self.logger.warning("Caught failure on setBounds for %s::%s."%(name, par))
pass


if error is not None:
self.like[idx].setError(error)
Expand Down Expand Up @@ -2472,7 +2472,7 @@ def _find_scan_pts(self, name, logemin=None, logemax=None, npts=20):
npred = np.sum(cs)

if npred < 10:
val *= 1. / max(1.0, npred)
val *= 1. / max(1e-16, npred)
xvals = val * 10 ** np.linspace(-1.0, 3.0, npts - 1)
xvals = np.insert(xvals, 0, 0.0)
else:
Expand Down Expand Up @@ -2515,6 +2515,9 @@ def _find_scan_pts_reopt(self, name, logemin=None, logemax=None, npts=20,
xvals = xvals[np.isfinite(xvals)]

# Generate likelihood profile w/ free nuisance pars
if np.isnan(xvals).any():
raise ValueError("Parameter scan points for %s::%s include infinite value."%(name, parName))

lnlp1 = self.profile(name, parName, logemin=logemin, logemax=logemax,
reoptimize=True, xvals=xvals, **kwargs)

Expand Down Expand Up @@ -2633,13 +2636,16 @@ def profile(self, name, parName, logemin=None, logemax=None,
xvals = np.linspace(0, 1, 25)
xvals = np.concatenate((-1.0 * xvals[1:][::-1], xvals))
xvals = val * 10 ** xvals

if np.isnan(xvals).any():
raise RuntimeError("Parameter scan points for %s::%s include infinite value."%(name, parName))

# Update parameter bounds to encompass scan range
try:
self.like[idx].setBounds(min(min(xvals), value, bounds[0]),
max(max(xvals), value, bounds[1]))
except RuntimeError:
print ("xxx", xvals, value, bounds)
self.logger.warning("Caught failure on setBounds for %s::%s."%(name, parName))

o = {'xvals': xvals,
'npred': np.zeros(len(xvals)),
Expand All @@ -2662,7 +2668,8 @@ def profile(self, name, parName, logemin=None, logemax=None,
try:
self.like[idx] = x
except RuntimeError:
pass
self.logger.warning("Caught failure on set for %s::%s: %.2f"%(name, parName, x))

if self.like.nFreeParams() > 1 and reoptimize:
# Only reoptimize if not all frozen
self.like.freeze(idx)
Expand Down Expand Up @@ -4805,7 +4812,7 @@ def counts_map(self):
z = cmap.data()
nhpix = self.hpx.npix
z = np.array(z).reshape(self.enumbins, nhpix)
return HpxMap(z, self.hpx)
return HpxMap(z, copy.deepcopy(self.hpx))
else:
self.logger.error('Did not recognize CountsMap type %i' % p_method,
exc_info=True)
Expand Down

0 comments on commit 7e82c3c

Please sign in to comment.