Ejemplo n.º 1
0
 /// <summary>
 /// Read Histogram from Log and find peak
 /// </summary>
 /// <param name="setting"></param>
 public void FillInitialPeakGuess(PeakFinderSetting setting)
 {
     Debug.Assert(setting.Channel == 0 || setting.Channel == 1);
     double[] y = setting.Channel == 0 ? Log.MCAData.Channel0Hist.ToDoubleArray() : Log.MCAData.Channel1Hist.ToDoubleArray();
     PeakFinder pf = new PeakFinder(y, setting.TriggerLevel, setting.ScalingPower, setting.SmoothWindow);
     if (setting.Channel == 0)
     {
         Channel0PeakFinder = pf;
     }
     else if (setting.Channel == 1)
     {
         Channel1PeakFinder = pf;
     }
     //Debug.WriteLine("aaa: {0}", pf.Guesses.Length);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Quick auto peakfinding/fit no step require just pick the first peak
        /// and fit it
        /// </summary>
        /// <param name="Channel"></param>
        public void AutoFit(PeakFinderSetting setting)
        {
            FillInitialPeakGuess(setting);
            PeakFinder pf = null;

            if (setting.Channel == 0) { pf = Channel0PeakFinder; }
            else if (setting.Channel == 1) { pf = Channel1PeakFinder; }

            if (pf.Guesses.Length == 0) { return; } //no peak found just return
            InitialPeakGuess guess = pf.Guesses[0];

            if (setting.Channel == 0) { Log.Channel0InitialPeakGuess = guess; }
            else if (setting.Channel == 1) { Log.Channel1InitialPeakGuess = guess; }

            FitPeak(setting.Channel);
        }