2
c Example analysis for "p p > w+ [QCD]" process.
3
c Example analysis for "p p > w- [QCD]" process.
4
c Example analysis for "p p > z [QCD]" process.
6
C----------------------------------------------------------------------
8
C DUMMY IF HBOOK IS USED
9
C----------------------------------------------------------------------
13
C----------------------------------------------------------------------
15
C USER'S ROUTINE FOR INITIALIZATION
16
C----------------------------------------------------------------------
17
implicit double precision(a-h, o-z)
19
common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
20
include 'reweight0.inc'
21
real * 8 xm0,gam,xmlow,xmupp,bin
23
PARAMETER (PI=3.14159265358979312D0)
27
integer nwgt,max_weight,nwgt_analysis
29
common/c_analysis/nwgt_analysis
30
parameter (max_weight=maxscales*maxscales+maxpdfs+1)
31
character*15 weights_info(max_weight)
32
common/cwgtsinfo/weights_info
42
call mbook(l+ 1,'V pt '//weights_info(kk)//cc(j)
44
call mbook(l+ 2,'V log pt '//weights_info(kk)//cc(j)
46
call mbook(l+ 3,'V y '//weights_info(kk)//cc(j)
48
call mbook(l+ 4,'V eta '//weights_info(kk)//cc(j)
50
call mbook(l+ 5,'mV '//weights_info(kk)//cc(j)
55
C----------------------------------------------------------------------
56
SUBROUTINE PYAEND(IEVT)
57
C USER'S ROUTINE FOR TERMINAL CALCULATIONS, HISTOGRAM OUTPUT, ETC
58
C----------------------------------------------------------------------
60
INTEGER I,J,KK,l,nwgt_analysis
63
common/c_analysis/nwgt_analysis
64
OPEN(UNIT=99,FILE='PYTSVB.TOP',STATUS='UNKNOWN')
69
CALL MOPERA(I+NPL,'F',I+NPL,I+NPL,(XNORM),0.D0)
76
call multitop(NPL+l+ 1,NPL-1,3,2,'V pt ',' ','LOG')
77
call multitop(NPL+l+ 2,NPL-1,3,2,'V log pt ',' ','LOG')
78
call multitop(NPL+l+ 3,NPL-1,3,2,'V y ',' ','LOG')
79
call multitop(NPL+l+ 4,NPL-1,3,2,'V eta ',' ','LOG')
80
call multitop(NPL+l+ 5,NPL-1,3,2,'mV ',' ','LOG')
86
C----------------------------------------------------------------------
88
C USER'S ROUTINE TO ANALYSE DATA FROM EVENT
89
C----------------------------------------------------------------------
90
implicit double precision(a-h, o-z)
92
include 'reweight0.inc'
93
DOUBLE PRECISION PSUM(4),XME,PPV(5),PPE(5),PPNU(5),
94
# PPDCE(5),PPDCNU(5),WT,ETAEMIN(2),ETAEMAX(2),PTEMIN(2),
95
# XMV,PTV,YV,GETRAPIDITY,PTE,THE,ETAE,PTNU,THNU,ETANU,
96
# PTDCE,THDCE,ETADCE,PTDCNU,THDCNU,ETADCNU,ETAV,GETPSEUDORAP
97
INTEGER ICHSUM,ICHINI,IHEP,JPR,IDENT,IFV,IST,ID,ID1,IHRD,IV,
101
common/pyjets/n,npad,k(4000,5),p(4000,5),v(4000,5)
102
common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
103
common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
104
common/pydat3/mdcy(500,3),mdme(8000,2),brat(8000),kfdp(8000,5)
105
common/pysubs/msel,mselpd,msub(500),kfin(2,-40:40),ckin(200)
106
common/pypars/mstp(200),parp(200),msti(200),pari(200)
107
LOGICAL DIDSOF,TEST1,TEST2,FLAG
109
PARAMETER (PI=3.14159265358979312D0)
110
REAL*8 TINY,p1(4),p2(4),pihep(4)
114
integer nwgt_analysis,max_weight
115
common/c_analysis/nwgt_analysis
116
DOUBLE PRECISION EVWEIGHT
117
COMMON/CEVWEIGHT/EVWEIGHT
118
parameter (max_weight=maxscales*maxscales+maxpdfs+1)
119
double precision ww(max_weight),www(max_weight)
126
IF (WW(1).EQ.0D0) THEN
127
WRITE(*,*)'WW(1) = 0. Stopping'
131
c CHOOSE IDENT=24 FOR W+, IDENT=-24 FOR W-, IDENT=23 FOR Z0
133
C INCOMING PARTONS MAY TRAVEL IN THE SAME DIRECTION: IT'S A POWER-SUPPRESSED
134
C EFFECT, SO THROW THE EVENT AWAY
135
IF(SIGN(1.D0,P(3,3)).EQ.SIGN(1.D0,P(4,3)))THEN
136
WRITE(*,*)'WARNING 502 IN PYANAL'
140
WWW(I)=EVWEIGHT*ww(i)/ww(1)
146
CALL VVSUM(4,P1,P2,PSUM)
147
CALL VSCA(4,-1D0,PSUM,PSUM)
151
ICHINI=pychge(kf1)+pychge(kf2)
161
CALL VVSUM(4,PIHEP,PSUM,PSUM)
162
ICHSUM=ICHSUM+pychge(ID1)
166
IF(TEST1.AND.TEST2)IV0=IHEP
168
IF(TEST1.AND.TEST2)THEN
178
WRITE(*,*)'WARNING 503 IN PYANAL: NO WEAK BOSON ',INOBOSON
181
C CHECK MOMENTUM AND CHARGE CONSERVATION
182
IF (VDOT(3,PSUM,PSUM).GT.1.E-4*P(1,4)**2) THEN
183
WRITE(*,*)'WARNING 112 IN PYANAL'
186
IF (ICHSUM.NE.ICHINI) THEN
187
WRITE(*,*)'WARNING 113 IN PYANAL'
191
WRITE(*,*)'WARNING 55 IN PYANAL'
195
C Variables of the vector boson
197
ptv=sqrt(ppv(1)**2+ppv(2)**2)
198
yv=getrapidity(ppv(4),ppv(3))
199
etav=getpseudorap(ppv(4),ppv(1),ppv(2),ppv(3))
202
do kk=1,nwgt_analysis
204
call mfill(l+1,ptv,WWW(kk))
205
if(ptv.gt.0) call mfill(l+2,log10(ptv),WWW(kk))
206
call mfill(l+3,yv,WWW(kk))
207
call mfill(l+4,etav,WWW(kk))
208
call mfill(l+5,xmv,WWW(kk))
215
function getrapidity(en,pl)
217
real*8 getrapidity,en,pl,tiny,xplus,xminus,y
218
parameter (tiny=1.d-5)
222
if(xplus.gt.tiny.and.xminus.gt.tiny)then
223
if( (xplus/xminus).gt.tiny )then
224
y=0.5d0*log( xplus/xminus )
235
function getpseudorap(en,ptx,pty,pl)
237
real*8 getpseudorap,en,ptx,pty,pl,tiny,pt,eta,th
238
parameter (tiny=1.d-5)
240
pt=sqrt(ptx**2+pty**2)
241
if(pt.lt.tiny.and.abs(pl).lt.tiny)then
242
eta=sign(1.d0,pl)*1.d8
245
eta=-log(tan(th/2.d0))
252
C-----------------------------------------------------------------------
253
SUBROUTINE VVSUM(N,P,Q,R)
254
C-----------------------------------------------------------------------
256
C-----------------------------------------------------------------------
259
DOUBLE PRECISION P(N),Q(N),R(N)
266
C-----------------------------------------------------------------------
267
SUBROUTINE VSCA(N,C,P,Q)
268
C-----------------------------------------------------------------------
269
C VECTOR TIMES SCALAR
270
C-----------------------------------------------------------------------
273
DOUBLE PRECISION C,P(N),Q(N)
280
C-----------------------------------------------------------------------
282
C-----------------------------------------------------------------------
284
C-----------------------------------------------------------------------
287
DOUBLE PRECISION VDOT,PQ,P(N),Q(N)