public override PeptideSpectralMatch Search(IMassSpectrum massSpectrum, Peptide peptide, FragmentTypes fragmentTypes, Tolerance productMassTolerance)
{
double[] eMasses = massSpectrum.MassSpectrum.GetMasses();
double[] eIntenisties = massSpectrum.MassSpectrum.GetIntensities();
double tic = massSpectrum.MassSpectrum.GetTotalIonCurrent();
PeptideSpectralMatch psm = new PeptideSpectralMatch(DefaultPsmScoreType) {Peptide = peptide};
double[] tMasses = peptide.Fragment(fragmentTypes).Select(frag => Mass.MzFromMass(frag.MonoisotopicMass, 1)).OrderBy(val => val).ToArray();
double score = Search(eMasses, eIntenisties, tMasses, productMassTolerance, tic);
psm.Score = score;
return psm;
}