]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | |
2 | C********************************************************************* | |
3 | ||
4 | SUBROUTINE PYKCUT(MCUT) | |
5 | ||
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) | |
13 | SAVE /LUDAT1/ | |
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/ | |
17 | ||
18 | C...Set default value (accepting event) for MCUT. | |
19 | MCUT=0 | |
20 | ||
21 | C...Read out subprocess number. | |
22 | ISUB=MINT(1) | |
23 | ISTSB=ISET(ISUB) | |
24 | ||
25 | C...Read out tau, y*, cos(theta), tau' (where defined, else =0). | |
26 | TAU=VINT(21) | |
27 | YST=VINT(22) | |
28 | CTH=0. | |
29 | IF(ISTSB.EQ.2.OR.ISTSB.EQ.4.OR.ISTSB.EQ.6) CTH=VINT(23) | |
30 | TAUP=0. | |
31 | IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26) | |
32 | ||
33 | C...Calculate x_1, x_2, x_F. | |
34 | IF(ISTSB.LE.2.OR.ISTSB.GE.6) THEN | |
35 | X1=SQRT(TAU)*EXP(YST) | |
36 | X2=SQRT(TAU)*EXP(-YST) | |
37 | ELSE | |
38 | X1=SQRT(TAUP)*EXP(YST) | |
39 | X2=SQRT(TAUP)*EXP(-YST) | |
40 | ENDIF | |
41 | XF=X1-X2 | |
42 | ||
43 | C...Calculate shat, that, uhat, p_T^2. | |
44 | SHAT=TAU*VINT(2) | |
45 | SQM3=VINT(63) | |
46 | SQM4=VINT(64) | |
47 | RM3=SQM3/SHAT | |
48 | RM4=SQM4/SHAT | |
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)) | |
52 | RM34=2.*RM3*RM4 | |
53 | RSQM=1.+RM34 | |
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)) | |
58 | ||
59 | C...Decisions by user to be put here. | |
60 | ||
61 | C...Stop program if this routine is ever called. | |
62 | C...You should not copy these lines to your own routine. | |
63 | WRITE(MSTU(11),5000) | |
64 | IF(RLU(0).LT.10.) STOP | |
65 | ||
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!') | |
70 | ||
71 | RETURN | |
72 | END |