tau, delta_ma, delta_exp, delta_mf, waveform, snr = tuple( arch.values()) hint_delta_ma = delta_ma[np.arange(len(tau)), np.argmax(snr[0], axis=-1)] fs = fingersnr.FingerSnr() for bs in baselines: if os.path.exists(cache(bs)): continue out = fs.snrmax(plot=False, hint_delta_ma=hint_delta_ma, bslen=bs) print(f'write {cache(bs)}...') np.savez(cache(bs), *out) snrmax_outputs = [] for bs in baselines: print(f'read {cache(bs)}...') with np.load(cache(bs)) as arch: snrmax_outputs.append(tuple(arch.values())) fig = plt.figure(num='figchangebs', clear=True, figsize=[9, 5]) axs = fingersnr.FingerSnr.snrmaxplot_multiple(fig, snrmax_outputs) for bs, ax in zip(baselines, axs[0]): ax.set_title(f'{bs} baseline samples') fig.tight_layout() fig.show() figlatex.save(fig)
import afterpulse_tile21 import textbox vov = 5.5 low = 955 high = 956 ################ ap21 = afterpulse_tile21.AfterPulseTile21(vov) datalist = ap21.datalist events = ap21.sim.eventswhere(f'(baseline >= {low}) & (baseline <= {high})') assert len(events) >= 2, len(events) figs = [] for i, ievt in enumerate(events[:2]): fig = plt.figure(num=f'figbstail-{i}', clear=True, figsize=[4.5, 3]) ap21.sim.plotevent(datalist, ievt, 2, zoom='all', fig=fig) ax, = fig.get_axes() ax.legend(loc='lower left', fontsize='x-small') textbox.textbox(ax, f'{vov} VoV', fontsize='medium', loc='lower right') fig.tight_layout() fig.show() figs.append(fig) figlatex.save([figs])
figs = [] for j, vov in enumerate(afterpulse_tile21.AfterPulseTile21.defaultparams): ap21 = afterpulse_tile21.AfterPulseTile21(vov) fig = plt.figure(num=f'figpretrigger2-{j}0', clear=True, figsize=[4.5, 4]) ap21.ptscatter(fig=fig, selection=False, vovloc='upper left') ax, = fig.get_axes() ax.set_xlabel('Position of first pre-trigger pulse [ns]') ax.set_ylabel('Amplitude') fig.figlatex_options = dict(saveaspng=True) row = [fig] fig = plt.figure(num=f'figpretrigger2-{j}1', clear=True, figsize=[4.5, 4]) ap21.pthist(fig=fig, selection=False, vovloc='center right') ax, = fig.get_axes() ax.set_xlabel('Amplitude of first pre-trigger pulse') row.append(fig) figs.append(row) for row in figs: for fig in row: fig.tight_layout() figlatex.save(figs)
ap21 = afterpulse_tile21.AfterPulseTile21(vov) cond = '(length == 128) & (apApos >= 0) & (mainnpebackup == 1)' x = 'apApos - mainposbackup' y = [ ('apAprom', 'Prominence'), ('apAheight', 'Height'), ('apAamplh', 'Amplitude'), ('apAapamplh', 'Corrected amplitude'), ] figs = [] for i, (expr, label) in enumerate(y): fig = plt.figure(num=f'figapampl-{i}', clear=True, figsize=[4.5, 3]) ap21.sim.scatter(x, expr, cond, fig=fig, selection=False, markersize=2) ax, = fig.get_axes() ax.set_xlabel('Delay from laser peak [ns]') ax.set_ylabel(label) textbox.textbox(ax, f'{vov} VoV', fontsize='medium', loc='center right') lim = ax.get_ylim() afterpulse_tile21.hlines(ax, ap21.apboundaries, linestyle=':') ax.set_ylim(lim) figs.append(fig) for fig in figs: fig.figlatex_options = dict(saveaspng=True) fig.tight_layout() fig.show() figlatex.save(np.reshape(figs, (2, 2)))