def __init__(self, like, name, *args, **kwargs): keyword_options.process(self, kwargs) self.like = like self.name = name if self.ul_algorithm not in BaseGtlikeSED.ul_choices: raise Exception("Upper Limit Algorithm %s not in %s" % (self.ul_algorithm,str(BaseGtlikeSED.ul_choices))) if self.bin_edges is not None: if not BaseGtlikeSED.good_binning(like, self.bin_edges): raise Exception("bin_edges is not commensurate with the underlying energy binning of pyLikelihood.") self.bin_edges = np.asarray(self.bin_edges) energy = np.sqrt(self.bin_edges[1:]*self.bin_edges[:-1]) else: # These energies are always in MeV self.bin_edges = like.energies energy = like.e_vals self.lower=self.bin_edges[:-1] self.upper=self.bin_edges[1:] source=self.like.logLike.getSource(name) self.init_spectrum=source.spectrum() self.init_model=build_pointlike_model(self.init_spectrum) self.results = dict( Name=name, spectrum=name_to_spectral_dict(like,name, errors=True, covariance_matrix=True), ) self._calculate(like) super(GtlikeSED,self).__init__(self.results, **keyword_options.defaults_to_kwargs(self, SED))
def __init__(self, like, name, bin_edges, **kwargs): """ Parameters: * like - pyLikelihood object * name - source to make an SED for * bin_edges - if specified, calculate the SED in these bins. """ keyword_options.process(self, kwargs) self.like = like self.name = name if not BaseGtlikeSED.good_binning(self.like, bin_edges): raise Exception("bin_edges is not commensurate with the underlying energy binning of pyLikelihood.") source=self.like.logLike.getSource(name) self.init_spectrum=source.spectrum() self.init_model=build_pointlike_model(self.init_spectrum) self.init_energes = self.like.energies[[0,-1]] bin_edges = np.asarray(bin_edges) self.lower_energy=bin_edges[:-1] self.upper_energy=bin_edges[1:] self.middle_energy=np.sqrt(self.lower_energy*self.upper_energy) if self.ul_algorithm not in self.ul_choices: raise Exception("Upper Limit Algorithm %s not in %s" % (self.ul_algorithm,str(self.ul_choices))) empty = lambda: np.empty_like(self.middle_energy) self._calculate()
def __init__(self, like, name, *args, **kwargs): keyword_options.process(self, kwargs) self.like = like self.name = name if self.ul_algorithm not in BaseGtlikeSED.ul_choices: raise Exception("Upper Limit Algorithm %s not in %s" % (self.ul_algorithm, str(BaseGtlikeSED.ul_choices))) if self.bin_edges is not None: if not BaseGtlikeSED.good_binning(like, self.bin_edges): raise Exception( "bin_edges is not commensurate with the underlying energy binning of pyLikelihood." ) self.bin_edges = np.asarray(self.bin_edges) energy = np.sqrt(self.bin_edges[1:] * self.bin_edges[:-1]) else: # These energies are always in MeV self.bin_edges = like.energies energy = like.e_vals self.lower = self.bin_edges[:-1] self.upper = self.bin_edges[1:] source = self.like.logLike.getSource(name) self.init_spectrum = source.spectrum() self.init_model = build_pointlike_model(self.init_spectrum) self.results = dict( Name=name, spectrum=name_to_spectral_dict(like, name, errors=True, covariance_matrix=True), ) self._calculate(like) super(GtlikeSED, self).__init__(self.results, **keyword_options.defaults_to_kwargs(self, SED))