code: 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
docs: Calculate the detector response matrix.