;+
; Project     : SOLAR-B - EIS
;
; Name        : EIS_CPT_FINE_MIRROR_RANGE
;
; Purpose     : Calculates range of fine mirror movement for raster.
;
; Explanation : Calculates range of fine mirror movement for raster.
;
; Use         : < range = eis_cpt_fine_mirror_range ( raster_detail ) >
;
; Inputs      : raster_detail           : STRUCTURE of type EIS_raster_detail.
;
; Opt. Inputs : None.
;
; Outputs     : range    : [2]INT range : [fine mirror start, fine mirror end]
;
; Opt. Outputs: None.
;
; Keywords    : ASRC     : INT FLAG indicating should adjust for ASRC movement.
;
; Calls       : None.
;
; Common      : None.
;
; Restrictions: None.
;
; Side effects: May output ASCII files.
;
; Category    : EIS_CPT.
;
; Prev. Hist. : None.
;
; Written     : Martin Carter RAL 12/06/08
;
; Modified    : Version 0.0, 12/06/08, MKC
;                 Adapted from eis check raster.
;
; Version     : 0.0, 12/06/08
;-
;**********************************************************

FUNCTION eis_cpt_fine_mirror_range, raster_detail, ASRC=asrc

  ; get fine mirror range

  fine_mirror_start_position = raster_detail.fine_mirror_position

  fine_mirror_end_position   = fine_mirror_start_position + $
                               (raster_detail.number_of_mirror_positions-1)*raster_detail.fine_mirror_step

  IF KEYWORD_SET(asrc) THEN BEGIN

    ; adjust for ASRC
    ; NB note no. of raster repeats includes initial raster (i.e is at least 1)

    IF raster_detail.ASRC_step NE 0 THEN BEGIN

      no_of_ASRC_steps = ((raster_detail.number_of_raster_repeats-1)/raster_detail.ASRC_skip)*raster_detail.ASRC_step

      fine_mirror_start_position = fine_mirror_start_position + no_of_ASRC_steps

      fine_mirror_end_position   = fine_mirror_end_position + no_of_ASRC_steps

    ENDIF

  ENDIF

  RETURN, [fine_mirror_start_position, fine_mirror_end_position]

END





