1 SUBROUTINE PHOCHK(JFIRST)
2 C.----------------------------------------------------------------------
4 C. PHOCHK: checking branch.
6 C. Purpose: checks whether particles in the common block /PHOEVT/
7 C. can be served by PHOMAK.
8 C. JFIRST is the position in /PH_HEPEVT/ (!) of the first
9 C. daughter of sub-branch under action.
12 C. Author(s): Z. Was Created at: 22/10/92
13 C. Last Update: 16/10/93
15 C.----------------------------------------------------------------------
16 C ********************
19 PARAMETER (NMXPHO=10000)
20 INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO
22 COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO),
23 &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO)
25 COMMON/PHOIF/CHKIF(NMXPHO)
27 PARAMETER (NMXHEP=10000)
29 COMMON/PHOQED/QEDRAD(NMXHEP)
32 INTEGER IDABS,NLAST,I,IPPAR
33 LOGICAL INTERF,ISEC,IFTOP
35 COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP
38 C these are OK .... if you do not like somebody else, add here.
40 & ( ((IDABS.GT.9).AND.(IDABS.LE.40)) .OR. (IDABS.GT.100) )
42 $ .AND.(IDABS.NE.2101).AND.(IDABS.NE.3101).AND.(IDABS.NE.3201)
43 & .AND.(IDABS.NE.1103).AND.(IDABS.NE.2103).AND.(IDABS.NE.2203)
44 & .AND.(IDABS.NE.3103).AND.(IDABS.NE.3203).AND.(IDABS.NE.3303)
49 C checking for good particles
52 C possibly call on PHZODE is a dead (to be omitted) code.
53 CHKIF(I)= F(IDABS) .AND.F(ABS(IDPHO(1)))
54 & .AND. (IDPHO(2).EQ.0)
55 IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2)
58 C now we go to special cases, where CHKIF(I) will be overwritten
61 C special case of top pair production
62 DO K=JDAPHO(2,1),JDAPHO(1,1),-1
63 IF(IDPHO(K).NE.22) THEN
69 IFRAD=((IDPHO(1).EQ.21).AND.(IDPHO(2).EQ.21))
70 & .OR. ((ABS(IDPHO(1)).LE.6).AND.((IDPHO(2)).EQ.(-IDPHO(1))))
72 & .AND.(ABS(IDPHO(3)).EQ.6).AND.((IDPHO(4)).EQ.(-IDPHO(3)))
77 IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2)
84 C special case of top decay
85 DO K=JDAPHO(2,1),JDAPHO(1,1),-1
86 IF(IDPHO(K).NE.22) THEN
92 IFRAD=((ABS(IDPHO(1)).EQ.6).AND.(IDPHO(2).EQ.0))
94 & .AND.((ABS(IDPHO(3)).EQ.24).AND.(ABS(IDPHO(4)).EQ.5)
95 & .OR.(ABS(IDPHO(3)).EQ.5).AND.(ABS(IDPHO(4)).EQ.24))
100 IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2)