function prestens, dat, $
ESTEPRANGE = esteprange
if n_elements(esteprange) eq 0 then esteprange = [0 ,dat.nenergy-1]
e1 = esteprange(0)
e2 = esteprange(1)
b1 = 0
b2 = dat.nbins-1
data = dat.data(e1:e2,b1:b2)
theta= dat.theta(e1:e2,b1:b2)
phi = dat.phi(e1:e2,b1:b2)
energy = dat.energy(e1:e2,b1:b2)
mult = replicate(1.,e2-e1+1)
domega = mult # dat.domega(b1:b2)
geom = mult # dat.geom
sphere_to_cart, 1., theta, phi, sx,sy,sz
pp = data * domega * energy * energy / geom
pxx = total(sx*sx*pp,/double)
pyy = total(sy*sy*pp,/double)
pzz = total(sz*sz*pp,/double)
pxy = total(sx*sy*pp,/double)
pxz = total(sx*sz*pp,/double)
pyz = total(sy*sz*pp,/double)
prtens = [ [pxx,pxy,pxz],[pxy,pyy,pyz],[pxz,pyz,pzz] ]
return ,prtens
end