diff --git a/script/RFscan/SchottkyScan.py b/script/RFscan/SchottkyScan.py index a73c917..7a30672 100644 --- a/script/RFscan/SchottkyScan.py +++ b/script/RFscan/SchottkyScan.py @@ -2,7 +2,6 @@ import ch.psi.pshell.epics.Positioner as Positioner import ch.psi.pshell.epics.ChannelDouble as ChannelDouble dry_run = True -do_elog = False if get_exec_pars().source == CommandSource.ui: start = -30.0 stop = 30.0 @@ -18,6 +17,13 @@ else: lat = args[4] plt = args[5] +if plt is not None: + plt.setStyle(plt.Style.ErrorY) + plt.addSeries(LinePlotErrorSeries("Values")) + plt.getAxis(plt.AxisId.X).setLabel("RF Gun Phase") + plt.getAxis(plt.AxisId.Y).setLabel("SINEG01-DICT215:B1_CHARGE") + + if dry_run: bph = Positioner("Beam phase", "SINEG01-RSYS:SET-BEAM-PHASE-SIM", "SINEG01-RSYS:SET-BEAM-PHASE-SIM") q = ChannelDouble('ICT-Q', "SINEG01-DICT215:B1_CHARGE-SIM") @@ -44,11 +50,17 @@ rph.monitored=True rph0 = rph.read() + +#Record callback: uptate of output plot +def after_sample(record, scan): + if plt is not None: + plt.getSeries(0).appendData(record.positions[0], record.values[0].mean, record.values[0].stdev) + try: rph_averager = create_averager(rph, nb, 0.1) # Set polling time to -1 for BS data to get all messages q_averager = create_averager(q, nb, 0.1) q_averager.monitored=True - r = lscan(bph, (rph_averager, q_averager), start, stop, step, latency=lat) + r = lscan(bph, (rph_averager, q_averager), start, stop, step, latency=lat, after_read = after_sample) beamphase = r.getPositions(0) rfphase = [val.mean for val in r.getReadable(0)] rfphaserms = [val.stdev for val in r.getReadable(0)] @@ -68,16 +80,6 @@ rph_ref = rfphase[index_max] - 80 print "Beam phase reference = ", bph_ref print "RF phase reference = ", rph_ref -if do_elog: - if get_option("Generated data file:\n" + get_exec_pars().path +"\n\n" + "Save to ELOG?", "YesNo") == "Yes": - log_msg = "Start: %0.1f" % start + "deg\n" - log_msg = log_msg + "Stop: %0.1f" % stop + "deg\n" - log_msg = log_msg + "Step: %0.1f" % step + "deg\n" - log_msg = log_msg + "Nb samples: %0.0f" % nb + "\n" - log_msg = log_msg + "Latency: %0.3f" % lat + "s\n" - log_msg = log_msg + "Data file: " + get_exec_pars().path - elog("Schottky Scan", log_msg, get_plot_snapshots()) - set_return([bph_ref, rph_ref])