******************************************************************
SUBROUTINE
GUSTEP
******************************************************************
*
*
* User routine
called at the end of each tracking step
*
*
*
******************************************************************
*
IMPLICIT
NONE
*
INTEGER
I, NPHE, ALIVE, PRFACE
REAL
DESTEPM, XX(6), XGIPMT, YGIPMT
REAL
ZOUT(6), TOUT
*
#include"geant321/gctrak.inc"
#include"geant321/gckine.inc"
#include"geant321/gcking.inc"
#include"geant321/gctmed.inc"
#include"geant321/gcvolu.inc"
#include"geant321/gctmed.inc"
#include"meguse.inc"
*
* *** Generates the scintillation photon
cascade inside Lixe
* (I prefer using
MeV)
DESTEPM =DESTEP * 1000.
*
IF(NUMED.EQ.22.AND.DESTEPM.GT.0.)
THEN
NPHE=DESTEPM*LXPMTQE*LXLYELD
*
DO
I=1,3
! only coordinates needed.
XX(I)=VECT(I)
ENDDO
*
DO
I=1,NPHE
*
* *** Track each scintillation photon
till the surface.
CALL LXPHO1(XX,
0., ZOUT, TOUT, ALIVE)
IF (ALIVE.GT.0) THEN
*
* *** Fills histogram on the surface calling
PROtotype Find PMultiplier
CALL PROFPM(
ZOUT, PRFACE, XGIPMT, YGIPMT)
*
* *** If PRFACE.GT.0 the photon hit some
photomultiplier
IF (PRFACE.GT.0) QSOMMA=QSOMMA+1
IF (PRFACE.EQ.1)
CALL
HFILL( 101, XGIPMT, YGIPMT, 1.)
IF (PRFACE.EQ.6) THEN
CALL HFILL(
201, XGIPMT, YGIPMT, 1.)
CALL HFILL(
102,-XGIPMT, YGIPMT, -1.)
ENDIF
ENDIF
ENDDO
ENDIF
*
* *** Store the created particles (for
primary track only)
IF
(NGKINE.GT.0) CALL GSKING(0)
*
* *** Store track parameters
CALL
GSXYZ(0)
RETURN
END