} else {
LOG.finest("Processing peak matrix...");
final Range peakDuration = parameters.getParameter(PEAK_DURATION)
.getValue();
// Process peak matrix.
resolvedPeaks = new ArrayList<ResolvedPeak>(peakMatrix.length);
for (final double[] peakRow : peakMatrix) {
// Get peak start and end.
final int peakLeft = findRTIndex(retentionTimes, peakRow[4]);
final int peakRight = findRTIndex(retentionTimes, peakRow[5]);
// Partition into sections bounded by null data points, creating
// a peak for each.
for (int start = peakLeft; start < peakRight; start++) {
if (chromatogram.getDataPoint(scanNumbers[start]) != null) {
int end = start;
while (end < peakRight
&& chromatogram
.getDataPoint(scanNumbers[end + 1]) != null) {
end++;
}
if (peakDuration.contains(retentionTimes[end]
- retentionTimes[start])) {
resolvedPeaks.add(new ResolvedPeak(chromatogram,
start, end));
}