]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | |
2 | C********************************************************************* | |
3 | ||
4 | SUBROUTINE PYSPLI(KF,KFLIN,KFLCH,KFLSP) | |
5 | ||
6 | C...In case of a hadron remnant which is more complicated than just a | |
7 | C...quark or a diquark, split it into two (partons or hadron + parton). | |
8 | COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) | |
9 | COMMON/PYINT1/MINT(400),VINT(400) | |
10 | SAVE /PYPARS/,/PYINT1/ | |
11 | DIMENSION KFL(3) | |
12 | ||
13 | C...Preliminaries. Parton composition. | |
14 | KFA=IABS(KF) | |
15 | KFS=ISIGN(1,KF) | |
16 | KFL(1)=MOD(KFA/1000,10) | |
17 | KFL(2)=MOD(KFA/100,10) | |
18 | KFL(3)=MOD(KFA/10,10) | |
19 | IF(KFA.EQ.22.AND.MINT(109).EQ.2) THEN | |
20 | KFL(2)=INT(1.5+RLU(0)) | |
21 | IF(MINT(105).EQ.333) KFL(2)=3 | |
22 | IF(MINT(105).EQ.443) KFL(2)=4 | |
23 | KFL(3)=KFL(2) | |
24 | ELSEIF((KFA.EQ.111.OR.KFA.EQ.113).AND.RLU(0).GT.0.5) THEN | |
25 | KFL(2)=2 | |
26 | KFL(3)=2 | |
27 | ELSEIF(KFA.EQ.223.AND.RLU(0).GT.0.5) THEN | |
28 | KFL(2)=1 | |
29 | KFL(3)=1 | |
30 | ENDIF | |
31 | IF(KFLIN.NE.21.AND.KFLIN.NE.22.AND.KFLIN.NE.23) THEN | |
32 | KFLR=KFLIN*KFS | |
33 | ELSE | |
34 | KFLR=KFLIN | |
35 | ENDIF | |
36 | KFLCH=0 | |
37 | ||
38 | C...Subdivide lepton. | |
39 | IF(KFA.GE.11.AND.KFA.LE.18) THEN | |
40 | IF(KFLR.EQ.KFA) THEN | |
41 | KFLSP=KFS*22 | |
42 | ELSEIF(KFLR.EQ.22) THEN | |
43 | KFLSP=KFA | |
44 | ELSEIF(KFLR.EQ.-24.AND.MOD(KFA,2).EQ.1) THEN | |
45 | KFLSP=KFA+1 | |
46 | ELSEIF(KFLR.EQ.24.AND.MOD(KFA,2).EQ.0) THEN | |
47 | KFLSP=KFA-1 | |
48 | ELSEIF(KFLR.EQ.21) THEN | |
49 | KFLSP=KFA | |
50 | KFLCH=KFS*21 | |
51 | ELSE | |
52 | KFLSP=KFA | |
53 | KFLCH=-KFLR | |
54 | ENDIF | |
55 | ||
56 | C...Subdivide photon. | |
57 | ELSEIF(KFA.EQ.22.AND.MINT(109).NE.2) THEN | |
58 | IF(KFLR.NE.21) THEN | |
59 | KFLSP=-KFLR | |
60 | ELSE | |
61 | RAGR=0.75*RLU(0) | |
62 | KFLSP=1 | |
63 | IF(RAGR.GT.0.125) KFLSP=2 | |
64 | IF(RAGR.GT.0.625) KFLSP=3 | |
65 | IF(RLU(0).GT.0.5) KFLSP=-KFLSP | |
66 | KFLCH=-KFLSP | |
67 | ENDIF | |
68 | ||
69 | C...Subdivide Reggeon or Pomeron. | |
70 | ELSEIF(KFA.EQ.28.OR.KFA.EQ.29) THEN | |
71 | IF(KFLIN.EQ.21) THEN | |
72 | KFLSP=KFS*21 | |
73 | ELSE | |
74 | KFLSP=-KFLIN | |
75 | ENDIF | |
76 | ||
77 | C...Subdivide meson. | |
78 | ELSEIF(KFL(1).EQ.0) THEN | |
79 | KFL(2)=KFL(2)*(-1)**KFL(2) | |
80 | KFL(3)=-KFL(3)*(-1)**IABS(KFL(2)) | |
81 | IF(KFLR.EQ.KFL(2)) THEN | |
82 | KFLSP=KFL(3) | |
83 | ELSEIF(KFLR.EQ.KFL(3)) THEN | |
84 | KFLSP=KFL(2) | |
85 | ELSEIF(KFLR.EQ.21.AND.RLU(0).GT.0.5) THEN | |
86 | KFLSP=KFL(2) | |
87 | KFLCH=KFL(3) | |
88 | ELSEIF(KFLR.EQ.21) THEN | |
89 | KFLSP=KFL(3) | |
90 | KFLCH=KFL(2) | |
91 | ELSEIF(KFLR*KFL(2).GT.0) THEN | |
92 | CALL LUKFDI(-KFLR,KFL(2),KFDUMP,KFLCH) | |
93 | KFLSP=KFL(3) | |
94 | ELSE | |
95 | CALL LUKFDI(-KFLR,KFL(3),KFDUMP,KFLCH) | |
96 | KFLSP=KFL(2) | |
97 | ENDIF | |
98 | ||
99 | C...Subdivide baryon. | |
100 | ELSE | |
101 | NAGR=0 | |
102 | DO 100 J=1,3 | |
103 | IF(KFLR.EQ.KFL(J)) NAGR=NAGR+1 | |
104 | 100 CONTINUE | |
105 | IF(NAGR.GE.1) THEN | |
106 | RAGR=0.00001+(NAGR-0.00002)*RLU(0) | |
107 | IAGR=0 | |
108 | DO 110 J=1,3 | |
109 | IF(KFLR.EQ.KFL(J)) RAGR=RAGR-1. | |
110 | IF(IAGR.EQ.0.AND.RAGR.LE.0.) IAGR=J | |
111 | 110 CONTINUE | |
112 | ELSE | |
113 | IAGR=1.00001+2.99998*RLU(0) | |
114 | ENDIF | |
115 | ID1=1 | |
116 | IF(IAGR.EQ.1) ID1=2 | |
117 | IF(IAGR.EQ.1.AND.KFL(3).GT.KFL(2)) ID1=3 | |
118 | ID2=6-IAGR-ID1 | |
119 | KSP=3 | |
120 | IF(MOD(KFA,10).EQ.2.AND.KFL(1).EQ.KFL(2)) THEN | |
121 | IF(IAGR.NE.3.AND.RLU(0).GT.0.25) KSP=1 | |
122 | ELSEIF(MOD(KFA,10).EQ.2.AND.KFL(2).GE.KFL(3)) THEN | |
123 | IF(IAGR.NE.1.AND.RLU(0).GT.0.25) KSP=1 | |
124 | ELSEIF(MOD(KFA,10).EQ.2) THEN | |
125 | IF(IAGR.EQ.1) KSP=1 | |
126 | IF(IAGR.NE.1.AND.RLU(0).GT.0.75) KSP=1 | |
127 | ENDIF | |
128 | KFLSP=1000*KFL(ID1)+100*KFL(ID2)+KSP | |
129 | IF(KFLR.EQ.21) THEN | |
130 | KFLCH=KFL(IAGR) | |
131 | ELSEIF(NAGR.EQ.0.AND.KFLR.GT.0) THEN | |
132 | CALL LUKFDI(-KFLR,KFL(IAGR),KFDUMP,KFLCH) | |
133 | ELSEIF(NAGR.EQ.0) THEN | |
134 | CALL LUKFDI(10000+KFLSP,-KFLR,KFDUMP,KFLCH) | |
135 | KFLSP=KFL(IAGR) | |
136 | ENDIF | |
137 | ENDIF | |
138 | ||
139 | C...Add on correct sign for result. | |
140 | KFLCH=KFLCH*KFS | |
141 | KFLSP=KFLSP*KFS | |
142 | ||
143 | RETURN | |
144 | END |