private double fragmentMass(pwiz.CLI.proteome.Fragmentation f, IonSeries series, int length, int charge) { switch (series) { case IonSeries.a: return f.a(length, charge); case IonSeries.b: return f.b(length, charge); case IonSeries.c: return f.c(length, charge); case IonSeries.cMinus1: return f.c(length, charge) - Proton.Mass / charge; case IonSeries.x: return f.x(length, charge); case IonSeries.y: return f.y(length, charge); case IonSeries.z: return f.z(length, charge); case IonSeries.zPlus1: return f.zRadical(length, charge); case IonSeries.zPlus2: return f.zRadical(length, charge) + Proton.Mass / charge; default: throw new ArgumentException(); } }