2 SUBROUTINE pxcamj(ITKDM,NT,PT,YCUT,NJ,IJ,PJ,IERR)
32 INTEGER itkdm,nt,nj,ij(*),ierr
33 REAL pt(itkdm,*),evis,ycut,pj(4,*)
35 parameter( ntrk=300, nv=ntrk*(ntrk-2)+ntrk-(ntrk-2)*(ntrk-1)/2 )
36 LOGICAL ip(ntrk),lcall
37 INTEGER i,ii,j,k,l,imini,jmini,iad,jj(ntrk)
38 DOUBLE PRECISION pp(5),pl(5,ntrk),v(nv),pm,vmini,ysca
40 DATA lcall / .false. /
44 print *,
'Cambridge jet finding algorithm, please refer to:'
45 print *,
'Yu.L. Dokshitzer, G.D. Leder, S. Moretti, B.R. Webber'
46 print *,
'CAVENDISH-HEP-97/06 (June 1997)'
54 WRITE(*,
'(''CAMJET: More than '',I3,'' input particles: '',I5)')
58 ELSEIF( nt.LT.2 )
THEN
59 WRITE(*,
'(''CAMJET: Less than 2 input particles: '',I5)') nt
68 pl(ii,i)= dble(pt(ii,i))
70 pm=pl(1,i)**2+pl(2,i)**2+pl(3,i)**2
78 ysca= dble(ycut)*dble(evis)**2
87 v(iad) = 2d0*(1d0-(pp(1)*pl(1,j) +pp(2)*pl(2,j)
88 & +pp(3)*pl(3,j))*pp(5)*pl(5,j))
100 IF (ip(j).AND.v(iad).LT.vmini)
THEN
113 IF (vmini*
min(pl(4,imini),pl(4,jmini))**2.GE.ysca)
THEN
115 IF (pl(4,imini).LT.pl(4,jmini))
THEN
123 pl(ii,imini)=pl(ii,imini)+pl(ii,jmini)
125 pm=pl(1,imini)**2+pl(2,imini)**2+pl(3,imini)**2
127 pl(5,imini)=1d0/sqrt(pm)
138 IF (ij(i).EQ.jmini) ij(i)=imini
142 iad = nt*(k-1) + l - (k*(k+1))/2
143 v(iad) = 2d0*(1d0-(pl(1,k)*pl(1,l) +pl(2,k)*pl(2,l)
144 & +pl(3,k)*pl(3,l))*pl(5,k)*pl(5,l))
159 pj(ii,j)= sngl(pl(ii,i))
double min(double a, double b)
subroutine pxcamj(ITKDM, NT, PT, YCUT, NJ, IJ, PJ, IERR)