SUBROUTINE STEP_DETECTORS
C----------------------------------------------------------------------
C-
C-   Purpose and Methods : STEP THROUGH THE DETECTORS OF THE MUON COLLIDER
C-
C-   Inputs  : 
C-   Outputs : 
C-   Controls: 
C-
C-   Created  27-APR-1998   Rajendran Raja
C-
C----------------------------------------------------------------------
      IMPLICIT NONE
      LOGICAL first
      SAVE first
      DATA first / .true. /

      INCLUDE 'D0$INC:GCSETS.INC'
      INCLUDE 'D0$INC:GCTRAK.INC'
      INCLUDE 'D0$INC:GCKINE.INC'
      INCLUDE 'D0$INC:GCKING.INC'
      INCLUDE 'D0$INC:GCVOLU.INC'
      REAL    DEVOL
      REAL    XE,YE,ZE,XX,YX,ZX,X,Y,Z,TOFE,TOFX,TOFN,SLENE,SLENX,SLEN
      INTEGER NHM
      PARAMETER( NHM = 10 )
      REAL    HITSV(NHM)
      INTEGER IHIT
C----------------------------------------------------------------------
      IF( first ) THEN
        first = .false.
        
      ENDIF
C
C ****  inwvol=0 track inside a volume
C ****        =1 track has entered a new volume or is a new track
C ****        =2 track is exiting current volume
C ****        =3 track is exiting the setup
C
C
C ****  istop=0 particle will continue to be tracked
C ****       =1 particle has disappeared- decay,inelastic interaction
C ****       =2 particle has fallen below the cutoff energy or has interacted
C ****       =but no secondaries have been generated.
C
C
      IF ( INWVOL.EQ.1 ) THEN
        DEVOL = 0.0    !TRACK IN NEW VOLUME
        TOFE = TOFG    !TIME OF FLIGHT AT ENTRANCE
        XE  = VECT(1)
        YE  = VECT(2)
        ZE  = VECT(3)  !X,Y,Z AT ENTRANCE
        SLENE = SLENG  !TRACK LENGTH AT ENTRANCE
      ELSE
        DEVOL = DEVOL + DESTEP
      ENDIF
C
      IF ( (INWVOL.EQ.2 .OR. ISTOP.NE.0) .AND.
     &          (DEVOL.NE.0) ) THEN
        TOFX = TOFG   !TIME OF FLIGHT AT EXIT OR STOP
        XX = VECT(1)
        YX = VECT(2)
        ZX = VECT(3)  !X,Y,Z AT EXIT OR STOP
        SLENX = SLENG  !TRACK LENGTH AT EXIT OR STOP
        X = 0.5*(XE+XX)
        Y = 0.5*(YE+YX)
        Z = 0.5*(ZE+ZX)
        TOFN = 0.5*(TOFE+TOFX)*1.E9   !AVERAGE TOF IN NANOSECONDS
        SLEN = SLENX-SLENE  !TRACK LENGTH IN VOLUME
C
C   'TOFN'   'SLEN'  'DEDX'     'X'     'Y'     'Z'
C
        HITSV(1) = TOFN
        HITSV(2) = SLEN
        HITSV(3) = DEVOL
        HITSV(4) = X        
        HITSV(5) = Y
        HITSV(6) = Z        
        CALL GSAHIT(ISET,IDET,IPART,NUMBV,HITSV,IHIT) ! Store hit
      ENDIF
C

  999 RETURN
      END