File indexing completed on 2025-08-05 08:15:43
0001
0002
0003
0004 SUBROUTINE LUFOWO(H10,H20,H30,H40)
0005
0006
0007 COMMON/LUJETS/N,K(9000,5),P(9000,5),V(9000,5)
0008 SAVE /LUJETS/
0009 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0010 SAVE /LUDAT1/
0011 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
0012 SAVE /LUDAT2/
0013
0014
0015 NP=0
0016 H0=0.
0017 HD=0.
0018 DO 110 I=1,N
0019 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 110
0020 IF(MSTU(41).GE.2) THEN
0021 KC=LUCOMP(K(I,2))
0022 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
0023 & KC.EQ.18) GOTO 110
0024 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LUCHGE(K(I,2)).EQ.0)
0025 & GOTO 110
0026 ENDIF
0027 IF(N+NP.GE.MSTU(4)-MSTU(32)-5) THEN
0028 CALL LUERRM(11,'(LUFOWO:) no more memory left in LUJETS')
0029 H10=-1.
0030 H20=-1.
0031 H30=-1.
0032 H40=-1.
0033 RETURN
0034 ENDIF
0035 NP=NP+1
0036 DO 100 J=1,3
0037 100 P(N+NP,J)=P(I,J)
0038 P(N+NP,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
0039 H0=H0+P(N+NP,4)
0040 HD=HD+P(N+NP,4)**2
0041 110 CONTINUE
0042 H0=H0**2
0043
0044
0045 IF(NP.LE.1) THEN
0046 CALL LUERRM(8,'(LUFOWO:) too few particles for analysis')
0047 H10=-1.
0048 H20=-1.
0049 H30=-1.
0050 H40=-1.
0051 RETURN
0052 ENDIF
0053
0054
0055 H10=0.
0056 H20=0.
0057 H30=0.
0058 H40=0.
0059 DO 120 I1=N+1,N+NP
0060 DO 120 I2=I1+1,N+NP
0061 CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/
0062 &(P(I1,4)*P(I2,4))
0063 H10=H10+P(I1,4)*P(I2,4)*CTHE
0064 H20=H20+P(I1,4)*P(I2,4)*(1.5*CTHE**2-0.5)
0065 H30=H30+P(I1,4)*P(I2,4)*(2.5*CTHE**3-1.5*CTHE)
0066 H40=H40+P(I1,4)*P(I2,4)*(4.375*CTHE**4-3.75*CTHE**2+0.375)
0067 120 CONTINUE
0068
0069
0070 MSTU(61)=N+1
0071 MSTU(62)=NP
0072 H10=(HD+2.*H10)/H0
0073 H20=(HD+2.*H20)/H0
0074 H30=(HD+2.*H30)/H0
0075 H40=(HD+2.*H40)/H0
0076
0077 RETURN
0078 END