All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
syjkrn.f
Go to the documentation of this file.
1 CDECK ID>, SYJKRN.
2 **************************************************************************
3  SUBROUTINE syjkrn(MD,NJETRQ,THRESH,IMODE,
4  + ycuts,iexam,frac,iexam4,npar,idim,ppar,mxjet,
5  + njet,iass,jdim,pjets,y34,y45,ierr)
6 * Kernel Routine for SY-Jetfindings Scheme or Traditional Jetfindings
7 * Authour : Satoru Yamashita
8 * Creat : 5-SEP-98
9 * :
10 * Inputs:
11 * MD ; mode (see below)
12 * NJETRQ : fixed number of jets ; =0 variable -- use YCUT etc...
13 * THRESH : threshold (GeV) for the primary jet finding
14 * IMODE : Kernel Jet finding mode
15 * 1- 6 : YKERN
16 * IF(IMODE.EQ.1) THEN
17 * CM = 'JADE E0'
18 * ELSEIF(IMODE.EQ.2) THEN
19 * CM = 'JADE P '
20 * ELSEIF(IMODE.EQ.3) THEN
21 * CM = 'JADE P0'
22 * ELSEIF(IMODE.EQ.4) THEN
23 * CM = 'JADE E '
24 * ELSEIF(IMODE.EQ.5) THEN
25 * CM = 'DURHAM '
26 * ELSEIF(IMODE.EQ.6) THEN
27 * CM = 'GENEVA '
28 * ELSE
29 * WRITE(6,281) IMODE
30 * 281 FORMAT(/,' ### YKERN: IMODE =',I3,' INVALID; SET TO 1 ###')
31 * IMODE = 1
32 * CM = 'JADE E0'
33 * ENDIF
34 *
35 *
36 *
37 * 7 : cambridge
38 * 9-11 : LUCLUS
39 * 12 : cone
40 * YCUTS : (1) ycut or xcut or Cone Radius (2) EPS
41 * IEXAM : Particle re-association method 1-6
42 * EXAM(1) = THETA
43 * EXAM(2) = PART(4)*PJSTMP(4,J)-PART(1)*PJSTMP(1,J)
44 * + -PART(2)*PJSTMP(2,J)-PART(3)*PJSTMP(3,J)
45 * EXAM(3) = DURHAM
46 * EXAM(4) = E0JADE
47 * EXAM(5) = Geneva Scheme
48 * EXAM(6) = EJADE ! it makes too bad cross talk
49 *
50 * FRAC : core rate
51 * IEXAM4 : Jet merge method 1-8
52 * EXAM(1,N) = PL(4,I)*PL(4,J)
53 * EXAM(2,N) = PL(4,I)*PL(4,J)-PL(1,I)*PL(1,J)
54 * + -PL(2,I)*PL(2,J)-PL(3,I)*PL(3,J)
55 * EXAM(3,N) = DURHAM(I,J)
56 * EXAM(4,N) = E0JADE(I,J)
57 * EXAM(5,N) = EJADE(I,J)
58 * EXAM(6,N) = ANGLE(I,J)
59 * EXAM(7,N) = ECOS(I,J)
60 * EXAM(8,N) = PL(6,I)*PL(6,J)
61 * NPAR : Number of "particles"
62 * IDIM : first dimension of PPAR array
63 * PPAR : Particle Momenta
64 * MXJET : Maximum Number of Jets (buffer size for PJETS = MXJETS*JDIM)
65 * JDIM : first dimension of PJETS array
66 *
67 * Outputs:
68 * NJET : Number of Jets
69 * IASS : Jet assosiation for "particle"s
70 * PJETS : Jet momenta
71 * Y34 : YHI (sometimes not filled)
72 * Y45 : YLO (sometimes not filled)
73 * IERR : Error flag 0==All O.K.
74 * -9999: abnormal error
75 * -999: boundary error
76 * -99: input mismatch
77 * Others : error from various internal calls
78 * ==========================================================================
79 * MD
80 * There are 11 variations
81 * MD Name : Final NJ : 1st process : 2nd process : 3rd process
82 * 0a. Traditional: variable : fixed Ycuts : - : -
83 * 0b. Traditional: fixed Njets : fixed Njets : - : -
84 * 0c. Just Merge : fixed Njets : fixed Ycuts : do merge : -
85 * 1a. LMODE1 : variable : fixed Ycuts : do SYJETF1 : -
86 * 1b. LMODE1 : fixed final : fixed Ycuts : do SYJETF1 : do merge
87 * 1c. LMODE1 : fixed final : fixed Njets : do SYJETF1 : -
88 * 1d. LMODE1 : fixed final : fixed Ycuts : do merge : do SYJETF1
89 * 2a. LMODE2 : variable : fixed Ycuts : do SYJETF2 : -
90 * 2b. LMODE2 : fixed final : fixed Ycuts : do SYJETF2 : do merge
91 * 2c. LMODE2 : fixed final : fixed Njets : do SYJETF2 : -
92 * 2d. LMODE2 : fixed final : fixed Ycuts : do merge : do SYJETF2
93 * ============================================================================
94 * MD & NJETRQ & IMODE & YCUTS & IEXAM & Frac & IEXAM4 & ISYMOD
95 * 0a & - & 1-12 & > 0 & - & - & - & 1
96 * 0b & > 0 & 1-12 & - & - & - & - & 2
97 * 0c & > 0 & 1-12 & > 0 & - & - & 1-8 & 3
98 * 1a & - & 1-12 & > 0 & 1-6 & 0.0-1.0 & - & 11
99 * 1b & > 0 & 1-12 & > 0 & 1-6 & 0.0-1.0 & 1-8 & 12
100 * 1c & > 0 & 1-12 & - & 1-6 & 0.0-1.0 & - & 13
101 * 1d & > 0 & 1-12 & > 0 & 1-6 & 0.0-1.0 & 1-8 & 14
102 * 2a & - & 1-12 & > 0 & 1-6 & 0.0-1.0 & - & 21
103 * 2b & > 0 & 1-12 & > 0 & 1-6 & 0.0-1.0 & 1-8 & 22
104 * 2c & > 0 & 1-12 & - & 1-6 & 0.0-1.0 & - & 23
105 * 2d & > 0 & 1-12 & > 0 & 1-6 & 0.0-1.0 & 1-8 & 24
106 * ============================================================================
107 ****************************************************************************
108  implicit none
109  CHARACTER*(*) md
110  INTEGER idim,jdim,mxjet
111  INTEGER npar
112  REAL ppar(idim,*)
113  REAL pjets(jdim,*)
114  INTEGER njetrq,imode,iexam,iexam4,njet,iass(*),ierr
115  REAL thresh,ycuts(*),frac,y34,y45
116 
117  INTEGER mxwrk
118  parameter(mxwrk = 300)
119  INTEGER npar0
120  REAL ppar0(5,mxwrk)
121  INTEGER iuse(mxwrk)
122  REAL ycut,r0,eps0
123 
124  INTEGER i,j
125  INTEGER ij(mxwrk),ijn(mxwrk),ijj(mxwrk)
126  REAL pj6(6,50),pjn6(6,50),ptmp6(6,50)
127  REAL pord(50),rmax
128  INTEGER iiii(50),ii
129  REAL ydhi,ydlo
130  INTEGER imode0
131  INTEGER isymod
132 
133 *-----Initialysation for outputs
134  ierr = -9999
135  njet = 0
136  DO i=1,npar
137  iass(i) = -1
138  ENDDO
139  CALL vzero(pjets,mxjet*jdim)
140  y34 = 0.0
141  y45 = 0.0
142  isymod = 0
143 
144 *-----Check boundary
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
156 * write(*,*)'symode selected: ',ISYMOD
157 *
158  IF(isymod.EQ.0) THEN
159  WRITE(*,'(A,A)')'unknown MODE detected:'//md(1:2)
160 * CALL REPORT('SYJKRN',1,'E')
161  ierr = -999
162  RETURN
163  ENDIF
164  IF(idim.LT.4) THEN
165  WRITE(*,'(A,I5)')'too small IDIM',idim
166 * CALL REPORT('SYJKRN',2,'E')
167  ierr = -999
168  RETURN
169  ENDIF
170  IF(npar.GT.mxwrk) THEN
171  WRITE(*,'(A,I5)')'too many particles',npar
172 * CALL REPORT('SYJKRN',3,'E')
173  ierr = -999
174  RETURN
175  ENDIF
176  IF(imode.LE.0.OR.imode.GT.12) THEN
177  WRITE(*,'(A,I5)')'unknown Jet find mode',imode
178 * CALL REPORT('SYJKRN',4,'E')
179  ierr = -999
180  RETURN
181  ENDIF
182 
183 *-----check inputs
184  ierr = -99
185  IF(isymod.EQ.1) THEN
186  IF(ycuts(1).LE.0.0) THEN
187  WRITE(*,'(A,I6,E12.3)')'ycuts small?',isymod,ycuts(1)
188 * CALL REPORT('SYJKRN',5,'E')
189  RETURN
190  ENDIF
191  ELSEIF(isymod.EQ.2) THEN
192  IF(njetrq.LE.0) THEN
193  WRITE(*,'(A,I6,I7)')'No NjetRQ',isymod,njetrq
194 * CALL REPORT('SYJKRN',6,'E')
195  RETURN
196  ENDIF
197  ELSEIF(isymod.EQ.3) THEN
198  IF(njetrq.LE.0) THEN
199  WRITE(*,'(A,I6,I7)')'No NjetRQ',isymod,njetrq
200 * CALL REPORT('SYJKRN',7,'E')
201  RETURN
202  ENDIF
203  IF(ycuts(1).LE.0.0) THEN
204  WRITE(*,'(A,I6,E12.3)')'ycuts small?',isymod,ycuts(1)
205 * CALL REPORT('SYJKRN',8,'E')
206  RETURN
207  ENDIF
208  IF(iexam4.LE.0.OR.iexam4.GT.8) THEN
209  WRITE(*,'(A,I6,I7)')'No merge way',isymod,iexam4
210 * CALL REPORT('SYJKRN',9,'E')
211  RETURN
212  ENDIF
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)
216 * CALL REPORT('SYJKRN',10,'E')
217  RETURN
218  ENDIF
219  IF(iexam.LE.0.OR.iexam.GT.6) THEN
220  WRITE(*,'(A,I6,I7)')'No re-assign way',isymod,iexam
221 * CALL REPORT('SYJKRN',11,'E')
222  RETURN
223  ENDIF
224  ELSEIF(isymod.EQ.12.OR.isymod.EQ.22) THEN
225  IF(njetrq.LE.0) THEN
226  WRITE(*,'(A,I6,I7)')'No NjetRQ',isymod,njetrq
227 * CALL REPORT('SYJKRN',12,'E')
228  RETURN
229  ENDIF
230  IF(ycuts(1).LE.0.0) THEN
231  WRITE(*,'(A,I6,E12.3)')'ycuts small?',isymod,ycuts(1)
232 * CALL REPORT('SYJKRN',13,'E')
233  RETURN
234  ENDIF
235  IF(iexam4.LE.0.OR.iexam4.GT.8) THEN
236  WRITE(*,'(A,I6,I7)')'No merge way',isymod,iexam4
237 * CALL REPORT('SYJKRN',14,'E')
238  RETURN
239  ENDIF
240  IF(iexam.LE.0.OR.iexam.GT.6) THEN
241  WRITE(*,'(A,I6,I7)')'No re-assign way',isymod,iexam
242 * CALL REPORT('SYJKRN',15,'E')
243  RETURN
244  ENDIF
245  ELSEIF(isymod.EQ.13.OR.isymod.EQ.23) THEN
246  IF(njetrq.LE.0) THEN
247  WRITE(*,'(A,I6,I7)')'No NjetRQ',isymod,njetrq
248 * CALL REPORT('SYJKRN',16,'E')
249  RETURN
250  ENDIF
251  IF(iexam.LE.0.OR.iexam.GT.6) THEN
252  WRITE(*,'(A,I6,I7)')'No re-assign way',isymod,iexam
253 * CALL REPORT('SYJKRN',17,'E')
254  RETURN
255  ENDIF
256  ELSEIF(isymod.EQ.14.OR.isymod.EQ.24) THEN
257  IF(njetrq.LE.0) THEN
258  WRITE(*,'(A,I6,I7)')'No NjetRQ',isymod,njetrq
259 * CALL REPORT('SYJKRN',18,'E')
260  RETURN
261  ENDIF
262  IF(ycuts(1).LE.0.0) THEN
263  WRITE(*,'(A,I6,E12.3)')'ycuts small?',isymod,ycuts(1)
264 * CALL REPORT('SYJKRN',19,'E')
265  RETURN
266  ENDIF
267  IF(iexam4.LE.0.OR.iexam4.GT.8) THEN
268  WRITE(*,'(A,I6,I7)')'No merge way',isymod,iexam4
269 * CALL REPORT('SYJKRN',20,'E')
270  RETURN
271  ENDIF
272  IF(iexam.LE.0.OR.iexam.GT.6) THEN
273  WRITE(*,'(A,I6,I7)')'No re-assign way',isymod,iexam
274 * CALL REPORT('SYJKRN',21,'E')
275  RETURN
276  ENDIF
277  ENDIF
278 
279 *-----Preparation
280  npar0 = npar
281  DO i=1,npar0
282  CALL ucopy(ppar(1,i),ppar0(1,i),min(5,idim))
283  IF(idim.LT.5) THEN
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)))
287  ENDIF
288  ENDDO
289 * IF(MOD(IMODE0,100).EQ.12) THEN
290  IF (imode.EQ.12) THEN ! bugfix JS
291  ycut = 0.0
292  r0 = ycuts(1)
293  eps0 = ycuts(2)
294  ELSE
295  ycut = ycuts(1)
296  r0 = 0.0
297  eps0 = 0.0
298  ENDIF
299 
300 *-----Check threshold
301  DO i=1,npar0
302  IF(ppar0(4,i).GT.thresh) THEN
303  iuse(i) = 1
304  ELSE
305  iuse(i) = 0
306  ENDIF
307  ENDDO
308 
309 *###### S T A R T #######
310 *-----Traditional Jet findings variable Njet
311  IF(isymod.EQ.1) THEN
312  imode0 = imode
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)
317 *-----Traditional Jet findings fixed Njet
318  ELSEIF(isymod.EQ.2) THEN
319  imode0 = imode+100
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)
324 *-----Traditional Jet findings variable Njet and then merge if Njet>Njetrq
325  ELSEIF(isymod.EQ.3) THEN
326  imode0 = imode
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
331  imode0 = imode + 100
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
335  ENDIF
336  CALL syjcp6(npar0,ppar0,njet,ijn,6,pjn6)
337  CALL symrgj(njetrq,iexam4,njet,npar0,ijn,pjn6,ij,pj6,ierr) ! merge
338  IF(ierr.NE.0) goto 999
339  njet = njetrq
340 *-----Re-assignment Jet findings variable Njet ; no merge
341  ELSEIF(isymod.EQ.11.OR.isymod.EQ.21) THEN
342  imode0 = imode
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
347 * 3 times iteration
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)
351  ELSE ! 21
352 * 3 times iteration
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)
356  ENDIF
357 *-----Re-assignment Jet findings variable Njet ; merge if njet>njetrq
358  ELSEIF(isymod.EQ.12.OR.isymod.EQ.22) THEN
359  imode0 = imode
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
364  imode0 = imode + 100
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
368  ENDIF
369  IF(isymod.LT.20) THEN
370 * 3 times iteration
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)
374  ELSE ! 21
375 * 3 times iteration
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)
379  ENDIF
380 * Merge
381  CALL symrgj(njetrq,iexam4,njet,npar0,ijj,pjn6,ij,pj6,ierr)
382  IF(ierr.NE.0) goto 999
383  njet = njetrq
384 *-----Re-assignment Jet findings variable Njet ; no merge
385  ELSEIF(isymod.EQ.13.OR.isymod.EQ.23) THEN
386  imode0 = imode + 100
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
391 * 3 times iteration
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)
395  ELSE ! 21
396 * 3 times iteration
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)
400  ENDIF
401 *-----Re-assignment Jet findings variable Njet ; merge if njet>njetrq
402  ELSEIF(isymod.EQ.14.OR.isymod.EQ.24) THEN
403  imode0 = imode
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
408  imode0 = imode + 100
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
412  ENDIF
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
416  njet = njetrq
417  IF(isymod.LT.20) THEN
418 * 3 times iteration
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)
422  ELSE ! 21
423 * 3 times iteration
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)
427  ENDIF
428  ELSE
429  WRITE(*,'(A,I10)')'unknown ISYMOD',isymod
430 * CALL REPORT('SYJKRN',22,'E')
431  ierr = -9999
432  goto 999
433  ENDIF
434 *=========== Energy Ordering ================
435  DO i=1,npar0
436  ijj(i)=ij(i)
437  ENDDO
438  DO i=1,njet
439  pord(i) = pj6(4,i)
440  ENDDO
441  DO i=1,njet
442  rmax = -1.e+09
443  ii=0
444  DO j=1,njet
445  IF(pord(j).GT.rmax) THEN
446  rmax = pord(j)
447  ii = j
448  ENDIF
449  ENDDO
450  iiii(i) = ii
451  pord(ii) = -1.e+09
452  ENDDO
453  DO i=1,npar0
454  iass(i) = 0
455  DO j=1,njet
456  IF(iiii(j).EQ.ijj(i)) THEN
457  iass(i) = j
458  ENDIF
459  ENDDO
460  ENDDO
461  DO i=1,min(njet,mxjet)
462  DO j=1,min(6,jdim)
463  pjets(j,i)=pj6(j,iiii(i))
464  ENDDO
465  ENDDO
466 
467  ierr = 0
468 *---- ALL DONE : GOOD
469 * WRITE(*,'(A,I10,I10)')'complete',NJET,ISYMOD
470 * CALL REPORT('SYJKRN',23,'I')
471 
472  RETURN
473 
474  999 CONTINUE
475 *----- error, so all initialyze again.
476  WRITE(*,'(A,I10,I10,I6)')'Error Found',ierr,njet,isymod
477 * CALL REPORT('SYJKRN',24,'E')
478  njet = 0
479  DO i=1,npar
480  iass(i)=0
481  ENDDO
482  CALL vzero(pjets,mxjet*jdim)
483  RETURN
484  END
485 
486 *********************************************************************
487  SUBROUTINE syjcp6(NPAR,PPAR,NJ,IASS,JDIM,PJ6)
488 * Just Re-calculate Jet Momenta
489 * Author ; Satoru Yamashita
490 * Creat ; 10-May-98
491 *********************************************************************
492  implicit none
493  INTEGER npar,iass(*),jdim,nj
494  REAL ppar(5,*),pj6(jdim,*),rr,qq
495  INTEGER i
496  CALL vzero(pj6,nj*jdim)
497  DO i=1,npar
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)
503  ENDIF
504  ENDDO
505  IF(jdim.GE.5) THEN
506  DO i=1,nj
507  rr = pj6(1,i)**2+pj6(2,i)**2+pj6(3,i)**2
508  qq = pj6(4,i)**2-rr
509  pj6(5,i)=sqrt(max(qq,0.))
510  IF(jdim.GE.6) pj6(6,i) = sqrt(rr)
511  ENDDO
512  ENDIF
513  END
subroutine symrgj(NFIN, IEXAM4, N0JET, NPART, IJOUT, QJET, IJFIN, QJFIN4, IERR)
Definition: symrgj.f:3
subroutine syjetf1(IEXAM, N0JET, NPART, QIN, IJ, FRAC, IJOUT, QJET)
Definition: syjetf1.f:3
subroutine syjkrn(MD, NJETRQ, THRESH, IMODE, YCUTS, IEXAM, FRAC, IEXAM4, NPAR, IDIM, PPAR, MXJET, NJET, IASS, JDIM, PJETS, Y34, Y45, IERR)
Definition: syjkrn.f:3
subroutine syjetf2(IEXAM, N0JET, NPART, QIN, IJ, FRAC, IJOUT, QJET)
Definition: syjetf2.f:3
double min(double a, double b)
subroutine syjcp6(NPAR, PPAR, NJ, IASS, JDIM, PJ6)
Definition: syjkrn.f:487
subroutine syjetf0(IMODE, YCUT, EPS0, R0, NJETRQ, NPAR0, PPAR0, IUSE, NJET, IPASS0, PJET6, Y34, Y45, IERR)
Definition: syjetf0.f:2