3 C*********************************************************************
5 SUBROUTINE LUTABU_HIJING(MTABU)
7 C...Purpose: to evaluate various properties of an event, with
8 C...statistics accumulated during the course of the run and
9 C...printed at the end.
10 #include "lujets_hijing.inc"
11 #include "ludat1_hijing.inc"
12 #include "ludat2_hijing.inc"
13 #include "ludat3_hijing.inc"
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 120 I=NKFIS,IKFIS,-1
60 120 NPIS(I+1,J)=NPIS(I,J)
67 NPIS(IKFIS,0)=NPIS(IKFIS,0)+1
69 C...Count number of partons in initial state.
72 IF(K(I,1).LE.0.OR.K(I,1).GT.12) THEN
73 ELSEIF(IABS(K(I,2)).GT.80.AND.IABS(K(I,2)).LE.100) THEN
74 ELSEIF(IABS(K(I,2)).GT.100.AND.MOD(IABS(K(I,2))/10,10).NE.0)
79 IF(IM.LE.0.OR.IM.GT.N) THEN
81 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
83 ELSEIF(IABS(K(IM,2)).GT.80.AND.IABS(K(IM,2)).LE.100) THEN
84 ELSEIF(IABS(K(IM,2)).GT.100.AND.MOD(IABS(K(IM,2))/10,10).NE.0)
97 NPIS(IKFIS,NPCO)=NPIS(IKFIS,NPCO)+1
100 C...Write statistics on initial parton state.
101 ELSEIF(MTABU.EQ.12) THEN
103 WRITE(MSTU(11),1000) NEVIS
106 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
108 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
109 CALL LUNAME_HIJING(KFM1,CHAU)
111 IF(CHAU(13:13).NE.' ') CHIS(1)(12:12)='?'
113 IF(KFIS(I,1).EQ.0) KFMX=0
115 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
116 CALL LUNAME_HIJING(KFM2,CHAU)
118 IF(CHAU(13:13).NE.' ') CHIS(2)(12:12)='?'
119 160 WRITE(MSTU(11),1100) CHIS(1),CHIS(2),FAC*NPIS(I,0),
120 & (NPIS(I,J)/FLOAT(NPIS(I,0)),J=1,10)
122 C...Copy statistics on initial parton state into /LUJETS_HIJING/.
123 ELSEIF(MTABU.EQ.13) THEN
127 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
129 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
131 IF(KFIS(I,1).EQ.0) KFMX=0
133 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
141 170 V(I,J)=FAC*NPIS(I,J+5)
152 C...Reset statistics on number of particles/partons.
153 ELSEIF(MTABU.EQ.20) THEN
160 C...Identify whether particle/parton is primary or not.
161 ELSEIF(MTABU.EQ.21) THEN
165 IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,1).EQ.13) GOTO 230
167 KC=LUCOMP_HIJING(K(I,2))
169 IF(K(I,3).LE.0.OR.K(I,3).GT.N) THEN
171 ELSEIF(K(K(I,3),1).LE.0.OR.K(K(I,3),1).GT.20) THEN
174 ELSEIF(K(K(I,3),1).EQ.13) THEN
176 IF(IM.LE.0.OR.IM.GT.N) THEN
178 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
181 ELSEIF(KCHG(KC,2).EQ.0) THEN
182 KCM=LUCOMP_HIJING(K(K(I,3),2))
184 IF(KCHG(KCM,2).NE.0) MPRI=1
187 IF(KC.NE.0.AND.MPRI.EQ.1) THEN
188 IF(KCHG(KC,2).EQ.0) NPRFS=NPRFS+1
190 IF(K(I,1).LE.10) THEN
192 IF(LUCHGE_HIJING(K(I,2)).NE.0) NCHFS=NCHFS+1
195 C...Fill statistics on number of particles/partons in event.
197 KFS=3-ISIGN(1,K(I,2))-MPRI
199 IF(KFA.EQ.KFFS(IP)) THEN
202 ELSEIF(KFA.LT.KFFS(IP)) THEN
208 200 IF(IKFFS.LT.0) THEN
211 IF(NKFFS.GE.400) RETURN
212 DO 210 IP=NKFFS,IKFFS,-1
215 210 NPFS(IP+1,J)=NPFS(IP,J)
221 NPFS(IKFFS,KFS)=NPFS(IKFFS,KFS)+1
224 C...Write statistics on particle/parton composition of events.
225 ELSEIF(MTABU.EQ.22) THEN
227 WRITE(MSTU(11),1200) NEVFS,FAC*NPRFS,FAC*NFIFS,FAC*NCHFS
229 CALL LUNAME_HIJING(KFFS(I),CHAU)
230 KC=LUCOMP_HIJING(KFFS(I))
232 IF(KC.NE.0) MDCYF=MDCY(KC,1)
233 240 WRITE(MSTU(11),1300) KFFS(I),CHAU,MDCYF,(FAC*NPFS(I,J),J=1,4),
234 & FAC*(NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4))
236 C...Copy particle/parton composition information into /LUJETS_HIJING/.
237 ELSEIF(MTABU.EQ.23) THEN
244 K(I,5)=NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4)
263 C...Reset factorial moments statistics.
264 ELSEIF(MTABU.EQ.30) THEN
271 280 FM2FM(IM,IB,IP)=0.
273 C...Find particles to include, with (pion,pseudo)rapidity and azimuth.
274 ELSEIF(MTABU.EQ.31) THEN
279 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 360
280 IF(MSTU(41).GE.2) THEN
281 KC=LUCOMP_HIJING(K(I,2))
282 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
284 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LUCHGE_HIJING(K(I,2))
288 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=ULMASS_HIJING(211)
289 IF(MSTU(42).GE.2) PMR=P(I,5)
290 PR=MAX(1E-20,PMR**2+P(I,1)**2+P(I,2)**2)
291 YETA=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR),
293 IF(ABS(YETA).GT.PARU(57)) GOTO 360
294 PHI=ULANGL_HIJING(P(I,1),P(I,2))
295 IYETA=512.*(YETA+PARU(57))/(2.*PARU(57))
296 IYETA=MAX(0,MIN(511,IYETA))
297 IPHI=512.*(PHI+PARU(1))/PARU(2)
298 IPHI=MAX(0,MIN(511,IPHI))
301 290 IYEP=IYEP+4**IB*(2*MOD(IYETA/2**IB,2)+MOD(IPHI/2**IB,2))
303 C...Order particles in (pseudo)rapidity and/or azimuth.
304 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
305 CALL LUERRM_HIJING(11
306 $ ,'(LUTABU_HIJING:) no more memory left in LUJETS_HIJING'
311 IF(NUPP.EQ.NLOW+1) THEN
316 DO 300 I1=NUPP-1,NLOW+1,-1
317 IF(IYETA.GE.K(I1,1)) GOTO 310
318 300 K(I1+1,1)=K(I1,1)
320 DO 320 I1=NUPP-1,NLOW+1,-1
321 IF(IPHI.GE.K(I1,2)) GOTO 330
322 320 K(I1+1,2)=K(I1,2)
324 DO 340 I1=NUPP-1,NLOW+1,-1
325 IF(IYEP.GE.K(I1,3)) GOTO 350
326 340 K(I1+1,3)=K(I1,3)
334 C...Calculate sum of factorial moments in event.
340 IF(IM.LE.2) IBIN=2**(10-IB)
341 IF(IM.EQ.3) IBIN=4**(10-IB)
342 IAGR=K(NLOW+1,IM)/IBIN
344 DO 380 I=NLOW+2,NUPP+1
346 IF(ICUT.EQ.IAGR) THEN
350 ELSEIF(NAGR.EQ.2) THEN
351 FEVFM(IB,1)=FEVFM(IB,1)+2.
352 ELSEIF(NAGR.EQ.3) THEN
353 FEVFM(IB,1)=FEVFM(IB,1)+6.
354 FEVFM(IB,2)=FEVFM(IB,2)+6.
355 ELSEIF(NAGR.EQ.4) THEN
356 FEVFM(IB,1)=FEVFM(IB,1)+12.
357 FEVFM(IB,2)=FEVFM(IB,2)+24.
358 FEVFM(IB,3)=FEVFM(IB,3)+24.
360 FEVFM(IB,1)=FEVFM(IB,1)+NAGR*(NAGR-1.)
361 FEVFM(IB,2)=FEVFM(IB,2)+NAGR*(NAGR-1.)*(NAGR-2.)
362 FEVFM(IB,3)=FEVFM(IB,3)+NAGR*(NAGR-1.)*(NAGR-2.)*(NAGR-3.)
363 FEVFM(IB,4)=FEVFM(IB,4)+NAGR*(NAGR-1.)*(NAGR-2.)*(NAGR-3.)*
371 C...Add results to total statistics.
374 IF(FEVFM(1,IP).LT.0.5) THEN
377 FEVFM(IB,IP)=2**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
379 FEVFM(IB,IP)=4**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
381 FM1FM(IM,IB,IP)=FM1FM(IM,IB,IP)+FEVFM(IB,IP)
382 390 FM2FM(IM,IB,IP)=FM2FM(IM,IB,IP)+FEVFM(IB,IP)**2
384 NMUFM=NMUFM+(NUPP-NLOW)
387 C...Write accumulated statistics on factorial moments.
388 ELSEIF(MTABU.EQ.32) THEN
390 IF(MSTU(42).LE.0) WRITE(MSTU(11),1400) NEVFM,'eta'
391 IF(MSTU(42).EQ.1) WRITE(MSTU(11),1400) NEVFM,'ypi'
392 IF(MSTU(42).GE.2) WRITE(MSTU(11),1400) NEVFM,'y '
397 IF(IM.NE.2) BYETA=BYETA/2**(IB-1)
399 IF(IM.NE.1) BPHI=BPHI/2**(IB-1)
400 IF(IM.LE.2) BNAVE=FAC*NMUFM/FLOAT(2**(IB-1))
401 IF(IM.EQ.3) BNAVE=FAC*NMUFM/FLOAT(4**(IB-1))
403 FMOMA(IP)=FAC*FM1FM(IM,IB,IP)
404 410 FMOMS(IP)=SQRT(MAX(0.,FAC*(FAC*FM2FM(IM,IB,IP)-FMOMA(IP)**2)))
405 420 WRITE(MSTU(11),1600) BYETA,BPHI,BNAVE,(FMOMA(IP),FMOMS(IP),
408 C...Copy statistics on factorial moments into /LUJETS_HIJING/.
409 ELSEIF(MTABU.EQ.33) THEN
417 IF(IM.NE.2) K(I,3)=2**(IB-1)
419 IF(IM.NE.1) K(I,4)=2**(IB-1)
421 P(I,1)=2.*PARU(57)/K(I,3)
422 V(I,1)=PARU(2)/K(I,4)
424 P(I,IP+1)=FAC*FM1FM(IM,IB,IP)
425 430 V(I,IP+1)=SQRT(MAX(0.,FAC*(FAC*FM2FM(IM,IB,IP)-P(I,IP+1)**2)))
436 C...Reset statistics on Energy-Energy Correlation.
437 ELSEIF(MTABU.EQ.40) THEN
447 C...Find particles to include, with proper assumed mass.
448 ELSEIF(MTABU.EQ.41) THEN
454 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 460
455 IF(MSTU(41).GE.2) THEN
456 KC=LUCOMP_HIJING(K(I,2))
457 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
459 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LUCHGE_HIJING(K(I,2))
463 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=ULMASS_HIJING(211)
464 IF(MSTU(42).GE.2) PMR=P(I,5)
465 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
466 CALL LUERRM_HIJING(11
467 $ ,'(LUTABU_HIJING:) no more memory left in LUJETS_HIJING'
475 P(NUPP,4)=SQRT(PMR**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
476 P(NUPP,5)=MAX(1E-10,SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2))
479 IF(NUPP.EQ.NLOW) RETURN
481 C...Analyze Energy-Energy Correlation in event.
482 FAC=(2./ECM**2)*50./PARU(1)
485 DO 480 I1=NLOW+2,NUPP
486 DO 480 I2=NLOW+1,I1-1
487 CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/
489 THE=ACOS(MAX(-1.,MIN(1.,CTHE)))
490 ITHE=MAX(1,MIN(50,1+INT(50.*THE/PARU(1))))
491 480 FEVEE(ITHE)=FEVEE(ITHE)+FAC*P(I1,4)*P(I2,4)
493 FE1EC(J)=FE1EC(J)+FEVEE(J)
494 FE2EC(J)=FE2EC(J)+FEVEE(J)**2
495 FE1EC(51-J)=FE1EC(51-J)+FEVEE(51-J)
496 FE2EC(51-J)=FE2EC(51-J)+FEVEE(51-J)**2
497 FE1EA(J)=FE1EA(J)+(FEVEE(51-J)-FEVEE(J))
498 490 FE2EA(J)=FE2EA(J)+(FEVEE(51-J)-FEVEE(J))**2
501 C...Write statistics on Energy-Energy Correlation.
502 ELSEIF(MTABU.EQ.42) THEN
504 WRITE(MSTU(11),1700) NEVEE
507 FEES1=SQRT(MAX(0.,FAC*(FAC*FE2EC(J)-FEEC1**2)))
508 FEEC2=FAC*FE1EC(51-J)
509 FEES2=SQRT(MAX(0.,FAC*(FAC*FE2EC(51-J)-FEEC2**2)))
511 FEESA=SQRT(MAX(0.,FAC*(FAC*FE2EA(J)-FEECA**2)))
512 500 WRITE(MSTU(11),1800) 3.6*(J-1),3.6*J,FEEC1,FEES1,FEEC2,FEES2,
515 C...Copy statistics on Energy-Energy Correlation into /LUJETS_HIJING/.
516 ELSEIF(MTABU.EQ.43) THEN
525 V(I,1)=SQRT(MAX(0.,FAC*(FAC*FE2EC(I)-P(I,1)**2)))
526 P(I,2)=FAC*FE1EC(51-I)
527 V(I,2)=SQRT(MAX(0.,FAC*(FAC*FE2EC(51-I)-P(I,2)**2)))
529 V(I,3)=SQRT(MAX(0.,FAC*(FAC*FE2EA(I)-P(I,3)**2)))
530 P(I,4)=PARU(1)*(I-1)/50.
544 C...Reset statistics on decay channels.
545 ELSEIF(MTABU.EQ.50) THEN
550 C...Identify and order flavour content of final state.
551 ELSEIF(MTABU.EQ.51) THEN
555 IF(K(I,1).LE.0.OR.K(I,1).GE.6) GOTO 550
562 IF(K(I,2).LT.0) KFM=KFM-1
563 DO 530 IDS=NDS-1,1,-1
565 IF(KFM.LT.KFDM(IDS)) GOTO 540
566 530 KFDM(IDS+1)=KFDM(IDS)
571 C...Find whether old or new final state.
573 IF(NDS.LT.KFDC(IDC,0)) THEN
576 ELSEIF(NDS.EQ.KFDC(IDC,0)) THEN
578 IF(KFDM(I).LT.KFDC(IDC,I)) THEN
581 ELSEIF(KFDM(I).GT.KFDC(IDC,I)) THEN
590 580 IF(IKFDC.LT.0) THEN
592 ELSEIF(NKFDC.GE.200) THEN
596 DO 590 IDC=NKFDC,IKFDC,-1
597 NPDC(IDC+1)=NPDC(IDC)
599 590 KFDC(IDC+1,I)=KFDC(IDC,I)
603 600 KFDC(IKFDC,I)=KFDM(I)
606 NPDC(IKFDC)=NPDC(IKFDC)+1
608 C...Write statistics on decay channels.
609 ELSEIF(MTABU.EQ.52) THEN
611 WRITE(MSTU(11),1900) NEVDC
613 DO 610 I=1,KFDC(IDC,0)
616 IF(2*KF.NE.KFM) KF=-KF
617 CALL LUNAME_HIJING(KF,CHAU)
619 610 IF(CHAU(13:13).NE.' ') CHDC(I)(12:12)='?'
620 620 WRITE(MSTU(11),2000) FAC*NPDC(IDC),(CHDC(I),I=1,KFDC(IDC,0))
621 IF(NREDC.NE.0) WRITE(MSTU(11),2100) FAC*NREDC
623 C...Copy statistics on decay channels into /LUJETS_HIJING/.
624 ELSEIF(MTABU.EQ.53) THEN
635 DO 640 I=1,KFDC(IDC,0)
638 IF(2*KF.NE.KFM) KF=-KF
639 IF(I.LE.5) P(IDC,I)=KF
640 640 IF(I.GE.6) V(IDC,I-5)=KF
641 650 V(IDC,5)=FAC*NPDC(IDC)
654 C...Format statements for output on unit MSTU(11) (default 6).
655 1000 FORMAT(///20X,'Event statistics - initial state'/
656 &20X,'based on an analysis of ',I6,' events'//
657 &3X,'Main flavours after',8X,'Fraction',4X,'Subfractions ',
658 &'according to fragmenting system multiplicity'/
659 &4X,'hard interaction',24X,'1',7X,'2',7X,'3',7X,'4',7X,'5',
660 &6X,'6-7',5X,'8-10',3X,'11-15',3X,'16-25',4X,'>25'/)
661 1100 FORMAT(3X,A12,1X,A12,F10.5,1X,10F8.4)
662 1200 FORMAT(///20X,'Event statistics - final state'/
663 &20X,'based on an analysis of ',I6,' events'//
664 &5X,'Mean primary multiplicity =',F8.3/
665 &5X,'Mean final multiplicity =',F8.3/
666 &5X,'Mean charged multiplicity =',F8.3//
667 &5X,'Number of particles produced per event (directly and via ',
668 &'decays/branchings)'/
669 &5X,'KF Particle/jet MDCY',8X,'Particles',9X,'Antiparticles',
670 &5X,'Total'/34X,'prim seco prim seco'/)
671 1300 FORMAT(1X,I6,4X,A16,I2,5(1X,F9.4))
672 1400 FORMAT(///20X,'Factorial moments analysis of multiplicity'/
673 &20X,'based on an analysis of ',I6,' events'//
674 &3X,'delta-',A3,' delta-phi <n>/bin',10X,'<F2>',18X,'<F3>',
675 &18X,'<F4>',18X,'<F5>'/35X,4(' value error '))
677 1600 FORMAT(2X,2F10.4,F12.4,4(F12.4,F10.4))
678 1700 FORMAT(///20X,'Energy-Energy Correlation and Asymmetry'/
679 &20X,'based on an analysis of ',I6,' events'//
680 &2X,'theta range',8X,'EEC(theta)',8X,'EEC(180-theta)',7X,
681 &'EECA(theta)'/2X,'in degrees ',3(' value error')/)
682 1800 FORMAT(2X,F4.1,' - ',F4.1,3(F11.4,F9.4))
683 1900 FORMAT(///20X,'Decay channel analysis - final state'/
684 &20X,'based on an analysis of ',I6,' events'//
685 &2X,'Probability',10X,'Complete final state'/)
686 2000 FORMAT(2X,F9.5,5X,8(A12,1X))
687 2100 FORMAT(2X,F9.5,5X,'into other channels (more than 8 particles ',
688 &'or table overflow)')