More volume overlaps corrected
[u/mrichter/AliRoot.git] / ISAJET / code / gettot.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE GETTOT(PRFLAG)
3C
4C Calculate total cross section within jet limits.
5C If PRFLAG=.TRUE. print summary.
6C
7#if defined(CERNLIB_IMPNONE)
8 IMPLICIT NONE
9#endif
10#include "isajet/itapes.inc"
11#include "isajet/final.inc"
12#include "isajet/times.inc"
13#include "isajet/totals.inc"
14#include "isajet/keys.inc"
15#include "isajet/q1q2.inc"
16#include "isajet/const.inc"
17#include "isajet/jetlim.inc"
18#include "isajet/dylim.inc"
19#include "isajet/types.inc"
20#include "isajet/idrun.inc"
21#include "isajet/seed.inc"
22#include "isajet/primar.inc"
23#include "isajet/isloop.inc"
24#include "isajet/mgsigs.inc"
25C
26 REAL DELPHI,SIGF2,FRAC,TMEAN,ALUM2,SIGF3
27 LOGICAL PRFLAG
28 INTEGER I,II,KK
29 REAL TMP
30 LOGICAL MGFLAG
31C
32C Calculate jet cross sections
33C
34 SIGF=0.
35 ALUM=0.
36 ACCEPT=0.
37 NKINF=NKINPT
38C For 2-body processes we can use the totals.
39C For MadGraph we must sum the partial cross sections.
40 MGFLAG=KEYS(12)
41 IF(NKINPT.GT.0.AND..NOT.MGFLAG) THEN
42 SIGF=SUMWT/NKINPT
43 DELPHI=2.*PI
44 IF(KEYS(1).OR.KEYS(2).OR.KEYS(5).OR.KEYS(6).OR.KEYS(8)
45 $ .OR.KEYS(9)) THEN
46 DELPHI=PHIMAX(1)-PHIMIN(1)
47 ELSEIF(KEYS(3).AND..NOT.STDDY) THEN
48 DELPHI=PHWMAX-PHWMIN
49 ENDIF
50 SIGF=SIGF*DELPHI/(2.*PI)
51 ELSEIF(MGFLAG) THEN
52 DO 10 I=1,NSIG8
53 SIGF=SIGF+WTSUM8(I)/NWT8(I)
5410 CONTINUE
55 ENDIF
56C
57C Print summary if desired
58C
59 IF(.NOT.PRFLAG) RETURN
60C
61C Print header and title
62 WRITE(ITLIS,100)
63100 FORMAT('1',30('*')/' *',28X,'*'/
64 1' *',5X,'ISAJET RUN SUMMARY',5X,'*'/
65 2' *',28X,'*'/1X,30('*')//)
66 WRITE(ITLIS,101) TITLE
67101 FORMAT(//11X,10A8)
68 IF(NKINPT.EQ.0) GO TO 300
69C
70C Print cross section
71 WRITE(ITLIS,102) NKINPT
72102 FORMAT(//' NO. KINEMATIC POINTS GENERATED =',I13)
73 SIGF2=SIGF*NEVOLV*NFRGMN
74 WRITE(ITLIS,103) SIGF2
75103 FORMAT(//' MONTE CARLO JET CROSS SECTION =',E13.4,' MB')
76 IF(SIGF.EQ.0.) WRITE(ITLIS,111)
77111 FORMAT(' CROSS SECTION IS ZERO IF VARIABLES ARE FIXED')
78C
79C Print W decay acceptance
80 IF(KEYS(3)) THEN
81 ACCEPT=FLOAT(NKEEP)/FLOAT(NWGEN)
82 WRITE(ITLIS,105) ACCEPT
83105 FORMAT(//' ACCEPTANCE FOR W DECAYS =',E13.4)
84 ELSEIF(KEYS(7)) THEN
85 ACCEPT=FLOAT(NKEEP)/FLOAT(NWGEN)
86 WRITE(ITLIS,106) ACCEPT
87106 FORMAT(//' ACCEPTANCE FOR H DECAYS =',E13.4)
88 ENDIF
89C
90C Print luminosity
91 IF(SIGF.GT.0.) THEN
92 ALUM=NEVENT/SIGF
93 IF(KEYS(4)) ALUM=NKINPT/SIGF
94 WRITE(ITLIS,104) ALUM
95104 FORMAT(//' EQUIVALENT INTEGRAL LUMINOSITY =',E13.4,
96 $ ' /MB')
97 ENDIF
98C
99C Print final multijet cross sections
100 IF(KEYS(12)) THEN
101 WRITE(ITLIS,9001)
1029001 FORMAT(//6X,'FINAL MULTIJET CROSS SECTIONS'/
103 $ 6X,'PROCESS',18X,'SIGMA',10X,'MAX(SIGMA)')
104 DO 992 I=1,NSIG8
105 II=ISORT8(I)
106 TMP=WTSUM8(II)/NWT8(II)
107 WRITE(ITLIS,9002) (IDENT8(KK,II),KK=1,5),TMP,WTMAX8(II)
1089002 FORMAT(2X,5I5,2E15.5)
109992 CONTINUE
110 WRITE(ITLIS,*)
111 ENDIF
112C
113C Print statistics for multiple evolution and fragmentation
114 IF(NEVOLV.GT.1.OR.NFRGMN.GT.1) THEN
115 FRAC=FLOAT(IEVGEN)/FLOAT(IEVT)
116 WRITE(ITLIS,201) IEVGEN
117201 FORMAT(//' NUMBER OF ACCEPTED EVENTS =',I13)
118 WRITE(ITLIS,202) FRAC
119202 FORMAT(' FRACTION OF ACCEPTED EVENTS =',E13.4)
120 SIGF3=SIGF2*FRAC
121 WRITE(ITLIS,203) SIGF3
122203 FORMAT(' CROSS SECTION FOR ACCEPTED EVENTS =',E13.4)
123 ENDIF
124C
125C Print mean time per event
126300 TMEAN=(TIME2-TIME1)/NEVENT
127 WRITE(ITLIS,301) TMEAN
128301 FORMAT(//' MEAN TIME PER GENERATED EVENT =',E13.4,
129 $' SEC')
130C
131C Print final seed
132 CALL RANFMT
133 WRITE(ITLIS,302) XSEED
134302 FORMAT(//' FINAL RANDOM NUMBER SEED =',A24)
135C
136C Print run identifier
137 WRITE(ITLIS,303) IDG
138303 FORMAT(//' END OF ISAJET RUN =',2I9.6)
139 RETURN
140 END