コード例 #1
0
        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)
コード例 #2
0
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])
コード例 #3
0
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)
コード例 #4
0
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)))