def calc_drm(skydir, ltc, event_class, event_types,
             egy_bins, cth_bins, nbin=64):
    """Calculate the detector response matrix."""
    npts = int(np.ceil(128. / bins_per_dec(egy_bins)))
    egy_bins = np.exp(utils.split_bin_edges(np.log(egy_bins), npts))

    etrue_bins = 10**np.linspace(1.0, 6.5, nbin * 5.5 + 1)
    egy = 10**utils.edge_to_center(np.log10(egy_bins))
    egy_width = utils.edge_to_width(egy_bins)
    etrue = 10**utils.edge_to_center(np.log10(etrue_bins))
    edisp = create_avg_edisp(skydir, ltc, event_class, event_types,
                             egy, etrue, cth_bins)
    edisp = edisp * egy_width[:, None, None]
    edisp = sum_bins(edisp, 0, npts)
    return edisp
def calc_drm ( skydir , ltc , event_class , event_types , egy_bins , cth_bins , nbin = 64 ) : npts = int ( np . ceil ( 128. / bins_per_dec ( egy_bins ) ) ) egy_bins = np . exp ( utils . split_bin_edges ( np . log ( egy_bins ) , npts ) ) etrue_bins = 10 ** np . linspace ( 1.0 , 6.5 , nbin * 5.5 + 1 ) egy = 10 ** utils . edge_to_center ( np . log10 ( egy_bins ) ) egy_width = utils . edge_to_width ( egy_bins ) etrue = 10 ** utils . edge_to_center ( np . log10 ( etrue_bins ) ) edisp = create_avg_edisp ( skydir , ltc , event_class , event_types , egy , etrue , cth_bins ) edisp = edisp * egy_width [ : , None , None ] edisp = sum_bins ( edisp , 0 , npts ) return edisp
Calculate the detector response matrix.