;+
;PROCEDURE:	thm_read_esa_angle_burst_mode
;PURPOSE:	
;	Returns data structure with angle maps
;INPUT:		
;
;KEYWORDS:
;
;CREATED BY:	J. McFadden
;VERSION:	1
;LAST MODIFICATION:  07/03/22
;MOD HISTORY:
;
;NOTES:	  
;	Used by thm_load_esa_pkt.pro
;-
function thm_read_esa_angle_burst_mode
		  
; default modes 1,2,3

maxbins=176

; Full and Burst Ion Angle maps

; 	I&T ion angle distribution - no iesa anode mixing
		nbins0=88
		nrg0=32
		nrg_wt0=[replicate(1.,nrg0)]#[replicate(1.,nbins0),replicate(0.,maxbins-nbins0)]
		theta=[replicate(78.75,2),replicate(-78.75,2),replicate(56.25,2),replicate(-56.25,2),$
		replicate(39.375,4),replicate(28.125,4),replicate(-39.375,4),replicate(-28.125,4),$
		replicate(19.6875,8),replicate(14.0625,8),replicate(8.4375,8),replicate(2.8125,8),$
		replicate(-2.8125,8),replicate(-8.4375,8),replicate(-14.0625,8),replicate(-19.6875,8),$
		replicate(0.,maxbins-nbins0)]
		theta0=replicate(-1.,32)#theta
		dtheta=[replicate(22.5,8),replicate(11.25,16),replicate(5.625,64),replicate(0.,maxbins-nbins0)]	
		dtheta0=replicate(1.,32)#dtheta
		phi=[90.+180.*findgen(2),90.+180.*findgen(2),90.+180.*findgen(2),90.+180.*findgen(2),$
		45.+90.*findgen(4),45.+90.*findgen(4),45.+90.*findgen(4),45.+90.*findgen(4),$
		22.5+45.*findgen(8),22.5+45.*findgen(8),22.5+45.*findgen(8),22.5+45.*findgen(8),$
		22.5+45.*findgen(8),22.5+45.*findgen(8),22.5+45.*findgen(8),22.5+45.*findgen(8),replicate(0.,maxbins-nbins0)]
		phi_offset=90.-5.625
		phi0=replicate(1.,32)#phi+phi_offset+(11.25*findgen(32)/32.)#replicate(1.,maxbins)
		dphi0=replicate(1.,32)#[replicate(180.,8),replicate(90.,16),replicate(45.,64),replicate(0.,maxbins-nbins0)]
		p0=theta0+dtheta0/2.
		p1=theta0-dtheta0/2.
		domega0=2*!pi*dphi0/360.*(sin(p0/!radeg)-sin(p1/!radeg))
		anodes0=fltarr(32,maxbins) & anodes0(*,0:maxbins-1)=1.
		map=fltarr(8,maxbins) & map(0,0:1)=1. & map(7,2:3)=1. & map(1,4:5)=1. & map(6,6:7)=1. & map(2,8:15)=1. & map(5,16:23)=1. & map(3,24:55)=1. & map(4,56:87)=1.
		map0=map

;	Msph ion angle distribution - normal 88 angle map
		nbins1=88
		nrg1=32
		nrg_wt1=[replicate(1.,nrg1)]#[replicate(1.,nbins1),replicate(0.,maxbins-nbins1)]
		theta=[replicate(78.75,4),replicate(-78.75,4),replicate(56.25,8),replicate(-56.25,8),$
		replicate(33.75,16),replicate(-33.75,16),replicate(11.25,16),replicate(-11.25,16),replicate(0.,maxbins-nbins1)]
		theta1=replicate(-1.,32)#theta
		dtheta=[replicate(22.5,nbins1),replicate(0.,maxbins-nbins1)]
		dtheta1=replicate(1.,32)#dtheta
		phi=[45.+90.*findgen(4),45.+90.*findgen(4),22.5+45.*findgen(8),22.5+45.*findgen(8),$
		11.25+22.5*findgen(16),11.25+22.5*findgen(16),11.25+22.5*findgen(16),11.25+22.5*findgen(16),replicate(0.,maxbins-nbins1)]
		phi_offset=90.-5.625
		phi1=replicate(1.,32)#phi+phi_offset+(11.25*findgen(32)/32.)#replicate(1.,maxbins)
		dphi1=replicate(1.,32)#[replicate(90.,8),replicate(45.,16),replicate(22.5,64),replicate(0.,maxbins-nbins1)]
		p0=theta1+dtheta1/2.
		p1=theta1-dtheta1/2.
		domega1=2*!pi*dphi1/360.*(sin(p0/!radeg)-sin(p1/!radeg))
		anodes1=replicate(1.,32)#[replicate(1.,24),replicate(2.,32),replicate(4.,32),replicate(0.,maxbins-nbins1)]
		map=fltarr(8,maxbins) & map(0,0:3)=1. & map(7,4:7)=1. & map(1,8:15)=1. & map(6,16:23)=1. & map(2,24:39)=1. & map(5,40:55)=1. & map(3,56:71)=1. & map(4,72:87)=1.
		map1=map

