Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:12

0001  
0002 C***********************************************************************
0003  
0004 C...PYKLIM
0005 C...Checks generated variables against pre-set kinematical limits;
0006 C...also calculates limits on variables used in generation.
0007  
0008       SUBROUTINE PYKLIM(ILIM)
0009  
0010 C...Double precision and integer declarations.
0011       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0012       IMPLICIT INTEGER(I-N)
0013       INTEGER PYK,PYCHGE,PYCOMP
0014 C...Commonblocks.
0015       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0016       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0017       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0018       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
0019       COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
0020       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0021       COMMON/PYINT1/MINT(400),VINT(400)
0022       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
0023       SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,
0024      &/PYINT1/,/PYINT2/
0025  
0026 C...Common kinematical expressions.
0027       MINT(51)=0
0028       ISUB=MINT(1)
0029       ISTSB=ISET(ISUB)
0030       IF(ISUB.EQ.96) GOTO 100
0031       SQM3=VINT(63)
0032       SQM4=VINT(64)
0033       IF(ILIM.NE.0) THEN
0034         IF(ABS(SQM3).LT.1D-4.AND.ABS(SQM4).LT.1D-4) THEN
0035           CKIN09=MAX(CKIN(9),CKIN(13))
0036           CKIN10=MIN(CKIN(10),CKIN(14))
0037           CKIN11=MAX(CKIN(11),CKIN(15))
0038           CKIN12=MIN(CKIN(12),CKIN(16))
0039         ELSE
0040           CKIN09=MAX(CKIN(9),MIN(0D0,CKIN(13)))
0041           CKIN10=MIN(CKIN(10),MAX(0D0,CKIN(14)))
0042           CKIN11=MAX(CKIN(11),MIN(0D0,CKIN(15)))
0043           CKIN12=MIN(CKIN(12),MAX(0D0,CKIN(16)))
0044         ENDIF
0045       ENDIF
0046       IF(ILIM.NE.1) THEN
0047         TAU=VINT(21)
0048         RM3=SQM3/(TAU*VINT(2))
0049         RM4=SQM4/(TAU*VINT(2))
0050         BE34=SQRT(MAX(1D-20,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
0051       ENDIF
0052       PTHMIN=CKIN(3)
0053       IF(MIN(SQM3,SQM4).LT.CKIN(6)**2.AND.ISTSB.NE.1.AND.ISTSB.NE.3)
0054      &PTHMIN=MAX(CKIN(3),CKIN(5))
0055  
0056       IF(ILIM.EQ.0) THEN
0057 C...Check generated values of tau, y*, cos(theta-hat), and tau' against
0058 C...pre-set kinematical limits.
0059         YST=VINT(22)
0060         CTH=VINT(23)
0061         TAUP=VINT(26)
0062         TAUE=TAU
0063         IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=TAUP
0064         X1=SQRT(TAUE)*EXP(YST)
0065         X2=SQRT(TAUE)*EXP(-YST)
0066         XF=X1-X2
0067         IF(MINT(47).NE.1) THEN
0068           IF(TAU*VINT(2).LT.CKIN(1)**2) MINT(51)=1
0069           IF(CKIN(2).GE.0D0.AND.TAU*VINT(2).GT.CKIN(2)**2) MINT(51)=1
0070           IF(YST.LT.CKIN(7).OR.YST.GT.CKIN(8)) MINT(51)=1
0071           IF(XF.LT.CKIN(25).OR.XF.GT.CKIN(26)) MINT(51)=1
0072         ENDIF
0073         IF(MINT(45).NE.1) THEN
0074           IF(X1.LT.CKIN(21).OR.X1.GT.CKIN(22)) MINT(51)=1
0075         ENDIF
0076         IF(MINT(46).NE.1) THEN
0077           IF(X2.LT.CKIN(23).OR.X2.GT.CKIN(24)) MINT(51)=1
0078         ENDIF
0079         IF(MINT(45).EQ.2) THEN
0080           IF(X1.GT.1D0-2D0*PARP(111)/VINT(1)) MINT(51)=1
0081         ENDIF
0082         IF(MINT(46).EQ.2) THEN
0083           IF(X2.GT.1D0-2D0*PARP(111)/VINT(1)) MINT(51)=1
0084         ENDIF
0085         IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
0086           PTH=0.5D0*BE34*SQRT(TAU*VINT(2)*MAX(0D0,1D0-CTH**2))
0087           EXPY3=MAX(1D-20,(1D0+RM3-RM4+BE34*CTH)/
0088      &    MAX(1D-20,(1D0+RM3-RM4-BE34*CTH)))
0089           EXPY4=MAX(1D-20,(1D0-RM3+RM4-BE34*CTH)/
0090      &    MAX(1D-20,(1D0-RM3+RM4+BE34*CTH)))
0091           Y3=YST+0.5D0*LOG(EXPY3)
0092           Y4=YST+0.5D0*LOG(EXPY4)
0093           YLARGE=MAX(Y3,Y4)
0094           YSMALL=MIN(Y3,Y4)
0095           ETALAR=20D0
0096           ETASMA=-20D0
0097           STH=SQRT(MAX(0D0,1D0-CTH**2))
0098           EXSQ3=SQRT(MAX(1D-20,((1D0+RM3-RM4)*COSH(YST)+BE34*SINH(YST)*
0099      &    CTH)**2-4D0*RM3))
0100           EXSQ4=SQRT(MAX(1D-20,((1D0-RM3+RM4)*COSH(YST)-BE34*SINH(YST)*
0101      &    CTH)**2-4D0*RM4))
0102           IF(STH.GE.1D-10) THEN
0103             EXPET3=((1D0+RM3-RM4)*SINH(YST)+BE34*COSH(YST)*CTH+EXSQ3)/
0104      &      (BE34*STH)
0105             EXPET4=((1D0-RM3+RM4)*SINH(YST)-BE34*COSH(YST)*CTH+EXSQ4)/
0106      &      (BE34*STH)
0107             ETA3=LOG(MIN(1D10,MAX(1D-10,EXPET3)))
0108             ETA4=LOG(MIN(1D10,MAX(1D-10,EXPET4)))
0109             ETALAR=MAX(ETA3,ETA4)
0110             ETASMA=MIN(ETA3,ETA4)
0111           ENDIF
0112           CTS3=((1D0+RM3-RM4)*SINH(YST)+BE34*COSH(YST)*CTH)/EXSQ3
0113           CTS4=((1D0-RM3+RM4)*SINH(YST)-BE34*COSH(YST)*CTH)/EXSQ4
0114           CTSLAR=MIN(1D0,MAX(-1D0,CTS3,CTS4))
0115           CTSSMA=MAX(-1D0,MIN(1D0,CTS3,CTS4))
0116           SH=TAU*VINT(2)
0117           RPTS=4D0*VINT(71)**2/SH
0118           BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
0119           RM34=MAX(1D-20,2D0*RM3*RM4)
0120           IF(2D0*VINT(71)**2/(VINT(21)*VINT(2)).LT.0.0001D0)
0121      &    RM34=MAX(RM34,2D0*VINT(71)**2/(VINT(21)*VINT(2)))
0122           RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
0123           THA=0.5D0*SH*MAX(RTHM,1D0-RM3-RM4-BE34*CTH)
0124           UHA=0.5D0*SH*MAX(RTHM,1D0-RM3-RM4+BE34*CTH)
0125           IF(PTH.LT.PTHMIN) MINT(51)=1
0126           IF(CKIN(4).GE.0D0.AND.PTH.GT.CKIN(4)) MINT(51)=1
0127           IF(YLARGE.LT.CKIN(9).OR.YLARGE.GT.CKIN(10)) MINT(51)=1
0128           IF(YSMALL.LT.CKIN(11).OR.YSMALL.GT.CKIN(12)) MINT(51)=1
0129           IF(ETALAR.LT.CKIN(13).OR.ETALAR.GT.CKIN(14)) MINT(51)=1
0130           IF(ETASMA.LT.CKIN(15).OR.ETASMA.GT.CKIN(16)) MINT(51)=1
0131           IF(CTSLAR.LT.CKIN(17).OR.CTSLAR.GT.CKIN(18)) MINT(51)=1
0132           IF(CTSSMA.LT.CKIN(19).OR.CTSSMA.GT.CKIN(20)) MINT(51)=1
0133           IF(CTH.LT.CKIN(27).OR.CTH.GT.CKIN(28)) MINT(51)=1
0134           IF(THA.LT.CKIN(35)) MINT(51)=1
0135           IF(CKIN(36).GE.0D0.AND.THA.GT.CKIN(36)) MINT(51)=1
0136           IF(UHA.LT.CKIN(37)) MINT(51)=1
0137           IF(CKIN(38).GE.0D0.AND.UHA.GT.CKIN(38)) MINT(51)=1
0138         ENDIF
0139         IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
0140           IF(TAUP*VINT(2).LT.CKIN(31)**2) MINT(51)=1
0141           IF(CKIN(32).GE.0D0.AND.TAUP*VINT(2).GT.CKIN(32)**2) MINT(51)=1
0142         ENDIF
0143  
0144 C...Additional cuts on W2 (approximately) in DIS.
0145         IF(ISUB.EQ.10.AND.MINT(43).GE.2) THEN
0146           XBJ=X2
0147           IF(IABS(MINT(12)).LT.20) XBJ=X1
0148           Q2BJ=THA
0149           W2BJ=Q2BJ*(1D0-XBJ)/XBJ
0150           IF(W2BJ.LT.CKIN(39)) MINT(51)=1
0151           IF(CKIN(40).GT.0D0.AND.W2BJ.GT.CKIN(40)) MINT(51)=1
0152         ENDIF
0153  
0154       ELSEIF(ILIM.EQ.1) THEN
0155 C...Calculate limits on tau
0156 C...0) due to definition
0157         TAUMN0=0D0
0158         TAUMX0=1D0
0159 C...1) due to limits on subsystem mass
0160         TAUMN1=CKIN(1)**2/VINT(2)
0161         TAUMX1=1D0
0162         IF(CKIN(2).GE.0D0) TAUMX1=CKIN(2)**2/VINT(2)
0163 C...2) due to limits on pT-hat (and non-overlapping rapidity intervals)
0164         TM3=SQRT(SQM3+PTHMIN**2)
0165         TM4=SQRT(SQM4+PTHMIN**2)
0166         YDCOSH=1D0
0167         IF(CKIN09.GT.CKIN12) YDCOSH=COSH(CKIN09-CKIN12)
0168         TAUMN2=(TM3**2+2D0*TM3*TM4*YDCOSH+TM4**2)/VINT(2)
0169         TAUMX2=1D0
0170 C...3) due to limits on pT-hat and cos(theta-hat)
0171         CTH2MN=MIN(CKIN(27)**2,CKIN(28)**2)
0172         CTH2MX=MAX(CKIN(27)**2,CKIN(28)**2)
0173         TAUMN3=0D0
0174         IF(CKIN(27)*CKIN(28).GT.0D0) TAUMN3=
0175      &  (SQRT(SQM3+PTHMIN**2/(1D0-CTH2MN))+
0176      &  SQRT(SQM4+PTHMIN**2/(1D0-CTH2MN)))**2/VINT(2)
0177         TAUMX3=1D0
0178         IF(CKIN(4).GE.0D0.AND.CTH2MX.LT.1D0) TAUMX3=
0179      &  (SQRT(SQM3+CKIN(4)**2/(1D0-CTH2MX))+
0180      &  SQRT(SQM4+CKIN(4)**2/(1D0-CTH2MX)))**2/VINT(2)
0181 C...4) due to limits on x1 and x2
0182         TAUMN4=CKIN(21)*CKIN(23)
0183         TAUMX4=CKIN(22)*CKIN(24)
0184 C...5) due to limits on xF
0185         TAUMN5=0D0
0186         TAUMX5=MAX(1D0-CKIN(25),1D0+CKIN(26))
0187 C...6) due to limits on that and uhat
0188         TAUMN6=(SQM3+SQM4+CKIN(35)+CKIN(37))/VINT(2)
0189         TAUMX6=1D0
0190         IF(CKIN(36).GT.0D0.AND.CKIN(38).GT.0D0) TAUMX6=
0191      &  (SQM3+SQM4+CKIN(36)+CKIN(38))/VINT(2)
0192  
0193 C...Net effect of all separate limits.
0194         VINT(11)=MAX(TAUMN0,TAUMN1,TAUMN2,TAUMN3,TAUMN4,TAUMN5,TAUMN6)
0195         VINT(31)=MIN(TAUMX0,TAUMX1,TAUMX2,TAUMX3,TAUMX4,TAUMX5,TAUMX6)
0196         IF(MINT(47).EQ.1.AND.(ISTSB.EQ.1.OR.ISTSB.EQ.2)) THEN
0197           VINT(11)=1D0-1D-9
0198           VINT(31)=1D0+1D-9
0199         ELSEIF(MINT(47).EQ.5) THEN
0200           VINT(31)=MIN(VINT(31),1D0-2D-10)
0201         ELSEIF(MINT(47).GE.6) THEN
0202           VINT(31)=MIN(VINT(31),1D0-1D-10)
0203         ENDIF
0204         IF(VINT(31).LE.VINT(11)) MINT(51)=1
0205  
0206       ELSEIF(ILIM.EQ.2) THEN
0207 C...Calculate limits on y*
0208         TAUE=TAU
0209         IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=VINT(26)
0210         TAURT=SQRT(TAUE)
0211 C...0) due to kinematics
0212         YSTMN0=LOG(TAURT)
0213         YSTMX0=-YSTMN0
0214 C...1) due to explicit limits
0215         YSTMN1=CKIN(7)
0216         YSTMX1=CKIN(8)
0217 C...2) due to limits on x1
0218         YSTMN2=LOG(MAX(TAUE,CKIN(21))/TAURT)
0219         YSTMX2=LOG(MAX(TAUE,CKIN(22))/TAURT)
0220 C...3) due to limits on x2
0221         YSTMN3=-LOG(MAX(TAUE,CKIN(24))/TAURT)
0222         YSTMX3=-LOG(MAX(TAUE,CKIN(23))/TAURT)
0223 C...4) due to limits on xF
0224         YEPMN4=0.5D0*ABS(CKIN(25))/TAURT
0225         YSTMN4=SIGN(LOG(MAX(1D-20,SQRT(1D0+YEPMN4**2)+YEPMN4)),CKIN(25))
0226         YEPMX4=0.5D0*ABS(CKIN(26))/TAURT
0227         YSTMX4=SIGN(LOG(MAX(1D-20,SQRT(1D0+YEPMX4**2)+YEPMX4)),CKIN(26))
0228 C...5) due to simultaneous limits on y-large and y-small
0229         YEPSMN=(RM3-RM4)*SINH(CKIN09-CKIN11)
0230         YEPSMX=(RM3-RM4)*SINH(CKIN10-CKIN12)
0231         YDIFMN=ABS(LOG(MAX(1D-20,SQRT(1D0+YEPSMN**2)-YEPSMN)))
0232         YDIFMX=ABS(LOG(MAX(1D-20,SQRT(1D0+YEPSMX**2)-YEPSMX)))
0233         YSTMN5=0.5D0*(CKIN09+CKIN11-YDIFMN)
0234         YSTMX5=0.5D0*(CKIN10+CKIN12+YDIFMX)
0235 C...6) due to simultaneous limits on cos(theta-hat) and y-large or
0236 C...   y-small
0237         CTHLIM=SQRT(MAX(0D0,1D0-4D0*PTHMIN**2/(BE34**2*TAUE*VINT(2))))
0238         RZMN=BE34*MAX(CKIN(27),-CTHLIM)
0239         RZMX=BE34*MIN(CKIN(28),CTHLIM)
0240         YEX3MX=(1D0+RM3-RM4+RZMX)/MAX(1D-10,1D0+RM3-RM4-RZMX)
0241         YEX4MX=(1D0+RM4-RM3-RZMN)/MAX(1D-10,1D0+RM4-RM3+RZMN)
0242         YEX3MN=MAX(1D-10,1D0+RM3-RM4+RZMN)/(1D0+RM3-RM4-RZMN)
0243         YEX4MN=MAX(1D-10,1D0+RM4-RM3-RZMX)/(1D0+RM4-RM3+RZMX)
0244         YSTMN6=CKIN09-0.5D0*LOG(MAX(YEX3MX,YEX4MX))
0245         YSTMX6=CKIN12-0.5D0*LOG(MIN(YEX3MN,YEX4MN))
0246  
0247 C...Net effect of all separate limits.
0248         VINT(12)=MAX(YSTMN0,YSTMN1,YSTMN2,YSTMN3,YSTMN4,YSTMN5,YSTMN6)
0249         VINT(32)=MIN(YSTMX0,YSTMX1,YSTMX2,YSTMX3,YSTMX4,YSTMX5,YSTMX6)
0250         IF(MINT(47).EQ.1) THEN
0251           VINT(12)=-1D-9
0252           VINT(32)=1D-9
0253         ELSEIF(MINT(47).EQ.2.OR.MINT(47).EQ.6) THEN
0254           VINT(12)=(1D0-1D-9)*YSTMX0
0255           VINT(32)=(1D0+1D-9)*YSTMX0
0256         ELSEIF(MINT(47).EQ.3.OR.MINT(47).EQ.7) THEN
0257           VINT(12)=-(1D0+1D-9)*YSTMX0
0258           VINT(32)=-(1D0-1D-9)*YSTMX0
0259         ELSEIF(MINT(47).EQ.5) THEN
0260           YSTEE=LOG((1D0-1D-10)/TAURT)
0261           VINT(12)=MAX(VINT(12),-YSTEE)
0262           VINT(32)=MIN(VINT(32),YSTEE)
0263         ENDIF
0264         IF(VINT(32).LE.VINT(12)) MINT(51)=1
0265  
0266       ELSEIF(ILIM.EQ.3) THEN
0267 C...Calculate limits on cos(theta-hat)
0268         YST=VINT(22)
0269 C...0) due to definition
0270         CTNMN0=-1D0
0271         CTNMX0=0D0
0272         CTPMN0=0D0
0273         CTPMX0=1D0
0274 C...1) due to explicit limits
0275         CTNMN1=MIN(0D0,CKIN(27))
0276         CTNMX1=MIN(0D0,CKIN(28))
0277         CTPMN1=MAX(0D0,CKIN(27))
0278         CTPMX1=MAX(0D0,CKIN(28))
0279 C...2) due to limits on pT-hat
0280         CTNMN2=-SQRT(MAX(0D0,1D0-4D0*PTHMIN**2/(BE34**2*TAU*VINT(2))))
0281         CTPMX2=-CTNMN2
0282         CTNMX2=0D0
0283         CTPMN2=0D0
0284         IF(CKIN(4).GE.0D0) THEN
0285           CTNMX2=-SQRT(MAX(0D0,1D0-4D0*CKIN(4)**2/
0286      &    (BE34**2*TAU*VINT(2))))
0287           CTPMN2=-CTNMX2
0288         ENDIF
0289 C...3) due to limits on y-large and y-small
0290         CTNMN3=MIN(0D0,MAX((1D0+RM3-RM4)/BE34*TANH(CKIN11-YST),
0291      &  -(1D0-RM3+RM4)/BE34*TANH(CKIN10-YST)))
0292         CTNMX3=MIN(0D0,(1D0+RM3-RM4)/BE34*TANH(CKIN12-YST),
0293      &  -(1D0-RM3+RM4)/BE34*TANH(CKIN09-YST))
0294         CTPMN3=MAX(0D0,(1D0+RM3-RM4)/BE34*TANH(CKIN09-YST),
0295      &  -(1D0-RM3+RM4)/BE34*TANH(CKIN12-YST))
0296         CTPMX3=MAX(0D0,MIN((1D0+RM3-RM4)/BE34*TANH(CKIN10-YST),
0297      &  -(1D0-RM3+RM4)/BE34*TANH(CKIN11-YST)))
0298 C...4) due to limits on that
0299         CTNMN4=-1D0
0300         CTNMX4=0D0
0301         CTPMN4=0D0
0302         CTPMX4=1D0
0303         SH=TAU*VINT(2)
0304         IF(CKIN(35).GT.0D0) THEN
0305           CTLIM=(1D0-RM3-RM4-2D0*CKIN(35)/SH)/BE34
0306           IF(CTLIM.GT.0D0) THEN
0307             CTPMX4=CTLIM
0308           ELSE
0309             CTPMX4=0D0
0310             CTNMX4=CTLIM
0311           ENDIF
0312         ENDIF
0313         IF(CKIN(36).GT.0D0) THEN
0314           CTLIM=(1D0-RM3-RM4-2D0*CKIN(36)/SH)/BE34
0315           IF(CTLIM.LT.0D0) THEN
0316             CTNMN4=CTLIM
0317           ELSE
0318             CTNMN4=0D0
0319             CTPMN4=CTLIM
0320           ENDIF
0321         ENDIF
0322 C...5) due to limits on uhat
0323         CTNMN5=-1D0
0324         CTNMX5=0D0
0325         CTPMN5=0D0
0326         CTPMX5=1D0
0327         IF(CKIN(37).GT.0D0) THEN
0328           CTLIM=(2D0*CKIN(37)/SH-(1D0-RM3-RM4))/BE34
0329           IF(CTLIM.LT.0D0) THEN
0330             CTNMN5=CTLIM
0331           ELSE
0332             CTNMN5=0D0
0333             CTPMN5=CTLIM
0334           ENDIF
0335         ENDIF
0336         IF(CKIN(38).GT.0D0) THEN
0337           CTLIM=(2D0*CKIN(38)/SH-(1D0-RM3-RM4))/BE34
0338           IF(CTLIM.GT.0D0) THEN
0339             CTPMX5=CTLIM
0340           ELSE
0341             CTPMX5=0D0
0342             CTNMX5=CTLIM
0343           ENDIF
0344         ENDIF
0345  
0346 C...Net effect of all separate limits.
0347         VINT(13)=MAX(CTNMN0,CTNMN1,CTNMN2,CTNMN3,CTNMN4,CTNMN5)
0348         VINT(33)=MIN(CTNMX0,CTNMX1,CTNMX2,CTNMX3,CTNMX4,CTNMX5)
0349         VINT(14)=MAX(CTPMN0,CTPMN1,CTPMN2,CTPMN3,CTPMN4,CTPMN5)
0350         VINT(34)=MIN(CTPMX0,CTPMX1,CTPMX2,CTPMX3,CTPMX4,CTPMX5)
0351         IF(VINT(33).LE.VINT(13).AND.VINT(34).LE.VINT(14)) MINT(51)=1
0352 
0353         IF(VINT(14).GT.VINT(34)) VINT(34)=VINT(14)
0354         IF(VINT(13).GT.VINT(33)) VINT(33)=VINT(13)
0355 
0356       ELSEIF(ILIM.EQ.4) THEN
0357 C...Calculate limits on tau'
0358 C...0) due to kinematics
0359         TAPMN0=TAU
0360         IF(ISTSB.EQ.5.AND.VINT(201).GT.0D0) THEN
0361           PQRAT=(VINT(201)+VINT(206))/VINT(1)
0362           TAPMN0=(SQRT(TAU)+PQRAT)**2
0363         ENDIF
0364         TAPMX0=1D0
0365 C...1) due to explicit limits
0366         TAPMN1=CKIN(31)**2/VINT(2)
0367         TAPMX1=1D0
0368         IF(CKIN(32).GE.0D0) TAPMX1=CKIN(32)**2/VINT(2)
0369  
0370 C...Net effect of all separate limits.
0371         VINT(16)=MAX(TAPMN0,TAPMN1)
0372         VINT(36)=MIN(TAPMX0,TAPMX1)
0373         IF(MINT(47).EQ.1) THEN
0374           VINT(16)=1D0-1D-9
0375           VINT(36)=1D0+1D-9
0376         ELSEIF(MINT(47).EQ.5) THEN
0377           VINT(36)=MIN(VINT(36),1D0-2D-10)
0378         ELSEIF(MINT(47).EQ.6.OR.MINT(47).EQ.7) THEN
0379           VINT(36)=MIN(VINT(36),1D0-1D-10)
0380         ENDIF
0381         IF(VINT(36).LE.VINT(16)) MINT(51)=1
0382  
0383       ENDIF
0384       RETURN
0385  
0386 C...Special case for low-pT and multiple interactions:
0387 C...effective kinematical limits for tau, y*, cos(theta-hat).
0388   100 IF(ILIM.EQ.0) THEN
0389       ELSEIF(ILIM.EQ.1) THEN
0390         IF(MSTP(82).LE.1) THEN
0391           VINT(11)=4D0*(PARP(81)*(VINT(1)/PARP(89))**PARP(90))**2/
0392      &    VINT(2)
0393         ELSE
0394           VINT(11)=(PARP(82)*(VINT(1)/PARP(89))**PARP(90))**2/VINT(2)
0395         ENDIF
0396         VINT(31)=1D0
0397       ELSEIF(ILIM.EQ.2) THEN
0398         VINT(12)=0.5D0*LOG(VINT(21))
0399         VINT(32)=-VINT(12)
0400       ELSEIF(ILIM.EQ.3) THEN
0401         IF(MSTP(82).LE.1) THEN
0402           ST2EFF=4D0*(PARP(81)*(VINT(1)/PARP(89))**PARP(90))**2/
0403      &    (VINT(21)*VINT(2))
0404         ELSE
0405           ST2EFF=0.01D0*(PARP(82)*(VINT(1)/PARP(89))**PARP(90))**2/
0406      &    (VINT(21)*VINT(2))
0407         ENDIF
0408         VINT(13)=-SQRT(MAX(0D0,1D0-ST2EFF))
0409         VINT(33)=0D0
0410         VINT(14)=0D0
0411         VINT(34)=-VINT(13)
0412       ENDIF
0413  
0414       RETURN
0415       END