/** * returns a new whiteset of all formulas that can be explained with the given mass and one * of the precursor ions */ public List<Decomposition> resolve(double parentMass, Deviation deviation, Collection<PrecursorIonType> allowedPrecursorIonTypes) { final TCustomHashSet<Decomposition> decompositionSet = Decomposition.newDecompositionSet(); eachFormula: for (MolecularFormula formula : formulas) { for (PrecursorIonType ionType : allowedPrecursorIonTypes) { if (deviation.inErrorWindow(parentMass, ionType.neutralMassToPrecursorMass(formula.getMass()))) { decompositionSet.add(new Decomposition(ionType.neutralMoleculeToMeasuredNeutralMolecule(formula), ionType.getIonization(), 0d)); continue eachFormula; } } } return Arrays.asList(decompositionSet.toArray(new Decomposition[decompositionSet.size()])); }