]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA/pythia/pyspli.F
Precision parameter for pT sampling plus corresponding getter introduced.
[u/mrichter/AliRoot.git] / PYTHIA / pythia / pyspli.F
CommitLineData
fe4da5cc 1
2C*********************************************************************
3
4 SUBROUTINE PYSPLI(KF,KFLIN,KFLCH,KFLSP)
5
6C...In case of a hadron remnant which is more complicated than just a
7C...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
13C...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
38C...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
56C...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
69C...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
77C...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
99C...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
139C...Add on correct sign for result.
140 KFLCH=KFLCH*KFS
141 KFLSP=KFLSP*KFS
142
143 RETURN
144 END