~maddevelopers/mg5amcnlo/2.9.4

« back to all changes in this revision

Viewing changes to Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_rates_hepmc.f

pass to v2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
C----------------------------------------------------------------------
 
2
      SUBROUTINE RCLOS()
 
3
C     DUMMY IF HBOOK IS USED
 
4
C----------------------------------------------------------------------
 
5
      END
 
6
 
 
7
 
 
8
C----------------------------------------------------------------------
 
9
      SUBROUTINE PYABEG
 
10
C     USER'S ROUTINE FOR INITIALIZATION
 
11
C----------------------------------------------------------------------
 
12
      INCLUDE 'HEPMC.INC'
 
13
      include 'reweight0.inc'
 
14
      integer i,kk,l
 
15
      character*5 cc(2)
 
16
      data cc/'     ','     '/
 
17
      integer nwgt,max_weight,nwgt_analysis
 
18
      common/cnwgt/nwgt
 
19
      common/c_analysis/nwgt_analysis
 
20
      parameter (max_weight=maxscales*maxscales+maxpdfs+1)
 
21
      character*15 weights_info(max_weight)
 
22
      common/cwgtsinfo/weights_info
 
23
c
 
24
      call inihist
 
25
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
26
c To be changed !!
 
27
      nwgt=1
 
28
      weights_info(nwgt)="central value  "
 
29
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
30
      nwgt_analysis=nwgt
 
31
      do i=1,1
 
32
      do kk=1,nwgt_analysis
 
33
      l=(kk-1)*2+(i-1)*1
 
34
      call mbook(l+ 1,'total rate '//weights_info(kk)//cc(i)
 
35
     &     ,1d0,0d0,2d0)
 
36
      enddo
 
37
      enddo
 
38
 999  END
 
39
C----------------------------------------------------------------------
 
40
      SUBROUTINE PYAEND(IEVTTOT)
 
41
C     USER'S ROUTINE FOR TERMINAL CALCULATIONS, HISTOGRAM OUTPUT, ETC
 
42
C----------------------------------------------------------------------
 
43
      INCLUDE 'HEPMC.INC'
 
44
      REAL*8 XNORM
 
45
      INTEGER I,KK,l,nwgt_analysis
 
46
      integer NPL
 
47
      parameter(NPL=15000)
 
48
      common/c_analysis/nwgt_analysis
 
49
      OPEN(UNIT=99,FILE='PYTHIA.TOP',STATUS='UNKNOWN')
 
50
C XNORM IS SUCH THAT THE CROSS SECTION PER BIN IS IN PB, SINCE THE HERWIG 
 
51
C WEIGHT IS IN NB, AND CORRESPONDS TO THE AVERAGE CROSS SECTION
 
52
      XNORM=IEVTTOT/DFLOAT(NEVHEP)
 
53
      DO I=1,NPL              
 
54
        CALL MFINAL3(I)             
 
55
        CALL MCOPY(I,I+NPL)
 
56
        CALL MOPERA(I+NPL,'F',I+NPL,I+NPL,(XNORM),0.D0)
 
57
        CALL MFINAL3(I+NPL)             
 
58
      ENDDO                          
 
59
C
 
60
      do i=1,1
 
61
      do kk=1,nwgt_analysis
 
62
      l=(kk-1)*2+(i-1)*1
 
63
      call multitop(NPL+l+ 1,NPL-1,3,2,'total rate ',' ','LIN')
 
64
      enddo
 
65
      enddo
 
66
      CLOSE(99)
 
67
      END
 
68
 
 
69
C----------------------------------------------------------------------
 
70
      SUBROUTINE PYANAL
 
71
C     USER'S ROUTINE TO ANALYSE DATA FROM EVENT
 
72
C----------------------------------------------------------------------
 
73
      INCLUDE 'HEPMC.INC'
 
74
      include 'reweight0.inc'
 
75
      INTEGER KK,i,l
 
76
      real*8 tot
 
77
      data tot/0.5d0/
 
78
      integer nwgt_analysis,max_weight
 
79
      common/c_analysis/nwgt_analysis
 
80
      parameter (max_weight=maxscales*maxscales+maxpdfs+1)
 
81
      double precision ww(max_weight),www(max_weight)
 
82
      common/cww/ww
 
83
c
 
84
      IF(MOD(NEVHEP,10000).EQ.0)RETURN
 
85
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
86
c To be changed !!
 
87
      ww(1)=1d0
 
88
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
89
      IF (WW(1).EQ.0D0) THEN
 
90
         WRITE(*,*)'WW(1) = 0. Stopping'
 
91
         STOP
 
92
      ENDIF
 
93
c
 
94
C INCOMING PARTONS MAY TRAVEL IN THE SAME DIRECTION: IT'S A POWER-SUPPRESSED
 
95
C EFFECT, SO THROW THE EVENT AWAY
 
96
      IF(SIGN(1.D0,PHEP(3,1)).EQ.SIGN(1.D0,PHEP(3,2)))THEN
 
97
        CALL HWWARN('PYANAL',111)
 
