File indexing completed on 2025-08-05 08:15:45
0001
0002
0003
0004 SUBROUTINE PYHISTAT(MSTAT)
0005
0006
0007
0008 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0009 SAVE /LUDAT1/
0010 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
0011 SAVE /LUDAT2/
0012 COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
0013 SAVE /LUDAT3/
0014 COMMON/PYHISUBS/MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200)
0015 SAVE /PYHISUBS/
0016 COMMON/PYHIPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0017 SAVE /PYHIPARS/
0018 COMMON/PYHIINT1/MINT(400),VINT(400)
0019 SAVE /PYHIINT1/
0020 COMMON/PYHIINT4/WIDP(21:40,0:40),WIDE(21:40,0:40),WIDS(21:40,3)
0021 SAVE /PYHIINT4/
0022 COMMON/PYHIINT5/NGEN(0:200,3),XSEC(0:200,3)
0023 SAVE /PYHIINT5/
0024 COMMON/PYHIINT6/PROC(0:200)
0025 CHARACTER PROC*28
0026 SAVE /PYHIINT6/
0027 CHARACTER CHAU*16,CHPA(-40:40)*12,CHIN(2)*12,
0028 &STATE(-1:5)*4,CHKIN(21)*18
0029 DATA STATE/'----','off ','on ','on/+','on/-','on/1','on/2'/,
0030 &CHKIN/' m_hard (GeV/c^2) ',' p_T_hard (GeV/c) ',
0031 &'m_finite (GeV/c^2)',' y*_subsystem ',' y*_large ',
0032 &' y*_small ',' eta*_large ',' eta*_small ',
0033 &'cos(theta*)_large ','cos(theta*)_small ',' x_1 ',
0034 &' x_2 ',' x_F ',' cos(theta_hard) ',
0035 &'m''_hard (GeV/c^2) ',' tau ',' y* ',
0036 &'cos(theta_hard^-) ','cos(theta_hard^+) ',' x_T^2 ',
0037 &' tau'' '/
0038
0039
0040 IF(MSTAT.LE.1) THEN
0041 WRITE(MSTU(11),1000)
0042 WRITE(MSTU(11),1100)
0043 WRITE(MSTU(11),1200) 0,PROC(0),NGEN(0,3),NGEN(0,1),XSEC(0,3)
0044 DO 100 I=1,200
0045 IF(MSUB(I).NE.1) GOTO 100
0046 WRITE(MSTU(11),1200) I,PROC(I),NGEN(I,3),NGEN(I,1),XSEC(I,3)
0047 100 CONTINUE
0048 WRITE(MSTU(11),1300) 1.-FLOAT(NGEN(0,3))/
0049 & MAX(1.,FLOAT(NGEN(0,2)))
0050
0051
0052 ELSEIF(MSTAT.EQ.2) THEN
0053 DO 110 KF=-40,40
0054 CALL LUNAME(KF,CHAU)
0055 110 CHPA(KF)=CHAU(1:12)
0056 WRITE(MSTU(11),1400)
0057 WRITE(MSTU(11),1500)
0058
0059 DO 130 I=1,17
0060 KC=I
0061 IF(I.GE.9) KC=I+2
0062 IF(I.EQ.17) KC=21
0063 WRITE(MSTU(11),1600) CHPA(KC),0.,0.,STATE(MDCY(KC,1)),0.
0064 DO 120 J=1,MDCY(KC,3)
0065 IDC=J+MDCY(KC,2)-1
0066 120 IF(MDME(IDC,2).EQ.102) WRITE(MSTU(11),1700) CHPA(KFDP(IDC,1)),
0067 & CHPA(KFDP(IDC,2)),0.,0.,STATE(MDME(IDC,1)),0.
0068 130 CONTINUE
0069
0070 DO 150 I=1,6
0071 KC=I+22
0072 IF(I.EQ.4) KC=32
0073 IF(I.EQ.5) KC=37
0074 IF(I.EQ.6) KC=40
0075 IF(WIDE(KC,0).GT.0.) THEN
0076 WRITE(MSTU(11),1600) CHPA(KC),WIDP(KC,0),1.,
0077 & STATE(MDCY(KC,1)),1.
0078 DO 140 J=1,MDCY(KC,3)
0079 IDC=J+MDCY(KC,2)-1
0080 140 WRITE(MSTU(11),1700) CHPA(KFDP(IDC,1)),CHPA(KFDP(IDC,2)),
0081 & WIDP(KC,J),WIDP(KC,J)/WIDP(KC,0),STATE(MDME(IDC,1)),
0082 & WIDE(KC,J)/WIDE(KC,0)
0083 ELSE
0084 WRITE(MSTU(11),1600) CHPA(KC),WIDP(KC,0),1.,
0085 & STATE(MDCY(KC,1)),0.
0086 ENDIF
0087 150 CONTINUE
0088 WRITE(MSTU(11),1800)
0089
0090
0091 ELSEIF(MSTAT.EQ.3) THEN
0092 WRITE(MSTU(11),1900)
0093 CALL LUNAME(MINT(11),CHAU)
0094 CHIN(1)=CHAU(1:12)
0095 CALL LUNAME(MINT(12),CHAU)
0096 CHIN(2)=CHAU(1:12)
0097 WRITE(MSTU(11),2000) CHIN(1),CHIN(2)
0098 DO 160 KF=-40,40
0099 CALL LUNAME(KF,CHAU)
0100 160 CHPA(KF)=CHAU(1:12)
0101 IF(MINT(43).EQ.1) THEN
0102 WRITE(MSTU(11),2100) CHPA(MINT(11)),STATE(KFIN(1,MINT(11))),
0103 & CHPA(MINT(12)),STATE(KFIN(2,MINT(12)))
0104 ELSEIF(MINT(43).EQ.2) THEN
0105 WRITE(MSTU(11),2100) CHPA(MINT(11)),STATE(KFIN(1,MINT(11))),
0106 & CHPA(-MSTP(54)),STATE(KFIN(2,-MSTP(54)))
0107 DO 170 I=-MSTP(54)+1,-1
0108 170 WRITE(MSTU(11),2200) CHPA(I),STATE(KFIN(2,I))
0109 DO 180 I=1,MSTP(54)
0110 180 WRITE(MSTU(11),2200) CHPA(I),STATE(KFIN(2,I))
0111 WRITE(MSTU(11),2200) CHPA(21),STATE(KFIN(2,21))
0112 ELSEIF(MINT(43).EQ.3) THEN
0113 WRITE(MSTU(11),2100) CHPA(-MSTP(54)),STATE(KFIN(1,-MSTP(54))),
0114 & CHPA(MINT(12)),STATE(KFIN(2,MINT(12)))
0115 DO 190 I=-MSTP(54)+1,-1
0116 190 WRITE(MSTU(11),2300) CHPA(I),STATE(KFIN(1,I))
0117 DO 200 I=1,MSTP(54)
0118 200 WRITE(MSTU(11),2300) CHPA(I),STATE(KFIN(1,I))
0119 WRITE(MSTU(11),2300) CHPA(21),STATE(KFIN(1,21))
0120 ELSEIF(MINT(43).EQ.4) THEN
0121 DO 210 I=-MSTP(54),-1
0122 210 WRITE(MSTU(11),2100) CHPA(I),STATE(KFIN(1,I)),CHPA(I),
0123 & STATE(KFIN(2,I))
0124 DO 220 I=1,MSTP(54)
0125 220 WRITE(MSTU(11),2100) CHPA(I),STATE(KFIN(1,I)),CHPA(I),
0126 & STATE(KFIN(2,I))
0127 WRITE(MSTU(11),2100) CHPA(21),STATE(KFIN(1,21)),CHPA(21),
0128 & STATE(KFIN(2,21))
0129 ENDIF
0130 WRITE(MSTU(11),2400)
0131
0132
0133 ELSEIF(MSTAT.EQ.4) THEN
0134 WRITE(MSTU(11),2500)
0135 WRITE(MSTU(11),2600)
0136 SHRMAX=CKIN(2)
0137 IF(SHRMAX.LT.0.) SHRMAX=VINT(1)
0138 WRITE(MSTU(11),2700) CKIN(1),CHKIN(1),SHRMAX
0139 PTHMIN=MAX(CKIN(3),CKIN(5))
0140 PTHMAX=CKIN(4)
0141 IF(PTHMAX.LT.0.) PTHMAX=0.5*SHRMAX
0142 WRITE(MSTU(11),2800) CKIN(3),PTHMIN,CHKIN(2),PTHMAX
0143 WRITE(MSTU(11),2900) CHKIN(3),CKIN(6)
0144 DO 230 I=4,14
0145 230 WRITE(MSTU(11),2700) CKIN(2*I-1),CHKIN(I),CKIN(2*I)
0146 SPRMAX=CKIN(32)
0147 IF(SPRMAX.LT.0.) SPRMAX=VINT(1)
0148 WRITE(MSTU(11),2700) CKIN(31),CHKIN(13),SPRMAX
0149 WRITE(MSTU(11),3000)
0150 WRITE(MSTU(11),3100)
0151 WRITE(MSTU(11),2600)
0152 DO 240 I=16,21
0153 240 WRITE(MSTU(11),2700) VINT(I-5),CHKIN(I),VINT(I+15)
0154 WRITE(MSTU(11),3000)
0155
0156
0157 ELSEIF(MSTAT.EQ.5) THEN
0158 WRITE(MSTU(11),3200)
0159 WRITE(MSTU(11),3300)
0160 DO 250 I=1,100
0161 250 WRITE(MSTU(11),3400) I,MSTP(I),PARP(I),100+I,MSTP(100+I),
0162 & PARP(100+I)
0163 ENDIF
0164
0165
0166 1000 FORMAT('1',9('*'),1X,'PYHISTAT: Statistics on Number of ',
0167 &'Events and Cross-sections',1X,9('*'))
0168 1100 FORMAT(/1X,78('=')/1X,'I',34X,'I',28X,'I',12X,'I'/1X,'I',12X,
0169 &'Subprocess',12X,'I',6X,'Number of points',6X,'I',4X,'Sigma',3X,
0170 &'I'/1X,'I',34X,'I',28X,'I',12X,'I'/1X,'I',34('-'),'I',28('-'),
0171 &'I',4X,'(mb)',4X,'I'/1X,'I',34X,'I',28X,'I',12X,'I'/1X,'I',1X,
0172 &'N:o',1X,'Type',25X,'I',4X,'Generated',9X,'Tried',1X,'I',12X,
0173 &'I'/1X,'I',34X,'I',28X,'I',12X,'I'/1X,78('=')/1X,'I',34X,'I',28X,
0174 &'I',12X,'I')
0175 1200 FORMAT(1X,'I',1X,I3,1X,A28,1X,'I',1X,I12,1X,I13,1X,'I',1X,1P,
0176 &E10.3,1X,'I')
0177 1300 FORMAT(1X,'I',34X,'I',28X,'I',12X,'I'/1X,78('=')//
0178 &1X,'********* Fraction of events that fail fragmentation ',
0179 &'cuts =',1X,F8.5,' *********'/)
0180 1400 FORMAT('1',17('*'),1X,'PYHISTAT: Decay Widths and Branching ',
0181 &'Ratios',1X,17('*'))
0182 1500 FORMAT(/1X,78('=')/1X,'I',29X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/
0183 &1X,'I',1X,'Branching/Decay Channel',5X,'I',1X,'Width (GeV)',1X,
0184 &'I',7X,'B.R.',1X,'I',1X,'Stat',1X,'I',2X,'Eff. B.R.',1X,'I'/1X,
0185 &'I',29X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/1X,78('='))
0186 1600 FORMAT(1X,'I',29X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/1X,'I',1X,
0187 &A12,1X,'->',13X,'I',2X,1P,E10.3,0P,1X,'I',1X,1P,E10.3,0P,1X,'I',
0188 &1X,A4,1X,'I',1X,1P,E10.3,0P,1X,'I')
0189 1700 FORMAT(1X,'I',1X,A12,1X,'+',1X,A12,1X,'I',2X,1P,E10.3,0P,1X,'I',
0190 &1X,1P,E10.3,0P,1X,'I',1X,A4,1X,'I',1X,1P,E10.3,0P,1X,'I')
0191 1800 FORMAT(1X,'I',29X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/1X,78('='))
0192 1900 FORMAT('1',7('*'),1X,'PYHISTAT: Allowed Incoming Partons/',
0193 &'Particles at Hard Interaction',1X,7('*'))
0194 2000 FORMAT(/1X,78('=')/1X,'I',38X,'I',37X,'I'/1X,'I',1X,
0195 &'Beam particle:',1X,A,10X,'I',1X,'Target particle:',1X,A,7X,
0196 &'I'/1X,'I',38X,'I',37X,'I'/1X,'I',1X,'Content',9X,'State',16X,
0197 &'I',1X,'Content',9X,'State',15X,'I'/1X,'I',38X,'I',37X,'I'/1X,
0198 &78('=')/1X,'I',38X,'I',37X,'I')
0199 2100 FORMAT(1X,'I',1X,A,5X,A,16X,'I',1X,A,5X,A,15X,'I')
0200 2200 FORMAT(1X,'I',38X,'I',1X,A,5X,A,15X,'I')
0201 2300 FORMAT(1X,'I',1X,A,5X,A,16X,'I',37X,'I')
0202 2400 FORMAT(1X,'I',38X,'I',37X,'I'/1X,78('='))
0203 2500 FORMAT('1',12('*'),1X,'PYHISTAT: User-Defined Limits on ',
0204 &'Kinematical Variables',1X,12('*'))
0205 2600 FORMAT(/1X,78('=')/1X,'I',76X,'I')
0206 2700 FORMAT(1X,'I',16X,1P,E10.3,0P,1X,'<',1X,A,1X,'<',1X,1P,E10.3,0P,
0207 &16X,'I')
0208 2800 FORMAT(1X,'I',3X,1P,E10.3,0P,1X,'(',1P,E10.3,0P,')',1X,'<',1X,A,
0209 &1X,'<',1X,1P,E10.3,0P,16X,'I')
0210 2900 FORMAT(1X,'I',29X,A,1X,'=',1X,1P,E10.3,0P,16X,'I')
0211 3000 FORMAT(1X,'I',76X,'I'/1X,78('='))
0212 3100 FORMAT(////1X,5('*'),1X,
0213 &'PYHISTAT: Derived Limits on Kinematical ',
0214 &'Variables Used in Generation',1X,5('*'))
0215 3200 FORMAT('1',12('*'),1X,'PYHISTAT: Summary of Status Codes and ',
0216 &'Parameter Values',1X,12('*'))
0217 3300 FORMAT(/3X,'I',4X,'MSTP(I)',9X,'PARP(I)',20X,'I',4X,'MSTP(I)',9X,
0218 &'PARP(I)'/)
0219 3400 FORMAT(1X,I3,5X,I6,6X,1P,E10.3,0P,18X,I3,5X,I6,6X,1P,E10.3)
0220
0221 RETURN
0222 END