rt = originalDetectedShape.getRT();
mz = originalDetectedShape.getMZ();
rawDataFile = originalDetectedShape.getDataFile();
// Create a copy of the mutable properties
rawDataPointsIntensityRange = new Range(
originalDetectedShape.getRawDataPointsIntensityRange());
rawDataPointsMZRange = new Range(
originalDetectedShape.getRawDataPointsMZRange());
dataPointsMap = new TreeMap<Integer, DataPoint>();
status = originalDetectedShape.getPeakStatus();
// FWFM (Full Width at Half Maximum)
FWHM = calculateWidth(intensities, retentionTimes, resolution, rt, mz,
height);
// FWHM = MathUtils.calcStd(intensities) * 2.355;
partC = FWHM / CONST;
part2C2 = 2f * (double) Math.pow(partC, 2);
// Calculate intensity of each point in the shape.
double shapeHeight, currentRT, previousRT, previousHeight;
int allScanNumbers[] = rawDataFile.getScanNumbers(1);
double allRetentionTimes[] = new double[allScanNumbers.length];
for (int i = 0; i < allScanNumbers.length; i++)
allRetentionTimes[i] = rawDataFile.getScan(allScanNumbers[i])
.getRetentionTime();
previousHeight = calculateIntensity(allRetentionTimes[0]);
previousRT = allRetentionTimes[0] * 60d;
rawDataPointsRTRange = new Range(allRetentionTimes[0]);
for (int i = 0; i < allRetentionTimes.length; i++) {
currentRT = allRetentionTimes[i] * 60d;
shapeHeight = calculateIntensity(currentRT);