Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:08

0001  
0002 C*********************************************************************
0003  
0004 C...PY1ENT
0005 C...Stores one parton/particle in commonblock PYJETS.
0006  
0007       SUBROUTINE PY1ENT(IP,KF,PE,THE,PHI)
0008  
0009 C...Double precision and integer declarations.
0010       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011       IMPLICIT INTEGER(I-N)
0012       INTEGER PYK,PYCHGE,PYCOMP
0013 C...Commonblocks.
0014       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0015       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0016       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0017       SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
0018  
0019 C...Standard checks.
0020       MSTU(28)=0
0021       IF(MSTU(12).NE.12345) CALL PYLIST(0)
0022       IPA=MAX(1,IABS(IP))
0023       IF(IPA.GT.MSTU(4)) CALL PYERRM(21,
0024      &'(PY1ENT:) writing outside PYJETS memory')
0025       KC=PYCOMP(KF)
0026       IF(KC.EQ.0) CALL PYERRM(12,'(PY1ENT:) unknown flavour code')
0027  
0028 C...Find mass. Reset K, P and V vectors.
0029       PM=0D0
0030       IF(MSTU(10).EQ.1) PM=P(IPA,5)
0031       IF(MSTU(10).GE.2) PM=PYMASS(KF)
0032       DO 100 J=1,5
0033         K(IPA,J)=0
0034         P(IPA,J)=0D0
0035         V(IPA,J)=0D0
0036   100 CONTINUE
0037  
0038 C...Store parton/particle in K and P vectors.
0039       K(IPA,1)=1
0040       IF(IP.LT.0) K(IPA,1)=2
0041       K(IPA,2)=KF
0042       P(IPA,5)=PM
0043       P(IPA,4)=MAX(PE,PM)
0044       PA=SQRT(P(IPA,4)**2-P(IPA,5)**2)
0045       P(IPA,1)=PA*SIN(THE)*COS(PHI)
0046       P(IPA,2)=PA*SIN(THE)*SIN(PHI)
0047       P(IPA,3)=PA*COS(THE)
0048  
0049 C...Set N. Optionally fragment/decay.
0050       N=IPA
0051       IF(IP.EQ.0) CALL PYEXEC
0052  
0053       RETURN
0054       END