function dens_3d, data, sc_pot ,pardens=pardens
if n_elements(sc_pot) eq 0 then sc_pot = 0.
if data.valid eq 0 then begin
print,'Invalid Data'
return, !values.f_nan
endif
data3d = conv_units(data,"eflux") ; Use Energy Flux
e = data3d.energy
de = data3d.denergy
domega = replicate(1.,data3d.nenergy) # data3d.domega
dvolume = de / e * domega
e_inf = (e - sc_pot) > 0.
dweight = sqrt(data3d.mass * 1e-10 * e_inf/2. )/e
pardens = data3d.data * dweight * dvolume
density = total(pardens)
return, density
end