/// <summary> /// Returns the MSLevel for the given frame /// </summary> /// <param name="frameNum">Frame number</param> /// <returns>1 for MS1 frames, 2 for MS2 frames, 0 for calibration frames, </returns> public override int GetMSLevelFromRawData(int frameNum) { if (MS1Frames.BinarySearch(frameNum) >= 0) { return(1); } if (MS2Frames.BinarySearch(frameNum) >= 0) { return(2); } var fp = UIMFLibraryAdapter.getInstance(this.Filename).Datareader.GetFrameParams(frameNum); if (fp.FrameType == DataReader.FrameType.MS1) { return(1); } if (fp.FrameType == DataReader.FrameType.MS2) { return(2); } if (fp.FrameType == DataReader.FrameType.Calibration) { return(0); } return(1); }
public int GetClosestMS1Frame(int lcScan) { if (MS1Frames == null || MS1Frames.Count == 0) { throw new ApplicationException("Cannot get closest MS1 frames. MSFrame list is empty"); } if (MS1Frames.Contains(lcScan)) { return(lcScan); } var closestLCScan = MinLCScan; var smallestDiff = Int32.MaxValue; foreach (var t in MS1Frames) { var currentDiff = Math.Abs(t - lcScan); if (currentDiff < smallestDiff) { closestLCScan = t; smallestDiff = currentDiff; } } return(closestLCScan); }
/// <summary> /// Returns the MSLevel for the given frame /// </summary> /// <param name="frameNum">Frame number</param> /// <returns>1 for MS1 frames, 2 for MS2 frames, 0 for calibration frames, </returns> public override int GetMSLevelFromRawData(int frameNum) { if (MS1Frames.BinarySearch(frameNum) >= 0) { return(1); } if (MS2Frames.BinarySearch(frameNum) >= 0) { return(2); } var frameParams = mReader.GetFrameParams(frameNum); switch (frameParams.FrameType) { case UIMFData.FrameType.MS1: return(1); case UIMFData.FrameType.MS2: return(2); case UIMFData.FrameType.Calibration: return(0); default: return(1); } }