]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA/pythia/pyklim.F
README updated (R.Barbera)
[u/mrichter/AliRoot.git] / PYTHIA / pythia / pyklim.F
1  
2 C***********************************************************************
3  
4       SUBROUTINE PYKLIM(ILIM)
5  
6 C...Checks generated variables against pre-set kinematical limits;
7 C...also calculates limits on variables used in generation.
8       COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5)
9       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
10       COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
11       COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
12       COMMON/PYSUBS/MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200)
13       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
14       COMMON/PYINT1/MINT(400),VINT(400)
15       COMMON/PYINT2/ISET(200),KFPR(200,2),COEF(200,20),ICOL(40,4,2)
16       SAVE /LUJETS/,/LUDAT1/,/LUDAT2/,/LUDAT3/
17       SAVE /PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/
18  
19 C...Common kinematical expressions.
20       MINT(51)=0
21       ISUB=MINT(1)
22       ISTSB=ISET(ISUB)
23       IF(ISUB.EQ.96) GOTO 110
24       SQM3=VINT(63)
25       SQM4=VINT(64)
26       IF(ILIM.NE.0) THEN
27         IF(ABS(SQM3).LT.1E-4.AND.ABS(SQM4).LT.1E-4) THEN
28           CKIN09=MAX(CKIN(9),CKIN(13))
29           CKIN10=MIN(CKIN(10),CKIN(14))
30           CKIN11=MAX(CKIN(11),CKIN(15))
31           CKIN12=MIN(CKIN(12),CKIN(16))
32         ELSE
33           CKIN09=MAX(CKIN(9),MIN(0.,CKIN(13)))
34           CKIN10=MIN(CKIN(10),MAX(0.,CKIN(14)))
35           CKIN11=MAX(CKIN(11),MIN(0.,CKIN(15)))
36           CKIN12=MIN(CKIN(12),MAX(0.,CKIN(16)))
37         ENDIF
38       ENDIF
39       IF(ILIM.NE.1) THEN
40         TAU=VINT(21)
41         RM3=SQM3/(TAU*VINT(2))
42         RM4=SQM4/(TAU*VINT(2))
43         BE34=SQRT(MAX(1E-20,(1.-RM3-RM4)**2-4.*RM3*RM4))
44       ENDIF
45       PTHMIN=CKIN(3)
46       IF(MIN(SQM3,SQM4).LT.CKIN(6)**2.AND.ISTSB.NE.1.AND.ISTSB.NE.3)
47      &PTHMIN=MAX(CKIN(3),CKIN(5))
48  
49       IF(ILIM.EQ.0) THEN
50 C...Check generated values of tau, y*, cos(theta-hat), and tau' against
51 C...pre-set kinematical limits.
52         YST=VINT(22)
53         CTH=VINT(23)
54         TAUP=VINT(26)
55         TAUE=TAU
56         IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=TAUP
57         X1=SQRT(TAUE)*EXP(YST)
58         X2=SQRT(TAUE)*EXP(-YST)
59         XF=X1-X2
60         IF(MINT(47).NE.1) THEN
61           IF(TAU*VINT(2).LT.CKIN(1)**2) MINT(51)=1
62           IF(CKIN(2).GE.0..AND.TAU*VINT(2).GT.CKIN(2)**2) MINT(51)=1
63           IF(YST.LT.CKIN(7).OR.YST.GT.CKIN(8)) MINT(51)=1
64           IF(XF.LT.CKIN(25).OR.XF.GT.CKIN(26)) MINT(51)=1
65         ENDIF
66         IF(MINT(45).NE.1) THEN
67           IF(X1.LT.CKIN(21).OR.X1.GT.CKIN(22)) MINT(51)=1
68         ENDIF
69         IF(MINT(46).NE.1) THEN
70           IF(X2.LT.CKIN(23).OR.X2.GT.CKIN(24)) MINT(51)=1
71         ENDIF
72         IF(ISTSB.EQ.2.OR.ISTSB.EQ.4.OR.ISTSB.EQ.6) THEN
73           PTH=0.5*BE34*SQRT(TAU*VINT(2)*MAX(0.,1.-CTH**2))
74           EXPY3=MAX(1.E-10,(1.+RM3-RM4+BE34*CTH)/
75      &    MAX(1.E-10,(1.+RM3-RM4-BE34*CTH)))
76           EXPY4=MAX(1.E-10,(1.-RM3+RM4-BE34*CTH)/
77      &    MAX(1.E-10,(1.-RM3+RM4+BE34*CTH)))
78           Y3=YST+0.5*LOG(EXPY3)
79           Y4=YST+0.5*LOG(EXPY4)
80           YLARGE=MAX(Y3,Y4)
81           YSMALL=MIN(Y3,Y4)
82           ETALAR=10.
83           ETASMA=-10.
84           STH=SQRT(MAX(0.,1.-CTH**2))
85           EXSQ3=SQRT(MAX(1E-20,((1.+RM3-RM4)*COSH(YST)+BE34*SINH(YST)*
86      &    CTH)**2-4.*RM3))
87           EXSQ4=SQRT(MAX(1E-20,((1.-RM3+RM4)*COSH(YST)-BE34*SINH(YST)*
88      &    CTH)**2-4.*RM4))
89           IF(STH.GE.1.E-6) THEN
90             EXPET3=((1.+RM3-RM4)*SINH(YST)+BE34*COSH(YST)*CTH+EXSQ3)/
91      &      (BE34*STH)
92             EXPET4=((1.-RM3+RM4)*SINH(YST)-BE34*COSH(YST)*CTH+EXSQ4)/
93      &      (BE34*STH)
94             ETA3=LOG(MIN(1.E10,MAX(1.E-10,EXPET3)))
95             ETA4=LOG(MIN(1.E10,MAX(1.E-10,EXPET4)))
96             ETALAR=MAX(ETA3,ETA4)
97             ETASMA=MIN(ETA3,ETA4)
98           ENDIF
99           CTS3=((1.+RM3-RM4)*SINH(YST)+BE34*COSH(YST)*CTH)/EXSQ3
100           CTS4=((1.-RM3+RM4)*SINH(YST)-BE34*COSH(YST)*CTH)/EXSQ4
101           CTSLAR=MIN(1.,MAX(CTS3,CTS4))
102           CTSSMA=MAX(-1.,MIN(CTS3,CTS4))
103           SH=TAU*VINT(2)
104           RPTS=4.*VINT(71)**2/SH
105           BE34L=SQRT(MAX(0.,(1.-RM3-RM4)**2-4.*RM3*RM4-RPTS))
106           RM34=MAX(1E-20,2.*RM3*RM4)
107           IF(2.*VINT(71)**2/(VINT(21)*VINT(2)).LT.0.0001)
108      &    RM34=MAX(RM34,2.*VINT(71)**2/(VINT(21)*VINT(2)))
109           RTHM=(4.*RM3*RM4+RPTS)/(1.-RM3-RM4+BE34L)
110           THA=0.5*SH*MAX(RTHM,1.-RM3-RM4-BE34*CTH)
111           UHA=0.5*SH*MAX(RTHM,1.-RM3-RM4+BE34*CTH)
112           IF(PTH.LT.PTHMIN) MINT(51)=1
113           IF(CKIN(4).GE.0..AND.PTH.GT.CKIN(4)) MINT(51)=1
114           IF(YLARGE.LT.CKIN(9).OR.YLARGE.GT.CKIN(10)) MINT(51)=1
115           IF(YSMALL.LT.CKIN(11).OR.YSMALL.GT.CKIN(12)) MINT(51)=1
116           IF(ETALAR.LT.CKIN(13).OR.ETALAR.GT.CKIN(14)) MINT(51)=1
117           IF(ETASMA.LT.CKIN(15).OR.ETASMA.GT.CKIN(16)) MINT(51)=1
118           IF(CTSLAR.LT.CKIN(17).OR.CTSLAR.GT.CKIN(18)) MINT(51)=1
119           IF(CTSSMA.LT.CKIN(19).OR.CTSSMA.GT.CKIN(20)) MINT(51)=1
120           IF(CTH.LT.CKIN(27).OR.CTH.GT.CKIN(28)) MINT(51)=1
121           IF(THA.LT.CKIN(35)) MINT(51)=1
122           IF(CKIN(36).GE.0..AND.THA.GT.CKIN(36)) MINT(51)=1
123           IF(UHA.LT.CKIN(37)) MINT(51)=1
124           IF(CKIN(38).GE.0..AND.UHA.GT.CKIN(38)) MINT(51)=1
125         ENDIF
126         IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
127           IF(TAUP*VINT(2).LT.CKIN(31)**2) MINT(51)=1
128           IF(CKIN(32).GE.0..AND.TAUP*VINT(2).GT.CKIN(32)**2) MINT(51)=1
129         ENDIF
130  
131 C...Additional cuts on W2 (approximately) in DIS.
132         IF(ISUB.EQ.10) THEN
133           XBJ=X2
134           IF(IABS(MINT(12)).LT.20) XBJ=X1
135           Q2BJ=THA
136           W2BJ=Q2BJ*(1.-XBJ)/XBJ
137           IF(W2BJ.LT.CKIN(39)) MINT(51)=1
138           IF(CKIN(40).GT.0..AND.W2BJ.GT.CKIN(40)) MINT(51)=1
139         ENDIF
140  
141 C...Additional p_T cuts on 2 -> 3 process.
142         IF(ISTSB.EQ.6) THEN
143           KFQ=KFPR(131,2)
144           PMQQ=SQRT(VINT(64))
145           PMQ=PMAS(KFQ,1)
146           PZQ=SQRT(MAX(0.,(0.5*PMQQ)**2-PMQ**2))
147           DO 100 I=MINT(84)+1,MINT(84)+2
148           K(I,1)=1
149           P(I,1)=0.
150           P(I,2)=0.
151           P(I,3)=PZQ*(-1.)**(I-1)
152           P(I,4)=0.5*PMQQ
153           P(I,5)=PMQ
154   100     CONTINUE
155           PEQQ=0.5*SQRT(TAU*VINT(2))*(1.+(VINT(64)-VINT(63))/
156      &    (TAU*VINT(2)))
157           PZQQ=SQRT(MAX(0.,PEQQ**2-VINT(64)))
158           CALL LUDBRB(MINT(84)+1,MINT(84)+2,ACOS(VINT(83)),VINT(84),
159      &    0D0,0D0,-DBLE(PZQQ/PEQQ))
160           CALL LUDBRB(MINT(84)+1,MINT(84)+2,ACOS(VINT(23)),VINT(24),
161      &    0D0,0D0,0D0)
162           PTQ2=SQRT(P(MINT(84)+1,1)**2+P(MINT(84)+1,2)**2)
163           PTQ3=SQRT(P(MINT(84)+2,1)**2+P(MINT(84)+2,2)**2)
164           PTMNQ=MIN(PTQ2,PTQ3)
165           PTMXQ=MAX(PTQ2,PTQ3)
166           IF(PTMNQ.LT.CKIN(51)) MINT(51)=1
167           IF(CKIN(52).GE.0..AND.PTMNQ.GT.CKIN(52)) MINT(51)=1
168           IF(PTMXQ.LT.CKIN(53)) MINT(51)=1
169           IF(CKIN(54).GE.0..AND.PTMXQ.GT.CKIN(54)) MINT(51)=1
170           VINT(85)=PTMNQ
171           VINT(86)=PTMXQ
172         ENDIF
173  
174       ELSEIF(ILIM.EQ.1) THEN
175 C...Calculate limits on tau
176 C...0) due to definition
177         TAUMN0=0.
178         TAUMX0=1.
179 C...1) due to limits on subsystem mass
180         TAUMN1=CKIN(1)**2/VINT(2)
181         TAUMX1=1.
182         IF(CKIN(2).GE.0.) TAUMX1=CKIN(2)**2/VINT(2)
183 C...2) due to limits on pT-hat (and non-overlapping rapidity intervals)
184         TM3=SQRT(SQM3+PTHMIN**2)
185         TM4=SQRT(SQM4+PTHMIN**2)
186         YDCOSH=1.
187         IF(CKIN09.GT.CKIN12) YDCOSH=COSH(CKIN09-CKIN12)
188         TAUMN2=(TM3**2+2.*TM3*TM4*YDCOSH+TM4**2)/VINT(2)
189         TAUMX2=1.
190 C...3) due to limits on pT-hat and cos(theta-hat)
191         CTH2MN=MIN(CKIN(27)**2,CKIN(28)**2)
192         CTH2MX=MAX(CKIN(27)**2,CKIN(28)**2)
193         TAUMN3=0.
194         IF(CKIN(27)*CKIN(28).GT.0.) TAUMN3=
195      &  (SQRT(SQM3+PTHMIN**2/(1.-CTH2MN))+
196      &  SQRT(SQM4+PTHMIN**2/(1.-CTH2MN)))**2/VINT(2)
197         TAUMX3=1.
198         IF(CKIN(4).GE.0..AND.CTH2MX.LT.1.) TAUMX3=
199      &  (SQRT(SQM3+CKIN(4)**2/(1.-CTH2MX))+
200      &  SQRT(SQM4+CKIN(4)**2/(1.-CTH2MX)))**2/VINT(2)
201 C...4) due to limits on x1 and x2
202         TAUMN4=CKIN(21)*CKIN(23)
203         TAUMX4=CKIN(22)*CKIN(24)
204 C...5) due to limits on xF
205         TAUMN5=0.
206         TAUMX5=MAX(1.-CKIN(25),1.+CKIN(26))
207 C...6) due to limits on that and uhat
208         TAUMN6=(SQM3+SQM4+CKIN(35)+CKIN(37))/VINT(2)
209         TAUMX6=1.
210         IF(CKIN(36).GT.0..AND.CKIN(38).GT.0.) TAUMX6=
211      &  (SQM3+SQM4+CKIN(36)+CKIN(38))/VINT(2)
212  
213 C...Net effect of all separate limits.
214         VINT(11)=MAX(TAUMN0,TAUMN1,TAUMN2,TAUMN3,TAUMN4,TAUMN5,TAUMN6)
215         VINT(31)=MIN(TAUMX0,TAUMX1,TAUMX2,TAUMX3,TAUMX4,TAUMX5,TAUMX6)
216         IF(MINT(47).EQ.1.AND.(ISTSB.EQ.1.OR.ISTSB.EQ.2.OR.ISTSB.EQ.6))
217      &  THEN
218           VINT(11)=0.99999
219           VINT(31)=1.00001
220         ELSEIF(MINT(47).EQ.5) THEN
221           VINT(31)=MIN(VINT(31),0.999998)
222         ENDIF
223         IF(VINT(31).LE.VINT(11)) MINT(51)=1
224  
225       ELSEIF(ILIM.EQ.2) THEN
226 C...Calculate limits on y*
227         TAUE=TAU
228         IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=VINT(26)
229         TAURT=SQRT(TAUE)
230 C...0) due to kinematics
231         YSTMN0=LOG(TAURT)
232         YSTMX0=-YSTMN0
233 C...1) due to explicit limits
234         YSTMN1=CKIN(7)
235         YSTMX1=CKIN(8)
236 C...2) due to limits on x1
237         YSTMN2=LOG(MAX(TAUE,CKIN(21))/TAURT)
238         YSTMX2=LOG(MAX(TAUE,CKIN(22))/TAURT)
239 C...3) due to limits on x2
240         YSTMN3=-LOG(MAX(TAUE,CKIN(24))/TAURT)
241         YSTMX3=-LOG(MAX(TAUE,CKIN(23))/TAURT)
242 C...4) due to limits on xF
243         YEPMN4=0.5*ABS(CKIN(25))/TAURT
244         YSTMN4=SIGN(LOG(MAX(1E-20,SQRT(1.+YEPMN4**2)+YEPMN4)),CKIN(25))
245         YEPMX4=0.5*ABS(CKIN(26))/TAURT
246         YSTMX4=SIGN(LOG(MAX(1E-20,SQRT(1.+YEPMX4**2)+YEPMX4)),CKIN(26))
247 C...5) due to simultaneous limits on y-large and y-small
248         YEPSMN=(RM3-RM4)*SINH(CKIN09-CKIN11)
249         YEPSMX=(RM3-RM4)*SINH(CKIN10-CKIN12)
250         YDIFMN=ABS(LOG(MAX(1E-20,SQRT(1.+YEPSMN**2)-YEPSMN)))
251         YDIFMX=ABS(LOG(MAX(1E-20,SQRT(1.+YEPSMX**2)-YEPSMX)))
252         YSTMN5=0.5*(CKIN09+CKIN11-YDIFMN)
253         YSTMX5=0.5*(CKIN10+CKIN12+YDIFMX)
254 C...6) due to simultaneous limits on cos(theta-hat) and y-large or
255 C...   y-small
256         CTHLIM=SQRT(MAX(0.,1.-4.*PTHMIN**2/(BE34**2*TAUE*VINT(2))))
257         RZMN=BE34*MAX(CKIN(27),-CTHLIM)
258         RZMX=BE34*MIN(CKIN(28),CTHLIM)
259         YEX3MX=(1.+RM3-RM4+RZMX)/MAX(1E-10,1.+RM3-RM4-RZMX)
260         YEX4MX=(1.+RM4-RM3-RZMN)/MAX(1E-10,1.+RM4-RM3+RZMN)
261         YEX3MN=MAX(1E-10,1.+RM3-RM4+RZMN)/(1.+RM3-RM4-RZMN)
262         YEX4MN=MAX(1E-10,1.+RM4-RM3-RZMX)/(1.+RM4-RM3+RZMX)
263         YSTMN6=CKIN09-0.5*LOG(MAX(YEX3MX,YEX4MX))
264         YSTMX6=CKIN12-0.5*LOG(MIN(YEX3MN,YEX4MN))
265  
266 C...Net effect of all separate limits.
267         VINT(12)=MAX(YSTMN0,YSTMN1,YSTMN2,YSTMN3,YSTMN4,YSTMN5,YSTMN6)
268         VINT(32)=MIN(YSTMX0,YSTMX1,YSTMX2,YSTMX3,YSTMX4,YSTMX5,YSTMX6)
269         IF(MINT(47).EQ.1) THEN
270           VINT(12)=-0.00001
271           VINT(32)=0.00001
272         ELSEIF(MINT(47).EQ.2) THEN
273           VINT(12)=0.99999*YSTMX0
274           VINT(32)=1.00001*YSTMX0
275         ELSEIF(MINT(47).EQ.3) THEN
276           VINT(12)=-1.00001*YSTMX0
277           VINT(32)=-0.99999*YSTMX0
278         ELSEIF(MINT(47).EQ.5) THEN
279           YSTEE=LOG(0.999999/TAURT)
280           VINT(12)=MAX(VINT(12),-YSTEE)
281           VINT(32)=MIN(VINT(32),YSTEE)
282         ENDIF
283         IF(VINT(32).LE.VINT(12)) MINT(51)=1
284  
285       ELSEIF(ILIM.EQ.3) THEN
286 C...Calculate limits on cos(theta-hat)
287         YST=VINT(22)
288 C...0) due to definition
289         CTNMN0=-1.
290         CTNMX0=0.
291         CTPMN0=0.
292         CTPMX0=1.
293 C...1) due to explicit limits
294         CTNMN1=MIN(0.,CKIN(27))
295         CTNMX1=MIN(0.,CKIN(28))
296         CTPMN1=MAX(0.,CKIN(27))
297         CTPMX1=MAX(0.,CKIN(28))
298 C...2) due to limits on pT-hat
299         CTNMN2=-SQRT(MAX(0.,1.-4.*PTHMIN**2/(BE34**2*TAU*VINT(2))))
300         CTPMX2=-CTNMN2
301         CTNMX2=0.
302         CTPMN2=0.
303         IF(CKIN(4).GE.0.) THEN
304           CTNMX2=-SQRT(MAX(0.,1.-4.*CKIN(4)**2/(BE34**2*TAU*VINT(2))))
305           CTPMN2=-CTNMX2
306         ENDIF
307 C...3) due to limits on y-large and y-small
308         CTNMN3=MIN(0.,MAX((1.+RM3-RM4)/BE34*TANH(CKIN11-YST),
309      &  -(1.-RM3+RM4)/BE34*TANH(CKIN10-YST)))
310         CTNMX3=MIN(0.,(1.+RM3-RM4)/BE34*TANH(CKIN12-YST),
311      &  -(1.-RM3+RM4)/BE34*TANH(CKIN09-YST))
312         CTPMN3=MAX(0.,(1.+RM3-RM4)/BE34*TANH(CKIN09-YST),
313      &  -(1.-RM3+RM4)/BE34*TANH(CKIN12-YST))
314         CTPMX3=MAX(0.,MIN((1.+RM3-RM4)/BE34*TANH(CKIN10-YST),
315      &  -(1.-RM3+RM4)/BE34*TANH(CKIN11-YST)))
316 C...4) due to limits on that
317         CTNMN4=-1.
318         CTNMX4=0.
319         CTPMN4=0.
320         CTPMX4=1.
321         SH=TAU*VINT(2)
322         IF(CKIN(35).GT.0.) THEN
323           CTLIM=(1.-RM3-RM4-2.*CKIN(35)/SH)/BE34
324           IF(CTLIM.GT.0.) THEN
325             CTPMX4=CTLIM
326           ELSE
327             CTPMX4=0.
328             CTNMX4=CTLIM
329           ENDIF
330         ENDIF
331         IF(CKIN(36).GT.0.) THEN
332           CTLIM=(1.-RM3-RM4-2.*CKIN(36)/SH)/BE34
333           IF(CTLIM.LT.0.) THEN
334             CTNMN4=CTLIM
335           ELSE
336             CTNMN4=0.
337             CTPMN4=CTLIM
338           ENDIF
339         ENDIF
340 C...5) due to limits on uhat
341         CTNMN5=-1.
342         CTNMX5=0.
343         CTPMN5=0.
344         CTPMX5=1.
345         IF(CKIN(37).GT.0.) THEN
346           CTLIM=(2.*CKIN(37)/SH-(1.-RM3-RM4))/BE34
347           IF(CTLIM.LT.0.) THEN
348             CTNMN5=CTLIM
349           ELSE
350             CTNMN5=0.
351             CTPMN5=CTLIM
352           ENDIF
353         ENDIF
354         IF(CKIN(38).GT.0.) THEN
355           CTLIM=(2.*CKIN(38)/SH-(1.-RM3-RM4))/BE34
356           IF(CTLIM.GT.0.) THEN
357             CTPMX5=CTLIM
358           ELSE
359             CTPMX5=0.
360             CTNMX5=CTLIM
361           ENDIF
362         ENDIF
363  
364 C...Net effect of all separate limits.
365         VINT(13)=MAX(CTNMN0,CTNMN1,CTNMN2,CTNMN3,CTNMN4,CTNMN5)
366         VINT(33)=MIN(CTNMX0,CTNMX1,CTNMX2,CTNMX3,CTNMX4,CTNMX5)
367         VINT(14)=MAX(CTPMN0,CTPMN1,CTPMN2,CTPMN3,CTPMN4,CTPMN5)
368         VINT(34)=MIN(CTPMX0,CTPMX1,CTPMX2,CTPMX3,CTPMX4,CTPMX5)
369         IF(VINT(33).LE.VINT(13).AND.VINT(34).LE.VINT(14)) MINT(51)=1
370  
371       ELSEIF(ILIM.EQ.4) THEN
372 C...Calculate limits on tau'
373 C...0) due to kinematics
374         TAPMN0=TAU
375         IF((ISTSB.EQ.5.OR.ISTSB.EQ.6).AND.KFPR(ISUB,2).GT.0) THEN
376           PQRAT=2.*PMAS(KFPR(ISUB,2),1)/VINT(1)
377           TAPMN0=(SQRT(TAU)+PQRAT)**2
378         ENDIF
379         TAPMX0=1.
380 C...1) due to explicit limits
381         TAPMN1=CKIN(31)**2/VINT(2)
382         TAPMX1=1.
383         IF(CKIN(32).GE.0.) TAPMX1=CKIN(32)**2/VINT(2)
384  
385 C...Net effect of all separate limits.
386         VINT(16)=MAX(TAPMN0,TAPMN1)
387         VINT(36)=MIN(TAPMX0,TAPMX1)
388         IF(MINT(47).EQ.1) THEN
389           VINT(16)=0.99999
390           VINT(36)=1.00001
391         ENDIF
392         IF(VINT(36).LE.VINT(16)) MINT(51)=1
393  
394       ENDIF
395       RETURN
396  
397 C...Special case for low-pT and multiple interactions:
398 C...effective kinematical limits for tau, y*, cos(theta-hat).
399   110 IF(ILIM.EQ.0) THEN
400       ELSEIF(ILIM.EQ.1) THEN
401         IF(MSTP(82).LE.1) VINT(11)=4.*PARP(81)**2/VINT(2)
402         IF(MSTP(82).GE.2) VINT(11)=PARP(82)**2/VINT(2)
403         VINT(31)=1.
404       ELSEIF(ILIM.EQ.2) THEN
405         VINT(12)=0.5*LOG(VINT(21))
406         VINT(32)=-VINT(12)
407       ELSEIF(ILIM.EQ.3) THEN
408         IF(MSTP(82).LE.1) ST2EFF=4.*PARP(81)**2/(VINT(21)*VINT(2))
409         IF(MSTP(82).GE.2) ST2EFF=0.01*PARP(82)**2/(VINT(21)*VINT(2))
410         VINT(13)=-SQRT(MAX(0.,1.-ST2EFF))
411         VINT(33)=0.
412         VINT(14)=0.
413         VINT(34)=-VINT(13)
414       ENDIF
415  
416       RETURN
417       END