1 #include "isajet/pilot.h"
3 C GENERATE E+ E- ----> QK QB EVENT USING SIGEE CROSS SECTION.
4 #include "isajet/itapes.inc"
5 #include "isajet/jetsig.inc"
6 #include "isajet/eepar.inc"
7 #include "isajet/primar.inc"
8 #include "isajet/pjets.inc"
9 #include "isajet/pinits.inc"
10 #include "isajet/jetpar.inc"
11 #include "isajet/jetlim.inc"
12 #include "isajet/const.inc"
13 #include "isajet/totals.inc"
14 #include "isajet/partcl.inc"
15 #include "isajet/xmssm.inc"
16 #include "isajet/sstype.inc"
17 REAL AMQ(2),SSXLAM,RSH,XD,GAM,V,DUMMY
18 INTEGER MSUPL,MSDNL,MSSTL,MSCHL,MSBT1,MSTP1,
19 $MSUPR,MSDNR,MSSTR,MSCHR,MSBT2,MSTP2,MSW1,MSW2,
20 $MSNEL,MSEL,MSNML,MSMUL,MSNTL,MSTAU1,MSER,MSMUR,MSTAU2,IDSS(85)
21 PARAMETER (MSUPL=-ISUPL)
22 PARAMETER (MSDNL=-ISDNL)
23 PARAMETER (MSSTL=-ISSTL)
24 PARAMETER (MSCHL=-ISCHL)
25 PARAMETER (MSBT1=-ISBT1)
26 PARAMETER (MSTP1=-ISTP1)
27 PARAMETER (MSUPR=-ISUPR)
28 PARAMETER (MSDNR=-ISDNR)
29 PARAMETER (MSSTR=-ISSTR)
30 PARAMETER (MSCHR=-ISCHR)
31 PARAMETER (MSBT2=-ISBT2)
32 PARAMETER (MSTP2=-ISTP2)
33 PARAMETER (MSW1=-ISW1)
34 PARAMETER (MSW2=-ISW2)
35 PARAMETER (MSNEL=-ISNEL)
36 PARAMETER (MSEL=-ISEL)
37 PARAMETER (MSNML=-ISNML)
38 PARAMETER (MSMUL=-ISMUL)
39 PARAMETER (MSNTL=-ISNTL)
40 PARAMETER (MSTAU1=-ISTAU1)
41 PARAMETER (MSER=-ISER)
42 PARAMETER (MSMUR=-ISMUR)
43 PARAMETER (MSTAU2=-ISTAU2)
45 DATA LISTJ/9,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,
46 111,-11,12,-12,13,-13,14,-14,15,-15,16,-16,10,80,-80,90/
48 $ISUPL,MSUPL,ISDNL,MSDNL,ISSTL,MSSTL,ISCHL,MSCHL,ISBT1,MSBT1,
50 $ISUPR,MSUPR,ISDNR,MSDNR,ISSTR,MSSTR,ISCHR,MSCHR,ISBT2,MSBT2,
51 $ISTP2,MSTP2,ISW1,MSW1,ISW2,MSW2,ISZ1,ISZ2,ISZ3,ISZ4,
52 $ISNEL,MSNEL,ISEL,MSEL,ISNML,MSNML,ISMUL,MSMUL,
53 $ISNTL,MSNTL,ISTAU1,MSTAU1,ISER,MSER,ISMUR,MSMUR,
55 $9,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,11,-11,12,-12,13,-13,
56 $14,-14,15,-15,16,-16,10,80,-80,90,82,83,84,86,-86/
65 C GENERATE NEXT KINEMATIC POINT
68 IF(NREJ.GT.NTRIES) GO TO 9999
72 RSH=RSHMIN+(RSHMAX-RSHMIN)*RANF()
75 XD=(1.-SHAT/SCM)*(-1.+2*RANF())
76 X1=(XD+SQRT(XD**2+4*SHAT/SCM))/2.
82 PHI(1)=PHIMIN(1)+(PHIMAX(1)-PHIMIN(1))*RANF()
83 PHI(2)=AMOD(PHI(1)+PI,2.*PI)
84 CTH(1)=XJMIN(1)+(XJMAX(1)-XJMIN(1))*RANF()
90 YJ(I)=.5*ALOG((1+CTH(I))/(1-CTH(I)))
93 C CALCULATE CROSS SECTION
101 IF(SIGMA.GT.SGMXEE) SGMXEE=SIGMA
102 IF(SIGMA.LT.SGMXEE*RANF()) GO TO 100
110 SUM=SUM+SIGS(I)*SIGINV
111 IF(SUM.LT.TRY) GO TO 200
116 JETTYP(1)=MOD(II,IOPAK)
118 JETTYP(2)=MOD(II,IOPAK)
122 C SET PJETS. RESET P AND PT INCLUDING MASSES.
125 AMQ(1)=AMASS(IDSS(JETTYP(1)))
126 AMQ(2)=AMASS(IDSS(JETTYP(2)))
128 AMQ(1)=AMASS(LISTJ(JETTYP(1)))
129 AMQ(2)=AMASS(LISTJ(JETTYP(2)))
131 PCM=SQRT(SSXLAM(SHAT,AMQ(1)**2,AMQ(2)**2))/2./RSH
133 PJETS(1,I)=PCM*STH(I)*COS(PHI(I))
134 PJETS(2,I)=PCM*STH(I)*SIN(PHI(I))
135 PJETS(3,I)=PCM*CTH(I)
136 PJETS(4,I)=SQRT(PCM**2+AMQ(I)**2)
139 IDJETS(I)=IDSS(JETTYP(I))
141 IDJETS(I)=LISTJ(JETTYP(I))
146 C IF BREMSSTRAHLUNG, THEN BOOST TO LAB FRAME
148 GAM=(X1+X2)*ECM/2./RSH
149 V=-SIGN(1.,(X1-X2))*SQRT(ABS(1.-1./GAM)*(1.+1./GAM))
152 PJETS(4,I)=GAM*(PJETS(4,I)-V*PJETS(3,I))
153 PJETS(3,I)=GAM*(PJETS(3,I)-V*DUMMY)
161 1010 FORMAT(//' ERROR IN ELCTRN...NO GOOD JET TYPES FOUND')
165 WRITE(ITLIS,1020) NTRIES
166 1020 FORMAT(//' IT IS TAKING MORE THAN',I5,' TRIES TO GENERATE AN',
167 $' EVENT. CHECK LIMITS OR INCREASE NTRIES.')