pro plot_eit_area, area, filein=filein, $
open=open, ccd=ccd, entrance=entrance, one=one, $
linear=linear, psym=psym, qtest=qtest, $
noverbose=noverbose, $
qstop=qstop, hc=hc, noprint=noprint
;+
;NAME:
; plot_eit_area
;PURPOSE:
; Plot the EIT effective area vs wavelength
;CALLING SEQUENCE:
; plot_eit_area ; Will read the era*genx file
; plot_eit_area, area ; area = data structure (in/out)
; plot_eit_area,/hc ; For PostScript output
; plot_eit_area,/one ; On one wavelength scale
;
; plot_eit_area will produce a four panel plot (unless the /one)
; option is specified. Use the /open, /entrance, /ccd switches
; to specify which filter wheel case to use (default = /open)
;INPUTS:
; None are required.
;OPTIONAL INPUT/OUTPUT:
; area - Data structure from era*.genx
; If area is undefined, will be read from the
; era*genx file.
; filein - By default, the EIT effective area file is read:
; concat_dir('SSW_EIT_RESPONSE','era*.genx')
; Use filein='your_file_name' to override the default.
;OPTIONAL INPUT KEYWORDS:
; /one - If set, put all four sectors on one graph.
; /linear - If set, plot the ordinance on a linear scale (def. is log)
;
; /open - If set, plot the open filterwheel case
; /entrance - If set, plot the entrance filterwheel case
; /ccd - If set, plot the ccd filterwheel case
; (None) - If open, entrance and ccd area all 0, plot all cases.
;
; /notime - If set, don't put the time on the PostScript plot.
; /hc - If set, send to the PostScript printer
; /noprint - If both /hc and /noprint are set, create PostScript file
; but do not print it.
;HISTORY:
; 12-Jun-95, J. R. Lemen (LPARL), Written.
;-
if n_elements(psym) eq 0 then ppsym = 0 else ppsym = psym
title='EIT Effective Area'
xtitle='Wavelength (A)'
ytitle='Effective Area (cm!U2!N)'
if keyword_set(hc) then set_plot,'PS'
if !d.name eq 'PS' then begin
device,/land,/inch,xsize=9.,ysize=6.5,xoff=1.,yoff=11-1.
!x.thick=3 & !y.thick=3 & !p.thick=3 & !p.charthick=3.6
font = 0
endif else font = -1
xrange = [0,0]
if n_elements(yrange) ne 0 then yran = yrange else yran = [0,0]
xlab_pos = [.95,.95,.95,.95]
ylab_pos = [.9 ,.1 ,.9 ,.9 ]
ylab_pos = [.9 ,.9 ,.9 ,.9 ]
align = [1.,1.,1.,1.]
sectors = gt_eitsector(indgen(4),/short)
jj = sort(fix(sectors))
if keyword_set(one) then begin
clearplot
area0 = eit_eff_area(area=area,jj(0),waveo=waveo,filter=filters,filein=filein)
plot_oo,waveo,area0,xr=[100,1000],yr=[1.e-6,1.],$
title=title,xtitle=xtitle,ytitle=ytitle
for i=1,3 do oplot,waveo,eit_eff_area(area=area,jj(i),filter=filters,filein=filein)
endif else begin
!p.multi = [0,2,2]
qopen = keyword_set(open)
kk = keyword_set(qopen)+keyword_set(entrance)+keyword_set(ccd) ; Get the cases to plot
if kk eq 0 then $
filters = [2,0,1] else $ ; Do all filters
filters = [3*keyword_set(open), 1*keyword_set(entrance), 2*keyword_set(ccd)]-1
filters = filters(where(filters ge 0,kk))
if not keyword_set(noverbose) then begin
print,'- Will plot the following filters: '
print,'- ',gt_eitfilter(filters,/str),format="(4(2x,a))"
endif
for i=0,3 do begin
; Get the witness mirror data to establish wavelength scales:
eit_witness,fix(sectors(jj(i))),ww0,rr0
wmin = min(ww0) & wmax = max(ww0) ; Range witness measurements
if keyword_set(extend_range) then xrange = [wmin-50,wmax+50] $
else xrange = [wmin, wmax]
if keyword_set(qtest) then wave1 = wmin+5+indgen(wmax-wmin+1-10)
for k=0,kk-1 do begin ; Over plot the different filters
area0 = eit_eff_area(area=area,jj(i),wave1,waveo=waveo,filter=filters(k),filein=filein)
if keyword_set(qtest) then wave0 = wave1
if k gt 0 then oplot,waveo,area0,lines=2*(filters(k)+1) else $
if keyword_set(linear) then $
plot,waveo,area0,xtit=xtitle,xstyle=2, $
xr=xrange,yr=yran,font=font,ytit=ytitle,psym=ppsym else $
plot_io,waveo,area0,xtit=xtitle,xstyle=2, $
xr=xrange,yr=yran,font=font,ytit=ytitle,psym=ppsym
endfor ; k=0,kk-1
; The Plot labels have to be put on by hand:
xx = !x.crange(0)+xlab_pos(i)*(!x.crange(1)-!x.crange(0))
yy = (!y.crange(0)+ylab_pos(i)*(!y.crange(1)-!y.crange(0)))
if not keyword_set(linear) then yy = 10.^yy
xyouts,xx,yy,font=font,align=align(i), $
string((['(a)','(b)','(c)','(d)'])(i)+' '+sectors(jj(i))+' A')
xyouts,.5,1.,/norm,'EIT Effective Area',font=font,align=.5,chars=1.5
endfor
endelse
if !d.name eq 'PS' then begin
if not keyword_set(notime) then begin
text = string('Plot done at: ',!stime,format='(2a)')
if n_elements(filein) ne 0 then $
text = text+string(' File: ',filein,format='(2a)') else $
text = text+string(' Version: ',area.area.Version, format='(2a)')
xyouts,0.5,-0.05,/norm,alig=.5,text
endif
pprint,noprint=noprint,/reset
endif
clearplot & !x.thick=0 & !y.thick=0 & !p.thick=0 & !p.charthick=0
if keyword_set(qstop) then stop
end
Last revised: - Wed May 9 21:45:08 2007- F. Auchère