/// <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;
        }