pro mvn_sta_convert_units, data, units, scale=scale
cc3d=findgen(256)
if n_params() eq 0 then return
if strupcase(units) eq strupcase(data.units_name) then return
n_m = data.nmass
n_e = data.nenergy
nbins=data.nbins
energy = data.energy
gf = data.geom_factor*data.gf*data.eff
dt = data.integ_t
mass = data.mass*data.mass_arr
dead = data.dead
case strupcase(data.units_name) of
'COUNTS' : scale = 1.d
'RATE' : scale = 1.d*dt
'CRATE' : scale = 1.d*dt
'EFLUX' : scale = 1.d*dt*gf
'FLUX' : scale = 1.d*dt*gf * energy
'DF' : scale = 1.d*dt*gf * energy^2 * 2./mass/mass*1e5
else: begin
print,'Unknown starting units: ',data.units_name
return
end
endcase
tmp=data.data
tmp = scale * tmp
if strupcase(data.units_name) ne 'COUNTS' and strupcase(data.units_name) ne 'RATE' then tmp = tmp/dead
scale = 0
case strupcase(units) of
'COMPRESSED' : scale = 1.
'COUNTS' : scale = 1.d
'RATE' : scale = 1.d/(dt)
'CRATE' : scale = 1.d/(dt)
'EFLUX' : scale = 1.d/(dt * gf)
'FLUX' : scale = 1.d/(dt * gf * energy)
'DF' : scale = 1.d/(dt * gf * energy^2 * 2./mass/mass*1e5 )
else: begin
message,'Undefined units: '+units
return
end
endcase
if strupcase(units) ne 'COUNTS' and strupcase(units) ne 'RATE' then tmp=tmp*dead
data.units_name = units
if find_str_element(data,'ddata') ge 0 then data.ddata = scale * tmp^.5
data.data = scale * tmp
return
end