; 	SW ion angle distribution - narrow angle bin in Solar Wind direction
		nbins2=176
		nrg2=16
		nrg_wt=[replicate(2.,52),replicate(1.,36)]
		nrg_wt2=[replicate(1.,nrg2),replicate(0.,32-nrg2)]#[nrg_wt,nrg_wt]
		theta=[replicate(19.6875,6),replicate(14.0625,6),replicate(8.4375,6),replicate(2.8125,6),$
		replicate(-2.8125,6),replicate(-8.4375,6),replicate(-14.0625,6),replicate(-19.6875,6),$
		replicate(11.25,2),replicate(-11.25,2),replicate(33.75,4),replicate(-33.75,4),$
		replicate(22.5,6),replicate(-22.5,6),replicate(67.5,8),replicate(-67.5,8)]
		theta2=[replicate(-1.,nrg2),replicate(0.,32-nrg2)]#[theta,theta]
		dtheta=[replicate(5.625,48),replicate(22.5,12),replicate(45.0,28)]	
		dtheta2=[replicate(1.,nrg2),replicate(0.,32-nrg2)]#[dtheta,dtheta]

		phi=[59.0625+11.25*findgen(6),59.0625+11.25*findgen(6),59.0625+11.25*findgen(6),59.0625+11.25*findgen(6),$
		59.0625+11.25*findgen(6),59.0625+11.25*findgen(6),59.0625+11.25*findgen(6),59.0625+11.25*findgen(6),$
		47.8125,126.5625,47.8125,126.5625,56.25+22.5*findgen(4),56.25+22.5*findgen(4),22.5,157.5+45.*findgen(5),$
		22.5,157.5+45.*findgen(5),22.5+45.*findgen(8),22.5+45.*findgen(8)]

		phi_offset=90.-5.625
		phi2=[replicate(1.,nrg2),replicate(0.,32-nrg2)]#[phi,phi+5.625]+phi_offset+[5.625*findgen(16)/16.,replicate(0.,32-nrg2)]#replicate(1.,nbins2)
		dphi=[replicate(5.625,52),replicate(22.5,8),replicate(45.,28)]
		dphi2=[replicate(1.,nrg2),replicate(0.,32-nrg2)]#[dphi,dphi]
		p0=theta2+dtheta2/2.
		p1=theta2-dtheta2/2.
		domega2=2*!pi*dphi2/360.*(sin(p0/!radeg)-sin(p1/!radeg))
		anodes=[replicate(1.,48),replicate(4.,4),replicate(2.,8),replicate(6.,12),replicate(2.,16)]
		anodes2=[replicate(1.,nrg2),replicate(0.,32-nrg2)]#[anodes,anodes] 
		map=fltarr(8,maxbins) & map(3,0:23)=1. & map(4,24:47)=1. & map(3,48:49)=1. & map(4,50:51)=1. & map(2,52:55)=1. & map(5,56:59)=1. 
		map(2,60:65)=.5 & map(3,60:65)=.5 & map(4,66:71)=.5 & map(5,66:71)=.5 & map(0,72:79)=.5 & map(1,72:79)=.5 & map(6,80:87)=.5 & map(7,80:87)=.5
		map(*,88:175)=map(*,0:87)
		map2=map
	
