public Fragmenter(IList<Peak> peakList, FragmentationConfig config)
		{
			this.peakList = peakList;
			this.config = config;

			SetMinWeight();
			ReadInNeutralLosses();
		}
		public IEnumerable<ResultRow> metFrag(double exactMass, string strPeaks, int mode, double mzabs, double mzppm, CancellationToken isCancelled)
		{			
			var config = new FragmentationConfig(mzabs, mzppm, mode);
			var spectrum = new Spectrum(strPeaks, exactMass, mode);

			var algorithm = new FragmentationAlgorithm(
				new ImplicitHydrogenAdder(),
				new FragmentGenerator(spectrum, config),
				new HitsMatcher(spectrum, config));

			var results = candidateSdfs
				.Where(c => c != null)
				.Where(ConnectivityChecker.isConnected)
				.Select((molecule, i) => algorithm.GenerateFragments(molecule, i.ToString(CultureInfo.InvariantCulture), isCancelled))
				.Where(r => r != null)
				.ToList();

			return results;
		}
		public HitsMatcher(Spectrum spectrum, FragmentationConfig config)
		{
			this.spectrum = spectrum;
			this.config = config;
		}
		public FragmentGenerator(Spectrum spectrum, FragmentationConfig config)
		{
			this.spectrum = spectrum;
			this.config = config;
		}