2 C*********************************************************************
4 SUBROUTINE LUTABU(MTABU)
6 C...Purpose: to evaluate various properties of an event, with
7 C...statistics accumulated during the course of the run and
8 C...printed at the end.
9 COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5)
10 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
11 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
12 COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
13 SAVE /LUJETS/,/LUDAT1/,/LUDAT2/,/LUDAT3/
14 DIMENSION KFIS(100,2),NPIS(100,0:10),KFFS(400),NPFS(400,4),
15 &FEVFM(10,4),FM1FM(3,10,4),FM2FM(3,10,4),FMOMA(4),FMOMS(4),
16 &FEVEE(50),FE1EC(50),FE2EC(50),FE1EA(25),FE2EA(25),
17 &KFDM(8),KFDC(200,0:8),NPDC(200)
18 SAVE NEVIS,NKFIS,KFIS,NPIS,NEVFS,NPRFS,NFIFS,NCHFS,NKFFS,
19 &KFFS,NPFS,NEVFM,NMUFM,FM1FM,FM2FM,NEVEE,FE1EC,FE2EC,FE1EA,
20 &FE2EA,NEVDC,NKFDC,NREDC,KFDC,NPDC
21 CHARACTER CHAU*16,CHIS(2)*12,CHDC(8)*12
22 DATA NEVIS/0/,NKFIS/0/,NEVFS/0/,NPRFS/0/,NFIFS/0/,NCHFS/0/,
23 &NKFFS/0/,NEVFM/0/,NMUFM/0/,FM1FM/120*0./,FM2FM/120*0./,
24 &NEVEE/0/,FE1EC/50*0./,FE2EC/50*0./,FE1EA/25*0./,FE2EA/25*0./,
25 &NEVDC/0/,NKFDC/0/,NREDC/0/
27 C...Reset statistics on initial parton state.
32 C...Identify and order flavour content of initial state.
33 ELSEIF(MTABU.EQ.11) THEN
35 KFM1=2*IABS(MSTU(161))
36 IF(MSTU(161).GT.0) KFM1=KFM1-1
37 KFM2=2*IABS(MSTU(162))
38 IF(MSTU(162).GT.0) KFM2=KFM2-1
42 IF(KFMN.EQ.KFIS(I,1).AND.KFMX.EQ.KFIS(I,2)) THEN
45 ELSEIF(KFMN.LT.KFIS(I,1).OR.(KFMN.EQ.KFIS(I,1).AND.
46 & KFMX.LT.KFIS(I,2))) THEN
52 110 IF(IKFIS.LT.0) THEN
55 IF(NKFIS.GE.100) RETURN
56 DO 130 I=NKFIS,IKFIS,-1
70 NPIS(IKFIS,0)=NPIS(IKFIS,0)+1
72 C...Count number of partons in initial state.
75 IF(K(I,1).LE.0.OR.K(I,1).GT.12) THEN
76 ELSEIF(IABS(K(I,2)).GT.80.AND.IABS(K(I,2)).LE.100) THEN
77 ELSEIF(IABS(K(I,2)).GT.100.AND.MOD(IABS(K(I,2))/10,10).NE.0)
82 IF(IM.LE.0.OR.IM.GT.N) THEN
84 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
86 ELSEIF(IABS(K(IM,2)).GT.80.AND.IABS(K(IM,2)).LE.100) THEN
87 ELSEIF(IABS(K(IM,2)).GT.100.AND.MOD(IABS(K(IM,2))/10,10).NE.0)
100 NPIS(IKFIS,NPCO)=NPIS(IKFIS,NPCO)+1
103 C...Write statistics on initial parton state.
104 ELSEIF(MTABU.EQ.12) THEN
106 WRITE(MSTU(11),5000) NEVIS
109 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
111 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
112 CALL LUNAME(KFM1,CHAU)
114 IF(CHAU(13:13).NE.' ') CHIS(1)(12:12)='?'
116 IF(KFIS(I,1).EQ.0) KFMX=0
118 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
119 CALL LUNAME(KFM2,CHAU)
121 IF(CHAU(13:13).NE.' ') CHIS(2)(12:12)='?'
122 WRITE(MSTU(11),5100) CHIS(1),CHIS(2),FAC*NPIS(I,0),
123 & (NPIS(I,J)/FLOAT(NPIS(I,0)),J=1,10)
126 C...Copy statistics on initial parton state into /LUJETS/.
127 ELSEIF(MTABU.EQ.13) THEN
131 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
133 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
135 IF(KFIS(I,1).EQ.0) KFMX=0
137 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
145 V(I,J)=FAC*NPIS(I,J+5)
159 C...Reset statistics on number of particles/partons.
160 ELSEIF(MTABU.EQ.20) THEN
167 C...Identify whether particle/parton is primary or not.
168 ELSEIF(MTABU.EQ.21) THEN
172 IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,1).EQ.13) GOTO 260
176 IF(K(I,3).LE.0.OR.K(I,3).GT.N) THEN
178 ELSEIF(K(K(I,3),1).LE.0.OR.K(K(I,3),1).GT.20) THEN
180 ELSEIF(K(K(I,3),2).GE.91.AND.K(K(I,3),2).LE.93) THEN
183 ELSEIF(K(K(I,3),1).EQ.13) THEN
185 IF(IM.LE.0.OR.IM.GT.N) THEN
187 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
190 ELSEIF(KCHG(KC,2).EQ.0) THEN
191 KCM=LUCOMP(K(K(I,3),2))
193 IF(KCHG(KCM,2).NE.0) MPRI=1
196 IF(KC.NE.0.AND.MPRI.EQ.1) THEN
197 IF(KCHG(KC,2).EQ.0) NPRFS=NPRFS+1
199 IF(K(I,1).LE.10) THEN
201 IF(LUCHGE(K(I,2)).NE.0) NCHFS=NCHFS+1
204 C...Fill statistics on number of particles/partons in event.
206 KFS=3-ISIGN(1,K(I,2))-MPRI
208 IF(KFA.EQ.KFFS(IP)) THEN
211 ELSEIF(KFA.LT.KFFS(IP)) THEN
217 220 IF(IKFFS.LT.0) THEN
220 IF(NKFFS.GE.400) RETURN
221 DO 240 IP=NKFFS,IKFFS,-1
224 NPFS(IP+1,J)=NPFS(IP,J)
233 NPFS(IKFFS,KFS)=NPFS(IKFFS,KFS)+1
236 C...Write statistics on particle/parton composition of events.
237 ELSEIF(MTABU.EQ.22) THEN
239 WRITE(MSTU(11),5200) NEVFS,FAC*NPRFS,FAC*NFIFS,FAC*NCHFS
241 CALL LUNAME(KFFS(I),CHAU)
244 IF(KC.NE.0) MDCYF=MDCY(KC,1)
245 WRITE(MSTU(11),5300) KFFS(I),CHAU,MDCYF,(FAC*NPFS(I,J),J=1,4),
246 & FAC*(NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4))
249 C...Copy particle/parton composition information into /LUJETS/.
250 ELSEIF(MTABU.EQ.23) THEN
257 K(I,5)=NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4)
279 C...Reset factorial moments statistics.
280 ELSEIF(MTABU.EQ.30) THEN
292 C...Find particles to include, with (pion,pseudo)rapidity and azimuth.
293 ELSEIF(MTABU.EQ.31) THEN
298 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 410
299 IF(MSTU(41).GE.2) THEN
301 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
303 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LUCHGE(K(I,2)).EQ.0)
307 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=ULMASS(211)
308 IF(MSTU(42).GE.2) PMR=P(I,5)
309 PR=MAX(1E-20,PMR**2+P(I,1)**2+P(I,2)**2)
310 YETA=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR),
312 IF(ABS(YETA).GT.PARU(57)) GOTO 410
313 PHI=ULANGL(P(I,1),P(I,2))
314 IYETA=512.*(YETA+PARU(57))/(2.*PARU(57))
315 IYETA=MAX(0,MIN(511,IYETA))
316 IPHI=512.*(PHI+PARU(1))/PARU(2)
317 IPHI=MAX(0,MIN(511,IPHI))
320 IYEP=IYEP+4**IB*(2*MOD(IYETA/2**IB,2)+MOD(IPHI/2**IB,2))
323 C...Order particles in (pseudo)rapidity and/or azimuth.
324 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
325 CALL LUERRM(11,'(LUTABU:) no more memory left in LUJETS')
329 IF(NUPP.EQ.NLOW+1) THEN
334 DO 350 I1=NUPP-1,NLOW+1,-1
335 IF(IYETA.GE.K(I1,1)) GOTO 360
339 DO 370 I1=NUPP-1,NLOW+1,-1
340 IF(IPHI.GE.K(I1,2)) GOTO 380
344 DO 390 I1=NUPP-1,NLOW+1,-1
345 IF(IYEP.GE.K(I1,3)) GOTO 400
355 C...Calculate sum of factorial moments in event.
363 IF(IM.LE.2) IBIN=2**(10-IB)
364 IF(IM.EQ.3) IBIN=4**(10-IB)
365 IAGR=K(NLOW+1,IM)/IBIN
367 DO 440 I=NLOW+2,NUPP+1
369 IF(ICUT.EQ.IAGR) THEN
373 ELSEIF(NAGR.EQ.2) THEN
374 FEVFM(IB,1)=FEVFM(IB,1)+2.
375 ELSEIF(NAGR.EQ.3) THEN
376 FEVFM(IB,1)=FEVFM(IB,1)+6.
377 FEVFM(IB,2)=FEVFM(IB,2)+6.
378 ELSEIF(NAGR.EQ.4) THEN
379 FEVFM(IB,1)=FEVFM(IB,1)+12.
380 FEVFM(IB,2)=FEVFM(IB,2)+24.
381 FEVFM(IB,3)=FEVFM(IB,3)+24.
383 FEVFM(IB,1)=FEVFM(IB,1)+NAGR*(NAGR-1.)
384 FEVFM(IB,2)=FEVFM(IB,2)+NAGR*(NAGR-1.)*(NAGR-2.)
385 FEVFM(IB,3)=FEVFM(IB,3)+NAGR*(NAGR-1.)*(NAGR-2.)*(NAGR-3.)
386 FEVFM(IB,4)=FEVFM(IB,4)+NAGR*(NAGR-1.)*(NAGR-2.)*(NAGR-3.)*
395 C...Add results to total statistics.
398 IF(FEVFM(1,IP).LT.0.5) THEN
401 FEVFM(IB,IP)=2.**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
403 FEVFM(IB,IP)=4.**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
405 FM1FM(IM,IB,IP)=FM1FM(IM,IB,IP)+FEVFM(IB,IP)
406 FM2FM(IM,IB,IP)=FM2FM(IM,IB,IP)+FEVFM(IB,IP)**2
410 NMUFM=NMUFM+(NUPP-NLOW)
413 C...Write accumulated statistics on factorial moments.
414 ELSEIF(MTABU.EQ.32) THEN
416 IF(MSTU(42).LE.0) WRITE(MSTU(11),5400) NEVFM,'eta'
417 IF(MSTU(42).EQ.1) WRITE(MSTU(11),5400) NEVFM,'ypi'
418 IF(MSTU(42).GE.2) WRITE(MSTU(11),5400) NEVFM,'y '
423 IF(IM.NE.2) BYETA=BYETA/2**(IB-1)
425 IF(IM.NE.1) BPHI=BPHI/2**(IB-1)
426 IF(IM.LE.2) BNAVE=FAC*NMUFM/FLOAT(2**(IB-1))
427 IF(IM.EQ.3) BNAVE=FAC*NMUFM/FLOAT(4**(IB-1))
429 FMOMA(IP)=FAC*FM1FM(IM,IB,IP)
430 FMOMS(IP)=SQRT(MAX(0.,FAC*(FAC*FM2FM(IM,IB,IP)-FMOMA(IP)**2)))
432 WRITE(MSTU(11),5600) BYETA,BPHI,BNAVE,(FMOMA(IP),FMOMS(IP),
437 C...Copy statistics on factorial moments into /LUJETS/.
438 ELSEIF(MTABU.EQ.33) THEN
446 IF(IM.NE.2) K(I,3)=2**(IB-1)
448 IF(IM.NE.1) K(I,4)=2**(IB-1)
450 P(I,1)=2.*PARU(57)/K(I,3)
451 V(I,1)=PARU(2)/K(I,4)
453 P(I,IP+1)=FAC*FM1FM(IM,IB,IP)
454 V(I,IP+1)=SQRT(MAX(0.,FAC*(FAC*FM2FM(IM,IB,IP)-P(I,IP+1)**2)))
469 C...Reset statistics on Energy-Energy Correlation.
470 ELSEIF(MTABU.EQ.40) THEN
481 C...Find particles to include, with proper assumed mass.
482 ELSEIF(MTABU.EQ.41) THEN
488 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 570
489 IF(MSTU(41).GE.2) THEN
491 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
493 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LUCHGE(K(I,2)).EQ.0)
497 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=ULMASS(211)
498 IF(MSTU(42).GE.2) PMR=P(I,5)
499 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
500 CALL LUERRM(11,'(LUTABU:) no more memory left in LUJETS')
507 P(NUPP,4)=SQRT(PMR**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
508 P(NUPP,5)=MAX(1E-10,SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2))
511 IF(NUPP.EQ.NLOW) RETURN
513 C...Analyze Energy-Energy Correlation in event.
514 FAC=(2./ECM**2)*50./PARU(1)
518 DO 600 I1=NLOW+2,NUPP
519 DO 590 I2=NLOW+1,I1-1
520 CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/
522 THE=ACOS(MAX(-1.,MIN(1.,CTHE)))
523 ITHE=MAX(1,MIN(50,1+INT(50.*THE/PARU(1))))
524 FEVEE(ITHE)=FEVEE(ITHE)+FAC*P(I1,4)*P(I2,4)
528 FE1EC(J)=FE1EC(J)+FEVEE(J)
529 FE2EC(J)=FE2EC(J)+FEVEE(J)**2
530 FE1EC(51-J)=FE1EC(51-J)+FEVEE(51-J)
531 FE2EC(51-J)=FE2EC(51-J)+FEVEE(51-J)**2
532 FE1EA(J)=FE1EA(J)+(FEVEE(51-J)-FEVEE(J))
533 FE2EA(J)=FE2EA(J)+(FEVEE(51-J)-FEVEE(J))**2
537 C...Write statistics on Energy-Energy Correlation.
538 ELSEIF(MTABU.EQ.42) THEN
540 WRITE(MSTU(11),5700) NEVEE
543 FEES1=SQRT(MAX(0.,FAC*(FAC*FE2EC(J)-FEEC1**2)))
544 FEEC2=FAC*FE1EC(51-J)
545 FEES2=SQRT(MAX(0.,FAC*(FAC*FE2EC(51-J)-FEEC2**2)))
547 FEESA=SQRT(MAX(0.,FAC*(FAC*FE2EA(J)-FEECA**2)))
548 WRITE(MSTU(11),5800) 3.6*(J-1),3.6*J,FEEC1,FEES1,FEEC2,FEES2,
552 C...Copy statistics on Energy-Energy Correlation into /LUJETS/.
553 ELSEIF(MTABU.EQ.43) THEN
562 V(I,1)=SQRT(MAX(0.,FAC*(FAC*FE2EC(I)-P(I,1)**2)))
563 P(I,2)=FAC*FE1EC(51-I)
564 V(I,2)=SQRT(MAX(0.,FAC*(FAC*FE2EC(51-I)-P(I,2)**2)))
566 V(I,3)=SQRT(MAX(0.,FAC*(FAC*FE2EA(I)-P(I,3)**2)))
567 P(I,4)=PARU(1)*(I-1)/50.
583 C...Reset statistics on decay channels.
584 ELSEIF(MTABU.EQ.50) THEN
589 C...Identify and order flavour content of final state.
590 ELSEIF(MTABU.EQ.51) THEN
594 IF(K(I,1).LE.0.OR.K(I,1).GE.6) GOTO 670
601 IF(K(I,2).LT.0) KFM=KFM-1
602 DO 650 IDS=NDS-1,1,-1
604 IF(KFM.LT.KFDM(IDS)) GOTO 660
605 KFDM(IDS+1)=KFDM(IDS)
611 C...Find whether old or new final state.
613 IF(NDS.LT.KFDC(IDC,0)) THEN
616 ELSEIF(NDS.EQ.KFDC(IDC,0)) THEN
618 IF(KFDM(I).LT.KFDC(IDC,I)) THEN
621 ELSEIF(KFDM(I).GT.KFDC(IDC,I)) THEN
630 700 IF(IKFDC.LT.0) THEN
632 ELSEIF(NKFDC.GE.200) THEN
636 DO 720 IDC=NKFDC,IKFDC,-1
637 NPDC(IDC+1)=NPDC(IDC)
639 KFDC(IDC+1,I)=KFDC(IDC,I)
645 KFDC(IKFDC,I)=KFDM(I)
649 NPDC(IKFDC)=NPDC(IKFDC)+1
651 C...Write statistics on decay channels.
652 ELSEIF(MTABU.EQ.52) THEN
654 WRITE(MSTU(11),5900) NEVDC
656 DO 740 I=1,KFDC(IDC,0)
659 IF(2*KF.NE.KFM) KF=-KF
662 IF(CHAU(13:13).NE.' ') CHDC(I)(12:12)='?'
664 WRITE(MSTU(11),6000) FAC*NPDC(IDC),(CHDC(I),I=1,KFDC(IDC,0))
666 IF(NREDC.NE.0) WRITE(MSTU(11),6100) FAC*NREDC
668 C...Copy statistics on decay channels into /LUJETS/.
669 ELSEIF(MTABU.EQ.53) THEN
681 DO 770 I=1,KFDC(IDC,0)
684 IF(2*KF.NE.KFM) KF=-KF
685 IF(I.LE.5) P(IDC,I)=KF
686 IF(I.GE.6) V(IDC,I-5)=KF
688 V(IDC,5)=FAC*NPDC(IDC)
703 C...Format statements for output on unit MSTU(11) (default 6).
704 5000 FORMAT(///20X,'Event statistics - initial state'/
705 &20X,'based on an analysis of ',I6,' events'//
706 &3X,'Main flavours after',8X,'Fraction',4X,'Subfractions ',
707 &'according to fragmenting system multiplicity'/
708 &4X,'hard interaction',24X,'1',7X,'2',7X,'3',7X,'4',7X,'5',
709 &6X,'6-7',5X,'8-10',3X,'11-15',3X,'16-25',4X,'>25'/)
710 5100 FORMAT(3X,A12,1X,A12,F10.5,1X,10F8.4)
711 5200 FORMAT(///20X,'Event statistics - final state'/
712 &20X,'based on an analysis of ',I7,' events'//
713 &5X,'Mean primary multiplicity =',F10.4/
714 &5X,'Mean final multiplicity =',F10.4/
715 &5X,'Mean charged multiplicity =',F10.4//
716 &5X,'Number of particles produced per event (directly and via ',
717 &'decays/branchings)'/
718 &5X,'KF Particle/jet MDCY',10X,'Particles',13X,'Antiparticles',
719 &8X,'Total'/35X,'prim seco prim seco'/)
720 5300 FORMAT(1X,I6,4X,A16,I2,5(1X,F11.6))
721 5400 FORMAT(///20X,'Factorial moments analysis of multiplicity'/
722 &20X,'based on an analysis of ',I6,' events'//
723 &3X,'delta-',A3,' delta-phi <n>/bin',10X,'<F2>',18X,'<F3>',
724 &18X,'<F4>',18X,'<F5>'/35X,4(' value error '))
726 5600 FORMAT(2X,2F10.4,F12.4,4(F12.4,F10.4))
727 5700 FORMAT(///20X,'Energy-Energy Correlation and Asymmetry'/
728 &20X,'based on an analysis of ',I6,' events'//
729 &2X,'theta range',8X,'EEC(theta)',8X,'EEC(180-theta)',7X,
730 &'EECA(theta)'/2X,'in degrees ',3(' value error')/)
731 5800 FORMAT(2X,F4.1,' - ',F4.1,3(F11.4,F9.4))
732 5900 FORMAT(///20X,'Decay channel analysis - final state'/
733 &20X,'based on an analysis of ',I6,' events'//
734 &2X,'Probability',10X,'Complete final state'/)
735 6000 FORMAT(2X,F9.5,5X,8(A12,1X))
736 6100 FORMAT(2X,F9.5,5X,'into other channels (more than 8 particles ',
737 &'or table overflow)')