def METHOD_NAME(self):
    """Return an array of records mz, int, sp_idx located between mz_low and mz_high
    Based on the mz_low and mz_high values, we calculate the index of chunks
    and offsets in bytes to read from the files of these chunks.
    The resulting combined arrays are filtered by mz_low/mz_high and returned.
    """
    # calculate the index of the lower and upper chunk
    mz_low_chunk_idx, mz_high_chunk_idx = np.searchsorted(
        self.mz_index, [self.mz_low, self.mz_high]
    )
    if mz_high_chunk_idx == 0:
        return np.zeros((0, 3), dtype='f')
    # previous chunk actually includes value
    if mz_low_chunk_idx > 0:
        mz_low_chunk_idx -= 1
    chunk_size = 4 * 1024  # element in bytes, chunk record size
    offset = mz_low_chunk_idx * chunk_size
    bytes_to_read = (mz_high_chunk_idx - mz_low_chunk_idx + 1) * chunk_size
    mz_chunks_array = np.frombuffer(
        self.ds.read_file_partially(offset, bytes_to_read, self.ds.mzs_key),
        dtype='f',
    )
    int_chucks_array = np.frombuffer(
        self.ds.read_file_partially(offset, bytes_to_read, self.ds.ints_key),
        dtype='f',
    )
    sp_idxs_chunk_array = np.frombuffer(
        self.ds.read_file_partially(offset, bytes_to_read, self.ds.sp_idxs_key),
        dtype='f',
    )
    peaks_chunk_array = np.stack([mz_chunks_array, int_chucks_array, sp_idxs_chunk_array]).T
    index_low, index_high = np.searchsorted(
        peaks_chunk_array[:, 0], [self.mz_low, self.mz_high]
    )
    # index_high equals to index after last valid element
    mz_peaks = peaks_chunk_array[index_low:index_high]
    return mz_peaks