File indexing completed on 2025-02-23 09:20:58
0001
0002 SUBROUTINE GUKINE
0003
0004
0005
0006
0007
0008
0009
0010 #include "geant321/gcbank.inc"
0011 #include "geant321/gcflag.inc"
0012 #include "geant321/gckine.inc"
0013 #include "calor.inc"
0014 #include "histo.inc"
0015
0016 DIMENSION VERTEX(3),PLAB(3)
0017 dimension rndm(2)
0018
0019 data aMeV /1.e-3/
0020
0021
0022 IF ((IKINE.LT.0).or.(abs(PKINE(2)).GT.0.5*worldX)) THEN
0023 IKINE = ABS(IKINE)
0024 PKINE(2) = -0.5*worldX
0025 PKINE(3) = 0.
0026 PKINE(4) = 0.
0027 PKINE(5) = 1.
0028 PKINE(6) = 0.
0029 PKINE(7) = 0.
0030 ENDIF
0031
0032
0033 if ((pkine(8).lt.0.).or.(pkine(8).gt.1.)) pkine(8) = 0.
0034 rbeam = pkine(8)*0.5*calorYZ
0035 call GRNDM (rndm,2)
0036
0037 VERTEX(1) = PKINE(2)
0038 VERTEX(2) = PKINE(3) + (2*rndm(1)-1.)*rbeam
0039 VERTEX(3) = PKINE(4) + (2*rndm(2)-1.)*rbeam
0040
0041 CALL GSVERT(VERTEX,0,0,0,0,NVERT)
0042
0043
0044 JPA = LQ(JPART-IKINE)
0045 XMASS = Q(JPA+7)
0046 PMOM = SQRT(PKINE(1)*(PKINE(1)+2*XMASS))
0047 PLAB(1) = PMOM*PKINE(5)
0048 PLAB(2) = PMOM*PKINE(6)
0049 PLAB(3) = PMOM*PKINE(7)
0050
0051 CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT)
0052
0053
0054 IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0)
0055
0056 END