]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/PHOTOS/phochk.F
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / TEvtGen / PHOTOS / phochk.F
CommitLineData
da0e9ce3 1 SUBROUTINE PHOCHK(JFIRST)
2C.----------------------------------------------------------------------
3C.
4C. PHOCHK: checking branch.
5C.
6C. Purpose: checks whether particles in the common block /PHOEVT/
7C. can be served by PHOMAK.
8C. JFIRST is the position in /PH_HEPEVT/ (!) of the first
9C. daughter of sub-branch under action.
10C.
11C.
12C. Author(s): Z. Was Created at: 22/10/92
13C. Last Update: 16/10/93
14C.
15C.----------------------------------------------------------------------
16C ********************
17 IMPLICIT NONE
18 INTEGER NMXPHO
19 PARAMETER (NMXPHO=10000)
20 INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO
21 REAL*8 PPHO,VPHO
22 COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO),
23 &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO)
24 LOGICAL CHKIF
25 COMMON/PHOIF/CHKIF(NMXPHO)
26 INTEGER NMXHEP
27 PARAMETER (NMXHEP=10000)
28 LOGICAL QEDRAD
29 COMMON/PHOQED/QEDRAD(NMXHEP)
30 INTEGER JFIRST
31 LOGICAL F
32 INTEGER IDABS,NLAST,I,IPPAR
33 LOGICAL INTERF,ISEC,IFTOP
34 REAL*8 FINT,FSEC
35 COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP
36 LOGICAL IFRAD
37 INTEGER IDENT,K
38C these are OK .... if you do not like somebody else, add here.
39 F(IDABS)=
40 & ( ((IDABS.GT.9).AND.(IDABS.LE.40)) .OR. (IDABS.GT.100) )
41 & .AND.(IDABS.NE.21)
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)
45C
46 NLAST = NPHO
47C
48 IPPAR=1
49C checking for good particles
50 DO 10 I=IPPAR,NLAST
51 IDABS = ABS(IDPHO(I))
52C 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)
56 10 CONTINUE
57C--
58C now we go to special cases, where CHKIF(I) will be overwritten
59C--
60 IF(IFTOP) THEN
61C special case of top pair production
62 DO K=JDAPHO(2,1),JDAPHO(1,1),-1
63 IF(IDPHO(K).NE.22) THEN
64 IDENT=K
65 GOTO 15
66 ENDIF
67 ENDDO
68 15 CONTINUE
69 IFRAD=((IDPHO(1).EQ.21).AND.(IDPHO(2).EQ.21))
70 & .OR. ((ABS(IDPHO(1)).LE.6).AND.((IDPHO(2)).EQ.(-IDPHO(1))))
71 IFRAD=IFRAD
72 & .AND.(ABS(IDPHO(3)).EQ.6).AND.((IDPHO(4)).EQ.(-IDPHO(3)))
73 & .AND.(IDENT.EQ.4)
74 IF(IFRAD) THEN
75 DO 20 I=IPPAR,NLAST
76 CHKIF(I)= .TRUE.
77 IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2)
78 20 CONTINUE
79 ENDIF
80 ENDIF
81C--
82C--
83 IF(IFTOP) THEN
84C special case of top decay
85 DO K=JDAPHO(2,1),JDAPHO(1,1),-1
86 IF(IDPHO(K).NE.22) THEN
87 IDENT=K
88 GOTO 25
89 ENDIF
90 ENDDO
91 25 CONTINUE
92 IFRAD=((ABS(IDPHO(1)).EQ.6).AND.(IDPHO(2).EQ.0))
93 IFRAD=IFRAD
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))
96 & .AND.(IDENT.EQ.4)
97 IF(IFRAD) THEN
98 DO 30 I=IPPAR,NLAST
99 CHKIF(I)= .TRUE.
100 IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2)
101 30 CONTINUE
102 ENDIF
103 ENDIF
104C--
105C--
106 END