; Angle modes

	i_theta=reform([[theta0],[theta1],[theta2]],32,maxbins,3)
	i_dtheta=reform([[dtheta0],[dtheta1],[dtheta2]],32,maxbins,3)	
	i_phi=reform([[phi0],[phi1],[phi2]],32,maxbins,3)
	i_dphi=reform([[dphi0],[dphi1],[dphi2]],32,maxbins,3)
	i_domega=reform([[domega0],[domega1],[domega2]],32,maxbins,3)	
	i_nbins=[nbins0,nbins1,nbins2]
	i_nrg=[nrg0,nrg1,nrg2]
	i_nrg_wt=reform([[nrg_wt0],[nrg_wt1],[nrg_wt2]],32,maxbins,3)	
	i_anodes=reform([[anodes0],[anodes1],[anodes2]],32,maxbins,3)
	i_an_map=reform([[map0],[map1],[map2]],8,maxbins,3)

maxbins=88

; Note that both angle maps are the same, 
; there is only one angle map, 
; to prevent truncation of the array [32,88,1]-->[32,88] the second array is included

;	Msph electron angle distribution - normal 88 angle map
		nbins7=88
		nrg7=32
		nrg_wt7=[replicate(1.,nrg7)]#[replicate(1.,nbins7)]
		theta=[replicate(78.75,4),replicate(-78.75,4),replicate(56.25,8),replicate(-56.25,8),$
		replicate(33.75,16),replicate(11.25,16),replicate(-11.25,16),replicate(-33.75,16)]
		theta7=replicate(-1.,32)#theta
		dtheta=replicate(22.5,88)
		dtheta7=replicate(1.,32)#dtheta
		phi=[45.+90.*findgen(4),45.+90.*findgen(4),22.5+45.*findgen(8),22.5+45.*findgen(8),$
		11.25+22.5*findgen(16),11.25+22.5*findgen(16),11.25+22.5*findgen(16),11.25+22.5*findgen(16)]
		phi_offset=90.-5.625
		phi7=replicate(1.,32)#phi+phi_offset+(11.25*findgen(32)/32.)#replicate(1.,88)
		dphi7=replicate(1.,32)#[replicate(90.,8),replicate(45.,16),replicate(22.5,64)]
		p0=theta7+dtheta7/2.
		p1=theta7-dtheta7/2.
		domega7=2*!pi*dphi7/360.*(sin(p0/!radeg)-sin(p1/!radeg))
		anodes7=fltarr(32,88) & anodes7(*)=1.
		map=fltarr(8,maxbins) & map(0,0:3)=1. & map(7,4:7)=1. & map(1,8:15)=1. & map(6,16:23)=1. & map(2,24:39)=1. & map(3,40:55)=1. & map(4,56:71)=1. & map(5,72:87)=1.
		map7=map

	e_theta=reform([[theta7],[theta7]],32,maxbins,2)
	e_dtheta=reform([[dtheta7],[dtheta7]],32,maxbins,2)	
	e_phi=reform([[phi7],[phi7]],32,maxbins,2)
	e_dphi=reform([[dphi7],[dphi7]],32,maxbins,2)
	e_domega=reform([[domega7],[domega7]],32,maxbins,2)	
	e_nbins=[nbins7,nbins7]
	e_nrg=[nrg7,nrg7]
	e_nrg_wt=reform([[nrg_wt7],[nrg_wt7]],32,maxbins,2)
	e_anodes=reform([[anodes7],[anodes7]],32,maxbins,2)
	e_an_map=reform([[map7],[map7]],8,maxbins,2)

mode={i_theta:i_theta,i_dtheta:i_dtheta,i_phi:i_phi,i_dphi:i_dphi,i_domega:i_domega,$
	i_nbins:i_nbins,i_nrg:i_nrg,i_nrg_wt:i_nrg_wt,i_anodes:i_anodes,i_an_map:i_an_map,$
	e_theta:e_theta,e_dtheta:e_dtheta,e_phi:e_phi,e_dphi:e_dphi,e_domega:e_domega,$
	e_nbins:e_nbins,e_nrg:e_nrg,e_nrg_wt:e_nrg_wt,e_anodes:e_anodes,e_an_map:e_an_map}

return,mode

end
