1
subroutine read_event(lun,P,wgt,nexternal,ic,ievent,scale,aqcd,aqed,buff2,done)
2
c********************************************************************
3
c Reads one event from data file #lun
4
c ic(*,1) = Particle ID
9
c ic(*,6) = ISTUP -1=initial state +1=final +2=decayed
11
c********************************************************************
15
parameter (pi = 3.1415926d0)
20
integer nexternal, ic(7,*)
22
double precision P(0:4,*),wgt,aqcd,aqed,scale
30
double precision xdum1,xdum2
36
common/to_banner/banner_open, lun_ban
39
data banner_open/.false./
45
if (.not. banner_open) then
46
open (unit=lun_ban, status='scratch')
49
11 read(lun,'(a256)',end=99,err=99) buff
50
do while(index(buff,"<event") .eq. 0)
51
write(lun_ban,'(a)') buff
52
read(lun,'(a256)',end=99,err=99) buff
54
read(lun,*,err=11, end=11) nexternal,ievent,wgt,scale,aqed,aqcd
56
read(lun,*,err=99,end=99) ic(1,i),ic(6,i),(ic(j,i),j=2,5),
57
$ (p(j,i),j=1,3),p(0,i),p(4,i),xdum1,xdum2
60
do while(index(buff,"</event") .eq. 0)
61
read(lun,'(a256)',end=99,err=99) buff
62
if(buff(1:1).eq.'#') buff2=buff(1:140)
64
c gal(1) = sqrt(4d0*pi*aqed)
65
c g = sqrt(4d0*pi*aqcd)
72
subroutine write_event(lun,P,wgt,nexternal,ic,ievent,scale,aqcd,aqed,buff)
73
c********************************************************************
74
c Writes one event from data file #lun according to LesHouches
75
c ic(1,*) = Particle ID
80
c ic(6,*) = ISTUP -1=initial state +1=final +2=decayed
82
c********************************************************************
88
parameter (pi = 3.1415926d0)
93
integer nexternal, ic(7,*)
94
double precision P(0:4,*),wgt
95
double precision aqcd, aqed, scale
108
c aqed= gal(1)*gal(1)/4d0/pi
111
write(lun,'(a)') '<event>'
112
write(lun,'(i2,i4,4e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd
114
write(lun,51) ic(1,i),ic(6,i),(ic(j,i),j=2,5),
115
$ (p(j,i),j=1,3),p(0,i),p(4,i),0.,real(ic(7,i))
117
if(buff(1:1).eq.'#') write(lun,'(a)') buff(1:len_trim(buff))
118
write(lun,'(a)') '</event>'
120
51 format(i9,5i5,5e19.11,f3.0,f4.0)
123
subroutine write_comments(lun)
124
c********************************************************************
125
c Outputs all of the banner comment lines back at the top of
127
c********************************************************************
142
common/to_banner/banner_open, lun_ban
147
c write(*,*) 'Writing comments'
148
if (banner_open) then
151
read(lun_ban,'(a79)',end=99,err=99) buff
152
write(lun,'(a79)') buff
156
banner_open = .false.