All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
syjetf0.f
Go to the documentation of this file.
1 CDECK ID>, SYJETF0.
2  SUBROUTINE syjetf0(IMODE,YCUT,EPS0,R0,NJETRQ,NPAR0,PPAR0,IUSE,
3  + njet,ipass0,pjet6,y34,y45,ierr)
4 * Traditional Jet Finders
5 * Authour : Satoru Yamashita
6 * Creat : 1-Oct-97
7 *
8 * IMODE : 1,2,3,4,5,6,7,8,9,10,11,12 : fixed YCUT, or EPS-R cut
9 * IMODE : 101,102,103,104,105,,,,112 : fixed NJET
10 *
11  implicit none
12  INTEGER imode
13  REAL ycut,rin,epsin
14  INTEGER njetrq,npar0,ipass0(*),iuse(*),jmode
15  INTEGER npar,ierr,i,njet,ipass(300),k,ijmul(10),j
16  REAL ppar(5,300),ppar0(5,*)
17  REAL pjj(10,10),y34,y45,pjet(5,10),pjet6(6,*)
18  REAL p4(4,10)
19  REAL eps0,r0
20  REAL rout,epsout,ydum
21  INTEGER njetout,njdum
22 
23 *====== initialyzation
24  njet = 0
25  DO i=1,npar0
26  ipass0(i)=-1
27  ENDDO
28  CALL vzero(pjet,5*10)
29  CALL vzero(ipass0,npar0)
30  y34 = 0.
31  y45 = 0.
32  ierr = 0
33  npar = 0
34  DO i=1,npar0
35  IF(iuse(i).GT.0) THEN
36  npar = npar + 1
37  DO k=1,5
38  ppar(k,npar) = ppar0(k,i)
39  ENDDO
40  ENDIF
41  ENDDO
42  IF(npar.LE.2) THEN
43  WRITE(*,'(A,I3,I10)')'NPAR LT 3',npar,npar0
44 * CALL REPORT('JETFIN',1,'E')
45  ierr = -10
46  goto 999
47  ENDIF
48  IF(imode.GT.100.AND.npar.LT.njetrq) THEN
49  WRITE(*,'(A,I3,I10)')'NPAR LT NJRQ',npar,njetrq
50 * CALL REPORT('JETFIN',2,'E')
51  ierr = -5
52  goto 999
53  ENDIF
54 
55 
56 *====== normal YKERN with fixed YCUT
57  IF(imode.GE.1.AND.imode.LE.12) THEN
58 
59  IF(imode.GE.1.AND.imode.LE.6) THEN
60  jmode=imode
61  CALL ykern(jmode,npar,5,ppar,ierr)
62  IF(ierr.NE.0) THEN
63  WRITE(*,'(A,I3,I10)')'YKERN ERROR 1',i,ierr
64 * CALL REPORT('JETFIN',3,'E')
65  goto 999
66  ENDIF
67  CALL ynjet(ycut,njet,ierr) ! using input YCUT
68  IF(ierr.NE.0) THEN
69  WRITE(*,'(A,I3,I10)')'YNJET ERROR 2',i,ierr
70 * CALL REPORT('JETFIN',4,'E')
71  goto 999
72  ENDIF
73  IF(njet.GT.10) THEN
74  WRITE(*,'(A,I3,I10)')
75  + 'NJET EXCEED 10 USE 10',njet,imode
76 * CALL REPORT('JETFIN',5,'W')
77  njet = 10
78  ENDIF
79  CALL yasso(njet,pjj,ipass,ierr)
80  IF(ierr.NE.0) THEN
81  WRITE(*,'(A,I3,I10)')'YASSO ERROR 1',i,ierr
82 * CALL REPORT('JETFIN',6,'E')
83  goto 999
84  ENDIF
85  DO k=1,njet
86  CALL ucopy(pjj(1,k),pjet(1,k),4)
87  ENDDO
88 
89  ELSEIF(imode.EQ.7) THEN ! Cambridge
90  CALL pxcamj(5,npar,ppar,ycut,njet,ipass,p4,ierr)
91  IF(ierr.NE.0) THEN
92  WRITE(*,'(A,I3,I10)')'PXCAMJ ERROR ',njet,ierr
93 * CALL REPORT('JETFIN',7,'E')
94  goto 999
95  ENDIF
96  DO k=1,njet
97  CALL ucopy(p4(1,k),pjet(1,k),4)
98  pjet(5,k) = sqrt(max(0.,
99  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
100  ENDDO
101 
102  ELSEIF(imode.GE.8.AND.imode.LE.11) THEN ! LUCLUS default
103 C ! YCUT==XMIN
104  jmode = imode - 7
105  CALL pxlcl5(npar,5,ppar,jmode,ycut,1,10,
106  + njet,pjet,ipass,ijmul,ierr)
107  IF(ierr.NE.0) THEN
108  WRITE(*,'(A,I3,I10)')'PXLCL5 ERROR ',njet,ierr
109 * CALL REPORT('JETFIN',8,'E')
110  goto 999
111  ENDIF
112  DO k=1,njet
113  pjet(5,k) = sqrt(max(0.,
114  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
115  ENDDO
116 
117  ELSEIF(imode.EQ.12) THEN ! CONE
118  rin = r0
119  epsin = eps0
120  CALL pxcone(npar,5,ppar,rin,epsin,10,
121  + njet,pjet,ipass,ijmul,ierr)
122  IF(ierr.NE.0) THEN
123  WRITE(*,'(A,I3,I10)')'PXCONE ERROR ',njet,ierr
124 * CALL REPORT('JETFIN',9,'E')
125  goto 999
126  ENDIF
127  DO k=1,njet
128  pjet(5,k) = sqrt(max(0.,
129  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
130  ENDDO
131 
132  ENDIF
133 
134  ELSEIF(imode.GE.101.AND.imode.LE.112) THEN
135  njet = njetrq
136 
137  IF(imode.GE.101.AND.imode.LE.106) THEN
138  jmode=imode-100
139  CALL ykern(jmode,npar,5,ppar,ierr) ! DURHAM
140  IF(ierr.NE.0) THEN
141  WRITE(*,'(A,I5,I10)')'YKERN ERROR 2',imode,ierr
142 * CALL REPORT('JETFIN',10,'E')
143  goto 999
144  ENDIF
145  CALL yyjet(njet,y45,y34,ierr)
146  IF(ierr.NE.0) THEN
147  WRITE(*,'(A,I3,I10)')'YYJET ERROR 1',i,ierr
148 * CALL REPORT('JETFIN',11,'E')
149  goto 999
150  ENDIF
151 
152 * temp
153 C write(*,*)'NJET=',NJET,NPAR0,NPAR,IMODE,JMODE,PPAR(4,NPAR)
154 
155  CALL yasso(njet,pjj,ipass,ierr)
156 C write(*,*)'over YASSO'
157 
158  IF(ierr.NE.0) THEN
159  WRITE(*,'(A,I3,I10)')'YASSO ERROR 1',i,ierr
160 * CALL REPORT('JETFIN',12,'E')
161  goto 999
162  ENDIF
163  DO k=1,njet
164  CALL ucopy(pjj(1,k),pjet(1,k),4)
165  pjet(5,k) = sqrt(max(0.,
166  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
167  ENDDO
168 
169  ELSEIF(imode.EQ.107) THEN ! CAMBRIDGE WITH FIXED NJET
170  CALL ckern(5,npar,ppar,njet,ierr)
171  IF(ierr.NE.0) THEN
172  WRITE(*,'(A,I5,I10)')'CKERN ERROR',imode,ierr
173 * CALL REPORT('JETFIN',13,'E')
174  goto 999
175  ENDIF
176  CALL cyjet(njet,y45,y34,ierr)
177  IF(ierr.NE.0) THEN
178  WRITE(*,'(A,I3,I10)')'CYJET ERROR',i,ierr
179 * CALL REPORT('JETFIN',14,'E')
180  goto 999
181  ENDIF
182  CALL casso(njet,p4,ipass,ierr)
183  IF(ierr.NE.0) THEN
184  WRITE(*,'(A,I3,I10)')'CASSO ERROR 1',i,ierr
185 * CALL REPORT('JETFIN',15,'E')
186  goto 999
187  ENDIF
188  DO k=1,njet
189  CALL ucopy(p4(1,k),pjet(1,k),4)
190  pjet(5,k) = sqrt(max(0.,
191  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
192  ENDDO
193 
194  ELSEIF(imode.GE.108.AND.imode.LE.111) THEN ! LUCLUS NOT YET
195  jmode = imode - 107
196  ydum = 50.0
197  IF(imode.EQ.111) ydum = 0.99
198  njdum = njet
199  CALL pxlcl5(npar,5,ppar,jmode,ydum,njdum,10,
200  + njet,pjet,ipass,ijmul,ierr)
201  IF(ierr.NE.0) THEN
202  WRITE(*,'(A,I3,I10)')'PXLCL5 ERROR ',njet,ierr
203 * CALL REPORT('JETFIN',8,'E')
204  goto 999
205  ENDIF
206  DO k=1,njet
207  pjet(5,k) = sqrt(max(0.,
208  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
209  ENDDO
210 
211  ELSE IF(imode.EQ.112) THEN
212  epsout = 10.0 ! EPS = 10 GEV
213  CALL sycone(njet,npar,5,ppar,rout,epsout,
214  + 10,njetout,pjet,ipass,ijmul,ierr)
215  IF(ierr.NE.0) THEN
216  WRITE(*,'(A,I3,I10)')'SYCONE ERROR',njet,ierr
217 * CALL REPORT('JETFIN',17,'E')
218  goto 999
219  ENDIF
220  IF(njet.NE.njetout) THEN
221  WRITE(*,'(A,I3,I10)')
222  + 'SYCONE NJ NOT MATCH',njet,njetout
223 * CALL REPORT('JETFIN',18,'E')
224  ierr = 1
225  goto 999
226  ENDIF
227  DO j=1,npar
228  IF(ipass(j).LE.0) THEN
229  ipass(j)=0
230  ENDIF
231  ENDDO
232  y34 = rout
233  y45 = epsout
234  ENDIF
235  ELSE
236  WRITE(*,'(A,I5,I10)')'NO JET ALGORITHM',imode,ierr
237 * CALL REPORT('JETFIN',19,'E')
238  ierr = -999
239  goto 999
240  ENDIF
241 
242  DO i=1,npar
243  IF(ipass(i).GT.njet.OR.ipass(i).LT.1) THEN
244  ipass(i) = 0
245  ENDIF
246  ENDDO
247  k = 0
248  DO i=1,npar0
249  IF(iuse(i).GT.0) THEN
250  k = k + 1
251  ipass0(i) = ipass(k)
252  ENDIF
253  ENDDO
254  DO k=1,njet
255  pjet(5,k) = sqrt(max(0.,
256  + pjet(4,k)**2-pjet(1,k)**2-pjet(2,k)**2-pjet(3,k)**2))
257  ENDDO
258  DO k=1,njet
259  CALL ucopy(pjet(1,k),pjet6(1,k),5)
260  pjet6(6,k) = sqrt(pjet(1,k)**2+pjet(2,k)**2+pjet(3,k)**2)
261  ENDDO
262 
263  RETURN
264 
265  999 CONTINUE
266  write(*,*)' BAD OK1',njet,npar0,imode,ierr,njetrq
267  njet = 0
268  CALL vzero(pjet6,6*10)
269  CALL vzero(ipass0,npar0)
270  y34 = 0.
271  y45 = 0.
272 C write(*,*)' BAD OK2'
273 
274  RETURN
275 
276  END
subroutine ckern(ITKDM, NT, PT, NJREQ, IERR)
Definition: ckern.f:2
subroutine cyjet(NJET, YL, YH, IERR)
Definition: cyjet.f:2
subroutine pxlcl5(NTRAK, ITKDM, PTRAK, IMODE, XMIN, MNJET, MXJET, NJET, PJET, IPASS, IJMUL, IERR)
Definition: pxlcl5.f:2
subroutine sycone(NJREQ, NTRAK, ITKMAX, PTRAK, R, EPS, NJMAX, NJET, PJET, IPASS, IJMUL, IERR)
Definition: sycone.f:3
subroutine casso(NJET, PNJ, BL, IERR)
Definition: casso.f:2
subroutine ynjet(YCUT, NJET, IERR)
Definition: ynjet.f:2
subroutine yyjet(NJET, YL, YH, IERR)
Definition: yyjet.f:2
subroutine pxcone(NTRAK, ITKDM, PTRAK, CONER, EPSLON, MXJET, NJET, PJET, IPASS, IJMUL, IERR)
Definition: pxcone.f:2
subroutine pxcamj(ITKDM, NT, PT, YCUT, NJ, IJ, PJ, IERR)
Definition: pxcamj.f:2
subroutine yasso(NJET, PNJ, BL, IERR)
Definition: yasso.f:2
subroutine syjetf0(IMODE, YCUT, EPS0, R0, NJETRQ, NPAR0, PPAR0, IUSE, NJET, IPASS0, PJET6, Y34, Y45, IERR)
Definition: syjetf0.f:2
subroutine ykern(IMODE, NT, ITKDM, PP, IERR)
Definition: ykern.f:2