def draw_times(ax, wf, wt):
    #wf -= wf[0:1000].mean()
    edges = find_edges(wf, BASE, THR, CFR, DEADTIME, LEADINGEDGE)
    # pairs of (amplitude,sampleNumber)
    print 'MCP edges'
    print edges

    for (amp, ind) in edges:
        x0 = wt[int(ind)]
        xarr = (x0, x0)
        yarr = (amp, -amp)
        gg.drawLine(ax, xarr, yarr, s=10, linewidth=1, color='k')
Exemplo n.º 2
0
def draw_times(ax, wf, wt):
    #wf -= wf[0:1000].mean()
    t0_sec = time()
    edges = find_edges(wf, BASE, THR, CFR, DEADTIME, LEADINGEDGE)
    print '  consumed time = %10.6f(sec)' % (time() - t0_sec)
    # pairs of (amplitude,sampleNumber)
    print ' nhits:', edges.shape[0]
    #print ' edges:', edges

    for (amp, ind) in edges:
        x0 = wt[int(ind)]
        xarr = (x0, x0)
        yarr = (amp, -amp)
        gg.drawLine(ax, xarr, yarr, s=10, linewidth=1, color='k')
def draw_times_old(ax, wf, wt):

    #wf -= wf[0:1000].mean()
    edges = find_edges(wf, BASE, THR, CFR, DEADTIME, LEADINGEDGE)
    # pairs of (amplitude,sampleNumber)
    #print(' nhits:', edges.shape[0],)
    #print(' edges:', edges)

    for (amp, ind) in edges:
        x0 = wt[int(ind)]
        xarr = (x0, x0)
        yarr = (amp, -amp)
        gr.drawLine(ax, xarr, yarr, s=10, linewidth=1, color='k')

    return edges
Exemplo n.º 4
0
#detname = 'AmoEndstation.0:Acqiris.2' # for xpptut15 ch:0 - MCP

ds = DataSource(dsname)
det = Detector(detname)

ch = int(sys.argv[1]) if len(sys.argv) > 1 else 2  # Acqiris chanel

for nevent, evt in enumerate(ds.events()):
    r = det.raw(evt)
    nda = np.array(r)
    print 'Event:%03d' % nevent, '\n' if r is not None else '', r
    if r is None: continue
    waveforms, times = r
    # find edges for channel 0
    # parameters: baseline, threshold, fraction, deadtime, leading_edges
    edges = find_edges(waveforms[ch], 0.0, -0.05, 1.0, 5.0, True)
    # pairs of (amplitude,sampleNumber)
    print 'edges for channel %02d:' % ch
    for n, (v, bin) in enumerate(edges):
        print '  edge:%02d  bin:%05d  value:%6.3f' % (n, bin, v)
    break

import matplotlib.pyplot as plt

plt.figure(figsize=(16, 4))
#plt.plot(times[ch,:40000], waveforms[ch,:40000])
plt.plot(waveforms[ch, :40000])
plt.title('%s %s chanel %02d' % (dsname, detname, ch))
plt.xlabel('bin', fontsize=14)
plt.ylabel('intensity', fontsize=14)
plt.show()