/// <summary> /// Calculate the max global intensities for the given voltage group. /// </summary> /// <param name="reader"> /// The reader. /// </param> /// <param name="firstScan"> /// The first scan. /// </param> /// <param name="lastScan"> /// The last scan. /// </param> /// <param name="firstBin"> /// The first bin. /// </param> /// <param name="lastBin"> /// The last bin. /// </param> /// <param name="firstFrame"> /// The first frame. /// </param> /// <param name="lastFrame"> /// The last frame. /// </param> /// <returns> /// The <see cref="double"/>. /// </returns> private static double MaxGlobalIntensities(DataReader reader, int firstScan, int lastScan, int firstBin, int lastBin, int firstFrame, int lastFrame) { int[][][] intensities = reader.GetIntensityBlock(firstFrame, lastFrame, DataReader.FrameType.MS1, firstScan, lastScan, firstBin, lastBin); long maxIntensities = 0; for (int scan = firstScan; scan <= lastScan; scan++) { for (int bin = firstBin; bin < lastBin; bin++) { long sumIntensity = 0; for (int frame = firstFrame; frame <= lastFrame; frame++) { sumIntensity += intensities[frame - 1][scan - firstScan][bin - firstBin]; } maxIntensities = (sumIntensity > maxIntensities) ? sumIntensity : maxIntensities; } } return maxIntensities; }