Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:20:58

0001 
0002       SUBROUTINE GUKINE
0003 *  
0004 *    Generates Kinematics for primary track
0005 *
0006 *    Data card Kine : Itype  Ekine x0  y0  z0  ux  uy  uz rbeam
0007 *
0008 *    rbeam : size of the random beam extension in fraction of 0.5*calorYZ
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 * *** set/reset default kinematic
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 *     random in YZ ?
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 * *** Kinematics debug
0054       IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0)
0055 *                                                                               
0056       END