2
c Example analysis for "p p > e+ ve [QCD]" process.
3
c Example analysis for "p p > e- ve~ [QCD]" process.
4
c Example analysis for "p p > mu+ vm [QCD]" process.
5
c Example analysis for "p p > mu- vm~ [QCD]" process.
6
c Example analysis for "p p > ta+ vt [QCD]" process.
7
c Example analysis for "p p > ta- vt~ [QCD]" process.
9
C----------------------------------------------------------------------
11
C DUMMY IF HBOOK IS USED
12
C----------------------------------------------------------------------
16
C----------------------------------------------------------------------
18
C USER'S ROUTINE FOR INITIALIZATION
19
C----------------------------------------------------------------------
20
INCLUDE 'HERWIG65.INC'
21
include 'reweight0.inc'
25
integer nwgt,max_weight,nwgt_analysis
27
common/c_analysis/nwgt_analysis
28
parameter (max_weight=maxscales*maxscales+maxpdfs+1)
29
character*15 weights_info(max_weight)
30
common/cwgtsinfo/weights_info
37
call mbook(l+1,'total rate '//weights_info(kk)//cc(i),
39
call mbook(l+2,'lep rapidity '//weights_info(kk)//cc(i),
41
call mbook(l+3,'lep pt '//weights_info(kk)//cc(i),
43
call mbook(l+4,'et miss '//weights_info(kk)//cc(i),
45
call mbook(l+5,'trans. mass '//weights_info(kk)//cc(i),
47
call mbook(l+6,'w rapidity '//weights_info(kk)//cc(i),
49
call mbook(l+7,'w pt '//weights_info(kk)//cc(i),
51
call mbook(l+8,'cphi[l,vl] '//weights_info(kk)//cc(i),
58
C----------------------------------------------------------------------
60
C USER'S ROUTINE FOR TERMINAL CALCULATIONS, HISTOGRAM OUTPUT, ETC
61
C----------------------------------------------------------------------
62
INCLUDE 'HERWIG65.INC'
64
INTEGER I,J,KK,l,nwgt_analysis
67
common/c_analysis/nwgt_analysis
68
OPEN(UNIT=99,FILE='HERLL.TOP',STATUS='UNKNOWN')
69
C XNORM IS SUCH THAT THE CROSS SECTION PER BIN IS IN PB, SINCE THE HERWIG
70
C WEIGHT IS IN NB, AND CORRESPONDS TO THE AVERAGE CROSS SECTION
71
XNORM=1.D3/DFLOAT(NEVHEP)
75
CALL MOPERA(I+NPL,'F',I+NPL,I+NPL,(XNORM),0.D0)
82
call multitop(NPL+l+1,NPL-1,3,2,'total rate ',' ','LIN')
83
call multitop(NPL+l+2,NPL-1,3,2,'lep rapidity ',' ','LIN')
84
call multitop(NPL+l+3,NPL-1,3,2,'lep pt ',' ','LOG')
85
call multitop(NPL+l+4,NPL-1,3,2,'et miss ',' ','LOG')
86
call multitop(NPL+l+5,NPL-1,3,2,'trans. mass ',' ','LOG')
87
call multitop(NPL+l+6,NPL-1,3,2,'w rapidity ',' ','LIN')
88
call multitop(NPL+l+7,NPL-1,3,2,'w pt ',' ','LOG')
89
call multitop(NPL+l+8,NPL-1,3,2,'cphi[l,vl] ',' ','LOG')
95
C----------------------------------------------------------------------
97
C USER'S ROUTINE TO ANALYSE DATA FROM EVENT
98
C----------------------------------------------------------------------
99
INCLUDE 'HERWIG65.INC'
100
include 'reweight0.inc'
101
DOUBLE PRECISION HWVDOT,PSUM(4),PPV(5),PTW,YW,YE,PPL(5),PPLB(5),
102
& PTE,PLL,PTLB,PLLB,var,mtr,etmiss,cphi
103
INTEGER ICHSUM,ICHINI,IHEP,IV,IFV,IST,ID,IJ,ID1,JPR,IDENT,
105
LOGICAL DIDSOF,FOUNDL,FOUNDN,ISL,ISN
106
REAL*8 PI,getrapidity
107
PARAMETER (PI=3.14159265358979312D0)
108
REAL*8 WWW0,TINY,SIGNL,SIGNN
111
integer nwgt_analysis,max_weight
112
common/c_analysis/nwgt_analysis
113
parameter (max_weight=maxscales*maxscales+maxpdfs+1)
114
double precision ww(max_weight),www(max_weight)
117
IF (IERROR.NE.0) RETURN
118
IF (WW(1).EQ.0D0) THEN
119
WRITE(*,*)'WW(1) = 0. Stopping'
122
C CHOOSE IDENT = 11 FOR E - NU_E
123
C IDENT = 13 FOR MU - NU_MU
124
C IDENT = 15 FOR TAU - NU_TAU
126
C INCOMING PARTONS MAY TRAVEL IN THE SAME DIRECTION: IT'S A POWER-SUPPRESSED
127
C EFFECT, SO THROW THE EVENT AWAY
128
IF(SIGN(1.D0,PHEP(3,4)).EQ.SIGN(1.D0,PHEP(3,5)))THEN
129
CALL HWWARN('HWANAL',111)
133
WWW(I)=EVWGT*ww(i)/ww(1)
135
CALL HWVSUM(4,PHEP(1,1),PHEP(1,2),PSUM)
136
CALL HWVSCA(4,-1D0,PSUM,PSUM)
138
ICHINI=ICHRG(IDHW(1))+ICHRG(IDHW(2))
143
IF (IDHW(IHEP).EQ.16) DIDSOF=.TRUE.
144
IF (ISTHEP(IHEP).EQ.1) THEN
145
CALL HWVSUM(4,PHEP(1,IHEP),PSUM,PSUM)
146
ICHSUM=ICHSUM+ICHRG(IDHW(IHEP))
151
ISL=ABS(ID1).EQ.IDENT
152
ISN=ABS(ID1).EQ.IDENT+1
153
IF(((IST.GE.120.AND.IST.LE.125).OR.IST.EQ.1.OR.IST.EQ.198)
154
& .AND.ISL.AND..NOT.FOUNDL)THEN
157
SIGNL=SIGN(1D0,DBLE(ID1))
159
IF(((IST.GE.120.AND.IST.LE.125).OR.IST.EQ.1)
160
& .AND.ISN.AND..NOT.FOUNDN)THEN
163
SIGNN=SIGN(1D0,DBLE(ID1))
166
IF(.NOT.FOUNDL.OR..NOT.FOUNDN)THEN
167
WRITE(*,*)'NO LEPTONS FOUND.'
168
WRITE(*,*)'CURRENTLY THIS ANALYSIS LOOKS FOR'
169
IF(IDENT.EQ.11)WRITE(*,*)'E - NU_E'
170
IF(IDENT.EQ.13)WRITE(*,*)'MU - NU_MU'
171
IF(IDENT.EQ.15)WRITE(*,*)'TAU - NU_TAU'
172
WRITE(*,*)'IF THIS IS NOT MEANT,'
173
WRITE(*,*)'PLEASE CHANGE THE VALUE OF IDENT IN THIS FILE.'
176
IF(SIGNN.EQ.SIGNL)THEN
177
WRITE(*,*)'TWO SAME SIGN LEPTONS!'
178
WRITE(*,*)IL,IN,SIGNL,SIGNN
181
C CHECK MOMENTUM AND CHARGE CONSERVATION
182
IF (HWVDOT(3,PSUM,PSUM).GT.1.E-4*PHEP(4,1)**2) THEN
184
CALL HWWARN('HWANAL',112)
187
IF (ICHSUM.NE.ICHINI) THEN
189
CALL HWWARN('HWANAL',113)
195
PPV(IJ)=PPL(IJ)+PPLB(IJ)
197
ye = getrapidity(pplb(4), pplb(3))
198
yw = getrapidity(ppv(4), ppv(3))
199
pte = dsqrt(pplb(1)**2 + pplb(2)**2)
200
ptw = dsqrt(ppv(1)**2+ppv(2)**2)
201
etmiss = dsqrt(ppl(1)**2 + ppl(2)**2)
202
mtr = dsqrt(2d0*pte*etmiss-2d0*ppl(1)*pplb(1)-2d0*ppl(2)*pplb(2))
203
cphi = (ppl(1)*pplb(1)+ppl(2)*pplb(2))/pte/etmiss
206
do kk=1,nwgt_analysis
208
call mfill(l+1,var,www(kk))
209
call mfill(l+2,ye,www(kk))
210
call mfill(l+3,pte,www(kk))
211
call mfill(l+4,etmiss,www(kk))
212
call mfill(l+5,mtr,www(kk))
213
call mfill(l+6,yw,www(kk))
214
call mfill(l+7,ptw,www(kk))
215
call mfill(l+8,cphi,www(kk))
220
function getrapidity(en,pl)
222
real*8 getrapidity,en,pl,tiny,xplus,xminus,y
223
parameter (tiny=1.d-8)
226
if(xplus.gt.tiny.and.xminus.gt.tiny)then
227
if( (xplus/xminus).gt.tiny.and.(xminus/xplus).gt.tiny)then
228
y=0.5d0*log( xplus/xminus )