2 C*********************************************************************
4 SUBROUTINE PYKCUT(MCUT)
6 C...Dummy routine, which the user can replace in order to make cuts on
7 C...the kinematics on the parton level before the matrix elements are
8 C...evaluated and the event is generated. The cross-section estimates
9 C...will automatically take these cuts into account, so the given
10 C...values are for the allowed phase space region only. MCUT=0 means
11 C...that the event has passed the cuts, MCUT=1 that it has failed.
12 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(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 /PYINT1/,/PYINT2/
18 C...Set default value (accepting event) for MCUT.
21 C...Read out subprocess number.
25 C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
29 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4.OR.ISTSB.EQ.6) CTH=VINT(23)
31 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
33 C...Calculate x_1, x_2, x_F.
34 IF(ISTSB.LE.2.OR.ISTSB.GE.6) THEN
36 X2=SQRT(TAU)*EXP(-YST)
38 X1=SQRT(TAUP)*EXP(YST)
39 X2=SQRT(TAUP)*EXP(-YST)
43 C...Calculate shat, that, uhat, p_T^2.
49 BE34=SQRT(MAX(0.,(1.-RM3-RM4)**2-4.*RM3*RM4))
50 RPTS=4.*VINT(71)**2/SHAT
51 BE34L=SQRT(MAX(0.,(1.-RM3-RM4)**2-4.*RM3*RM4-RPTS))
54 RTHM=(4.*RM3*RM4+RPTS)/(1.-RM3-RM4+BE34L)
55 THAT=-0.5*SHAT*MAX(RTHM,1.-RM3-RM4-BE34*CTH)
56 UHAT=-0.5*SHAT*MAX(RTHM,1.-RM3-RM4+BE34*CTH)
57 PT2=MAX(VINT(71)**2,0.25*SHAT*BE34**2*(1.-CTH**2))
59 C...Decisions by user to be put here.
61 C...Stop program if this routine is ever called.
62 C...You should not copy these lines to your own routine.
64 IF(RLU(0).LT.10.) STOP
66 C...Format for error printout.
67 5000 FORMAT(1X,'Error: you did not link your PYKCUT routine ',
68 &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
69 &1X,'Execution stopped!')