3 SUBROUTINE syjkrn(MD,NJETRQ,THRESH,IMODE,
4 + ycuts,iexam,frac,iexam4,npar,idim,ppar,mxjet,
5 + njet,iass,jdim,pjets,y34,y45,ierr)
110 INTEGER idim,jdim,mxjet
114 INTEGER njetrq,imode,iexam,iexam4,njet,iass(*),ierr
115 REAL thresh,ycuts(*),frac,y34,y45
118 parameter(mxwrk = 300)
125 INTEGER ij(mxwrk),ijn(mxwrk),ijj(mxwrk)
126 REAL pj6(6,50),pjn6(6,50),ptmp6(6,50)
139 CALL vzero(pjets,mxjet*jdim)
145 IF(md(1:2).EQ.
'0a'.OR.md(1:2).EQ.
'0A') isymod = 1
146 IF(md(1:2).EQ.
'0b'.OR.md(1:2).EQ.
'0B') isymod = 2
147 IF(md(1:2).EQ.
'0c'.OR.md(1:2).EQ.
'0C') isymod = 3
148 IF(md(1:2).EQ.
'1a'.OR.md(1:2).EQ.
'1A') isymod = 11
149 IF(md(1:2).EQ.
'1b'.OR.md(1:2).EQ.
'1B') isymod = 12
150 IF(md(1:2).EQ.
'1c'.OR.md(1:2).EQ.
'1C') isymod = 13
151 IF(md(1:2).EQ.
'1d'.OR.md(1:2).EQ.
'1D') isymod = 14
152 IF(md(1:2).EQ.
'2a'.OR.md(1:2).EQ.
'2A') isymod = 21
153 IF(md(1:2).EQ.
'2b'.OR.md(1:2).EQ.
'2B') isymod = 22
154 IF(md(1:2).EQ.
'2c'.OR.md(1:2).EQ.
'2C') isymod = 23
155 IF(md(1:2).EQ.
'2d'.OR.md(1:2).EQ.
'2D') isymod = 24
159 WRITE(*,
'(A,A)')
'unknown MODE detected:'//md(1:2)
165 WRITE(*,
'(A,I5)')
'too small IDIM',idim
170 IF(npar.GT.mxwrk)
THEN
171 WRITE(*,
'(A,I5)')
'too many particles',npar
176 IF(imode.LE.0.OR.imode.GT.12)
THEN
177 WRITE(*,
'(A,I5)')
'unknown Jet find mode',imode
186 IF(ycuts(1).LE.0.0)
THEN
187 WRITE(*,
'(A,I6,E12.3)')
'ycuts small?',isymod,ycuts(1)
191 ELSEIF(isymod.EQ.2)
THEN
193 WRITE(*,
'(A,I6,I7)')
'No NjetRQ',isymod,njetrq
197 ELSEIF(isymod.EQ.3)
THEN
199 WRITE(*,
'(A,I6,I7)')
'No NjetRQ',isymod,njetrq
203 IF(ycuts(1).LE.0.0)
THEN
204 WRITE(*,
'(A,I6,E12.3)')
'ycuts small?',isymod,ycuts(1)
208 IF(iexam4.LE.0.OR.iexam4.GT.8)
THEN
209 WRITE(*,
'(A,I6,I7)')
'No merge way',isymod,iexam4
213 ELSEIF(isymod.EQ.11.OR.isymod.EQ.21)
THEN
214 IF(ycuts(1).LE.0.0)
THEN
215 WRITE(*,
'(A,I6,E12.3)')
'ycuts small?',isymod,ycuts(1)
219 IF(iexam.LE.0.OR.iexam.GT.6)
THEN
220 WRITE(*,
'(A,I6,I7)')
'No re-assign way',isymod,iexam
224 ELSEIF(isymod.EQ.12.OR.isymod.EQ.22)
THEN
226 WRITE(*,
'(A,I6,I7)')
'No NjetRQ',isymod,njetrq
230 IF(ycuts(1).LE.0.0)
THEN
231 WRITE(*,
'(A,I6,E12.3)')
'ycuts small?',isymod,ycuts(1)
235 IF(iexam4.LE.0.OR.iexam4.GT.8)
THEN
236 WRITE(*,
'(A,I6,I7)')
'No merge way',isymod,iexam4
240 IF(iexam.LE.0.OR.iexam.GT.6)
THEN
241 WRITE(*,
'(A,I6,I7)')
'No re-assign way',isymod,iexam
245 ELSEIF(isymod.EQ.13.OR.isymod.EQ.23)
THEN
247 WRITE(*,
'(A,I6,I7)')
'No NjetRQ',isymod,njetrq
251 IF(iexam.LE.0.OR.iexam.GT.6)
THEN
252 WRITE(*,
'(A,I6,I7)')
'No re-assign way',isymod,iexam
256 ELSEIF(isymod.EQ.14.OR.isymod.EQ.24)
THEN
258 WRITE(*,
'(A,I6,I7)')
'No NjetRQ',isymod,njetrq
262 IF(ycuts(1).LE.0.0)
THEN
263 WRITE(*,
'(A,I6,E12.3)')
'ycuts small?',isymod,ycuts(1)
267 IF(iexam4.LE.0.OR.iexam4.GT.8)
THEN
268 WRITE(*,
'(A,I6,I7)')
'No merge way',isymod,iexam4
272 IF(iexam.LE.0.OR.iexam.GT.6)
THEN
273 WRITE(*,
'(A,I6,I7)')
'No re-assign way',isymod,iexam
282 CALL ucopy(ppar(1,i),ppar0(1,i),
min(5,idim))
284 ppar0(5,i)=ppar0(4,i)**2-
285 + ppar0(1,i)**2-ppar0(2,i)**2-ppar0(3,i)**2
286 ppar0(5,i)=sqrt(max(0.0,ppar0(5,i)))
290 IF (imode.EQ.12)
THEN
302 IF(ppar0(4,i).GT.thresh)
THEN
313 CALL
syjetf0(imode0,ycut,eps0,r0,0,npar0,ppar0,iuse,
314 + njet,ij,ptmp6,ydhi,ydlo,ierr)
315 IF(ierr.NE.0) goto 999
316 CALL
syjcp6(npar0,ppar0,njet,ij,6,pj6)
318 ELSEIF(isymod.EQ.2)
THEN
320 CALL
syjetf0(imode0,ycut,eps0,r0,njetrq,npar0,ppar0,iuse,
321 + njet,ij,ptmp6,y34,y45,ierr)
322 IF(ierr.NE.0) goto 999
323 CALL
syjcp6(npar0,ppar0,njet,ij,6,pj6)
325 ELSEIF(isymod.EQ.3)
THEN
327 CALL
syjetf0(imode0,ycut,eps0,r0,0,npar0,ppar0,iuse,
328 + njet,ijn,ptmp6,ydhi,ydlo,ierr)
329 IF(ierr.NE.0) njet = 0
330 IF(njet.LT.njetrq)
THEN
332 CALL
syjetf0(imode0,ycut,eps0,r0,njetrq,npar0,ppar0,iuse,
333 + njet,ijn,ptmp6,y34,y45,ierr)
334 IF(ierr.NE.0) goto 999
336 CALL
syjcp6(npar0,ppar0,njet,ijn,6,pjn6)
337 CALL
symrgj(njetrq,iexam4,njet,npar0,ijn,pjn6,ij,pj6,ierr)
338 IF(ierr.NE.0) goto 999
341 ELSEIF(isymod.EQ.11.OR.isymod.EQ.21)
THEN
343 CALL
syjetf0(imode0,ycut,eps0,r0,0,npar0,ppar0,iuse,
344 + njet,ijn,ptmp6,ydhi,ydlo,ierr)
345 IF(ierr.NE.0) goto 999
346 IF(isymod.LT.20)
THEN
348 CALL
syjetf1(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
349 CALL
syjetf1(iexam,njet,npar0,ppar0,ij ,frac,ijn,pj6)
350 CALL
syjetf1(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
353 CALL
syjetf2(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
354 CALL
syjetf2(iexam,njet,npar0,ppar0,ij ,frac,ijn,pj6)
355 CALL
syjetf2(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
358 ELSEIF(isymod.EQ.12.OR.isymod.EQ.22)
THEN
360 CALL
syjetf0(imode0,ycut,eps0,r0,0,npar0,ppar0,iuse,
361 + njet,ijn,ptmp6,ydhi,ydlo,ierr)
362 IF(ierr.NE.0) njet = 0
363 IF(njet.LT.njetrq)
THEN
365 CALL
syjetf0(imode0,ycut,eps0,r0,njetrq,npar0,ppar0,iuse,
366 + njet,ijn,ptmp6,y34,y45,ierr)
367 IF(ierr.NE.0) goto 999
369 IF(isymod.LT.20)
THEN
371 CALL
syjetf1(iexam,njet,npar0,ppar0,ijn,frac,ijj,pjn6)
372 CALL
syjetf1(iexam,njet,npar0,ppar0,ijj,frac,ijn,pjn6)
373 CALL
syjetf1(iexam,njet,npar0,ppar0,ijn,frac,ijj,pjn6)
376 CALL
syjetf2(iexam,njet,npar0,ppar0,ijn,frac,ijj,pjn6)
377 CALL
syjetf2(iexam,njet,npar0,ppar0,ijj,frac,ijn,pjn6)
378 CALL
syjetf2(iexam,njet,npar0,ppar0,ijn,frac,ijj,pjn6)
381 CALL
symrgj(njetrq,iexam4,njet,npar0,ijj,pjn6,ij,pj6,ierr)
382 IF(ierr.NE.0) goto 999
385 ELSEIF(isymod.EQ.13.OR.isymod.EQ.23)
THEN
387 CALL
syjetf0(imode0,ycut,eps0,r0,njetrq,npar0,ppar0,iuse,
388 + njet,ijn,ptmp6,y34,y45,ierr)
389 IF(ierr.NE.0) goto 999
390 IF(isymod.LT.20)
THEN
392 CALL
syjetf1(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
393 CALL
syjetf1(iexam,njet,npar0,ppar0,ij ,frac,ijn,pj6)
394 CALL
syjetf1(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
397 CALL
syjetf2(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
398 CALL
syjetf2(iexam,njet,npar0,ppar0,ij ,frac,ijn,pj6)
399 CALL
syjetf2(iexam,njet,npar0,ppar0,ijn,frac,ij ,pj6)
402 ELSEIF(isymod.EQ.14.OR.isymod.EQ.24)
THEN
404 CALL
syjetf0(imode0,ycut,eps0,r0,0,npar0,ppar0,iuse,
405 + njet,ijn,ptmp6,ydhi,ydlo,ierr)
406 IF(ierr.NE.0) njet = 0
407 IF(njet.LT.njetrq)
THEN
409 CALL
syjetf0(imode0,ycut,eps0,r0,njetrq,npar0,ppar0,iuse,
410 + njet,ijn,ptmp6,y34,y45,ierr)
411 IF(ierr.NE.0) goto 999
413 CALL
syjcp6(npar0,ppar0,njet,ijn,6,pjn6)
414 CALL
symrgj(njetrq,iexam4,njet,npar0,ijn,pjn6,ijj,pjn6,ierr)
415 IF(ierr.NE.0) goto 999
417 IF(isymod.LT.20)
THEN
419 CALL
syjetf1(iexam,njet,npar0,ppar0,ijj,frac,ij ,pj6)
420 CALL
syjetf1(iexam,njet,npar0,ppar0,ij ,frac,ijj,pj6)
421 CALL
syjetf1(iexam,njet,npar0,ppar0,ijj,frac,ij ,pj6)
424 CALL
syjetf2(iexam,njet,npar0,ppar0,ijj,frac,ij ,pj6)
425 CALL
syjetf2(iexam,njet,npar0,ppar0,ij ,frac,ijj,pj6)
426 CALL
syjetf2(iexam,njet,npar0,ppar0,ijj,frac,ij ,pj6)
429 WRITE(*,
'(A,I10)')
'unknown ISYMOD',isymod
445 IF(pord(j).GT.rmax)
THEN
456 IF(iiii(j).EQ.ijj(i))
THEN
461 DO i=1,
min(njet,mxjet)
463 pjets(j,i)=pj6(j,iiii(i))
476 WRITE(*,
'(A,I10,I10,I6)')
'Error Found',ierr,njet,isymod
482 CALL vzero(pjets,mxjet*jdim)
487 SUBROUTINE syjcp6(NPAR,PPAR,NJ,IASS,JDIM,PJ6)
493 INTEGER npar,iass(*),jdim,nj
494 REAL ppar(5,*),pj6(jdim,*),rr,qq
496 CALL vzero(pj6,nj*jdim)
498 IF(iass(i).GT.0.AND.iass(i).LE.nj)
THEN
499 pj6(1,iass(i)) = pj6(1,iass(i)) + ppar(1,i)
500 pj6(2,iass(i)) = pj6(2,iass(i)) + ppar(2,i)
501 pj6(3,iass(i)) = pj6(3,iass(i)) + ppar(3,i)
502 pj6(4,iass(i)) = pj6(4,iass(i)) + ppar(4,i)
507 rr = pj6(1,i)**2+pj6(2,i)**2+pj6(3,i)**2
509 pj6(5,i)=sqrt(max(qq,0.))
510 IF(jdim.GE.6) pj6(6,i) = sqrt(rr)
subroutine symrgj(NFIN, IEXAM4, N0JET, NPART, IJOUT, QJET, IJFIN, QJFIN4, IERR)
subroutine syjetf1(IEXAM, N0JET, NPART, QIN, IJ, FRAC, IJOUT, QJET)
subroutine syjkrn(MD, NJETRQ, THRESH, IMODE, YCUTS, IEXAM, FRAC, IEXAM4, NPAR, IDIM, PPAR, MXJET, NJET, IASS, JDIM, PJETS, Y34, Y45, IERR)
subroutine syjetf2(IEXAM, N0JET, NPART, QIN, IJ, FRAC, IJOUT, QJET)
double min(double a, double b)
subroutine syjcp6(NPAR, PPAR, NJ, IASS, JDIM, PJ6)
subroutine syjetf0(IMODE, YCUT, EPS0, R0, NJETRQ, NPAR0, PPAR0, IUSE, NJET, IPASS0, PJET6, Y34, Y45, IERR)