function pad ,dat, $
BDIR = bdir, $
magf = magf, $
ESTEPS = esteps, $
BINS=bins, $
NUM_PA=num_pa
if n_elements(num_pa) eq 0 then num_pa = 8
if n_params() eq 1 then use_symm=1
if not keyword_set(magf) then magf=dat.magf
xyz_to_polar,magf,theta=bth,phi=bph
if n_elements(bins) ne 0 then ind=where(bins) else ind=indgen(dat.nbins)
nbins = n_elements(ind)
pa = pangle(dat.theta,dat.phi,bth,bph)
pab = fix(pa/180.*num_pa) < (num_pa-1)
if bth gt 90 or bth lt -90 then pab(*,*)=0
nenergy = dat.nenergy
data = fltarr(nenergy,num_pa)
geom = fltarr(nenergy,num_pa)
dt = fltarr(nenergy,num_pa)
energy = fltarr(nenergy,num_pa)
pang = fltarr(nenergy,num_pa)
count = fltarr(nenergy,num_pa)
deadtime = fltarr(nenergy,num_pa)
for i=0,nbins-1 do begin
b = ind(i)
e = lindgen(nenergy)
n_e = e
n_b = pab(n_e,b)
n_b_indx = where(n_b ge 0 and n_b lt num_pa,n_b_cnt)
if n_b_cnt gt 0 then begin
e = e(n_b_indx)
n_e = e
n_b = n_b(n_b_indx)
data(n_e,n_b) = data(n_e,n_b) + dat.data(e,b)
geom(n_e,n_b) = geom(n_e,n_b) + dat.gf(e,b)
dt(n_e,n_b) = dt(n_e,n_b) + dat.dt(e,b)
energy(n_e,n_b) = energy(n_e,n_b) + dat.energy(e,b)
pang(n_e,n_b) = pang(n_e,n_b) + pa(e,b)
count(n_e,n_b) = count(n_e,n_b) + 1
deadtime(n_e,n_b) = deadtime(n_e,n_b) + dat.deadtime(e,b)
endif
endfor
energy = energy/count
pang = pang/count
if strlowcase(dat.units_name) ne 'counts' then data = data/count
pad = {project_name:dat.project_name,data_name:dat.data_name+' PAD', $
valid:1, units_name:dat.units_name, $
time:dat.time, end_time:dat.end_time, integ_t:dat.integ_t, $
nbins:num_pa,nenergy:nenergy, $
data:data,energy:energy,angles:pang, denergy:dat.denergy, $
bth:bth, bph:bph, $
gf:geom,dt:dt,geomfactor:dat.geomfactor, $
mass:dat.mass,units_procedure:dat.units_procedure, $
deadtime:deadtime }
return,pad
end