]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA/pythia/pykcut.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / pythia / pykcut.F
CommitLineData
fe4da5cc 1
2C*********************************************************************
3
4 SUBROUTINE PYKCUT(MCUT)
5
6C...Dummy routine, which the user can replace in order to make cuts on
7C...the kinematics on the parton level before the matrix elements are
8C...evaluated and the event is generated. The cross-section estimates
9C...will automatically take these cuts into account, so the given
10C...values are for the allowed phase space region only. MCUT=0 means
11C...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
18C...Set default value (accepting event) for MCUT.
19 MCUT=0
20
21C...Read out subprocess number.
22 ISUB=MINT(1)
23 ISTSB=ISET(ISUB)
24
25C...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
33C...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
43C...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
59C...Decisions by user to be put here.
60
61C...Stop program if this routine is ever called.
62C...You should not copy these lines to your own routine.
63 WRITE(MSTU(11),5000)
64 IF(RLU(0).LT.10.) STOP
65
66C...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