]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/elctrn.F
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / ISAJET / code / elctrn.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE ELCTRN
3C 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/
57C ENTRY
58 NPTCL=0
59 NREJ=-1
60 SIGMA=0.
61 NSIGS=0
62 DO 10 I=1,MXSIGS
6310 SIGS(I)=0.
64 WT=1.
65C GENERATE NEXT KINEMATIC POINT
66100 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)
92110 CONTINUE
93C CALCULATE CROSS SECTION
94 IF (GOMSSM) THEN
95 CALL SIGSSE
96 ELSE
97 CALL SIGEE
98 END IF
99 WT=XJMAX(1)-XJMIN(1)
100C 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
105C 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
112C 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
120200 CONTINUE
121 GO TO 9998
122C SET PJETS. RESET P AND PT INCLUDING MASSES.
123210 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)
145220 CONTINUE
146C 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
157C ERROR MESSAGES
1589998 CONTINUE
159 CALL PRTEVT(0)
160 WRITE(ITLIS,1010)
1611010 FORMAT(//' ERROR IN ELCTRN...NO GOOD JET TYPES FOUND')
162 STOP 99
1639999 CONTINUE
164 CALL PRTEVT(0)
165 WRITE(ITLIS,1020) NTRIES
1661020 FORMAT(//' IT IS TAKING MORE THAN',I5,' TRIES TO GENERATE AN',
167 $' EVENT. CHECK LIMITS OR INCREASE NTRIES.')
168 STOP 99
169 END