98
        GOTO 999
 
99
      ENDIF
 
100
      DO I=1,nwgt_analysis
 
101
         WWW(I)=EVWGT*ww(i)/ww(1)
 
102
      ENDDO
 
103
C
 
104
      do i=1,1
 
105
         do kk=1,nwgt_analysis
 
106
            l=(kk-1)*2+(i-1)*1
 
107
            call mfill(l+1,tot,WWW(kk))
 
108
         enddo
 
109
      enddo
 
110
C
 
111
 999  END
 
112
 
 
113
C-----------------------------------------------------------------------
 
114
      SUBROUTINE HWWARN(SUBRTN,ICODE)
 
115
C-----------------------------------------------------------------------
 
116
C     DEALS WITH ERRORS DURING EXECUTION
 
117
C     SUBRTN = NAME OF CALLING SUBROUTINE
 
118
C     ICODE  = ERROR CODE:    - -1 NONFATAL, KILL EVENT & PRINT NOTHING
 
119
C                            0- 49 NONFATAL, PRINT WARNING & CONTINUE
 
120
C                           50- 99 NONFATAL, PRINT WARNING & JUMP
 
121
C                          100-199 NONFATAL, DUMP & KILL EVENT
 
122
C                          200-299    FATAL, TERMINATE RUN
 
123
C                          300-399    FATAL, DUMP EVENT & TERMINATE RUN
 
124
C                          400-499    FATAL, DUMP EVENT & STOP DEAD
 
125
C                          500-       FATAL, STOP DEAD WITH NO DUMP
 
126
C-----------------------------------------------------------------------
 
127
      INCLUDE 'HEPMC.INC'
 
128
      INTEGER ICODE,NRN,IERROR
 
129
      CHARACTER*6 SUBRTN
 
130
      IF (ICODE.GE.0) WRITE (6,10) SUBRTN,ICODE
 
131
   10 FORMAT(/' HWWARN CALLED FROM SUBPROGRAM ',A6,': CODE =',I4)
 
132
      IF (ICODE.LT.0) THEN
 
133
         IERROR=ICODE
 
134
         RETURN
 
135
      ELSEIF (ICODE.LT.100) THEN
 
136
         WRITE (6,20) NEVHEP,NRN,EVWGT
 
137
   20    FORMAT(' EVENT',I8,':   SEEDS =',I11,' &',I11,
 
138
     &'  WEIGHT =',E11.4/' EVENT SURVIVES. EXECUTION CONTINUES')
 
139
         IF (ICODE.GT.49) RETURN
 
140
      ELSEIF (ICODE.LT.200) THEN
 
141
         WRITE (6,30) NEVHEP,NRN,EVWGT
 
142
   30    FORMAT(' EVENT',I8,':   SEEDS =',I11,' &',I11,
 
143
     &'  WEIGHT =',E11.4/' EVENT KILLED.   EXECUTION CONTINUES')
 
144
         IERROR=ICODE
 
145
         RETURN
 
146
      ELSEIF (ICODE.LT.300) THEN
 
147
         WRITE (6,40)
 
148
   40    FORMAT(' EVENT SURVIVES.  RUN ENDS GRACEFULLY')
 
149
c$$$         CALL HWEFIN
 
150
c$$$         CALL HWAEND
 
151
         STOP
 
152
      ELSEIF (ICODE.LT.400) THEN
 
153
         WRITE (6,50)
 
154
   50    FORMAT(' EVENT KILLED: DUMP FOLLOWS.  RUN ENDS GRACEFULLY')
 
155
         IERROR=ICODE
 
156
c$$$         CALL HWUEPR
 
157
c$$$         CALL HWUBPR
 
158
c$$$         CALL HWEFIN
 
159
c$$$         CALL HWAEND
 
160
         STOP
 
161
      ELSEIF (ICODE.LT.500) THEN
 
162
         WRITE (6,60)
 
163
   60    FORMAT(' EVENT KILLED: DUMP FOLLOWS.  RUN STOPS DEAD')
 
164
         IERROR=ICODE
 
165
c$$$         CALL HWUEPR
 
166
c$$$         CALL HWUBPR
 
167
         STOP
 
168
      ELSE
 
169
         WRITE (6,70)
 
170
   70    FORMAT(' RUN CANNOT CONTINUE')
 
171
         STOP
 
172
      ENDIF
 
173
      END
 
174
 
 
175
 
 
176
      subroutine HWUEPR
 
177
      INCLUDE 'HEPMC.INC'
 
178
      integer ip,i
 
179
      PRINT *,' EVENT ',NEVHEP
 
180
      DO IP=1,NHEP
 
181
         PRINT '(I4,I8,I4,4I4,1P,5D11.3)',IP,IDHEP(IP),ISTHEP(IP),
 
182
     &        JMOHEP(1,IP),JMOHEP(2,IP),JDAHEP(1,IP),JDAHEP(2,IP),
 
183
     &        (PHEP(I,IP),I=1,5)
 
184
      ENDDO
 
185
      return
 
186
      end
 
187
 
 
188