;+ ; Project: ; SDAC ; Name: ; DISCSP_EDGES ; PURPOSE: ; This functions Returns a 5x8 element array of the DISCSP energy edges for a given ; time for the four channels, for 8 detectors. If DET keyword is passed, ; returns 2x4 array (see DET keyword below). ; CATEGORY: ; BATSE ; CALLING SEQUENCE: edges = discsp_edges(intime, det=det) ; ; INPUTS: ; INTIME - time to get edges for ; ; OPTIONAL INPUT KEYWORD: ; DET - Detector number to get edges for (counting from 0). If ; present, edges are returned as 2x4 array - lo/hi edges ; for each of 4 channels. ; HVSPEC- a structure with tags (N511) for the 511 line positions and SPEC LLD (SLLD) ; values for all 8 detectors ; from an alternate source. Probably from EDGES_HVSPEC. ; ; SAMPLE CALLS: ; edges = discsp_edges('91/6/30') ; edges = discsp_edges(seconds, det=1) ; ; CALLS: ; ANYTIM, GET_DISCSP511, GET_SLLD, CALIBRATE ; HISTORY: ; AKT 1/25/94 ; ras, 29-dec-1995, pass on single detector to 511 line database to ; speed up by factor of 8 ; RAS 9-JUNE-1996, UPGRADED DOCUMENTATION ; RAS 27-jun-1996, passed date to calibrate procedure ; Version 5, 27-march-1998, richard.schwartz@gsfc.nasa.gov, added n511 ; Version 6, 30-mar-1998, richard.schwartz@gsfc.nasa.gov,added error to support ; calls to edges_hvspec, removed n511, added hvspec structure input for ; 511 lines and SLLD values. ;- function discsp_edges, intime, det=det, hvspec=hvspec, flare=flare if n_elements(intime) eq 0 then intime = sys2ut() usertime = anytim(intime,/sec) > 3.8802240e+08 ; greater than 19-apr-1991. if datatype(hvspec) eq 'STC' then begin chans511= hvspec.n511 slld = hvspec.slld endif else begin get_discsp511, usertime, times511, chans511, det=det, /lasttimestop if not keyword_set(times511) then begin ;Try EDGES_HVSPEC using the INTIME to see if it can find a relevant ;FDB or BDB file out = edges_hvspec( anytim(intime,/yohkoh), det=det, error=error_edges_hvspec) if not error_edges_hvspec then return, out endif endelse if n_elements(slld) eq 0 then slld=get_slld(usertime) width64 = 0 energy = 511. nlines = 1 if n_elements(det) gt 0 then begin if det lt 0 or det gt 7 then goto, getalldets calibrate, det, width64, slld, nlines, chans511(det), energy, evec, date=usertime, /discsp edges = [ [evec(0),evec(1)], [evec(1),evec(2)], [evec(2),4.e4], $ [4.e4,1.e5] ] endif else begin getalldets: edges = fltarr(5,8) for id = 0,7 do begin if chans511(id) ne 0. then begin calibrate, id, width64, slld, nlines, chans511(id), energy, evec, date=usertime,/discsp edges(*,id) = [evec, 4.e4, 1.e5] endif endfor endelse return, edges end