pro spp_swp_spani_tof_histogram,trange=trange,xrange=xrange,ylog=ylog,binsize=binsize,noerase=noerase,channels=channels,xlog=xlog,yrange=yrange

  if ~keyword_set(trange) then ctime,trange,npoints=2
  csize = 2
  ;spp_apid_data,'3B9'x,apdata=ap
  ;print_struct,ap
  ap = spp_apdat('3B9'x)
  events = ap.data.array
  if not keyword_set(trange) then ctime,trange

  if keyword_set(trange) then begin
    w = where(events.time ge trange[0] and events.time le trange[1],nw)
    if nw ne 0 then events = events[w] else dprint,'No points selected - using all'
  endif

  col = bytescale(indgen(16))
  nc = n_elements(col)
  ;if ~keyword_set(xrange) then xrange=[450,600]
  if ~keyword_set(binsize) then binsize = 1
  h = histbins(events.tof,xb,binsize=binsize,shift=0,/extend_range)

  if keyword_set(ylog) then begin
    mx = max(h)
    yrange = [mx/10^(ylog+3),mx]
    yrange  = [.5,mx*2]
  endif

  if keyword_set(xlog) then begin
    xrange = minmax(/pos,xb) > 10
  endif


  plot,/nodata,xb,h * 1.1,xrange=xrange,$
    charsize=csize,$
    yrange=yrange,$
    ylog=ylog,$
    ystyle=3,$
    noerase=noerase,$
    xtitle='Time of Flight channel',$
    ytitle='Counts',xlog=xlog
  mxt = max(h)
  if ~keyword_set(channels) then channels = reverse(indgen(16))
  for i=0,n_elements(channels)-1 do begin
    ch = channels[i]
    c=col[ch mod nc]
    w = where(events.channel eq ch, nw)
    if nw eq 0 then continue
    h = histbins(events[w].tof,xb,binsize=binsize,shift=0)
    oplot,xb,h,color=c,psym=10
    oplot,xb,h,color=c,psym=1
    mx = max(h,b)
    xyouts,xb[b],h[b]+mxt*.03,strtrim(ch,2),color=c,align=.5,charsize=2
    if keyword_set(dt)  then begin
      ;dt = findgen(44)+7
      ;pks = find_peaks(
      ;[replicate(0,round(xb[0])),h],roiw=5)
      plot,dt,pks.x0,/psym,yrange=[-100,500],xrange=[0,55],/ystyle,/xstyle,xtitle='Delay (ns)',ytitle='TOF value',title='Fit to response'
      par = polycurve()
      fit,dt[1:*],pks[1:*].x0,param=par,names='a0 a1'
      oplot,dt,(pks.x0-func(dt,param=pc)) * 10,psym=4,color=6
      oplot,xv,func(xv,param=pc)
      xv=dgen()
      oplot,xv,func(xv,param=pc)
      oplot,[0,60],[0,0],color=5,linestyle=2
      oplot,[0,60],[0,0],color=2,linestyle=2
    endif
  endfor


end