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