;+ ;PROCEDURE: mvn_sta_l2_tplot,all=all,units=units,apids=apids,test=test,gf_nor=gf_nor ;PURPOSE: ; Creates tplot data from the STATIC common blocks ;INPUT: ; ;KEYWORDS: ; all 0/1 if not set, deletes all currently stored STATIC tplot structures (mvn_sta* and mvn_STA*) before generating new structures ; generally this is only used for code diagnostics ; units string select the units for generated tplot structures - not working yet ; apids strarr if set, selectes subset of apids to generate tplot structures - not working yet ; test 0/1 if set, diagnostic tplot structures (APIDs: 2A,d6,d7,d8,d9,da) are made ; generates "rate" tplot structures for all APIDs, ; default only generates c6 rate tplot structures ; gf_nor 0/1 if set, keyword for testing - not working yet ; dead_c0 flt not used -- only for testing ; scale flt not used -- only for develpment testing for crude background subtraction for 'mvn_sta_c0_H_E' ; replace 0/1 if set, replaces eflux with values calculated as this routine is run ; allows new dead time or background subtraction routines to be run with recalculations of eflux ;'mvn_sta_c0_H_E' ; ;CREATED BY: J. McFadden 2014/03/14 ;VERSION: 1 ;LAST MODIFICATION: 2014/09/08 ;MOD HISTORY: ; ; ;- pro mvn_sta_l2_tplot,all=all,units=units,apids=apids,test=test,gf_nor=gf_nor,scale=scale,dead_c0=dead_c0,replace=replace cols=get_colors() ; Note: mvn_sta_l0_load.pro generates 'mvn_STA_*' tplot structures - raw apids ; mvn_sta_prod_cal.pro generates 'mvn_sta_XX_* tplot structures where XX are capital letters ; mvn_sta_l2_load.pro generates 'mvn_sta_yy_*' tplot structures where yy are lower case letters if not keyword_set(all) then begin store_data,delete='mvn_STA_*' store_data,delete='mvn_sta_*' endif ;declare all the common block arrays common mvn_2a,mvn_2a_ind,mvn_2a_dat common mvn_c0,mvn_c0_ind,mvn_c0_dat common mvn_c2,mvn_c2_ind,mvn_c2_dat common mvn_c4,mvn_c4_ind,mvn_c4_dat common mvn_c6,mvn_c6_ind,mvn_c6_dat common mvn_c8,mvn_c8_ind,mvn_c8_dat common mvn_ca,mvn_ca_ind,mvn_ca_dat common mvn_cc,mvn_cc_ind,mvn_cc_dat common mvn_cd,mvn_cd_ind,mvn_cd_dat common mvn_ce,mvn_ce_ind,mvn_ce_dat common mvn_cf,mvn_cf_ind,mvn_cf_dat common mvn_d0,mvn_d0_ind,mvn_d0_dat common mvn_d1,mvn_d1_ind,mvn_d1_dat common mvn_d2,mvn_d2_ind,mvn_d2_dat common mvn_d3,mvn_d3_ind,mvn_d3_dat common mvn_d4,mvn_d4_ind,mvn_d4_dat common mvn_d6,mvn_d6_ind,mvn_d6_dat common mvn_d7,mvn_d7_ind,mvn_d7_dat common mvn_d8,mvn_d8_ind,mvn_d8_dat common mvn_d9,mvn_d9_ind,mvn_d9_dat common mvn_da,mvn_da_ind,mvn_da_dat common mvn_db,mvn_db_ind,mvn_db_dat ; 2A if size(mvn_2a_dat,/type) eq 8 and keyword_set(test) then begin for i=0,98 do begin label = strtrim(strcompress(mvn_2a_dat.hkp_labels[i]),1) name = 'mvn_sta_2a_'+ label store_data,name,data={x:mvn_2a_dat.time,y:reform(mvn_2a_dat.hkp[*,i])} options,name,ytitle=label endfor ylim,'mvn_sta_2a_Temp_Dig',0,60,0 ylim,'mvn_sta_2a_Imon_ADC5V',30,36,0 ylim,'mvn_sta_2a_+5V_D',4.9,5.2,0 ylim,'mvn_sta_2a_+3.3V_D',3.2,3.4,0 ylim,'mvn_sta_2a_+5V_A',4.9,5.2,0 ylim,'mvn_sta_2a_-5V_A',-5.3,-5.0,0 ylim,'mvn_sta_2a_+12V_A',11.9,12.3,0 ylim,'mvn_sta_2a_+28V',24,30,0 ylim,'mvn_sta_2a_Temp_FPGA',0,60,0 ylim,'mvn_sta_2a_Temp_LVPS',0,60,0 get_data,'mvn_sta_2a_Vmon_Swp',data=tmp store_data,'mvn_sta_2a_Vmon_Swp_minus',data={x:tmp.x,y:-tmp.y} ylim,'mvn_sta_2a_Vmon_Swp_minus',.1,10000.,1 ylim,'mvn_sta_2a_Vmon_Def1',.1,10000.,1 ylim,'mvn_sta_2a_Vmon_Def2',.1,10000.,1 ylim,'mvn_sta_2a_R3Rate',-1,12,0 ylim,'mvn_sta_2a_LUTADR*',-1,20,0 options,'mvn_sta_2a*',datagap=100. endif ; C0 if size(mvn_c0_dat,/type) eq 8 then begin npts = n_elements(mvn_c0_dat.time) mode = mvn_c0_dat.mode rate = mvn_c0_dat.rate iswp = mvn_c0_dat.swp_ind ieff = mvn_c0_dat.eff_ind iatt = mvn_c0_dat.att_ind mlut = mvn_c0_dat.mlut_ind nenergy = mvn_c0_dat.nenergy nmass = mvn_c0_dat.nmass qf = (mvn_c0_dat.quality_flag and 128)/128 or (mvn_c0_dat.quality_flag and 64)/64 time = (mvn_c0_dat.time + mvn_c0_dat.end_time)/2. data = mvn_c0_dat.data energy = reform(mvn_c0_dat.energy[iswp,*,0]) mass = total(mvn_c0_dat.mass_arr[iswp,*,*],2)/nenergy str_element,mvn_c0_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_c0_dat.bkg dead = mvn_c0_dat.dead gf = reform(mvn_c0_dat.gf[iswp,*,0]*((iatt eq 0)#replicate(1.,nenergy)) +$ mvn_c0_dat.gf[iswp,*,1]*((iatt eq 1)#replicate(1.,nenergy)) +$ mvn_c0_dat.gf[iswp,*,2]*((iatt eq 2)#replicate(1.,nenergy)) +$ mvn_c0_dat.gf[iswp,*,3]*((iatt eq 3)#replicate(1.,nenergy)), npts*nenergy)#replicate(1.,nmass) gf = mvn_c0_dat.geom_factor*reform(gf,npts,nenergy,nmass) eff = mvn_c0_dat.eff[ieff,*,*] dt = float(mvn_c0_dat.integ_t#replicate(1.,nenergy*nmass)) str_element,mvn_c0_dat,'gf_corr',success=success2 if success2 then gf_corr=reform(mvn_c0_dat.gf_corr[*,*],npts*nenergy)#replicate(1.,mvn_c0_dat.nmass) else gf_corr=1. eflux2 = (data-bkg)*dead/(gf*gf_corr*eff*dt) ; eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF c0 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count ge 1 then data[ind,*,*]=0. if count ge 1 then eflux[ind,*,*]=0. store_data,'mvn_sta_c0_P1A_E',data={x:time,y:total(data,3),v:energy} store_data,'mvn_sta_c0_P1A_H_E',data={x:time,y:reform( (data[*,*,1]-0.006*data[*,*,0]/(1.-(data[*,*,0]/1200.<.9))) >0.),v:energy} ; store_data,'mvn_sta_c0_P1A_H_E',data={x:time,y:reform( (data[*,*,1]-scale*data[*,*,0]/(1.-(data[*,*,0]/dead_c0<.9))) >0.),v:energy} store_data,'mvn_sta_c0_P1A_L_E',data={x:time,y:reform(data[*,*,0]),v:energy} store_data,'mvn_sta_c0_P1A_M',data={x:time,y:total(data,2),v:mass} store_data,'mvn_sta_c0_E',data={x:time,y:total(eflux,3),v:energy} store_data,'mvn_sta_c0_H_E',data={x:time,y:reform((eflux[*,*,1]-0.006*eflux[*,*,0]/(1.-(data[*,*,0]/1200.<.9))) >0.),v:energy} ; store_data,'mvn_sta_c0_H_E',data={x:time,y:reform((eflux[*,*,1]-scale*eflux[*,*,0]/(1.-(data[*,*,0]/dead_c0<.9))) >0.),v:energy} store_data,'mvn_sta_c0_L_E',data={x:time,y:reform(eflux[*,*,0]),v:energy} store_data,'mvn_sta_c0_M',data={x:time,y:total(eflux,2),v:mass} store_data,'mvn_sta_c0_tot',data={x:time,y:total(total(data,3),2)} store_data,'mvn_sta_c0_att',data={x:time,y:iatt} store_data,'mvn_sta_c0_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_c0_rate',data={x:time,y:rate} ylim,'mvn_sta_c0_tot',0,0,1 ylim,'mvn_sta_c0_P1A_E',.1,40000.,1 ylim,'mvn_sta_c0_P1A_H_E',.1,40000.,1 ylim,'mvn_sta_c0_P1A_L_E',.1,40000.,1 ylim,'mvn_sta_c0_P1A_M',.5,100,1 ylim,'mvn_sta_c0_E',.1,40000.,1 ylim,'mvn_sta_c0_H_E',.1,40000.,1 ylim,'mvn_sta_c0_L_E',.1,40000.,1 ylim,'mvn_sta_c0_M',.5,100,1 ylim,'mvn_sta_c0_att',-1,4,0 zlim,'mvn_sta_c0_P1A_E',1,1.e4,1 zlim,'mvn_sta_c0_P1A_H_E',1,1.e4,1 zlim,'mvn_sta_c0_P1A_L_E',1,1.e4,1 zlim,'mvn_sta_c0_P1A_M',1,1.e4,1 zlim,'mvn_sta_c0_E',1.e3,1.e9,1 zlim,'mvn_sta_c0_H_E',1.e3,1.e9,1 zlim,'mvn_sta_c0_L_E',1.e3,1.e9,1 zlim,'mvn_sta_c0_M',1.e3,1.e9,1 options,'mvn_sta_c0*',datagap=7. options,'mvn_sta_c0_P1A_E','spec',1 options,'mvn_sta_c0_P1A_H_E','spec',1 options,'mvn_sta_c0_P1A_L_E','spec',1 options,'mvn_sta_c0_P1A_M','spec',1 options,'mvn_sta_c0_E','spec',1 options,'mvn_sta_c0_H_E','spec',1 options,'mvn_sta_c0_L_E','spec',1 options,'mvn_sta_c0_M','spec',1 options,'mvn_sta_c0_P1A_E',ytitle='sta!CP1A-c0!C!CEnergy!CeV' options,'mvn_sta_c0_P1A_H_E',ytitle='sta!CP1A-c0!CM>12amu!CEnergy!CeV' options,'mvn_sta_c0_P1A_L_E',ytitle='sta!CP1A-c0!CM<10amu!CEnergy!CeV' options,'mvn_sta_c0_P1A_M',ytitle='sta!CP1A-c0!C!CMass!Camu' options,'mvn_sta_c0_E',ytitle='sta!Cc0!C!CEnergy!CeV' options,'mvn_sta_c0_H_E',ytitle='sta c0!CM>12!CEnergy!CeV' options,'mvn_sta_c0_L_E',ytitle='sta c0!CM<10!CEnergy!CeV' options,'mvn_sta_c0_M',ytitle='sta!Cc0!C!CMass!Camu' options,'mvn_sta_c0_tot',ytitle='sta!Cc0!C!CCounts' options,'mvn_sta_c0_att',ytitle='sta!Cc0!C!CAttenuator' options,'mvn_sta_c0_E',ztitle='eflux' options,'mvn_sta_c0_H_E',ztitle='eflux' options,'mvn_sta_c0_L_E',ztitle='eflux' options,'mvn_sta_c0_M',ztitle='eflux' endif ; C2 if size(mvn_c2_dat,/type) eq 8 then begin npts = n_elements(mvn_c2_dat.time) mode = mvn_c2_dat.mode rate = mvn_c2_dat.rate iswp = mvn_c2_dat.swp_ind ieff = mvn_c2_dat.eff_ind iatt = mvn_c2_dat.att_ind mlut = mvn_c2_dat.mlut_ind nenergy = mvn_c2_dat.nenergy nmass = mvn_c2_dat.nmass qf = (mvn_c2_dat.quality_flag and 128)/128 or (mvn_c2_dat.quality_flag and 64)/64 time = (mvn_c2_dat.time + mvn_c2_dat.end_time)/2. data = mvn_c2_dat.data energy = reform(mvn_c2_dat.energy[iswp,*,0]) mass = total(mvn_c2_dat.mass_arr[iswp,*,*],2)/nenergy str_element,mvn_c2_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_c2_dat.bkg dead = mvn_c2_dat.dead gf = reform(mvn_c2_dat.gf[iswp,*,0]*((iatt eq 0)#replicate(1.,nenergy)) +$ mvn_c2_dat.gf[iswp,*,1]*((iatt eq 1)#replicate(1.,nenergy)) +$ mvn_c2_dat.gf[iswp,*,2]*((iatt eq 2)#replicate(1.,nenergy)) +$ mvn_c2_dat.gf[iswp,*,3]*((iatt eq 3)#replicate(1.,nenergy)), npts*nenergy)#replicate(1.,nmass) gf = mvn_c2_dat.geom_factor*reform(gf,npts,nenergy,nmass) eff = mvn_c2_dat.eff[ieff,*,*] dt = float(mvn_c2_dat.integ_t#replicate(1.,nenergy*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF c2 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*]=0. if count gt 0 then eflux[ind,*,*]=0. store_data,'mvn_sta_c2_P1D_E',data={x:time,y:total(data,3),v:energy} store_data,'mvn_sta_c2_P1D_M',data={x:time,y:total(data,2),v:mass} store_data,'mvn_sta_c2_E',data={x:time,y:total(eflux,3),v:energy} store_data,'mvn_sta_c2_M',data={x:time,y:total(eflux,2),v:mass} store_data,'mvn_sta_c2_tot',data={x:time,y:total(total(data,3),2)} store_data,'mvn_sta_c2_att',data={x:time,y:iatt} store_data,'mvn_sta_c2_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_c2_rate',data={x:time,y:rate} ylim,'mvn_sta_c2_tot',0,0,1 ylim,'mvn_sta_c2_P1D_E',.1,40000.,1 ylim,'mvn_sta_c2_P1D_M',.5,100.,1 ylim,'mvn_sta_c2_E',.1,40000.,1 ylim,'mvn_sta_c2_M',.5,100.,1 ylim,'mvn_sta_c2_att',-1,4,0 zlim,'mvn_sta_c2_P1D_E',1,1.e4,1 zlim,'mvn_sta_c2_P1D_M',1,1.e4,1 zlim,'mvn_sta_c2_E',1.e3,1.e9,1 zlim,'mvn_sta_c2_M',1.e3,1.e9,1 datagap=7. options,'mvn_sta_c2_P1D_E',datagap=datagap options,'mvn_sta_c2_P1D_M',datagap=datagap options,'mvn_sta_c2_E',datagap=datagap options,'mvn_sta_c2_M',datagap=datagap options,'mvn_sta_c2_tot',datagap=datagap options,'mvn_sta_c2_att',datagap=datagap options,'mvn_sta_c2_P1D_E','spec',1 options,'mvn_sta_c2_P1D_M','spec',1 options,'mvn_sta_c2_E','spec',1 options,'mvn_sta_c2_M','spec',1 options,'mvn_sta_c2_P1D_E',ytitle='sta!CP1D-c2!C!CEnergy!CeV' options,'mvn_sta_c2_P1D_M',ytitle='sta!CP1D-c2!C!CMass!Camu' options,'mvn_sta_c2_E',ytitle='sta!Cc2!C!CEnergy!CeV' options,'mvn_sta_c2_M',ytitle='sta!Cc2!C!CMass!Camu' options,'mvn_sta_c2_tot',ytitle='sta!Cc2!C!CCounts' options,'mvn_sta_c2_att',ytitle='sta!Cc2!C!CAttenuator' options,'mvn_sta_c2_E',ztitle='eflux' options,'mvn_sta_c2_M',ztitle='eflux' endif ; C4 if size(mvn_c4_dat,/type) eq 8 then begin npts = n_elements(mvn_c4_dat.time) mode = mvn_c4_dat.mode rate = mvn_c4_dat.rate iswp = mvn_c4_dat.swp_ind ieff = mvn_c4_dat.eff_ind iatt = mvn_c4_dat.att_ind mlut = mvn_c4_dat.mlut_ind nenergy = mvn_c4_dat.nenergy nmass = mvn_c4_dat.nmass qf = (mvn_c4_dat.quality_flag and 128)/128 or (mvn_c4_dat.quality_flag and 64)/64 time = (mvn_c4_dat.time + mvn_c4_dat.end_time)/2. data = mvn_c4_dat.data energy = reform(mvn_c4_dat.energy[iswp,*,0]) mass = total(mvn_c4_dat.mass_arr[iswp,*,*],2)/nenergy str_element,mvn_c4_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_c4_dat.bkg dead = mvn_c4_dat.dead gf = reform(mvn_c4_dat.gf[iswp,*,0]*((iatt eq 0)#replicate(1.,nenergy)) +$ mvn_c4_dat.gf[iswp,*,1]*((iatt eq 1)#replicate(1.,nenergy)) +$ mvn_c4_dat.gf[iswp,*,2]*((iatt eq 2)#replicate(1.,nenergy)) +$ mvn_c4_dat.gf[iswp,*,3]*((iatt eq 3)#replicate(1.,nenergy)), npts*nenergy)#replicate(1.,nmass) gf = mvn_c4_dat.geom_factor*reform(gf,npts,nenergy,nmass) eff = mvn_c4_dat.eff[ieff,*,*] dt = float(mvn_c4_dat.integ_t#replicate(1.,nenergy*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF c4 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*]=0. if count gt 0 then eflux[ind,*,*]=0. store_data,'mvn_sta_c4_P1D_E',data={x:time,y:total(data,3),v:energy} store_data,'mvn_sta_c4_P1D_M',data={x:time,y:total(data,2),v:mass} store_data,'mvn_sta_c4_E',data={x:time,y:total(eflux,3),v:energy} store_data,'mvn_sta_c4_M',data={x:time,y:total(eflux,2),v:mass} store_data,'mvn_sta_c4_tot',data={x:time,y:total(total(data,3),2)} store_data,'mvn_sta_c4_att',data={x:time,y:iatt} store_data,'mvn_sta_c4_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_c4_rate',data={x:time,y:rate} ylim,'mvn_sta_c4_tot',0,0,1 ylim,'mvn_sta_c4_P1D_E',.1,40000.,1 ylim,'mvn_sta_c4_P1D_M',.5,100.,1 ylim,'mvn_sta_c4_E',.1,40000.,1 ylim,'mvn_sta_c4_M',.5,100.,1 ylim,'mvn_sta_c4_att',-1,4,0 zlim,'mvn_sta_c4_P1D_E',1,1.e4,1 zlim,'mvn_sta_c4_P1D_M',1,1.e4,1 zlim,'mvn_sta_c4_E',1.e3,1.e9,1 zlim,'mvn_sta_c4_M',1.e3,1.e9,1 datagap=7. options,'mvn_sta_c4_P1D_E',datagap=datagap options,'mvn_sta_c4_P1D_M',datagap=datagap options,'mvn_sta_c4_E',datagap=datagap options,'mvn_sta_c4_M',datagap=datagap options,'mvn_sta_c4_tot',datagap=datagap options,'mvn_sta_c4_att',datagap=datagap options,'mvn_sta_c4_P1D_E','spec',1 options,'mvn_sta_c4_P1D_M','spec',1 options,'mvn_sta_c4_E','spec',1 options,'mvn_sta_c4_M','spec',1 options,'mvn_sta_c4_P1D_E',ytitle='sta!CP1D-c4!C!CEnergy!CeV' options,'mvn_sta_c4_P1D_M',ytitle='sta!CP1D-c4!C!CMass!Camu' options,'mvn_sta_c4_E',ytitle='sta!Cc4!C!CEnergy!CeV' options,'mvn_sta_c4_M',ytitle='sta!Cc4!C!CMass!Camu' options,'mvn_sta_c4_tot',ytitle='sta!Cc4!C!CCounts' options,'mvn_sta_c4_att',ytitle='sta!Cc4!C!CAttenuator' options,'mvn_sta_c4_E',ztitle='eflux' options,'mvn_sta_c4_M',ztitle='eflux' endif ; C6 if size(mvn_c6_dat,/type) eq 8 then begin npts = n_elements(mvn_c6_dat.time) mode = mvn_c6_dat.mode rate = mvn_c6_dat.rate iswp = mvn_c6_dat.swp_ind ieff = mvn_c6_dat.eff_ind iatt = mvn_c6_dat.att_ind mlut = mvn_c6_dat.mlut_ind twt = mvn_c6_dat.twt_arr[mlut,*,*] nenergy = mvn_c6_dat.nenergy nmass = mvn_c6_dat.nmass eprom_ver = mvn_c6_dat.eprom_ver scpot = mvn_c6_dat.sc_pot qf = (mvn_c6_dat.quality_flag and 128)/128 or (mvn_c6_dat.quality_flag and 64)/64 time = (mvn_c6_dat.time + mvn_c6_dat.end_time)/2. data = mvn_c6_dat.data energy = reform(mvn_c6_dat.energy[iswp,*,0]) mass = total(mvn_c6_dat.mass_arr[iswp,*,*],2)/nenergy str_element,mvn_c6_dat,'eflux',eflux,success=success cnt_low_nrg=fltarr(npts) for i=0l,npts-1 do begin ind = where(energy[i,*] le 10.,count) if count ge 1 then cnt_low_nrg[i] = total(data[i,ind,*]) endfor ; this section needed because eflux in the CDFs got screwed up bkg = mvn_c6_dat.bkg dead = mvn_c6_dat.dead gf = reform(mvn_c6_dat.gf[iswp,*,0]*((iatt eq 0)#replicate(1.,nenergy)) +$ mvn_c6_dat.gf[iswp,*,1]*((iatt eq 1)#replicate(1.,nenergy)) +$ mvn_c6_dat.gf[iswp,*,2]*((iatt eq 2)#replicate(1.,nenergy)) +$ mvn_c6_dat.gf[iswp,*,3]*((iatt eq 3)#replicate(1.,nenergy)), npts*nenergy)#replicate(1.,nmass) gf = mvn_c6_dat.geom_factor*reform(gf,npts,nenergy,nmass) eff = mvn_c6_dat.eff[ieff,*,*] dt = float(mvn_c6_dat.integ_t#replicate(1.,nenergy*nmass)) str_element,mvn_c6_dat,'gf_corr',success=success2 if success2 then gf_corr=reform(mvn_c6_dat.gf_corr[*,*],npts*nenergy)#replicate(1.,mvn_c6_dat.nmass) else gf_corr=1. eflux2 = (data-bkg)*dead/(gf*gf_corr*eff*dt) ; eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF c6 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*]=0. if count gt 0 then eflux[ind,*,*]=0. if keyword_set(test) then begin store_data,'mvn_sta_c6_gf30_att',data={x:time,y:reform(mvn_c6_dat.gf[iswp,30,*])} ylim,'mvn_sta_c6_gf30_att',.01,20,1 options,'mvn_sta_c6_gf30_att',colors=[cols.blue,cols.green,cols.red,cols.black] store_data,'mvn_sta_c6_gf30',data={x:time,y:reform(gf[*,30,1])/mvn_c6_dat.geom_factor} ylim,'mvn_sta_c6_gf30',.01,20,1 store_data,'mvn_sta_c6_iswp',data={x:time,y:iswp} store_data,'mvn_sta_c6_iatt',data={x:time,y:[[iatt eq 0],[iatt eq 1],[iatt eq 2],[iatt eq 3]]} options,'mvn_sta_c6_iatt',colors=[cols.blue,cols.green,cols.red,cols.black] ylim,'mvn_sta_c6_iatt',-1,2,0 endif store_data,'mvn_sta_c6_P1D_E',data={x:time,y:total(data,3),v:energy} store_data,'mvn_sta_c6_P1D_M',data={x:time,y:total(data,2),v:mass} store_data,'mvn_sta_c6_E',data={x:time,y:total(eflux,3),v:energy} store_data,'mvn_sta_c6_M',data={x:time,y:total(eflux,2),v:mass} store_data,'mvn_sta_c6_M_twt',data={x:time,y:total(eflux/twt,2),v:mass} store_data,'mvn_sta_c6_tot',data={x:time,y:total(total(data,3),2)} store_data,'mvn_sta_c6_tot_le_10eV',data={x:time,y:cnt_low_nrg} store_data,'mvn_sta_c6_att',data={x:time,y:iatt} store_data,'mvn_sta_c6_mode',data={x:time,y:mode} store_data,'mvn_sta_c6_rate',data={x:time,y:rate} store_data,'mvn_sta_c6_quality_flag',data={x:time,y:mvn_c6_dat.quality_flag} options,'mvn_sta_c6_quality_flag',tplot_routine='bitplot',psym = 1,symsize=1 store_data,'mvn_sta_c6_eprom_ver',data={x:time,y:eprom_ver} ylim,'mvn_sta_c6_eprom_ver',min(eprom_ver)-1,max(eprom_ver)+1,0 store_data,'mvn_sta_c6_scpot',data={x:time,y:scpot} store_data,'mvn_sta_c6_neg_scpot',data={x:time,y:-scpot} options,'mvn_sta_c6_neg_scpot',colors=cols.red ylim,'mvn_sta_c6_tot',0,0,1 ylim,'mvn_sta_c6_tot_le_10eV',0,0,1 ylim,'mvn_sta_c6_P1D_E',.1,40000.,1 ylim,'mvn_sta_c6_P1D_M',.5,100.,1 ylim,'mvn_sta_c6_E',.1,40000.,1 ylim,'mvn_sta_c6_M',.5,100.,1 ylim,'mvn_sta_c6_M_twt',.5,100.,1 ylim,'mvn_sta_c6_att',-1,4,0 ylim,'mvn_sta_c6_mode',-1,8,0 ylim,'mvn_sta_c6_rate',-1,7,0 ylim,'mvn_sta_c6_scpot',0,0,0 ylim,'mvn_sta_c6_neg_scpot',.1,30,1 zlim,'mvn_sta_c6_P1D_E',1,1.e4,1 zlim,'mvn_sta_c6_P1D_M',1,1.e4,1 zlim,'mvn_sta_c6_E',1.e3,1.e9,1 zlim,'mvn_sta_c6_M',1.e3,1.e9,1 zlim,'mvn_sta_c6_M_twt',1.e3,1.e9,1 datagap=7. options,'mvn_sta_c6_P1D_E',datagap=datagap options,'mvn_sta_c6_P1D_M',datagap=datagap options,'mvn_sta_c6_E',datagap=datagap options,'mvn_sta_c6_M',datagap=datagap options,'mvn_sta_c6_M_twt',datagap=datagap options,'mvn_sta_c6_tot',datagap=datagap options,'mvn_sta_c6_tot_le_10eV',datagap=datagap options,'mvn_sta_c6_att',datagap=datagap options,'mvn_sta_c6_scpot',datagap=datagap options,'mvn_sta_c6_neg_scpot',datagap=datagap options,'mvn_sta_c6_P1D_E','spec',1 options,'mvn_sta_c6_P1D_M','spec',1 options,'mvn_sta_c6_E','spec',1 options,'mvn_sta_c6_M','spec',1 options,'mvn_sta_c6_M_twt','spec',1 options,'mvn_sta_c6_P1D_E',ytitle='sta!CP1D-c6!C!CEnergy!CeV' options,'mvn_sta_c6_P1D_M',ytitle='sta!CP1D-c6!C!CMass!Camu' options,'mvn_sta_c6_E',ytitle='sta!Cc6!C!CEnergy!CeV' options,'mvn_sta_c6_M',ytitle='sta!Cc6!C!CMass!Camu' options,'mvn_sta_c6_M_twt',ytitle='sta!Cc6!C!CMass!Camu' options,'mvn_sta_c6_tot',ytitle='sta!Cc6!C!CCounts' options,'mvn_sta_c6_tot_le_10eV',ytitle='sta!Cc6!C!C<10eV Cnts' options,'mvn_sta_c6_att',ytitle='sta!Cc6!C!CAttenuator' options,'mvn_sta_c6_scpot',ytitle='sta!Cc6!C!Cscpot' options,'mvn_sta_c6_neg_scpot',ytitle='sta!Cc6!C!C-scpot' options,'mvn_sta_c6_E',ztitle='eflux' options,'mvn_sta_c6_M',ztitle='eflux' options,'mvn_sta_c6_M_twt',ztitle='eflux/tofbin' endif ; C8 if size(mvn_c8_dat,/type) eq 8 then begin npts = n_elements(mvn_c8_dat.time) mode = mvn_c8_dat.mode rate = mvn_c8_dat.rate iswp = mvn_c8_dat.swp_ind ieff = mvn_c8_dat.eff_ind iatt = mvn_c8_dat.att_ind mlut = mvn_c8_dat.mlut_ind nenergy = mvn_c8_dat.nenergy ndef = mvn_c8_dat.ndef qf = (mvn_c8_dat.quality_flag and 128)/128 or (mvn_c8_dat.quality_flag and 64)/64 time = (mvn_c8_dat.time + mvn_c8_dat.end_time)/2. data = mvn_c8_dat.data energy = reform(mvn_c8_dat.energy[iswp,*,0]) theta = reform(mvn_c8_dat.theta[iswp,nenergy-1,*]) str_element,mvn_c8_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_c8_dat.bkg dead = mvn_c8_dat.dead gf = reform(mvn_c8_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*ndef)) +$ mvn_c8_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*ndef)) +$ mvn_c8_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*ndef)) +$ mvn_c8_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*ndef)), npts,nenergy,ndef) gf = mvn_c8_dat.geom_factor*gf eff = mvn_c8_dat.eff[ieff,*,*] dt = float(mvn_c8_dat.integ_t#replicate(1.,nenergy*ndef)) str_element,mvn_c8_dat,'gf_corr',success=success2 ; if success2 then gf_corr=reform(mvn_c8_dat.gf_corr[*,*],npts*nenergy)#replicate(1.,mvn_c8_dat.ndef) else gf_corr=1. if success2 then gf_corr=mvn_c8_dat.gf_corr else gf_corr = 1. eflux2 = (data-bkg)*dead/(gf*gf_corr*eff*dt) ; eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF c8 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*]=0. if count gt 0 then eflux[ind,*,*]=0. store_data,'mvn_sta_c8_P2_E',data={x:time,y:total(data,3),v:energy} store_data,'mvn_sta_c8_P2_D',data={x:time,y:total(data,2),v:theta} store_data,'mvn_sta_c8_E',data={x:time,y:total(eflux,3)/ndef,v:energy} store_data,'mvn_sta_c8_D',data={x:time,y:total(eflux,2)/nenergy,v:theta} store_data,'mvn_sta_c8_tot',data={x:time,y:total(total(data,3),2)} store_data,'mvn_sta_c8_att',data={x:time,y:iatt} store_data,'mvn_sta_c8_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_c8_rate',data={x:time,y:rate} ylim,'mvn_sta_c8_tot',0,0,1 ylim,'mvn_sta_c8_P2_E',.1,40000.,1 ylim,'mvn_sta_c8_P2_D',-50,50,0 ylim,'mvn_sta_c8_E',.1,40000.,1 ylim,'mvn_sta_c8_D',-50,50,0 ylim,'mvn_sta_c8_att',-1,4,0 zlim,'mvn_sta_c8_P2_E',1,1.e4,1 zlim,'mvn_sta_c8_P2_D',1,1.e4,1 zlim,'mvn_sta_c8_E',1.e3,1.e9,1 zlim,'mvn_sta_c8_D',1.e3,1.e9,1 datagap=7. options,'mvn_sta_c8_P2_E',datagap=datagap options,'mvn_sta_c8_P2_D',datagap=datagap options,'mvn_sta_c8_E',datagap=datagap options,'mvn_sta_c8_D',datagap=datagap options,'mvn_sta_c8_tot',datagap=datagap options,'mvn_sta_c8_P2_E','spec',1 options,'mvn_sta_c8_P2_D','spec',1 options,'mvn_sta_c8_E','spec',1 options,'mvn_sta_c8_D','spec',1 options,'mvn_sta_c8_P2_E',ytitle='sta!CP2-c8!C!CEnergy!CeV' options,'mvn_sta_c8_P2_D',ytitle='sta!CP2-c8!C!CTheta!Cdeg' options,'mvn_sta_c8_E',ytitle='sta!Cc8!C!CEnergy!CeV' options,'mvn_sta_c8_D',ytitle='sta!Cc8!C!CTheta!Cdeg' options,'mvn_sta_c8_tot',ytitle='sta!Cc8!C!CCounts' options,'mvn_sta_c8_att',ytitle='sta!Cc8!C!CAttenuator' options,'mvn_sta_c8_E',ztitle='eflux' options,'mvn_sta_c8_D',ztitle='eflux' endif ; CA if size(mvn_ca_dat,/type) eq 8 then begin npts = n_elements(mvn_ca_dat.time) mode = mvn_ca_dat.mode rate = mvn_ca_dat.rate iswp = mvn_ca_dat.swp_ind ieff = mvn_ca_dat.eff_ind iatt = mvn_ca_dat.att_ind nenergy = mvn_ca_dat.nenergy nbins = mvn_ca_dat.nbins ndef = mvn_ca_dat.ndef nanode = mvn_ca_dat.nanode qf = (mvn_ca_dat.quality_flag and 128)/128 or (mvn_ca_dat.quality_flag and 64)/64 time = (mvn_ca_dat.time + mvn_ca_dat.end_time)/2. data = mvn_ca_dat.data energy = reform(mvn_ca_dat.energy[iswp,*,0]) theta = total(reform(mvn_ca_dat.theta[iswp,nenergy-1,*],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_ca_dat.phi[iswp,nenergy-1,*],npts,ndef,nanode),2)/ndef str_element,mvn_ca_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_ca_dat.bkg dead = mvn_ca_dat.dead gf = reform(mvn_ca_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_ca_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_ca_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_ca_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins) gf = mvn_ca_dat.geom_factor*reform(gf,npts,nenergy,nbins) eff = mvn_ca_dat.eff[ieff,*,*] dt = float(mvn_ca_dat.integ_t#replicate(1.,nenergy*nbins)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF ca eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*]=0. if count gt 0 then eflux[ind,*,*]=0. store_data,'mvn_sta_ca_P3_E',data={x:time,y:total(data,3),v:energy} store_data,'mvn_sta_ca_P3_D',data={x:time,y:total(total(reform(data,npts,nenergy,ndef,nanode),4),2),v:theta} store_data,'mvn_sta_ca_P3_A',data={x:time,y:total(total(reform(data,npts,nenergy,ndef,nanode),3),2),v:phi} store_data,'mvn_sta_ca_tot',data={x:time,y:total(total(data,3),2)} store_data,'mvn_sta_ca_E',data={x:time,y:total(eflux,3)/nbins,v:energy} store_data,'mvn_sta_ca_D',data={x:time,y:total(total(reform(eflux,npts,nenergy,ndef,nanode),4),2)/nenergy/nanode,v:theta} store_data,'mvn_sta_ca_A',data={x:time,y:total(total(reform(eflux,npts,nenergy,ndef,nanode),3),2)/nenergy/ndef,v:phi} store_data,'mvn_sta_ca_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_ca_rate',data={x:time,y:rate} ylim,'mvn_sta_ca_P3_E',.1,40000.,1 ylim,'mvn_sta_ca_P3_D',-50,50,0 ylim,'mvn_sta_ca_P3_A',-180,200.,0 ylim,'mvn_sta_ca_tot',0,0,1 ylim,'mvn_sta_ca_E',.1,40000.,1 ylim,'mvn_sta_ca_D',-50,50,0 ylim,'mvn_sta_ca_A',-180,200.,0 zlim,'mvn_sta_ca_P3_E',1,1.e4,1 zlim,'mvn_sta_ca_P3_D',1,1.e4,1 zlim,'mvn_sta_ca_P3_A',1,1.e4,1 zlim,'mvn_sta_ca_E',1.e3,1.e9,1 zlim,'mvn_sta_ca_D',1.e3,1.e9,1 zlim,'mvn_sta_ca_A',1.e3,1.e9,1 datagap=7. options,'mvn_sta_ca_P3_E',datagap=datagap options,'mvn_sta_ca_P3_D',datagap=datagap options,'mvn_sta_ca_P3_A',datagap=datagap options,'mvn_sta_ca_tot',datagap=datagap options,'mvn_sta_ca_E',datagap=datagap options,'mvn_sta_ca_D',datagap=datagap options,'mvn_sta_ca_A',datagap=datagap options,'mvn_sta_ca_P3_E','spec',1 options,'mvn_sta_ca_P3_D','spec',1 options,'mvn_sta_ca_P3_A','spec',1 options,'mvn_sta_ca_E','spec',1 options,'mvn_sta_ca_D','spec',1 options,'mvn_sta_ca_A','spec',1 options,'mvn_sta_ca_P3_E',ytitle='sta!CP3-ca!C!CEnergy!CeV' options,'mvn_sta_ca_P3_D',ytitle='sta!CP3-ca!C!CTheta!Cdeg' options,'mvn_sta_ca_P3_A',ytitle='sta!CP3-ca!C!CPhi!Cdeg' options,'mvn_sta_ca_tot',ytitle='sta!Cca!C!CCounts' options,'mvn_sta_ca_E',ytitle='sta!Cca!C!CEnergy!CeV' options,'mvn_sta_ca_D',ytitle='sta!Cca!C!CTheta!Cdeg' options,'mvn_sta_ca_A',ytitle='sta!Cca!C!CPhi!Cdeg' options,'mvn_sta_ca_E',ztitle='eflux' options,'mvn_sta_ca_D',ztitle='eflux' options,'mvn_sta_ca_A',ztitle='eflux' endif ; CC if size(mvn_cc_dat,/type) eq 8 then begin npts = n_elements(mvn_cc_dat.time) mode = mvn_cc_dat.mode rate = mvn_cc_dat.rate iswp = mvn_cc_dat.swp_ind ieff = mvn_cc_dat.eff_ind iatt = mvn_cc_dat.att_ind mlut = mvn_cc_dat.mlut_ind nenergy = mvn_cc_dat.nenergy nbins = mvn_cc_dat.nbins ndef = mvn_cc_dat.ndef nanode = mvn_cc_dat.nanode nmass = mvn_cc_dat.nmass qf = (mvn_cc_dat.quality_flag and 128)/128 or (mvn_cc_dat.quality_flag and 64)/64 time = (mvn_cc_dat.time + mvn_cc_dat.end_time)/2. data = mvn_cc_dat.data energy = reform(mvn_cc_dat.energy[iswp,*,0,0]) mass = reform(total(mvn_cc_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_cc_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_cc_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_cc_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_cc_dat.bkg dead = mvn_cc_dat.dead gf = reform(mvn_cc_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_cc_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_cc_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_cc_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins)$ #replicate(1.,nmass) gf = mvn_cc_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_cc_dat.eff[ieff,*,*,*] dt = float(mvn_cc_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF cc eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_cc_P4B_E',data={x:time,y:total(total(data,4),3),v:energy} store_data,'mvn_sta_cc_P4B_D',data={x:time,y:total(total(data,4),2),v:theta} store_data,'mvn_sta_cc_P4B_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_cc_E',data={x:time,y:total(total(eflux,4),3)/nbins,v:energy} store_data,'mvn_sta_cc_D',data={x:time,y:total(total(eflux,4),2)/nenergy,v:theta} store_data,'mvn_sta_cc_M',data={x:time,y:total(total(eflux,3),2)/nenergy/nbins,v:mass} store_data,'mvn_sta_cc_tot',data={x:time,y:total(total(total(data,4),3),2)} store_data,'mvn_sta_cc_att',data={x:time,y:iatt} store_data,'mvn_sta_cc_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_cc_rate',data={x:time,y:rate} ylim,'mvn_sta_cc_tot',0,0,1 ylim,'mvn_sta_cc_P4B_E',.1,40000.,1 ylim,'mvn_sta_cc_P4B_D',-50,50,0 ylim,'mvn_sta_cc_P4B_M',.5,100,1 ylim,'mvn_sta_cc_E',.1,40000.,1 ylim,'mvn_sta_cc_D',-50,50,0 ylim,'mvn_sta_cc_M',.5,100,1 ylim,'mvn_sta_cc_att',-1,4,0 zlim,'mvn_sta_cc_P4B_E',10,1.e5,1 zlim,'mvn_sta_cc_P4B_D',10,1.e5,1 zlim,'mvn_sta_cc_P4B_M',10,1.e5,1 zlim,'mvn_sta_cc_E',1.e3,1.e9,1 zlim,'mvn_sta_cc_D',1.e3,1.e9,1 zlim,'mvn_sta_cc_M',1.e3,1.e9,1 datagap=600. options,'mvn_sta_cc_P4B_E',datagap=datagap options,'mvn_sta_cc_P4B_D',datagap=datagap options,'mvn_sta_cc_P4B_M',datagap=datagap options,'mvn_sta_cc_E',datagap=datagap options,'mvn_sta_cc_D',datagap=datagap options,'mvn_sta_cc_M',datagap=datagap options,'mvn_sta_cc_tot',datagap=datagap options,'mvn_sta_cc_P4B_E','spec',1 options,'mvn_sta_cc_P4B_D','spec',1 options,'mvn_sta_cc_P4B_M','spec',1 options,'mvn_sta_cc_E','spec',1 options,'mvn_sta_cc_D','spec',1 options,'mvn_sta_cc_M','spec',1 options,'mvn_sta_cc_P4B_E',ytitle='sta!CP4B-cc!C!CEnergy!CeV' options,'mvn_sta_cc_P4B_D',ytitle='sta!CP4B-cc!C!CTheta!Cdeg' options,'mvn_sta_cc_P4B_M',ytitle='sta!CP4B-cc!C!CMass!Camu' options,'mvn_sta_cc_E',ytitle='sta!Ccc!C!CEnergy!CeV' options,'mvn_sta_cc_D',ytitle='sta!Ccc!C!CTheta!Cdeg' options,'mvn_sta_cc_M',ytitle='sta!Ccc!C!CMass!Camu' options,'mvn_sta_cc_tot',ytitle='sta!Ccc!C!CCounts' options,'mvn_sta_cc_att',ytitle='sta!Ccc!C!CAttenuator' options,'mvn_sta_cc_E',ztitle='eflux' options,'mvn_sta_cc_D',ztitle='eflux' options,'mvn_sta_cc_M',ztitle='eflux' endif ; CD if size(mvn_cd_dat,/type) eq 8 then begin npts = n_elements(mvn_cd_dat.time) mode = mvn_cd_dat.mode rate = mvn_cd_dat.rate iswp = mvn_cd_dat.swp_ind ieff = mvn_cd_dat.eff_ind iatt = mvn_cd_dat.att_ind mlut = mvn_cd_dat.mlut_ind nenergy = mvn_cd_dat.nenergy nbins = mvn_cd_dat.nbins ndef = mvn_cd_dat.ndef nanode = mvn_cd_dat.nanode nmass = mvn_cd_dat.nmass qf = (mvn_cd_dat.quality_flag and 128)/128 or (mvn_cd_dat.quality_flag and 64)/64 time = (mvn_cd_dat.time + mvn_cd_dat.end_time)/2. data = mvn_cd_dat.data energy = reform(mvn_cd_dat.energy[iswp,*,0,0]) mass = reform(total(mvn_cd_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_cd_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_cd_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_cd_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_cd_dat.bkg dead = mvn_cd_dat.dead gf = reform(mvn_cd_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_cd_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_cd_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_cd_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins)$ #replicate(1.,nmass) gf = mvn_cd_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_cd_dat.eff[ieff,*,*,*] dt = float(mvn_cd_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/(eflux>.01))) gt 0. then print,'Error in CDF cd eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_cd_P4B_E',data={x:time,y:total(total(data,4),3),v:energy} store_data,'mvn_sta_cd_P4B_D',data={x:time,y:total(total(data,4),2),v:theta} store_data,'mvn_sta_cd_P4B_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_cd_E',data={x:time,y:total(total(eflux,4),3)/nbins,v:energy} store_data,'mvn_sta_cd_D',data={x:time,y:total(total(eflux,4),2)/nenergy,v:theta} store_data,'mvn_sta_cd_M',data={x:time,y:total(total(eflux,3),2)/nenergy/nbins,v:mass} store_data,'mvn_sta_cd_tot',data={x:time,y:total(total(total(data,4),3),2)} store_data,'mvn_sta_cd_att',data={x:time,y:iatt} store_data,'mvn_sta_cd_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_cd_rate',data={x:time,y:rate} ylim,'mvn_sta_cd_tot',0,0,1 ylim,'mvn_sta_cd_P4B_E',.1,40000.,1 ylim,'mvn_sta_cd_P4B_D',-50,50,0 ylim,'mvn_sta_cd_P4B_M',.5,100,1 ylim,'mvn_sta_cd_E',.1,40000.,1 ylim,'mvn_sta_cd_D',-50,50,0 ylim,'mvn_sta_cd_M',.5,100,1 ylim,'mvn_sta_cd_att',-1,4,0 zlim,'mvn_sta_cd_P4B_E',10,1.e5,1 zlim,'mvn_sta_cd_P4B_D',10,1.e5,1 zlim,'mvn_sta_cd_P4B_M',10,1.e5,1 zlim,'mvn_sta_cd_E',1.e3,1.e9,1 zlim,'mvn_sta_cd_D',1.e3,1.e9,1 zlim,'mvn_sta_cd_M',1.e3,1.e9,1 datagap=600. options,'mvn_sta_cd_P4B_E',datagap=datagap options,'mvn_sta_cd_P4B_D',datagap=datagap options,'mvn_sta_cd_P4B_M',datagap=datagap options,'mvn_sta_cd_E',datagap=datagap options,'mvn_sta_cd_D',datagap=datagap options,'mvn_sta_cd_M',datagap=datagap options,'mvn_sta_cd_tot',datagap=datagap options,'mvn_sta_cd_P4B_E','spec',1 options,'mvn_sta_cd_P4B_D','spec',1 options,'mvn_sta_cd_P4B_M','spec',1 options,'mvn_sta_cd_E','spec',1 options,'mvn_sta_cd_D','spec',1 options,'mvn_sta_cd_M','spec',1 options,'mvn_sta_cd_P4B_E',ytitle='sta!CP4B-cd!C!CEnergy!CeV' options,'mvn_sta_cd_P4B_D',ytitle='sta!CP4B-cd!C!CTheta!Cdeg' options,'mvn_sta_cd_P4B_M',ytitle='sta!CP4B-cd!C!CMass!Camu' options,'mvn_sta_cd_E',ytitle='sta!Ccd!C!CEnergy!CeV' options,'mvn_sta_cd_D',ytitle='sta!Ccd!C!CTheta!Cdeg' options,'mvn_sta_cd_M',ytitle='sta!Ccd!C!CMass!Camu' options,'mvn_sta_cd_tot',ytitle='sta!Ccd!C!CCounts' options,'mvn_sta_cd_att',ytitle='sta!Ccd!C!CAttenuator' options,'mvn_sta_cd_E',ztitle='eflux' options,'mvn_sta_cd_D',ztitle='eflux' options,'mvn_sta_cd_M',ztitle='eflux' endif ; CE if size(mvn_ce_dat,/type) eq 8 then begin npts = n_elements(mvn_ce_dat.time) mode = mvn_ce_dat.mode rate = mvn_ce_dat.rate iswp = mvn_ce_dat.swp_ind ieff = mvn_ce_dat.eff_ind iatt = mvn_ce_dat.att_ind mlut = mvn_ce_dat.mlut_ind nenergy = mvn_ce_dat.nenergy nbins = mvn_ce_dat.nbins ndef = mvn_ce_dat.ndef nanode = mvn_ce_dat.nanode nmass = mvn_ce_dat.nmass qf = (mvn_ce_dat.quality_flag and 128)/128 or (mvn_ce_dat.quality_flag and 64)/64 time = (mvn_ce_dat.time + mvn_ce_dat.end_time)/2. data = mvn_ce_dat.data energy = reform(mvn_ce_dat.energy[iswp,*,0,0]) mass = reform(total(mvn_ce_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_ce_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_ce_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_ce_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_ce_dat.bkg dead = mvn_ce_dat.dead gf = reform(mvn_ce_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_ce_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_ce_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_ce_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins)$ #replicate(1.,nmass) gf = mvn_ce_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_ce_dat.eff[ieff,*,*,*] dt = float(mvn_ce_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/eflux)) gt 0. then print,'Error in CDF ce eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_ce_P4B_E',data={x:time,y:total(total(data,4),3),v:energy} store_data,'mvn_sta_ce_P4B_D',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_ce_P4B_A',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_ce_P4B_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_ce_E',data={x:time,y:total(total(eflux,4),3)/nbins,v:energy} store_data,'mvn_sta_ce_D',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_ce_A',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_ce_M',data={x:time,y:total(total(eflux,3),2),v:mass} store_data,'mvn_sta_ce_tot',data={x:time,y:total(total(total(data,4),3),2)} store_data,'mvn_sta_ce_att',data={x:time,y:iatt} store_data,'mvn_sta_ce_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_ce_rate',data={x:time,y:rate} ylim,'mvn_sta_ce_tot',0,0,1 ylim,'mvn_sta_ce_P4B_E',.1,40000.,1 ylim,'mvn_sta_ce_P4B_D',-50,50,0 ylim,'mvn_sta_ce_P4B_A',-180,200.,0 ylim,'mvn_sta_ce_P4B_M',.5,100,1 ylim,'mvn_sta_ce_E',.1,40000.,1 ylim,'mvn_sta_ce_D',-50,50,0 ylim,'mvn_sta_ce_A',-180,200.,0 ylim,'mvn_sta_ce_M',.5,100,1 ylim,'mvn_sta_ce_att',-1,4,0 zlim,'mvn_sta_ce_P4B_E',10,1.e5,1 zlim,'mvn_sta_ce_P4B_D',10,1.e5,1 zlim,'mvn_sta_ce_P4B_A',10,1.e5,1 zlim,'mvn_sta_ce_P4B_M',10,1.e5,1 zlim,'mvn_sta_ce_E',1.e3,1.e9,1 zlim,'mvn_sta_ce_D',1.e3,1.e9,1 zlim,'mvn_sta_ce_A',1.e3,1.e9,1 zlim,'mvn_sta_ce_M',1.e3,1.e9,1 datagap=600. options,'mvn_sta_ce_P4B_E',datagap=datagap options,'mvn_sta_ce_P4B_D',datagap=datagap options,'mvn_sta_ce_P4B_A',datagap=datagap options,'mvn_sta_ce_P4B_M',datagap=datagap options,'mvn_sta_ce_E',datagap=datagap options,'mvn_sta_ce_D',datagap=datagap options,'mvn_sta_ce_A',datagap=datagap options,'mvn_sta_ce_M',datagap=datagap options,'mvn_sta_ce_tot',datagap=datagap options,'mvn_sta_ce_P4B_E','spec',1 options,'mvn_sta_ce_P4B_D','spec',1 options,'mvn_sta_ce_P4B_A','spec',1 options,'mvn_sta_ce_P4B_M','spec',1 options,'mvn_sta_ce_E','spec',1 options,'mvn_sta_ce_D','spec',1 options,'mvn_sta_ce_A','spec',1 options,'mvn_sta_ce_M','spec',1 options,'mvn_sta_ce_P4B_E',ytitle='sta!CP4B-ce!C!CEnergy!CeV' options,'mvn_sta_ce_P4B_D',ytitle='sta!CP4B-ce!C!CTheta!Cdeg' options,'mvn_sta_ce_P4B_A',ytitle='sta!CP4B-ce!C!CPhi!Cdeg' options,'mvn_sta_ce_P4B_M',ytitle='sta!CP4B-ce!C!CMass!Camu' options,'mvn_sta_ce_E',ytitle='sta!Cce!C!CEnergy!CeV' options,'mvn_sta_ce_D',ytitle='sta!Cce!C!CTheta!Cdeg' options,'mvn_sta_ce_A',ytitle='sta!Cce!C!CPhi!Cdeg' options,'mvn_sta_ce_M',ytitle='sta!Cce!C!CMass!Camu' options,'mvn_sta_ce_tot',ytitle='sta!Cce!C!CCounts' options,'mvn_sta_ce_att',ytitle='sta!Cce!C!CAttenuator' options,'mvn_sta_ce_E',ztitle='eflux' options,'mvn_sta_ce_D',ztitle='eflux' options,'mvn_sta_ce_A',ztitle='eflux' options,'mvn_sta_ce_M',ztitle='eflux' endif ; CF if size(mvn_cf_dat,/type) eq 8 then begin npts = n_elements(mvn_cf_dat.time) mode = mvn_cf_dat.mode rate = mvn_cf_dat.rate iswp = mvn_cf_dat.swp_ind ieff = mvn_cf_dat.eff_ind iatt = mvn_cf_dat.att_ind mlut = mvn_cf_dat.mlut_ind nenergy = mvn_cf_dat.nenergy nbins = mvn_cf_dat.nbins ndef = mvn_cf_dat.ndef nanode = mvn_cf_dat.nanode nmass = mvn_cf_dat.nmass qf = (mvn_cf_dat.quality_flag and 128)/128 or (mvn_cf_dat.quality_flag and 64)/64 time = (mvn_cf_dat.time + mvn_cf_dat.end_time)/2. data = mvn_cf_dat.data energy = reform(mvn_cf_dat.energy[iswp,*,0,0]) mass = reform(total(mvn_cf_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_cf_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_cf_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_cf_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_cf_dat.bkg dead = mvn_cf_dat.dead gf = reform(mvn_cf_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_cf_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_cf_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_cf_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins)$ #replicate(1.,nmass) gf = mvn_cf_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_cf_dat.eff[ieff,*,*,*] dt = float(mvn_cf_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/eflux)) gt 0. then print,'Error in CDF cf eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_cf_P4B_E',data={x:time,y:total(total(data,4),3),v:energy} store_data,'mvn_sta_cf_P4B_D',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_cf_P4B_A',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_cf_P4B_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_cf_E',data={x:time,y:total(total(eflux,4),3)/nbins,v:energy} store_data,'mvn_sta_cf_D',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_cf_A',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_cf_M',data={x:time,y:total(total(eflux,3),2),v:mass} store_data,'mvn_sta_cf_tot',data={x:time,y:total(total(total(data,4),3),2)} store_data,'mvn_sta_cf_att',data={x:time,y:iatt} store_data,'mvn_sta_cf_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_cf_rate',data={x:time,y:rate} ylim,'mvn_sta_cf_tot',0,0,1 ylim,'mvn_sta_cf_P4B_E',.1,40000.,1 ylim,'mvn_sta_cf_P4B_D',-50,50,0 ylim,'mvn_sta_cf_P4B_A',-180,200.,0 ylim,'mvn_sta_cf_P4B_M',.5,100,1 ylim,'mvn_sta_cf_E',.1,40000.,1 ylim,'mvn_sta_cf_D',-50,50,0 ylim,'mvn_sta_cf_A',-180,200.,0 ylim,'mvn_sta_cf_M',.5,100,1 ylim,'mvn_sta_cf_att',-1,4,0 zlim,'mvn_sta_cf_P4B_E',10,1.e5,1 zlim,'mvn_sta_cf_P4B_D',10,1.e5,1 zlim,'mvn_sta_cf_P4B_A',10,1.e5,1 zlim,'mvn_sta_cf_P4B_M',10,1.e5,1 zlim,'mvn_sta_cf_E',1.e3,1.e9,1 zlim,'mvn_sta_cf_D',1.e3,1.e9,1 zlim,'mvn_sta_cf_A',1.e3,1.e9,1 zlim,'mvn_sta_cf_M',1.e3,1.e9,1 datagap=600. options,'mvn_sta_cf_P4B_E',datagap=datagap options,'mvn_sta_cf_P4B_D',datagap=datagap options,'mvn_sta_cf_P4B_A',datagap=datagap options,'mvn_sta_cf_P4B_M',datagap=datagap options,'mvn_sta_cf_E',datagap=datagap options,'mvn_sta_cf_D',datagap=datagap options,'mvn_sta_cf_A',datagap=datagap options,'mvn_sta_cf_M',datagap=datagap options,'mvn_sta_cf_tot',datagap=datagap options,'mvn_sta_cf_P4B_E','spec',1 options,'mvn_sta_cf_P4B_D','spec',1 options,'mvn_sta_cf_P4B_A','spec',1 options,'mvn_sta_cf_P4B_M','spec',1 options,'mvn_sta_cf_E','spec',1 options,'mvn_sta_cf_D','spec',1 options,'mvn_sta_cf_A','spec',1 options,'mvn_sta_cf_M','spec',1 options,'mvn_sta_cf_P4B_E',ytitle='sta!CP4B-cf!C!CEnergy!CeV' options,'mvn_sta_cf_P4B_D',ytitle='sta!CP4B-cf!C!CTheta!Cdeg' options,'mvn_sta_cf_P4B_A',ytitle='sta!CP4B-cf!C!CPhi!Cdeg' options,'mvn_sta_cf_P4B_M',ytitle='sta!CP4B-cf!C!CMass!Camu' options,'mvn_sta_cf_E',ytitle='sta!Ccf!C!CEnergy!CeV' options,'mvn_sta_cf_D',ytitle='sta!Ccf!C!CTheta!Cdeg' options,'mvn_sta_cf_A',ytitle='sta!Ccf!C!CPhi!Cdeg' options,'mvn_sta_cf_M',ytitle='sta!Ccf!C!CMass!Camu' options,'mvn_sta_cf_tot',ytitle='sta!Ccf!C!CCounts' options,'mvn_sta_cf_att',ytitle='sta!Ccf!C!CAttenuator' options,'mvn_sta_cf_E',ztitle='eflux' options,'mvn_sta_cf_D',ztitle='eflux' options,'mvn_sta_cf_A',ztitle='eflux' options,'mvn_sta_cf_M',ztitle='eflux' endif ; D0 if size(mvn_d0_dat,/type) eq 8 then begin npts = n_elements(mvn_d0_dat.time) mode = mvn_d0_dat.mode rate = mvn_d0_dat.rate iswp = mvn_d0_dat.swp_ind ieff = mvn_d0_dat.eff_ind iatt = mvn_d0_dat.att_ind mlut = mvn_d0_dat.mlut_ind nenergy = mvn_d0_dat.nenergy nbins = mvn_d0_dat.nbins ndef = mvn_d0_dat.ndef nanode = mvn_d0_dat.nanode nmass = mvn_d0_dat.nmass qf = (mvn_d0_dat.quality_flag and 128)/128 or (mvn_d0_dat.quality_flag and 64)/64 time = (mvn_d0_dat.time + mvn_d0_dat.end_time)/2. data = mvn_d0_dat.data energy = reform(mvn_d0_dat.energy[iswp,*,0,0]) mass = reform(total(mvn_d0_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_d0_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_d0_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_d0_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_d0_dat.bkg dead = mvn_d0_dat.dead gf = reform(mvn_d0_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_d0_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_d0_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_d0_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins)$ #replicate(1.,nmass) gf = mvn_d0_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_d0_dat.eff[ieff,*,*,*] dt = float(mvn_d0_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/eflux)) gt 0. then print,'Error in CDF d0 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_d0_P4C_E',data={x:time,y:total(total(data,4),3),v:energy} store_data,'mvn_sta_d0_P4C_D',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_d0_P4C_A',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_d0_P4C_A_L',data={x:time,y:total(total(total(reform(data[*,*,*,0:3],npts,nenergy,ndef,nanode,nmass/2),5),3),2),v:phi} store_data,'mvn_sta_d0_P4C_A_H',data={x:time,y:total(total(total(reform(data[*,*,*,4:7],npts,nenergy,ndef,nanode,nmass/2),5),3),2),v:phi} store_data,'mvn_sta_d0_P4C_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_d0_E',data={x:time,y:total(total(eflux,4),3)/nbins,v:energy} store_data,'mvn_sta_d0_D',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_d0_A',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_d0_M',data={x:time,y:total(total(eflux,3),2),v:mass} store_data,'mvn_sta_d0_tot',data={x:time,y:total(total(total(data,4),3),2)} store_data,'mvn_sta_d0_att',data={x:time,y:iatt} store_data,'mvn_sta_d0_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_d0_rate',data={x:time,y:rate} store_data,'mvn_sta_d0_H_E',data={x:time,y:total(total(eflux[*,*,*,4:7],4),3)/nbins,v:energy} store_data,'mvn_sta_d0_H_D',data={x:time,y:total(total(reform(total(eflux[*,*,*,4:7],4),npts,nenergy,ndef,nanode),4),2),v:theta} store_data,'mvn_sta_d0_H_A',data={x:time,y:total(total(reform(total(eflux[*,*,*,4:7],4),npts,nenergy,ndef,nanode),3),2),v:phi} ; this is for looking at pickup ions store_data,'mvn_sta_d0_P4C_H_D_kev',data={x:time,y:total(reform(total(total(data[*,0:9,*,4:7],4),2),npts,ndef,nanode),3),v:theta} store_data,'mvn_sta_d0_P4C_H_A_kev',data={x:time,y:total(reform(total(total(data[*,0:9,*,4:7],4),2),npts,ndef,nanode),2),v:phi} ; this is for looking at heavies anode distribution store_data,'mvn_sta_d0_P4C_p_A',data={x:time,y:total(reform(total(reform(data[*,*,*,0:0]),2),npts,ndef,nanode),2),v:phi} store_data,'mvn_sta_d0_P4C_he_A',data={x:time,y:total(reform(total(reform(data[*,*,*,1:1]),2),npts,ndef,nanode),2),v:phi} store_data,'mvn_sta_d0_P4C_o_A',data={x:time,y:total(reform(total(reform(data[*,*,*,4:4]),2),npts,ndef,nanode),2),v:phi} store_data,'mvn_sta_d0_P4C_o2_A',data={x:time,y:total(reform(total(reform(data[*,*,*,5:5]),2),npts,ndef,nanode),2),v:phi} ylim,'mvn_sta_d0_tot',0,0,1 ylim,'mvn_sta_d0_P4C_E',.1,40000.,1 ylim,'mvn_sta_d0_P4C_D',-50,50,0 ylim,'mvn_sta_d0_P4C_A',-180,200.,0 ylim,'mvn_sta_d0_P4C_A_L',-180,200.,0 ylim,'mvn_sta_d0_P4C_A_H',-180,200.,0 ylim,'mvn_sta_d0_P4C_M',.5,100,1 ylim,'mvn_sta_d0_E',.1,40000.,1 ylim,'mvn_sta_d0_D',-50,50,0 ylim,'mvn_sta_d0_A',-180,200.,0 ylim,'mvn_sta_d0_M',.5,100,1 ylim,'mvn_sta_d0_att',-1,4,0 ylim,'mvn_sta_d0_H_E',.1,40000.,1 ylim,'mvn_sta_d0_H_D',-50,50,0 ylim,'mvn_sta_d0_H_A',-180,200.,0 ylim,'mvn_sta_d0_P4C_H_D_kev',-50,50,0 ylim,'mvn_sta_d0_P4C_H_A_kev',-180,200.,0 ylim,'mvn_sta_d0_P4C_p_A',-180,200.,0 ylim,'mvn_sta_d0_P4C_he_A',-180,200.,0 ylim,'mvn_sta_d0_P4C_o_A',-180,200.,0 ylim,'mvn_sta_d0_P4C_o2_A',-180,200.,0 zlim,'mvn_sta_d0_P4C_E',10,1.e5,1 zlim,'mvn_sta_d0_P4C_D',10,1.e5,1 zlim,'mvn_sta_d0_P4C_A',10,1.e5,1 zlim,'mvn_sta_d0_P4C_A_L',10,1.e5,1 zlim,'mvn_sta_d0_P4C_A_H',10,1.e5,1 zlim,'mvn_sta_d0_P4C_M',10,1.e5,1 zlim,'mvn_sta_d0_E',1.e3,1.e9,1 zlim,'mvn_sta_d0_D',1.e3,1.e9,1 zlim,'mvn_sta_d0_A',1.e3,1.e9,1 zlim,'mvn_sta_d0_M',1.e3,1.e9,1 zlim,'mvn_sta_d0_H_E',1.e3,1.e9,1 zlim,'mvn_sta_d0_H_D',1.e3,1.e9,1 zlim,'mvn_sta_d0_H_A',1.e3,1.e9,1 zlim,'mvn_sta_d0_P4C_H_D_kev',1,1000,1 zlim,'mvn_sta_d0_P4C_H_A_kev',1,1000,1 zlim,'mvn_sta_d0_P4C_p_A',1,10000,1 zlim,'mvn_sta_d0_P4C_he_A',1,10000,1 zlim,'mvn_sta_d0_P4C_o_A',1,10000,1 zlim,'mvn_sta_d0_P4C_o2_A',1,10000,1 datagap=600. options,'mvn_sta_d0*',datagap=datagap ; options,'mvn_sta_d0_P4C_E',datagap=datagap ; options,'mvn_sta_d0_P4C_D',datagap=datagap ; options,'mvn_sta_d0_P4C_A',datagap=datagap ; options,'mvn_sta_d0_P4C_M',datagap=datagap ; options,'mvn_sta_d0_E',datagap=datagap ; options,'mvn_sta_d0_D',datagap=datagap ; options,'mvn_sta_d0_A',datagap=datagap ; options,'mvn_sta_d0_M',datagap=datagap ; options,'mvn_sta_d0_tot',datagap=datagap options,'mvn_sta_d0_P4C_E','spec',1 options,'mvn_sta_d0_P4C_D','spec',1 options,'mvn_sta_d0_P4C_A','spec',1 options,'mvn_sta_d0_P4C_A_L','spec',1 options,'mvn_sta_d0_P4C_A_H','spec',1 options,'mvn_sta_d0_P4C_M','spec',1 options,'mvn_sta_d0_E','spec',1 options,'mvn_sta_d0_D','spec',1 options,'mvn_sta_d0_A','spec',1 options,'mvn_sta_d0_M','spec',1 options,'mvn_sta_d0_H_E','spec',1 options,'mvn_sta_d0_H_D','spec',1 options,'mvn_sta_d0_H_A','spec',1 options,'mvn_sta_d0_P4C_H_D_kev','spec',1 options,'mvn_sta_d0_P4C_H_A_kev','spec',1 options,'mvn_sta_d0_P4C_p_A','spec',1 options,'mvn_sta_d0_P4C_he_A','spec',1 options,'mvn_sta_d0_P4C_o_A','spec',1 options,'mvn_sta_d0_P4C_o2_A','spec',1 options,'mvn_sta_d0_P4C_E',ytitle='sta!CP4C-d0!C!CEnergy!CeV' options,'mvn_sta_d0_P4C_D',ytitle='sta!CP4C-d0!C!CTheta!Cdeg' options,'mvn_sta_d0_P4C_A',ytitle='sta!CP4C-d0!C!CPhi!Cdeg' options,'mvn_sta_d0_P4C_M',ytitle='sta!CP4C-d0!C!CMass!Camu' options,'mvn_sta_d0_E',ytitle='sta!Cd0!C!CEnergy!CeV' options,'mvn_sta_d0_D',ytitle='sta!Cd0!C!CTheta!Cdeg' options,'mvn_sta_d0_A',ytitle='sta!Cd0!C!CPhi!Cdeg' options,'mvn_sta_d0_M',ytitle='sta!Cd0!C!CMass!Camu' options,'mvn_sta_d0_tot',ytitle='sta!Cd0!C!CCounts' options,'mvn_sta_d0_att',ytitle='sta!Cd0!C!CAttenuator' options,'mvn_sta_d0_H_E',ytitle='sta!Cd0!C!CEnergy!CeV' options,'mvn_sta_d0_H_D',ytitle='sta!Cd0!C!CTheta!Cdeg' options,'mvn_sta_d0_H_A',ytitle='sta!Cd0!C!CPhi!Cdeg' options,'mvn_sta_d0_P4C_H_D_kev',ytitle='sta d0!C>1keV!CO+ O2+!CTheta!Cdeg' options,'mvn_sta_d0_P4C_H_A_kev',ytitle='sta d0!C>1keV!CO+ O2+!CPhi!Cdeg' options,'mvn_sta_d0_P4C_p_A',ytitle='sta d0!Cp+!CPhi!Cdeg' options,'mvn_sta_d0_P4C_he_A',ytitle='sta d0!Che++!CPhi!Cdeg' options,'mvn_sta_d0_P4C_o_A',ytitle='sta d0!Co+!CPhi!Cdeg' options,'mvn_sta_d0_P4C_o2_A',ytitle='sta d0!Co2+!CPhi!Cdeg' options,'mvn_sta_d0_E',ztitle='eflux' options,'mvn_sta_d0_D',ztitle='eflux' options,'mvn_sta_d0_A',ztitle='eflux' options,'mvn_sta_d0_M',ztitle='eflux' options,'mvn_sta_d0_H_E',ztitle='eflux' options,'mvn_sta_d0_H_D',ztitle='eflux' options,'mvn_sta_d0_H_A',ztitle='eflux' options,'mvn_sta_d0_P4C_H_D_kev',ztitle='counts' options,'mvn_sta_d0_P4C_H_A_kev',ztitle='counts' options,'mvn_sta_d0_P4C_p_A',ztitle='counts' options,'mvn_sta_d0_P4C_he_A',ztitle='counts' options,'mvn_sta_d0_P4C_o_A',ztitle='counts' options,'mvn_sta_d0_P4C_o2_A',ztitle='counts' endif ; D1 if size(mvn_d1_dat,/type) eq 8 then begin npts = n_elements(mvn_d1_dat.time) mode = mvn_d1_dat.mode rate = mvn_d1_dat.rate iswp = mvn_d1_dat.swp_ind ieff = mvn_d1_dat.eff_ind iatt = mvn_d1_dat.att_ind mlut = mvn_d1_dat.mlut_ind nenergy = mvn_d1_dat.nenergy nbins = mvn_d1_dat.nbins ndef = mvn_d1_dat.ndef nanode = mvn_d1_dat.nanode nmass = mvn_d1_dat.nmass qf = (mvn_d1_dat.quality_flag and 128)/128 or (mvn_d1_dat.quality_flag and 64)/64 time = (mvn_d1_dat.time + mvn_d1_dat.end_time)/2. data = mvn_d1_dat.data energy = reform(mvn_d1_dat.energy[iswp,*,0,0]) mass = reform(total(mvn_d1_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_d1_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_d1_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_d1_dat,'eflux',eflux,success=success ; this section needed because eflux in the CDFs got screwed up bkg = mvn_d1_dat.bkg dead = mvn_d1_dat.dead gf = reform(mvn_d1_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nenergy*nbins)) +$ mvn_d1_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nenergy*nbins)) +$ mvn_d1_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nenergy*nbins)) +$ mvn_d1_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nenergy*nbins)), npts*nenergy*nbins)$ #replicate(1.,nmass) gf = mvn_d1_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_d1_dat.eff[ieff,*,*,*] dt = float(mvn_d1_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/eflux)) gt 0. then print,'Error in CDF d1 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_d1_P4C_E',data={x:time,y:total(total(data,4),3),v:energy} store_data,'mvn_sta_d1_P4C_D',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_d1_P4C_A',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_d1_P4C_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_d1_E',data={x:time,y:total(total(eflux,4),3)/nbins,v:energy} store_data,'mvn_sta_d1_D',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_d1_A',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_d1_M',data={x:time,y:total(total(eflux,3),2),v:mass} store_data,'mvn_sta_d1_tot',data={x:time,y:total(total(total(data,4),3),2)} store_data,'mvn_sta_d1_att',data={x:time,y:iatt} store_data,'mvn_sta_d1_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_d1_rate',data={x:time,y:rate} ylim,'mvn_sta_d1_tot',0,0,1 ylim,'mvn_sta_d1_P4C_E',.1,40000.,1 ylim,'mvn_sta_d1_P4C_D',-50,50,0 ylim,'mvn_sta_d1_P4C_A',-180,200.,0 ylim,'mvn_sta_d1_P4C_M',.5,100,1 ylim,'mvn_sta_d1_E',.1,40000.,1 ylim,'mvn_sta_d1_D',-50,50,0 ylim,'mvn_sta_d1_A',-180,200.,0 ylim,'mvn_sta_d1_M',.5,100,1 ylim,'mvn_sta_d1_att',-1,4,0 zlim,'mvn_sta_d1_P4C_E',10,1.e5,1 zlim,'mvn_sta_d1_P4C_D',10,1.e5,1 zlim,'mvn_sta_d1_P4C_A',10,1.e5,1 zlim,'mvn_sta_d1_P4C_M',10,1.e5,1 zlim,'mvn_sta_d1_E',1.e3,1.e9,1 zlim,'mvn_sta_d1_D',1.e3,1.e9,1 zlim,'mvn_sta_d1_A',1.e3,1.e9,1 zlim,'mvn_sta_d1_M',1.e3,1.e9,1 datagap=600. options,'mvn_sta_d1_P4C_E',datagap=datagap options,'mvn_sta_d1_P4C_D',datagap=datagap options,'mvn_sta_d1_P4C_A',datagap=datagap options,'mvn_sta_d1_P4C_M',datagap=datagap options,'mvn_sta_d1_E',datagap=datagap options,'mvn_sta_d1_D',datagap=datagap options,'mvn_sta_d1_A',datagap=datagap options,'mvn_sta_d1_M',datagap=datagap options,'mvn_sta_d1_tot',datagap=datagap options,'mvn_sta_d1_P4C_E','spec',1 options,'mvn_sta_d1_P4C_D','spec',1 options,'mvn_sta_d1_P4C_A','spec',1 options,'mvn_sta_d1_P4C_M','spec',1 options,'mvn_sta_d1_E','spec',1 options,'mvn_sta_d1_D','spec',1 options,'mvn_sta_d1_A','spec',1 options,'mvn_sta_d1_M','spec',1 options,'mvn_sta_d1_P4C_E',ytitle='sta!CP4C-d1!C!CEnergy!CeV' options,'mvn_sta_d1_P4C_D',ytitle='sta!CP4C-d1!C!CTheta!Cdeg' options,'mvn_sta_d1_P4C_A',ytitle='sta!CP4C-d1!C!CPhi!Cdeg' options,'mvn_sta_d1_P4C_M',ytitle='sta!CP4C-d1!C!CMass!Camu' options,'mvn_sta_d1_E',ytitle='sta!Cd1!C!CEnergy!CeV' options,'mvn_sta_d1_D',ytitle='sta!Cd1!C!CTheta!Cdeg' options,'mvn_sta_d1_A',ytitle='sta!Cd1!C!CPhi!Cdeg' options,'mvn_sta_d1_M',ytitle='sta!Cd1!C!CMass!Camu' options,'mvn_sta_d1_tot',ytitle='sta!Cd1!C!CCounts' options,'mvn_sta_d1_att',ytitle='sta!Cd1!C!CAttenuator' options,'mvn_sta_d1_E',ztitle='eflux' options,'mvn_sta_d1_D',ztitle='eflux' options,'mvn_sta_d1_A',ztitle='eflux' options,'mvn_sta_d1_M',ztitle='eflux' endif ; D4 if size(mvn_d4_dat,/type) eq 8 then begin npts = n_elements(mvn_d4_dat.time) mode = mvn_d4_dat.mode rate = mvn_d4_dat.rate iswp = mvn_d4_dat.swp_ind ieff = mvn_d4_dat.eff_ind iatt = mvn_d4_dat.att_ind mlut = mvn_d4_dat.mlut_ind nenergy = mvn_d4_dat.nenergy nbins = mvn_d4_dat.nbins ndef = mvn_d4_dat.ndef nanode = mvn_d4_dat.nanode nmass = mvn_d4_dat.nmass qf = (mvn_d4_dat.quality_flag and 128)/128 or (mvn_d4_dat.quality_flag and 64)/64 time = (mvn_d4_dat.time + mvn_d4_dat.end_time)/2. data = mvn_d4_dat.data mass = reform(total(mvn_d4_dat.mass_arr[iswp,*,0,*],2)/nenergy) theta = total(reform(mvn_d4_dat.theta[iswp,nenergy-1,*,0],npts,ndef,nanode),3)/nanode phi = total(reform(mvn_d4_dat.phi[iswp,nenergy-1,*,0],npts,ndef,nanode),2)/ndef str_element,mvn_d4_dat,'eflux',eflux,success=success ; eflux = mvn_d4_dat.eflux ; this section needed because eflux in the CDFs got screwed up bkg = mvn_d4_dat.bkg dead = mvn_d4_dat.dead gf = reform(mvn_d4_dat.gf[iswp,*,*,0]*((iatt eq 0)#replicate(1.,nbins)) +$ mvn_d4_dat.gf[iswp,*,*,1]*((iatt eq 1)#replicate(1.,nbins)) +$ mvn_d4_dat.gf[iswp,*,*,2]*((iatt eq 2)#replicate(1.,nbins)) +$ mvn_d4_dat.gf[iswp,*,*,3]*((iatt eq 3)#replicate(1.,nbins)), npts*nbins)$ #replicate(1.,nmass) gf = mvn_d4_dat.geom_factor*reform(gf,npts,nenergy,nbins,nmass) eff = mvn_d4_dat.eff[ieff,*,*,*] dt = float(mvn_d4_dat.integ_t#replicate(1.,nenergy*nbins*nmass)) eflux2 = (data-bkg)*dead/(gf*eff*dt) if success and keyword_set(test) then if max(abs((eflux-eflux2)/eflux)) gt 0. then print,'Error in CDF d4 eflux ',max(abs((eflux-eflux2)/(eflux>.01))) if not success or keyword_set(replace) then eflux = eflux2 ind = where(qf eq 1,count) if count gt 0 then data[ind,*,*,*]=0. if count gt 0 then eflux[ind,*,*,*]=0. store_data,'mvn_sta_d4_P4E_D',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),4),2),v:theta} store_data,'mvn_sta_d4_P4E_A',data={x:time,y:total(total(total(reform(data,npts,nenergy,ndef,nanode,nmass),5),3),2),v:phi} store_data,'mvn_sta_d4_P4E_M',data={x:time,y:total(total(data,3),2),v:mass} store_data,'mvn_sta_d4_D',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),4),2)/nanode,v:theta} store_data,'mvn_sta_d4_A',data={x:time,y:total(total(total(reform(eflux,npts,nenergy,ndef,nanode,nmass),5),3),2)/ndef,v:phi} store_data,'mvn_sta_d4_H_A',data={x:time,y:total(total(reform(eflux[*,*,*,1],npts,nenergy,ndef,nanode),3),2)/ndef,v:phi} store_data,'mvn_sta_d4_L_A',data={x:time,y:total(total(reform(eflux[*,*,*,0],npts,nenergy,ndef,nanode),3),2)/ndef,v:phi} store_data,'mvn_sta_d4_H_D',data={x:time,y:total(total(reform(eflux[*,*,*,1],npts,nenergy,ndef,nanode),4),2)/nanode,v:theta} store_data,'mvn_sta_d4_L_D',data={x:time,y:total(total(reform(eflux[*,*,*,0],npts,nenergy,ndef,nanode),4),2)/nanode,v:theta} store_data,'mvn_sta_d4_M',data={x:time,y:total(total(eflux,3),2),v:mass} store_data,'mvn_sta_d4_tot',data={x:time,y:total(total(data,4),3)} store_data,'mvn_sta_d4_att',data={x:time,y:iatt} store_data,'mvn_sta_d4_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_d4_rate',data={x:time,y:rate} ylim,'mvn_sta_d4_tot',0,0,1 ylim,'mvn_sta_d4_P4E_D',-50,50,0 ylim,'mvn_sta_d4_P4E_A',-180,200.,0 ylim,'mvn_sta_d4_P4E_M',.5,100,1 ylim,'mvn_sta_d4_D',-50,50,0 ylim,'mvn_sta_d4_A',-180,200.,0 ylim,'mvn_sta_d4_H_A',-180,200.,0 ylim,'mvn_sta_d4_L_A',-180,200.,0 ylim,'mvn_sta_d4_H_D',-50,50.,0 ylim,'mvn_sta_d4_L_D',-50,50.,0 ylim,'mvn_sta_d4_M',.5,100,1 ylim,'mvn_sta_d4_att',-1,4,0 zlim,'mvn_sta_d4_P4E_D',10,1.e5,1 zlim,'mvn_sta_d4_P4E_A',10,1.e5,1 zlim,'mvn_sta_d4_P4E_M',10,1.e5,1 zlim,'mvn_sta_d4_D',1.e3,1.e9,1 zlim,'mvn_sta_d4_A',1.e3,1.e9,1 zlim,'mvn_sta_d4_H_A',1.e3,1.e9,1 zlim,'mvn_sta_d4_L_A',1.e3,1.e9,1 zlim,'mvn_sta_d4_H_D',1.e3,1.e9,1 zlim,'mvn_sta_d4_L_D',1.e3,1.e9,1 zlim,'mvn_sta_d4_M',1.e3,1.e9,1 datagap=7. options,'mvn_sta_d4_P4E_D',datagap=datagap options,'mvn_sta_d4_P4E_A',datagap=datagap options,'mvn_sta_d4_P4E_M',datagap=datagap options,'mvn_sta_d4_D',datagap=datagap options,'mvn_sta_d4_A',datagap=datagap options,'mvn_sta_d4_H_A',datagap=datagap options,'mvn_sta_d4_L_A',datagap=datagap options,'mvn_sta_d4_H_D',datagap=datagap options,'mvn_sta_d4_L_D',datagap=datagap options,'mvn_sta_d4_M',datagap=datagap options,'mvn_sta_d4_tot',datagap=datagap options,'mvn_sta_d4_P4E_D','spec',1 options,'mvn_sta_d4_P4E_A','spec',1 options,'mvn_sta_d4_P4E_M','spec',1 options,'mvn_sta_d4_D','spec',1 options,'mvn_sta_d4_A','spec',1 options,'mvn_sta_d4_H_A','spec',1 options,'mvn_sta_d4_L_A','spec',1 options,'mvn_sta_d4_H_D','spec',1 options,'mvn_sta_d4_L_D','spec',1 options,'mvn_sta_d4_M','spec',1 options,'mvn_sta_d4_P4E_D',ytitle='sta!CP4E-d4!C!CTheta!Cdeg' options,'mvn_sta_d4_P4E_A',ytitle='sta!CP4E-d4!C!CPhi!Cdeg' options,'mvn_sta_d4_P4E_M',ytitle='sta!CP4E-d4!C!CMass!Camu' options,'mvn_sta_d4_D',ytitle='sta!Cd4!C!CTheta!Cdeg' options,'mvn_sta_d4_A',ytitle='sta!Cd4!C!CPhi!Cdeg' options,'mvn_sta_d4_H_A',ytitle='sta!Cd4!CM>12!CPhi!Cdeg' options,'mvn_sta_d4_L_A',ytitle='sta!Cd4!CM<12!CPhi!Cdeg' options,'mvn_sta_d4_H_D',ytitle='sta!Cd4!CM>12!CPhi!Cdeg' options,'mvn_sta_d4_L_D',ytitle='sta!Cd4!CM<12!CPhi!Cdeg' options,'mvn_sta_d4_M',ytitle='sta!Cd4!C!CMass!Camu' options,'mvn_sta_d4_tot',ytitle='sta!Cd4!C!CCounts' options,'mvn_sta_d4_att',ytitle='sta!Cd4!C!CAttenuator' options,'mvn_sta_d4_D',ztitle='eflux' options,'mvn_sta_d4_A',ztitle='eflux' options,'mvn_sta_d4_H_A',ztitle='eflux' options,'mvn_sta_d4_L_A',ztitle='eflux' options,'mvn_sta_d4_H_D',ztitle='eflux' options,'mvn_sta_d4_L_D',ztitle='eflux' options,'mvn_sta_d4_M',ztitle='eflux' endif ; D6 if size(mvn_d6_dat,/type) eq 8 and keyword_set(test) then begin time = mvn_d6_dat.time tdc_1 = mvn_d6_dat.tdc_1 tdc_2 = mvn_d6_dat.tdc_2 tdc_3 = mvn_d6_dat.tdc_3 tdc_4 = mvn_d6_dat.tdc_4 event_code = mvn_d6_dat.event_code cyclestep = mvn_d6_dat.cyclestep energy = mvn_d6_dat.energy ev1 = (event_code and 1) ev2 = (event_code and 2) ev3 = (event_code and 4)/4*3 ev4 = (event_code and 8)/8*4 ev5 = (event_code and 16)/16*5 ev6 = (event_code and 32)/32*6 ev_cd = [[ev1],[ev2],[ev3],[ev4],[ev5],[ev6]] store_data,'mvn_sta_d6_tdc1',data={x:time,y:tdc_1+1} store_data,'mvn_sta_d6_tdc2',data={x:time,y:tdc_2+1} store_data,'mvn_sta_d6_tdc3',data={x:time,y:tdc_3*(-2*ev1+1)} store_data,'mvn_sta_d6_tdc4',data={x:time,y:tdc_4*(-ev2+1)} store_data,'mvn_sta_d6_ev',data={x:time,y:ev_cd,v:[1,2,3,4,5,6]} store_data,'mvn_sta_d6_cy',data={x:time,y:cyclestep} store_data,'mvn_sta_d6_en',data={x:time,y:energy} ylim,'mvn_sta_d6_tdc1',.5,1024,1 ylim,'mvn_sta_d6_tdc2',.5,1024,1 ylim,'mvn_sta_d6_tdc3',-530,530,0 ylim,'mvn_sta_d6_tdc4',-530,530,0 ylim,'mvn_sta_d6_ev',-1,7,0 ylim,'mvn_sta_d6_cy',-1,1024,0 ylim,'mvn_sta_d6_en',.1,30000.,1 options,'mvn_sta_d6_tdc1',psym=3 options,'mvn_sta_d6_tdc2',psym=3 options,'mvn_sta_d6_tdc3',psym=3 options,'mvn_sta_d6_tdc4',psym=3 options,'mvn_sta_d6_ev',psym=3 options,'mvn_sta_d6_cy',psym=3 options,'mvn_sta_d6_en',psym=3 endif ; D7 if size(mvn_d7_dat,/type) eq 8 and keyword_set(test) then begin time = mvn_d7_dat.time store_data,'mvn_sta_d7_data',data={x:time,y:1.*mvn_d7_dat.hkp_raw} store_data,'mvn_sta_d7_data_cal',data={x:time,y:mvn_d7_dat.hkp_calib} store_data,'mvn_sta_d7_data_mux',data={x:time,y:mvn_d7_dat.hkp_ind} options,'mvn_sta_d7_data_cal',datagap=1. options,'mvn_sta_d7_data_mux',datagap=1. options,'mvn_sta_d7_data',datagap=1. endif ; D8 if size(mvn_d8_dat,/type) eq 8 and keyword_set(test) then begin time = (mvn_d8_dat.time + mvn_d8_dat.end_time)/2. data = mvn_d8_dat.rates store_data,'mvn_sta_d8_R1_tot',data={x:time,y:data[*,4]*4.} store_data,'mvn_sta_d8_R1_hz',data={x:time,y:data[*,4]} store_data,'mvn_sta_d8_R1_ABCD',data={x:time,y:data[*,0:3]} store_data,'mvn_sta_d8_R1_RST',data={x:time,y:data[*,4]} store_data,'mvn_sta_d8_R1_NoStart',data={x:time,y:data[*,5]} store_data,'mvn_sta_d8_R1_Unqual',data={x:time,y:data[*,6]} store_data,'mvn_sta_d8_R1_Qual',data={x:time,y:data[*,7]} store_data,'mvn_sta_d8_R1_AnRej',data={x:time,y:data[*,8]} store_data,'mvn_sta_d8_R1_MaRej',data={x:time,y:data[*,9]} store_data,'mvn_sta_d8_R1_A&B',data={x:time,y:data[*,10]} store_data,'mvn_sta_d8_R1_C&D',data={x:time,y:data[*,11]} store_data,'mvn_sta_d8_R1_eff_start',data={x:time,y:data[*,7]/data[*,11]} store_data,'mvn_sta_d8_R1_eff_stop',data={x:time,y:data[*,7]/data[*,10]} store_data,'mvn_sta_d8_R1_eff',data={x:time,y:data[*,7]*data[*,7]/data[*,11]/data[*,10]} store_data,'mvn_sta_d8_R1_eff_all',data=['mvn_sta_d8_R1_eff_start','mvn_sta_d8_R1_eff_stop','mvn_sta_d8_R1_eff'] ylim,'mvn_sta_d8*',100,1.e5,1 ylim,'mvn_sta_d8_R1_eff*',.01,1.1,1 options,'mvn_sta_d8*',datagap=7. options,'mvn_sta_d8_R1_tot',ytitle='sta!Cd8!C!CCounts' options,'mvn_sta_d8_R1_hz',ytitle='sta!Cd8!C!CRate!CHz' options,'mvn_sta_d8_R1_ABCD',ytitle='sta!Cd8!C!CABCD!CHz' options,'mvn_sta_d8_R1_RST',ytitle='sta!Cd8!C!CRst!CHz' options,'mvn_sta_d8_R1_NoStart',ytitle='sta!Cd8!C!CNoStart!CHz' options,'mvn_sta_d8_R1_Unqual',ytitle='sta!Cd8!C!CUnQual!CHz' options,'mvn_sta_d8_R1_Qual',ytitle='sta!Cd8!C!CQual!CHz' options,'mvn_sta_d8_R1_AnRej',ytitle='sta!Cd8!C!CAnRej!CHz' options,'mvn_sta_d8_R1_MaRej',ytitle='sta!Cd8!C!CMaRej!CHz' options,'mvn_sta_d8_R1_A&B',ytitle='sta!Cd8!C!CA&B!CHz' options,'mvn_sta_d8_R1_C&D',ytitle='sta!Cd8!C!CC&D!CHz' options,'mvn_sta_d8_R1_eff_start',ytitle='sta!Cd8!C!CEff!CStart' options,'mvn_sta_d8_R1_eff_stop',ytitle='sta!Cd8!C!CEff!CStop' options,'mvn_sta_d8_R1_eff',ytitle='sta!Cd8!C!CEff' options,'mvn_sta_d8_R1_eff_all',ytitle='sta!Cd8!C!CEff' options,'mvn_sta_d8_R1_ABCD','colors',[cols.blue,cols.green,cols.yellow,cols.red] options,'mvn_sta_d8_R1_eff_start',colors=cols.green options,'mvn_sta_d8_R1_eff_stop',colors=cols.red endif ; D9 if size(mvn_d9_dat,/type) eq 8 and keyword_set(test) then begin iswp = mvn_d9_dat.swp_ind time = (mvn_d9_dat.time + mvn_d9_dat.end_time)/2. delta_time = mvn_d9_dat.integ_t*64. energy = reform(mvn_d9_dat.energy[iswp,*]) data = mvn_d9_dat.rates npts = n_elements(time) peak_start_eff=fltarr(npts) peak_stop_eff=fltarr(npts) peak_eff=fltarr(npts) for jj=0l,npts-1 do begin dd = data[jj,4,*]/mvn_d9_dat.integ_t[jj] ind = where(dd gt 10000.,count) if count gt 0 then dd[ind]=0. max_en = max(dd,ind1) min_en = min(data[jj,4,*],ind2) peak_start_eff[jj]=(data[jj,7,ind1])/(data[jj,11,ind1]-data[jj,11,ind2]) peak_stop_eff[jj]=(data[jj,7,ind1])/(data[jj,10,ind1]-data[jj,10,ind2]) peak_eff[jj]=(data[jj,7,ind1])^2/(data[jj,10,ind1]-data[jj,10,ind2])/(data[jj,11,ind1]-data[jj,11,ind2]) endfor store_data,'mvn_sta_d9_R2',data={x:time,y:reform(data[*,4,*]),v:indgen(64)} store_data,'mvn_sta_d9_R2_E',data={x:time,y:reform(data[*,4,*]),v:energy} store_data,'mvn_sta_d9_R2_tot',data={x:time,y:total(reform(data[*,4,*]),2)/64*delta_time} store_data,'mvn_sta_d9_R2_hz',data={x:time,y:total(reform(data[*,4,*]),2)/64} store_data,'mvn_sta_d9_R2_ABCD',data={x:time,y:total(data[*,0:3,*],3)/64} store_data,'mvn_sta_d9_R2_RST',data={x:time,y:total(data[*,4,*],3)/64} store_data,'mvn_sta_d9_R2_NoStart',data={x:time,y:total(data[*,5,*],3)/64} store_data,'mvn_sta_d9_R2_Unqual',data={x:time,y:total(data[*,6,*],3)/64} store_data,'mvn_sta_d9_R2_Qual',data={x:time,y:total(data[*,7,*],3)/64} store_data,'mvn_sta_d9_R2_AnRej',data={x:time,y:total(data[*,8,*],3)/64} store_data,'mvn_sta_d9_R2_MaRej',data={x:time,y:total(data[*,9,*],3)/64} store_data,'mvn_sta_d9_R2_A&B',data={x:time,y:total(data[*,10,*],3)/64} store_data,'mvn_sta_d9_R2_C&D',data={x:time,y:total(data[*,11,*],3)/64} store_data,'mvn_sta_d9_R2_eff_start',data={x:time,y:total(data[*,7,*],3)/total(data[*,11,*],3)} store_data,'mvn_sta_d9_R2_eff_stop',data={x:time,y:total(data[*,7,*],3)/total(data[*,10,*],3)} store_data,'mvn_sta_d9_R2_eff',data={x:time,y:total(data[*,7,*],3)^2/total(data[*,11,*],3)/total(data[*,10,*],3)} store_data,'mvn_sta_d9_R2_eff_all',data=['mvn_sta_d9_R2_eff_start','mvn_sta_d9_R2_eff_stop','mvn_sta_d9_R2_eff'] store_data,'mvn_sta_d9_R2_eff_peak_start',data={x:time,y:peak_start_eff} store_data,'mvn_sta_d9_R2_eff_peak_stop',data={x:time,y:peak_stop_eff} store_data,'mvn_sta_d9_R2_eff_peak',data={x:time,y:peak_eff} store_data,'mvn_sta_d9_R2_eff_peak_all',data=['mvn_sta_d9_R2_eff_peak_start','mvn_sta_d9_R2_eff_peak_stop','mvn_sta_d9_R2_eff_peak'] ylim,'mvn_sta_d9_R2*',100,1.e5,1 ylim,'mvn_sta_d9_R2_eff*',.1,1.0,1 ylim,'mvn_sta_d9_R2',-1,64,0 ylim,'mvn_sta_d9_R2_E',.5,30000.,1 ylim,'mvn_sta_d9_R2_tot',1.e4,1.e7,1 ylim,'mvn_sta_d9_R2_hz',1.e2,1.e5,1 zlim,'mvn_sta_d9_R2',100.,1.e5,1 zlim,'mvn_sta_d9_R2_E',100.,1.e5,1 options,'mvn_sta_d9_R2*',datagap=150. options,'mvn_sta_d9_R2','spec',1 options,'mvn_sta_d9_R2_E','spec',1 options,'mvn_sta_d9_R2',ytitle='sta!Cd9!C!CEnergy!Cbin' options,'mvn_sta_d9_R2_E',ytitle='sta!Cd9!C!CEnergy!CeV' options,'mvn_sta_d9_R2_tot',ytitle='sta!Cd9!C!CCounts' options,'mvn_sta_d9_R2_hz',ytitle='sta!Cd9!C!CRate!CHz' options,'mvn_sta_d9_R2',ztitle='rate' options,'mvn_sta_d9_R2_E',ztitle='rate' options,'mvn_sta_d9_R2_ABCD',ytitle='sta!Cd9!C!CABCD!CHz' options,'mvn_sta_d9_R2_RST',ytitle='sta!Cd9!C!CRst!CHz' options,'mvn_sta_d9_R2_NoStart',ytitle='sta!Cd9!C!CNoStart!CHz' options,'mvn_sta_d9_R2_Unqual',ytitle='sta!Cd9!C!CUnQual!CHz' options,'mvn_sta_d9_R2_Qual',ytitle='sta!Cd9!C!CQual!CHz' options,'mvn_sta_d9_R2_AnRej',ytitle='sta!Cd9!C!CAnRej!CHz' options,'mvn_sta_d9_R2_MaRej',ytitle='sta!Cd9!C!CMaRej!CHz' options,'mvn_sta_d9_R2_A&B',ytitle='sta!Cd9!C!CA&B!CHz' options,'mvn_sta_d9_R2_C&D',ytitle='sta!Cd9!C!CC&D!CHz' options,'mvn_sta_d9_R2_eff_start',ytitle='sta!Cd9!C!CEff!CStart' options,'mvn_sta_d9_R2_eff_stop',ytitle='sta!Cd9!C!CEff!CStop' options,'mvn_sta_d9_R2_eff',ytitle='sta!Cd9!C!CEff' options,'mvn_sta_d9_R2_eff_all',ytitle='sta!Cd9!C!CEff' options,'mvn_sta_d9_R2_eff_peak_start',ytitle='sta!Cd9!C!CPeak Eff!CStart' options,'mvn_sta_d9_R2_eff_peak_stop',ytitle='sta!Cd9!C!CPeak Eff!CStop' options,'mvn_sta_d9_R2_eff_peak',ytitle='sta!Cd9!C!CEff' options,'mvn_sta_d9_R2_eff_peak_all',ytitle='sta!Cd9!C!CPeak Eff' options,'mvn_sta_d9_R2_ABCD','colors',[cols.blue,cols.green,cols.yellow,cols.red] options,'mvn_sta_d9_R2_eff_start',colors=cols.green options,'mvn_sta_d9_R2_eff_stop',colors=cols.red options,'mvn_sta_d9_R2_ABCD','colors',[cols.blue,cols.green,cols.yellow,cols.red] options,'mvn_sta_d9_R2_eff_peak_start',colors=cols.green options,'mvn_sta_d9_R2_eff_peak_stop',colors=cols.red endif ; DA if size(mvn_da_dat,/type) eq 8 and keyword_set(test) then begin iswp = mvn_da_dat.swp_ind time = (mvn_da_dat.time + mvn_da_dat.end_time)/2. energy = reform(mvn_da_dat.energy[iswp,*]) data = mvn_da_dat.rates store_data,'mvn_sta_da_R3',data={x:time,y:data,v:indgen(64)} store_data,'mvn_sta_da_R3_E',data={x:time,y:data,v:energy} store_data,'mvn_sta_da_R3_tot',data={x:time,y:total(data,2)/16} store_data,'mvn_sta_da_R3_hz',data={x:time,y:total(data,2)/64} ylim,'mvn_sta_da_R3',-1,64,0 ylim,'mvn_sta_da_R3_E',.1,40000.,1 ylim,'mvn_sta_da_R3_tot',100,1.e5,1 ylim,'mvn_sta_da_R3_hz',100,1.e5,1 zlim,'mvn_sta_da_R3',100.,1.e5,1 zlim,'mvn_sta_da_R3_E',100.,1.e5,1 options,'mvn_sta_da_*',datagap=7. options,'mvn_sta_da_R3','spec',1 options,'mvn_sta_da_R3_E','spec',1 options,'mvn_sta_da_R3',ytitle='sta!Cda!C!CEnergy!Cbin' options,'mvn_sta_da_R3_E',ytitle='sta!Cda!C!CEnergy!CeV' options,'mvn_sta_da_R3_tot',ytitle='sta!Cda!C!CCounts' options,'mvn_sta_da_R3_hz',ytitle='sta!Cda!C!CRate!CHz' options,'mvn_sta_da_R3',ztitle='rate' options,'mvn_sta_da_R3_E',ztitle='rate' endif ; DB if size(mvn_db_dat,/type) eq 8 then begin npts = n_elements(mvn_db_dat.time) mode = mvn_db_dat.mode rate = mvn_db_dat.rate iswp = mvn_db_dat.swp_ind tof = mvn_db_dat.tof time = (mvn_db_dat.time + mvn_db_dat.end_time)/2. data = mvn_db_dat.data energy = reform(mvn_db_dat.energy[iswp,*]) erange = [energy[63],energy[0]] dt = float(mvn_db_dat.integ_t) store_data,'mvn_sta_db',data={x:time,y:data,v:indgen(1024)} store_data,'mvn_sta_db_tof',data={x:time,y:data,v:tof} store_data,'mvn_sta_db_tot',data={x:time,y:total(data,2)} store_data,'mvn_sta_db_mode',data={x:time,y:mode} if keyword_set(test) then store_data,'mvn_sta_db_rate',data={x:time,y:rate} ylim,'mvn_sta_db_tot',.1,10000,1 ylim,'mvn_sta_db',.5,1000,1 ylim,'mvn_sta_db_tof',0,100,0 zlim,'mvn_sta_db',1.,1.e4,1 zlim,'mvn_sta_db_tof',1.,1.e4,1 datagap=150. options,'mvn_sta_db',datagap=datagap options,'mvn_sta_db_tof',datagap=datagap options,'mvn_sta_db_tot',datagap=datagap options,'mvn_sta_db','spec',1 options,'mvn_sta_db_tof','spec',1 options,'mvn_sta_db',ytitle='sta!Cdb!C!CTOF!Cbin' options,'mvn_sta_db_tof',ytitle='sta!Cdb!C!CTOF!Cns' options,'mvn_sta_db_tot',ytitle='sta!Cdb!C!CCounts' options,'mvn_sta_db',ztitle='counts' options,'mvn_sta_db_tof',ztitle='counts' endif ; General options,'mvn_sta*',no_interp=1 ylim,'*mode',-1,8,0 ylim,'*rate',-1,7,0 ;*************************************************************************************************************** ;*************************************************************************************************************** ; form combined plots get_data,'mvn_sta_d8_R1_Qual',data=tmp1 get_data,'mvn_sta_c6_tot',data=tmp2 if (size(tmp1,/type) eq 8) and (size(tmp2,/type) eq 8) then begin d8 = interp(tmp2.y,tmp2.x,tmp1.x) store_data,'mvn_sta_fq_eff',data={x:tmp1.x,y:d8/(4.*tmp1.y+.001)} ylim,'mvn_sta_fq_eff',.1,1.1,1 endif ; Mixed product plots tt1=0 & tt2=0 & tt3=0 get_data,'mvn_sta_ca_P3_A',data=t1 get_data,'mvn_sta_d4_P4E_A',data=t2 get_data,'mvn_sta_d2_P4D_A',data=t3 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if (tt1) then store_data,'mvn_sta_A',data=['mvn_sta_ca_P3_A'] if (tt2) then store_data,'mvn_sta_A',data=['mvn_sta_d4_P4E_A'] if (tt3) then store_data,'mvn_sta_A',data=['mvn_sta_d2_P4D_A'] if (tt1 and tt2) then store_data,'mvn_sta_A',data=['mvn_sta_ca_P3_A','mvn_sta_d4_P4E_A'] if (tt1 and tt3) then store_data,'mvn_sta_A',data=['mvn_sta_ca_P3_A','mvn_sta_d2_P4D_A'] if (tt2 and tt3) then store_data,'mvn_sta_A',data=['mvn_sta_d4_P4E_A','mvn_sta_d2_P4D_A'] if (tt1 and tt2 and tt3) then store_data,'mvn_sta_A',data=['mvn_sta_ca_P3_A','mvn_sta_d4_P4E_A','mvn_sta_d2_P4D_A'] ylim,'mvn_sta_A',-180,200,0 zlim,'mvn_sta_A',1,1.e4,1 options,'mvn_sta_A','spec',1 options,'mvn_sta_A',ytitle='sta!C!CAnode!Cphi' tt1=0 & tt2=0 get_data,'mvn_sta_c8_P2_D',data=t1 get_data,'mvn_sta_d4_P4E_D',data=t2 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if (tt1) then store_data,'mvn_sta_D',data=['mvn_sta_c8_P2_D'] if (tt2) then store_data,'mvn_sta_D',data=['mvn_sta_d4_P4E_D'] if (tt1 and tt2) then store_data,'mvn_sta_D',data=['mvn_sta_d4_P4E_D','mvn_sta_c8_P2_D'] ylim,'mvn_sta_D',-45,45,0 zlim,'mvn_sta_D',1,1.e4,1 options,'mvn_sta_D','spec',1 options,'mvn_sta_D',ytitle='sta!C!CDef!Ctheta' ; P4 Survey combined plots tt1=0 & tt2=0 & tt3=0 & tt4=0 get_data,'mvn_sta_cc_P4A_E',data=t1 get_data,'mvn_sta_ce_P4B_E',data=t2 get_data,'mvn_sta_d0_P4C_E',data=t3 get_data,'mvn_sta_d2_P4D_E',data=t4 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if size(/type,t4) eq 8 then tt4=1 if tt1 or tt2 or tt3 or tt4 then begin store_data,'mvn_sta_P4_E',data=['mvn_sta_cc_P4A_E','mvn_sta_ce_P4B_E','mvn_sta_d0_P4C_E','mvn_sta_d2_P4D_E'] ylim,'mvn_sta_P4_E',.1,40000.,1 zlim,'mvn_sta_P4_E',1,1.e5,1 options,'mvn_sta_P4_E',ytitle='sta!CP4 !CEnergy!CeV' endif tt1=0 & tt2=0 & tt3=0 & tt4=0 get_data,'mvn_sta_cc_P4A_M',data=t1 get_data,'mvn_sta_ce_P4B_M',data=t2 get_data,'mvn_sta_d0_P4C_M',data=t3 get_data,'mvn_sta_d2_P4D_M',data=t4 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if size(/type,t4) eq 8 then tt4=1 if tt1 or tt2 or tt3 or tt4 then begin store_data,'mvn_sta_P4_M',data=['mvn_sta_cc_P4A_M','mvn_sta_ce_P4B_M','mvn_sta_d0_P4C_M','mvn_sta_d2_P4D_M'] ylim,'mvn_sta_P4_M',.5,100,1 zlim,'mvn_sta_P4_M',1,1.e5,1 options,'mvn_sta_P4_M',ytitle='sta!CP4 !CMass!Camu' endif tt1=0 & tt2=0 & tt3=0 get_data,'mvn_sta_cc_P4A_D',data=t1 get_data,'mvn_sta_ce_P4B_D',data=t2 get_data,'mvn_sta_d0_P4C_D',data=t3 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if tt1 or tt2 or tt3 then begin store_data,'mvn_sta_P4_D',data=['mvn_sta_cc_P4A_D','mvn_sta_ce_P4B_D','mvn_sta_d0_P4C_D'] ylim,'mvn_sta_P4_D',-45,45,0 zlim,'mvn_sta_P4_D',1,1.e5,1 options,'mvn_sta_P4_D',ytitle='sta!CP4 !CDef!Ctheta' endif tt2=0 & tt3=0 & tt4=0 get_data,'mvn_sta_ce_P4B_A',data=t2 get_data,'mvn_sta_d0_P4C_A',data=t3 get_data,'mvn_sta_d2_P4D_A',data=t4 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if size(/type,t4) eq 8 then tt4=1 if tt2 or tt3 or tt4 then begin store_data,'mvn_sta_P4_A',data=['mvn_sta_ce_P4B_A','mvn_sta_d0_P4C_A','mvn_sta_d2_P4D_A'] ylim,'mvn_sta_P4_A',-180,200,0 zlim,'mvn_sta_P4_A',1,1.e5,1 options,'mvn_sta_P4_A',ytitle='sta!CP4 !CAnode!Cphi' endif ; P4 Archive combined plots tt1=0 & tt2=0 & tt3=0 & tt4=0 get_data,'mvn_sta_cd_P4A_E',data=t1 get_data,'mvn_sta_cf_P4B_E',data=t2 get_data,'mvn_sta_d1_P4C_E',data=t3 get_data,'mvn_sta_d3_P4D_E',data=t4 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if size(/type,t4) eq 8 then tt4=1 if tt1 or tt2 or tt3 or tt4 then begin store_data,'mvn_sta_P4_arc_E',data=['mvn_sta_cd_P4A_E','mvn_sta_cf_P4B_E','mvn_sta_d1_P4C_E','mvn_sta_d3_P4D_E'] ylim,'mvn_sta_P4_arc_E',.1,40000.,1 ylim,'mvn_sta_P4_arc_E',1,1.e4,1 options,'mvn_sta_P4_arc_E',ytitle='sta!CP4 arc !CEnergy!CeV' endif tt1=0 & tt2=0 & tt3=0 & tt4=0 get_data,'mvn_sta_cd_P4A_M',data=t1 get_data,'mvn_sta_cf_P4B_M',data=t2 get_data,'mvn_sta_d1_P4C_M',data=t3 get_data,'mvn_sta_d3_P4D_M',data=t4 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if size(/type,t4) eq 8 then tt4=1 if tt1 or tt2 or tt3 or tt4 then begin store_data,'mvn_sta_P4_arc_M',data=['mvn_sta_cd_P4A_M','mvn_sta_cf_P4B_M','mvn_sta_d1_P4C_M','mvn_sta_d3_P4D_M'] ylim,'mvn_sta_P4_arc_M',.5,100,1 zlim,'mvn_sta_P4_arc_M',1,1.e4,1 options,'mvn_sta_P4_arc_M',ytitle='sta!CP4 arc !CMass!Camu' endif tt1=0 & tt2=0 & tt3=0 get_data,'mvn_sta_cd_P4A_D',data=t1 get_data,'mvn_sta_cf_P4B_D',data=t2 get_data,'mvn_sta_d1_P4C_D',data=t3 if size(/type,t1) eq 8 then tt1=1 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if tt1 or tt2 or tt3 then begin store_data,'mvn_sta_P4_arc_D',data=['mvn_sta_cd_P4A_D','mvn_sta_cf_P4B_D','mvn_sta_d1_P4C_D'] ylim,'mvn_sta_P4_arc_D',-45,45,0 zlim,'mvn_sta_P4_arc_D',1,1.e5,1 options,'mvn_sta_P4_arc_D',ytitle='sta!CP4 arc!CDef!Ctheta' endif tt2=0 & tt3=0 & tt4=0 get_data,'mvn_sta_cf_P4B_A',data=t2 get_data,'mvn_sta_d1_P4C_A',data=t3 get_data,'mvn_sta_d3_P4D_A',data=t4 if size(/type,t2) eq 8 then tt2=1 if size(/type,t3) eq 8 then tt3=1 if size(/type,t4) eq 8 then tt4=1 if tt2 or tt3 or tt4 then begin store_data,'mvn_sta_P4_arc_A',data=['mvn_sta_cf_P4B_A','mvn_sta_d1_P4C_A','mvn_sta_d3_P4D_A'] ylim,'mvn_sta_P4_arc_A',-180,200,0 options,'mvn_sta_P4_arc_A',ytitle='sta!CP4 arc !CAnode!Cphi' endif end