if get_exec_pars().source == CommandSource.ui: E_OFF = None E_FROM = 7200 E_TO = 7340 STEPS = 10 NUM_SHOTS= 3 PLOT=None run("cpython/wrapper") class Positioner(Writable): def write(self, value): pass av = create_averager(psss_spectrum_y,NUM_SHOTS,interval=-1,name="spectrum_average") av_samples = av.samples av_samples.alias = "spectrum_samples" sensors = (av, av_samples) #r=tscan(sensors, STEPS, 0.1) r=lscan(Positioner(),sensors, 10, 10+STEPS, STEPS) average, samples, pos_range= r.getReadable(0), r.getReadable(1), r.getPositions(0) #[amp, mean_val, sigma, offset],ydata = fit_energy(E_FROM, E_TO, STEPS +1, NUM_SHOTS, samples) #[amp, mean_val, sigma, offset],ydata = fit_crystal_height(E_FROM, E_TO, STEPS+1, samples) #if (mean_val<= E_FROM) or (mean_val>= E_TO): # raise Exception ("Invalid fit mean: " + str(mean_val)) signal_centre, ydata = get_signal_centre(samples, pos_range) #plot_gauss_fit(pos_range, ydata, gauss_pars=(offset, amp, mean_val, sigma), p=PLOT, title = "Data") #plot_gauss_fit(pos_range, ydata, gauss_pars=None, p=PLOT, title = "Data") #PLOT.clear() #plot_data(PLOT, ydata, "Data", xdata=pos_range, show_points = True, color=Color.BLUE)