code: @Override
    public TreeMap<Integer, NavigableMap<Integer, IScan>> getScansByRtSpan(double rtStart,
        double rtEnd) {
      TreeMap<Integer, NavigableMap<Integer, IScan>> viewMap = new TreeMap<>();
      boolean hasNonZeroElements = false;
      for (Integer i : getMapMsLevel2index().keySet()) {
        NavigableMap<Integer, IScan> scansByRtSpanAtMsLevel = getScansByRtSpanAtMsLevel(rtStart,
            rtEnd, i);
        if (scansByRtSpanAtMsLevel != null) {
          hasNonZeroElements = true;
          viewMap.put(i, scansByRtSpanAtMsLevel);
        }
      }
      if (hasNonZeroElements) {
        return viewMap;
      }
      return null;
    }
docs: Returns a range of scans, whose RT is in the inclusive interval [rtStart; rtEnd]. That means,
  ceil RT match is used for rtStart and floor RT for rtEnd. If it so happens, that the RTs are
  between just 2 consecutive scans, then null is returned.
  
  @param rtStart The beginning of RT window
  @param rtEnd The end of RT window
  @return null, if no scans were in this window