EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
leptox.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file leptox.F
1 
2 C **********************************************************************
3 
4  SUBROUTINE leptox
5 
6  IMPLICIT NONE
7 
8 C...Select process and choose kinematical variables (x,y; x,Q2; x,W2)
9 C...according to the differential cross section.
10 
11  COMMON /lintrl/ psave(3,4,5),ksave(4),xmin,xmax,ymin,ymax,
12  &q2min,q2max,w2min,w2max,ilep,inu,ig,iz
13  REAL psave,xmin,xmax,ymin,ymax,q2min,q2max,w2min,w2max
14  INTEGER ksave,ilep,inu,ig,iz
15  SAVE /lintrl/
16 
17 *
18 * to avoid variable conflictions, a second keep element is necessary
19 * with the same common block name (see LPTOU2)
20 *
21  COMMON /leptou/ cut(14),lst(40),parl(30),
22  & x,y,w2,q2,u
23  REAL cut,parl,x,y,w2,q2,u
24  INTEGER lst
25  SAVE /leptou/
26 
27  COMMON /linter/ pari(50),ewqc(2,2,8),qc(8),zl(2,4),zq(2,8),pq(17)
28  REAL pari,ewqc,qc,zl,zq,pq
29  SAVE /linter/
30 
31  COMMON /loptim/ optx(4),opty(4),optq2(4),optw2(4),comfac
32  REAL optx,opty,optq2,optw2,comfac
33  SAVE /loptim/
34 
35 * this Common block appears only in S LEPTOX
36  COMMON /flinfo/ rflq,rflg,rflm,rflt
37  REAL rflq,rflg,rflm,rflt
38  SAVE /flinfo/
39 
40  INTEGER nlupdm,nplbuf
41  parameter(nlupdm=4000,nplbuf=5)
42  common/lujets/n,k(nlupdm,5),p(nlupdm,nplbuf),v(nlupdm,5)
43  INTEGER n,k
44  REAL p,v
45  SAVE /lujets/
46 
47  common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
48  INTEGER kchg
49  REAL pmas,parf,vckm
50  SAVE /ludat2/
51 
52 
53  INTEGER ih,i,ncut,ii
54  INTEGER lqcd,ltm,lht,lkinem
55  REAL w2low,w2upp,ylow,yupp,q2low,q2upp,pnt,pqh,s,pm2,
56  +xpq,gfq2,aemcor,ulalem,zlep,a,b,flg,flq,
57  +flm,flt,f2em,pqh17,weight,hx,xfact,q2fact,hy,yfact,hq2,
58  +w2fact,sigl,sigr,sigma,viol,yq,yqb,fyq,hw2,which
59  REAL rlu
60 *...Added array XDPQ to store delta parton distributions
61  dimension pqh(17,2),pnt(2,2),xpq(-6:6)
62 *---
63 CGI-001122...d- & u-quark weights for p & n target & helicity state
64  REAL pntdu(2,2,2)
65 CMM-010306...anti d- & anti u-quark weights for p & n target & helicity state
66  REAL pntdus(2,2,2)
67  DOUBLE PRECISION dari27,dari28
68  DATA dari27,dari28/2*0.d0/
69  DATA w2low,w2upp,ylow,yupp,q2low,q2upp/6*0./
70 
71 *PEPSI>>
72  IF (lst(40).NE.0) THEN
73  CALL polleptox
74  RETURN
75  ENDIF
76 *PEPSI<<
77  DO 10 ih=1,2
78  DO 5 i=1,2
79 CGI-001122
80  pntdu(i,1,ih)=0.
81  pntdu(i,2,ih)=0.
82 CMM-010306
83  pntdus(i,1,ih)=0.
84  pntdus(i,2,ih)=0.
85  5 pnt(i,ih)=0.
86  DO 6 i=1,8
87  ewqc(1,ih,i)=0.
88  6 ewqc(2,ih,i)=0.
89  DO 10 i=1,17
90  10 pqh(i,ih)=0.
91  DO 20 i=1,17
92  20 pq(i)=0.
93 
94  lst(21)=0
95  ncut=0
96  s=parl(21)
97  pm2=psave(3,2,5)**2
98  IF(lst(2).NE.1) THEN
99  q2low=max(q2min,x*ymin*s,(w2min-pm2)*x/max(1.-x,1.e-22))
100  q2upp=min(q2max,x*ymax*s,(w2max-pm2)*x/max(1.-x,1.e-22))
101  ylow=max(ymin,q2min/max(s*x,1.e-22),
102  & (w2min-pm2)/max(s*(1.-x),1.e-22))
103  yupp=min(ymax,q2max/max(s*x,1.e-22),
104  & (w2max-pm2)/max(s*(1.-x),1.e-22))
105  w2low=max(w2min,(1.-x)*ymin*s+pm2,q2min*(1.-x)/max(x,1.e-22)+pm2)
106  w2upp=min(w2max,(1.-x)*ymax*s+pm2,q2max*(1.-x)/max(x,1.e-22)+pm2)
107  goto 110
108  ENDIF
109 
110  IF(pari(28).LT.0.5) THEN
111 C...For first call, reset double precision counters.
112  dari27=0.d0
113  dari28=0.d0
114  ENDIF
115  100 dari28=dari28+1.d0
116  pari(28)=dari28
117  101 CONTINUE
118 C...Choose x according to the distribution
119 C...hx(x) = a + b/x + c/x**2 + d/x**3. In detail
120 C...hq=OPTX(1)/(XMAX-XMIN) + 1/ln(XMAX/XMIN)*OPTX(2)/X
121 C... +XMIN*XMAX/(XMAX-XMIN)*OPTX(3)/X**2
122 C... +2*(XMIN*XMAX)**2/(XMAX**2-XMIN**2)*OPTX(4)/X**3
123  which=(optx(1)+optx(2)+optx(3)+optx(4))*rlu(0)
124  IF(which.LE.optx(1)) THEN
125  x=xmin+rlu(0)*(xmax-xmin)
126  ELSEIF(which.LE.(optx(1)+optx(2))) THEN
127  x=xmin*(xmax/xmin)**rlu(0)
128  ELSEIF(which.LE.(optx(1)+optx(2)+optx(3))) THEN
129  x=xmin*xmax/(xmax+rlu(0)*(xmin-xmax))
130  ELSE
131  x=sqrt((xmin*xmax)**2/(xmax**2+rlu(0)*(xmin**2-xmax**2)))
132  ENDIF
133  IF(lst(31).EQ.1) THEN
134 C...Choose Q**2 according to the distribution
135 C...hq(Q2) = a + b/(Q2) + c/(Q2)**2 + d/(Q2)**3. In detail
136 C...hq=OPTQ2(1)/(Q2MAX-Q2MIN) + 1/ln(Q2MAX/Q2MIN)*OPTQ2(2)/Q2
137 C... +Q2MIN*Q2MAX/(Q2MAX-Q2MIN)*OPTQ2(3)/Q2**2
138 C... +2*(Q2MIN*Q2MAX)**2/(Q2MAX**2-Q2MIN**2)*OPTQ2(4)/Q2**3
139  q2low=max(q2min,x*ymin*s,(w2min-pm2)*x/(1.-x))
140  q2upp=min(q2max,x*ymax*s,(w2max-pm2)*x/(1.-x))
141  IF(q2upp.LT.q2low) goto 101
142  which=(optq2(1)+optq2(2)+optq2(3)+optq2(4))*rlu(0)
143  IF(which.LE.optq2(1)) THEN
144  q2=q2low+rlu(0)*(q2upp-q2low)
145  ELSEIF(which.LE.(optq2(1)+optq2(2))) THEN
146  q2=q2low*(q2upp/q2low)**rlu(0)
147  ELSEIF(which.LE.(optq2(1)+optq2(2)+optq2(3))) THEN
148  q2=q2low*q2upp/(q2upp+rlu(0)*(q2low-q2upp))
149  ELSE
150  q2=sqrt((q2low*q2upp)**2/(q2upp**2+rlu(0)*(q2low**2-q2upp**2)))
151  ENDIF
152  y=q2/(parl(21)*x)
153  IF(y.LT.ymin.OR.y.GT.ymax) goto 100
154  ELSEIF(lst(31).EQ.2) THEN
155 C...Choose y according to the distribution
156 C...hy(y) = a + b/y + c/y**2 + d/y**3. In detail
157 C...hy=OPTY(1)/(YMAX-YMIN) + 1/ln(YMAX/YMIN)*OPTY(2)/Y
158 C... +YMIN*YMAX/(YMAX-YMIN)*OPTY(3)/Y**2
159 C... +2*(YMIN*YMAX)**2/(YMAX**2-YMIN**2)*OPTY(4)/Y**3
160  ylow=max(ymin,q2min/(s*x),(w2min-pm2)/(s*(1.-x)))
161  yupp=min(ymax,q2max/(s*x),(w2max-pm2)/(s*(1.-x)))
162  IF(yupp.LT.ylow) goto 101
163  which=(opty(1)+opty(2)+opty(3)+opty(4))*rlu(0)
164  IF(which.LE.opty(1)) THEN
165  y=ylow+rlu(0)*(yupp-ylow)
166  ELSEIF(which.LE.(opty(1)+opty(2))) THEN
167  y=ylow*(yupp/ylow)**rlu(0)
168  ELSEIF(which.LE.(opty(1)+opty(2)+opty(3))) THEN
169  y=ylow*yupp/(yupp+rlu(0)*(yupp-ylow))
170  ELSE
171  y=sqrt((ylow*yupp)**2/(yupp**2+rlu(0)*(ylow**2-yupp**2)))
172  ENDIF
173  q2=x*y*parl(21)
174  IF(q2.LT.q2min.OR.q2.GT.q2max) goto 100
175  ELSEIF(lst(31).EQ.3) THEN
176 C...Choose W**2 according to the distribution
177 C...hw(W2) = a + b/(W2) + c/(W2)**2 + d/(W2)**3. In detail
178 C...hw=OPTW2(1)/(W2MAX-W2MIN) + 1/ln(W2MAX/W2MIN)*OPTW2(2)/W2
179 C... +W2MIN*W2MAX/(W2MAX-W2MIN)*OPTW2(3)/W2**2
180 C... +2*(W2MIN*W2MAX)**2/(W2MAX**2-W2MIN**2)*OPTW2(4)/W2**3
181  w2low=max(w2min,(1.-x)*ymin*s+pm2,q2min*(1.-x)/x+pm2)
182  w2upp=min(w2max,(1.-x)*ymax*s+pm2,q2max*(1.-x)/x+pm2)
183  IF(w2upp.LT.w2low) goto 101
184  which=(optw2(1)+optw2(2)+optw2(3)+optw2(4))*rlu(0)
185  IF(which.LE.optw2(1)) THEN
186  w2=w2low+rlu(0)*(w2upp-w2low)
187  ELSEIF(which.LE.(optw2(1)+optw2(2))) THEN
188  w2=w2low*(w2upp/w2low)**rlu(0)
189  ELSEIF(which.LE.(optw2(1)+optw2(2)+optw2(3))) THEN
190  w2=w2low*w2upp/(w2upp+rlu(0)*(w2low-w2upp))
191  ELSE
192  w2=sqrt((w2low*w2upp)**2/(w2upp**2+rlu(0)*(w2low**2-w2upp**2)))
193  ENDIF
194  y=(w2-pm2)/((1.-x)*parl(21))
195  q2=x*y*parl(21)
196  IF(y.LT.ymin.OR.y.GT.ymax) goto 100
197  IF(q2.LT.q2min.OR.q2.GT.q2max) goto 100
198  ENDIF
199 
200  110 IF(lkinem(lst(2)).NE.0) THEN
201  ncut=ncut+1
202  IF(lst(2).EQ.1) THEN
203  IF(ncut.LE.9999) goto 100
204  IF(lst(3).GE.1) WRITE(6,1200)
205  ENDIF
206  lst(21)=2
207  RETURN
208  ENDIF
209  pari(24)=(1.+(1.-y)**2)/2.
210  pari(25)=1.-y
211  pari(26)=(1.-(1.-y)**2)/2.
212  CALL lnstrf(x,q2,xpq)
213 C...Lepton helicity state, only one contributes in some cases.
214  ih=1
215  IF(parl(6).GT.+0.99) ih=2
216  200 lst(30)=sign(1.,ih-1.5)
217  pqh(17,ih)=0.
218  pnt(1,ih)=0.
219  pnt(2,ih)=0.
220 CGI-001122
221  pntdu(1,1,ih)=0.
222  pntdu(1,2,ih)=0.
223  pntdu(2,1,ih)=0.
224  pntdu(2,2,ih)=0.
225 CMM-010306
226  pntdus(1,1,ih)=0.
227  pntdus(1,2,ih)=0.
228  pntdus(2,1,ih)=0.
229  pntdus(2,2,ih)=0.
230  IF(lst(23).EQ.2) THEN
231 C...Charged current: zero cross-section for one helicity state.
232  IF(ksave(1).LT.0.AND.ih.EQ.1
233  & .OR.ksave(1).GT.0.AND.ih.EQ.2) goto 240
234  yq=pari(24)-lst(30)*pari(26)
235  yqb=pari(24)+lst(30)*pari(26)
236  IF(pari(11).GT.1.e-06) THEN
237  IF(k(3,2).LT.0) THEN
238  pnt(1,ih)=(1.-pari(11))*pari(13)*yq
239  pnt(2,ih)=pari(11)*pari(12)*yq
240 CGI-001122...Save u-quark weights for p & n target
241  pntdu(1,2,ih)=pari(13)*yq
242  pntdu(2,2,ih)=pari(12)*yq
243 CMM-010306...Save anti u-quark weights for p & n target
244  pntdus(1,2,ih)=pari(43)*yq
245  pntdus(2,2,ih)=pari(42)*yq
246  ELSE
247  pnt(1,ih)=(1.-pari(11))*pari(12)*yq
248  pnt(2,ih)=pari(11)*pari(13)*yq
249 CGI-001122...Save d-quark weights for p & n target
250  pntdu(1,1,ih)=pari(12)*yq
251  pntdu(2,1,ih)=pari(13)*yq
252 CMM-010306...Save anti d-quark weights for p & n target
253  pntdus(1,1,ih)=pari(42)*yq
254  pntdus(2,1,ih)=pari(43)*yq
255  ENDIF
256  ENDIF
257  DO 220 i=1,lst(12)
258  IF(k(3,2)*qc(i).LT.0) THEN
259  pqh(i,ih)=xpq(i)*yq
260  ELSE
261  pqh(i+lst(12),ih)=xpq(-i)*yqb
262  ENDIF
263  220 CONTINUE
264  ELSE
265 C...Neutral current: electromagnetic or weak or both with interference.
266  gfq2=q2/(pmas(23,1)**2+q2)*sqrt(2.)*parl(17)*pmas(23,1)**2/
267  & (3.1415927*parl(16))
268 C...Correction to obtain Q**2 dependent alpha-em, if desired.
269  aemcor=1.
270  IF(lst(18).GE.2) aemcor=ulalem(q2)/parl(16)
271  ii=3-ih
272  zlep=zl(ih,ilep+2*inu)
273  DO 230 i=1,max(lst(12),lst(13))
274  a=(-ig*qc(i)*aemcor+iz*gfq2*zlep*zq(ih,i))**2
275  b=(-ig*qc(i)*aemcor+iz*gfq2*zlep*zq(ii,i))**2
276 C...Save helicity-dependent electroweak quark couplings for later use.
277  ewqc(1,ih,i)=a
278  ewqc(2,ih,i)=b
279  IF(i.GT.lst(12)) goto 230
280  fyq=(a+b)*pari(24)+(a-b)*pari(26)
281  pqh(i,ih)=xpq(i)*fyq
282  IF(i.LE.2.AND.pari(11).GT.1.e-06) THEN
283  pnt(1,ih)=pnt(1,ih)+(1.-pari(11))*pari(11+i)*fyq
284  pnt(2,ih)=pnt(2,ih)+pari(11)*pari(14-i)*fyq
285 CGI-001122...Save d- & u-quark weights for p & n target
286  pntdu(1,i,ih)=pari(11+i)*fyq
287  pntdu(2,i,ih)=pari(14-i)*fyq
288 CMM-010306...Save anti d- & u-quark weights for p & n target
289  pntdus(1,i,ih)=pari(41+i)*fyq
290  pntdus(2,i,ih)=pari(44-i)*fyq
291  ENDIF
292  pqh(i+lst(12),ih)=xpq(-i)*((a+b)*pari(24)-(a-b)*pari(26))
293  230 CONTINUE
294  ENDIF
295  240 CONTINUE
296  DO 300 i=1,lst(12)
297  300 pqh(17,ih)=pqh(17,ih)+pqh(i,ih)+pqh(i+lst(12),ih)
298 
299  IF(abs(parl(6)).LT.0.99.AND.ih.EQ.1) THEN
300  ih=2
301  goto 200
302  ENDIF
303 
304  flq=0.
305  flg=0.
306  flm=0.
307  flt=0.
308  IF(lst(11).NE.0.AND.(lst(23).EQ.1.OR.lst(23).EQ.4)
309  &.AND.lst(2).NE.-3) THEN
310 C...Include F_L for photon exchange (unless QCD grid being set up)
311  lqcd=mod(lst(11),10)
312  ltm=mod(lst(11)/10,10)
313  lht=lst(11)/100
314 C...Include QCD, target mass and/or higher twist contr. to long. str fcn
315 C...FL from interpolation.
316  IF(lqcd.EQ.1.OR.ltm.EQ.1) CALL flipol(flq,flg,flm)
317 C...Event simulation: if requested, get FL by event-by-event integration
318  IF(lst(2).GT.0.AND.
319  & (lqcd.EQ.2.OR.ltm.EQ.2)) CALL flintg(flq,flg,flm)
320  IF(ltm.GE.1.OR.lht.GE.1) THEN
321  f2em=0.
322  DO 301 i=1,lst(12)
323  301 f2em=f2em+qc(i)**2*(xpq(i)+xpq(-i))
324  IF(ltm.GE.1) flm=flm-2.*x**2*psave(3,2,5)**2/q2*f2em
325  IF(lht.GE.1) flt=8.*parl(19)/q2*f2em
326  ENDIF
327  DO 305 ih=1,2
328  pqh17=pqh(17,ih)
329 C...Note factor 2 at the end, since PQH(IH,17) contains overall factor 2
330  pqh(17,ih)=pqh(17,ih)-y**2*(flq+flg+flm+flt)
331  DO 305 i=1,16
332  305 pqh(i,ih)=pqh(i,ih)*pqh(17,ih)/pqh17
333  ENDIF
334 
335  DO 310 i=1,17
336  310 pq(i)=(1.-parl(6))/2.*pqh(i,1)+(1.+parl(6))/2.*pqh(i,2)
337 
338 C...Relative contribution from longitudinal str. fcn. and higher twist.
339  rflq=-y**2*flq/max(pq(17),1.e-33)
340  rflg=-y**2*flg/max(pq(17),1.e-33)
341  rflm=-y**2*flm/max(pq(17),1.e-33)
342  rflt=-y**2*flt/max(pq(17),1.e-33)
343 
344 C...Common factor for matrix elements.
345  IF(lst(31).EQ.1) THEN
346  IF(lst(23).EQ.2) THEN
347  comfac=1./x/(1.+q2/pmas(24,1)**2)**2
348  ELSE
349  comfac=1./x/q2**2
350  ENDIF
351  ELSEIF(lst(31).EQ.2) THEN
352  IF(lst(23).EQ.2) THEN
353  comfac=1./(1.+q2/pmas(24,1)**2)**2*parl(21)
354  ELSE
355  comfac=1./q2**2*parl(21)
356  ENDIF
357  ELSEIF(lst(31).EQ.3) THEN
358  IF(lst(23).EQ.2) THEN
359  comfac=1./x/(1.+q2/pmas(24,1)**2)**2 * x/(1.-x)
360  ELSE
361  comfac=1./x/q2**2 * x/(1.-x)
362  ENDIF
363  ENDIF
364 C-check: Move change of COMFAC to below??
365 C...Prepare for Q2 weighting.
366 C WEIGHT=1/Q2**2
367  weight=1.d0
368  comfac=comfac/weight
369  IF(lst(2).LE.-2) RETURN
370  hx=optx(1)/(xmax-xmin) + 1./alog(xmax/xmin)*optx(2)/x
371  &+xmin*xmax/(xmax-xmin)*optx(3)/x**2
372  &+2*(xmin*xmax)**2/(xmax**2-xmin**2)*optx(4)/x**3
373  xfact=optx(1)+optx(2)+optx(3)+optx(4)
374  IF(lst(31).EQ.1) THEN
375  hq2=optq2(1)/(q2upp-q2low)
376  & +1./alog(q2upp/q2low)*optq2(2)/q2
377  & +q2low*q2upp/(q2upp-q2low)*optq2(3)/q2**2
378  & +2*(q2low*q2upp)**2/(q2upp**2-q2low**2)*optq2(4)/q2**3
379  q2fact=optq2(1)+optq2(2)+optq2(3)+optq2(4)
380  comfac=comfac*xfact*q2fact/hx/hq2
381  ELSEIF(lst(31).EQ.2) THEN
382  hy=opty(1)/(yupp-ylow)+1./alog(yupp/ylow)*opty(2)/y
383  & +ylow*yupp/(yupp-ylow)*opty(3)/y**2
384  & +2*(ylow*yupp)**2/(yupp**2-ylow**2)*opty(4)/y**3
385  yfact=opty(1)+opty(2)+opty(3)+opty(4)
386  comfac=comfac*xfact*yfact/hx/hy
387  ELSEIF(lst(31).EQ.3) THEN
388  hw2=optw2(1)/(w2upp-w2low)
389  & +1./alog(w2upp/w2low)*optw2(2)/w2
390  & +w2low*w2upp/(w2upp-w2low)*optw2(3)/w2**2
391  & +2*(w2low*w2upp)**2/(w2upp**2-w2low**2)*optw2(4)/w2**3
392  w2fact=optw2(1)+optw2(2)+optw2(3)+optw2(4)
393  comfac=comfac*xfact*w2fact/hx/hw2
394  ENDIF
395  IF(lst(2).LE.0) RETURN
396 
397 C-check: Move change of COMFAC to here?
398  sigl=(1.-parl(6))/2.*pqh(17,1)
399  sigr=(1.+parl(6))/2.*pqh(17,2)
400  sigma=sigl+sigr
401  IF(lst(2).EQ.1) THEN
402 C...When chosing (x,y), reject according to maximum of "cross-section",
403 C...update cross-section estimate.
404  dari27=dari27+dble(sigma)*dble(comfac)*weight
405  pari(27)=dari27
406  viol=sigma*comfac/pari(lst(23))
407  IF(viol.GT.pari(32)) THEN
408  pari(32)=viol
409  IF(pari(32).GT.1.) THEN
410  pari(lst(23))=pari(lst(23))*pari(32)
411  IF(lst(3).GE.1) WRITE(6,1300) pari(32),int(pari(30)+1),
412  & pari(lst(23)),x,y,q2,w2
413  pari(32)=1.
414  ENDIF
415  ENDIF
416  IF(viol.LT.rlu(0)) goto 100
417  parl(24)=pari(31)*dari27/dari28
418  ENDIF
419 
420  IF(abs(parl(6)).LT.0.99) THEN
421 C...Choose helicity of incoming lepton.
422  ih=1
423  IF(rlu(0)*sigma.GT.sigl) ih=2
424  ENDIF
425  lst(30)=sign(1.,ih-1.5)
426 CGI-001122...Save parton density weights for chosen helicity
427  DO 510 i=1,17
428  510 pq(i)=pqh(i,ih)
429 
430 C...Choose target nucleon, proton or neutron.
431  lst(22)=1
432  k(2,2)=2212
433  IF(pari(11).GT.1.e-06) THEN
434  IF(rlu(0).LT.(pari(11)*(pqh(17,ih)-pnt(1,ih)-pnt(2,ih))+
435  & pnt(2,ih))/pqh(17,ih)) THEN
436  lst(22)=2
437  k(2,2)=2112
438  ENDIF
439 CGI-001122...Save parton density weights for chosen target nucleon
440 CMM-010306...and take also care of the anti u- and d-quarks.
441  pq(17)=pq(17)-pq(1)-pq(2)-pq(1+lst(12))-pq(2+lst(12))
442  pq(1)=pntdu(lst(22),1,ih)
443  pq(2)=pntdu(lst(22),2,ih)
444  pq(1+lst(12))=pntdus(lst(22),1,ih)
445  pq(2+lst(12))=pntdus(lst(22),2,ih)
446  pq(17)=pq(17)+pq(1)+pq(2)+pq(1+lst(12))+pq(2+lst(12))
447  ENDIF
448 
449  RETURN
450  1200 FORMAT(' Warning: LEPTOX is looping, cannot find allowed ',
451  &'phase space point due to cuts,',/,
452  &10x,'check, in particular, CUT(11) to CUT(14)')
453  1300 FORMAT(' Warning: maximum violated by a factor ',f7.3,
454  &' in event ',i7,/,' maximum increased by this factor to ',e12.3,
455  &/,' Point of violation: x, y, Q**2, W**2 = ',4g10.3)
456  END