pro make_xrt_mirror, XRT_mirror, mirror, qabort, define=define, $
		     caldir=caldir, debug=debug
; =========================================================================
;+
; PROJECT:
;       Solar-B / XRT (mandatory)
;
; NAME:
;       (program name here, mandatory)
;       NAME_IN_CAPS
;
; CATEGORY:
;       (category here, mandatory)
;       Category
;
; PURPOSE:
;       (purpose here, mandatory)
;       There is a brief description here.
;
; CALLING SEQUENCE:
;       (calling sequence here, mandatory)
;       NAME_IN_CAPS, parameter1, parameter2, keyword1
;           [, optional_keyword1=optional_keyword1], ...
;
; INPUTS:
;       (input arguments here, mandatory if any)
;       PARAMETER_IN_CAPS: [Optional or Mandatory]
;           Type of variable.
;           Description.
;
; KEYWORDS:
;       (keywords here, mandatory if any)
;       VALUE_KEYWORD_IN_CAPS: [Optional or Mandatory]
;           Type of variable.
;           Description.
;
;       /SWITCH_KEYWORD_IN_CAPS: [Optional or Mandatory]
;           Type of variable.
;           Description.
;
; OUTPUTS:
;       (outputs here, including function returned parameter, 
;        mandatory)
;        Returns: (if a function)
;           Type of variable.
;           Description.
;
;        PARAMETER_IN_CAPS: [Optional or Mandatory]
;           Type of variable.
;           Description.
;
; EXAMPLES:
;       (example calls here, as necessary)
;
; COMMON BLOCKS:
;       (common blocks named here, mandatory if any)
;
; NOTES:
;       (notes here, as necessary)
;       1) This might describe a restriction on use or applicability.
;       2) This might describe the alogrithm used.
;       3) Etc.
;
; MODIFICATION HISTORY:
;       (history here, mandatory)
   progver = 'v2008.Aug.28' ; --- (J. Scientist's name) "Written" for the 1st entry,
;                      or description of changes.
;-
; =========================================================================

   qabort = 0

   XRT_mirror = {        XRT_mirror_v0001, 				$
                                 type: '',				$
		      mir_str_version: '',				$
		        mir_str_descr: '',				$
	       	   	         name: '', 				$
    		            long_name: '',				$
                             material: '',				$
                                 dens: float(0),			$
                           dens_units: '',				$
                          graze_angle: float(0),			$
                    graze_angle_units: '',				$
			         wave: fltarr(5000),			$
			   wave_units: 'Angstroms',			$
			         refl: fltarr(5000),			$
			       length: 0L,				$
                           data_files: strarr(5),			$
		              history: strarr(3),			$
		             comments: strarr(5)			$
	        }

   if keyword_set(define) then return

; Populate structure

   struct_assign, mirror, XRT_mirror, /nozero
      
   XRT_mirror.mir_str_version = tag_names(XRT_mirror,/structure)
   XRT_mirror.history[0] = 'MAKE_XRT_MIRROR '+progver+timestamp()

   ;  Where are the calibration files?

   resolve_caldir, caldir=caldir, qabort
   if qabort then return

; Fully qualify data file names
   
   data_f = caldir+'/refl/'+mirror.data_files[where(mirror.data_files ne '')]
   
; Calculate components
   
   wave = float(0)
   refl = float(0)
   for i = 0,(n_elements(data_f)-1) do begin
     readcol, data_f[i], wave0, refl0, skip=2
     wave = [wave, wave0]
     refl = [refl, refl0]
   endfor
   
   wave = wave[1:*] * 10.0 ; Convert nm to Angstroms
   refl = refl[1:*]

   XRT_mirror.wave = wave
   XRT_mirror.refl = refl
   XRT_mirror.length = n_elements(wave)
   
end
