]>
Commit | Line | Data |
---|---|---|
0795afa3 | 1 | #include "isajet/pilot.h" |
2 | SUBROUTINE ELCTRN | |
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) | |
44 | DIMENSION LISTJ(29) | |
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/ | |
47 | DATA IDSS/0, | |
48 | $ISUPL,MSUPL,ISDNL,MSDNL,ISSTL,MSSTL,ISCHL,MSCHL,ISBT1,MSBT1, | |
49 | $ISTP1,MSTP1, | |
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, | |
54 | $ISTAU2,MSTAU2, | |
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/ | |
57 | C ENTRY | |
58 | NPTCL=0 | |
59 | NREJ=-1 | |
60 | SIGMA=0. | |
61 | NSIGS=0 | |
62 | DO 10 I=1,MXSIGS | |
63 | 10 SIGS(I)=0. | |
64 | WT=1. | |
65 | C GENERATE NEXT KINEMATIC POINT | |
66 | 100 CONTINUE | |
67 | NREJ=NREJ+1 | |
68 | IF(NREJ.GT.NTRIES) GO TO 9999 | |
69 | NKINPT=NKINPT+1 | |
70 | SUMWT=SUMWT+SIGMA*WT | |
71 | IF (IBREM) THEN | |
72 | RSH=RSHMIN+(RSHMAX-RSHMIN)*RANF() | |
73 | SHAT=RSH**2 | |
74 | QSQ=SHAT | |
75 | XD=(1.-SHAT/SCM)*(-1.+2*RANF()) | |
76 | X1=(XD+SQRT(XD**2+4*SHAT/SCM))/2. | |
77 | X2=X1-XD | |
78 | ELSE | |
79 | SHAT=SCM | |
80 | RSH=SQRT(SHAT) | |
81 | END IF | |
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() | |
85 | CTH(2)=-CTH(1) | |
86 | DO 110 I=1,2 | |
87 | TH(I)=ACOS(CTH(I)) | |
88 | STH(I)=SIN(TH(I)) | |
89 | PT(I)=HALFE*STH(I) | |
90 | YJ(I)=.5*ALOG((1+CTH(I))/(1-CTH(I))) | |
91 | XJ(I)=CTH(I) | |
92 | 110 CONTINUE | |
93 | C CALCULATE CROSS SECTION | |
94 | IF (GOMSSM) THEN | |
95 | CALL SIGSSE | |
96 | ELSE | |
97 | CALL SIGEE | |
98 | END IF | |
99 | WT=XJMAX(1)-XJMIN(1) | |
100 | C TEST CROSS SECTION | |
101 | IF(SIGMA.GT.SGMXEE) SGMXEE=SIGMA | |
102 | IF(SIGMA.LT.SGMXEE*RANF()) GO TO 100 | |
103 | SUMWT=SUMWT+SIGMA*WT | |
104 | NKEEP=NKEEP+1 | |
105 | C SELECT JET TYPES | |
106 | SIGINV=1./SIGMA | |
107 | TRY=RANF() | |
108 | SUM=0. | |
109 | DO 200 I=1,NSIGS | |
110 | SUM=SUM+SIGS(I)*SIGINV | |
111 | IF(SUM.LT.TRY) GO TO 200 | |
112 | C FIND REACTION | |
113 | ISIGS=I | |
114 | SIGEVT=SIGS(ISIGS) | |
115 | II=INOUT(I)/IOPAK**2 | |
116 | JETTYP(1)=MOD(II,IOPAK) | |
117 | II=II/IOPAK | |
118 | JETTYP(2)=MOD(II,IOPAK) | |
119 | GO TO 210 | |
120 | 200 CONTINUE | |
121 | GO TO 9998 | |
122 | C SET PJETS. RESET P AND PT INCLUDING MASSES. | |
123 | 210 CONTINUE | |
124 | IF (GOMSSM) THEN | |
125 | AMQ(1)=AMASS(IDSS(JETTYP(1))) | |
126 | AMQ(2)=AMASS(IDSS(JETTYP(2))) | |
127 | ELSE | |
128 | AMQ(1)=AMASS(LISTJ(JETTYP(1))) | |
129 | AMQ(2)=AMASS(LISTJ(JETTYP(2))) | |
130 | END IF | |
131 | PCM=SQRT(SSXLAM(SHAT,AMQ(1)**2,AMQ(2)**2))/2./RSH | |
132 | DO 220 I=1,2 | |
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) | |
137 | PJETS(5,I)=AMQ(I) | |
138 | IF (GOMSSM) THEN | |
139 | IDJETS(I)=IDSS(JETTYP(I)) | |
140 | ELSE | |
141 | IDJETS(I)=LISTJ(JETTYP(I)) | |
142 | END IF | |
143 | P(I)=PCM | |
144 | PT(I)=P(I)*STH(I) | |
145 | 220 CONTINUE | |
146 | C IF BREMSSTRAHLUNG, THEN BOOST TO LAB FRAME | |
147 | IF (IBREM) THEN | |
148 | GAM=(X1+X2)*ECM/2./RSH | |
149 | V=-SIGN(1.,(X1-X2))*SQRT(ABS(1.-1./GAM)*(1.+1./GAM)) | |
150 | DO I=1,2 | |
151 | DUMMY=PJETS(4,I) | |
152 | PJETS(4,I)=GAM*(PJETS(4,I)-V*PJETS(3,I)) | |
153 | PJETS(3,I)=GAM*(PJETS(3,I)-V*DUMMY) | |
154 | END DO | |
155 | END IF | |
156 | RETURN | |
157 | C ERROR MESSAGES | |
158 | 9998 CONTINUE | |
159 | CALL PRTEVT(0) | |
160 | WRITE(ITLIS,1010) | |
161 | 1010 FORMAT(//' ERROR IN ELCTRN...NO GOOD JET TYPES FOUND') | |
162 | STOP 99 | |
163 | 9999 CONTINUE | |
164 | CALL PRTEVT(0) | |
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.') | |
168 | STOP 99 | |
169 | END |