CSMSL.Chemistry.IsotopicDistribution.CalculateFineGrain C# (CSharp) Method

CalculateFineGrain() private method

private CalculateFineGrain ( List elementalComposition, Normalization normalization ) : MZSpectrum
elementalComposition List
normalization Normalization
return MZSpectrum
        private MZSpectrum CalculateFineGrain(List<List<Composition>> elementalComposition, Normalization normalization)
        {
            List<Polynomial> fPolynomial = MultiplyFinePolynomial(elementalComposition);
            fPolynomial = MergeFinePolynomial(fPolynomial);

            // Convert polynomial to spectrum
            int count = fPolynomial.Count;
            double[] mz = new double[count];
            double[] intensities = new double[count];
            double totalProbability = 0;
            double basePeak = 0;
            int i = 0;
            foreach (Polynomial polynomial in fPolynomial)
            {
                totalProbability += polynomial.Probablity;
                if (polynomial.Probablity > basePeak)
                {
                    basePeak = polynomial.Probablity;
                }
                mz[i] = polynomial.Power*_mwResolution;
                intensities[i] = polynomial.Probablity;
                i++;
            }

            double normalizedValue = normalization == Normalization.Sum ? totalProbability : basePeak;

            // Normalize
            for (i = 0; i < count; i++)
            {
                intensities[i] /= normalizedValue;
            }

            return new MZSpectrum(mz, intensities, false);
        }