| 1 | subroutine histo_init(num_channel)
|
|---|
| 2 | implicit none
|
|---|
| 3 | c
|
|---|
| 4 | c argument
|
|---|
| 5 | c
|
|---|
| 6 | integer num_channel
|
|---|
| 7 | c
|
|---|
| 8 | c local
|
|---|
| 9 | c
|
|---|
| 10 | character*40 t1, t2, t3, t4, t0
|
|---|
| 11 | integer i
|
|---|
| 12 | c
|
|---|
| 13 | c gobal
|
|---|
| 14 | c
|
|---|
| 15 | double precision GeVbin, etabin, xbin, PTbin, THETAbin
|
|---|
| 16 | common/to_bin/ GeVbin, etabin, xbin
|
|---|
| 17 | c
|
|---|
| 18 | c
|
|---|
| 19 | call inihist
|
|---|
| 20 | c
|
|---|
| 21 | GeVbin=24d0
|
|---|
| 22 | etabin=0.1d0
|
|---|
| 23 | PTbin=10d0
|
|---|
| 24 | THETAbin=4d-2
|
|---|
| 25 | c
|
|---|
| 26 | t0='histo for one vegas iteration (prov)'
|
|---|
| 27 | t1='final state invariant mass '
|
|---|
| 28 | t2='fct error'
|
|---|
| 29 | CALL MBOOK(1,200,t0,GeVbin,100d0,1300d0)
|
|---|
| 30 | CALL MBOOK(1,-200,t0,GeVbin,100d0,1300d0)
|
|---|
| 31 | c
|
|---|
| 32 | t3='Top quark PT '
|
|---|
| 33 | CALL MBOOK(2,200,t0,PTbin,0d0,500d0)
|
|---|
| 34 | CALL MBOOK(2,-200,t0,PTbin,0d0,500d0)
|
|---|
| 35 | c
|
|---|
| 36 | t4='THETA angle '
|
|---|
| 37 | CALL MBOOK(3,200,t0,THETAbin,-1d0,1d0)
|
|---|
| 38 | CALL MBOOK(3,-200,t0,THETAbin,-1d0,1d0)
|
|---|
| 39 |
|
|---|
| 40 | do i=1,num_channel
|
|---|
| 41 | CALL MBOOK(1,i,t1,GeVbin,100d0,1300d0)
|
|---|
| 42 | CALL MBOOK(1,-1*i,t2,GeVbin,100d0,1300d0)
|
|---|
| 43 | CALL MBOOK(2,i,t3,PTbin,0d0,500d0)
|
|---|
| 44 | CALL MBOOK(2,-1*i,t2,PTbin,0d0,500d0)
|
|---|
| 45 | CALL MBOOK(3,i,t4,THETAbin,-1d0,1d0)
|
|---|
| 46 | CALL MBOOK(3,-1*i,t2,THETAbin,-1d0,1d0)
|
|---|
| 47 | enddo
|
|---|
| 48 | return
|
|---|
| 49 |
|
|---|
| 50 | end
|
|---|
| 51 | ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
|
|---|
| 52 |
|
|---|
| 53 | subroutine FILL_plot(fct,weight)
|
|---|
| 54 | implicit none
|
|---|
| 55 | include '../../nexternal.inc'
|
|---|
| 56 | include '../../genps.inc'
|
|---|
| 57 | c
|
|---|
| 58 | c arguments
|
|---|
| 59 | c
|
|---|
| 60 | double precision weight,fct
|
|---|
| 61 | c
|
|---|
| 62 | c local
|
|---|
| 63 | c
|
|---|
| 64 | double precision Ptot(0:3), minv
|
|---|
| 65 | integer i,nu
|
|---|
| 66 |
|
|---|
| 67 | double precision Ptot1(0:3),Ptot2(0:3),PT1,PT2
|
|---|
| 68 | double precision BETA,GAM,PZ_CM,THETA
|
|---|
| 69 | c
|
|---|
| 70 | c common
|
|---|
| 71 | c
|
|---|
| 72 | double precision momenta(0:3,-max_branch:2*nexternal) ! records the momenta of external/intermediate legs (MG order)
|
|---|
| 73 | double precision mvir2(-max_branch:2*nexternal) ! records the sq invariant masses of intermediate particles (MG order)
|
|---|
| 74 | common /to_diagram_kin/ momenta, mvir2
|
|---|
| 75 |
|
|---|
| 76 | double precision PT
|
|---|
| 77 | external PT
|
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 | c---
|
|---|
| 81 | c Begin code for variable 1 (invariant mass of the top quark pair)
|
|---|
| 82 | c---
|
|---|
| 83 |
|
|---|
| 84 | do nu=0,3
|
|---|
| 85 | Ptot(nu)=0d0
|
|---|
| 86 | do i=3,nexternal
|
|---|
| 87 | Ptot(nu)=Ptot(nu)+momenta(nu,i)
|
|---|
| 88 | enddo
|
|---|
| 89 | enddo
|
|---|
| 90 | minv=dsqrt(Ptot(0)**2-Ptot(1)**2-Ptot(2)**2-Ptot(3)**2)
|
|---|
| 91 |
|
|---|
| 92 | CALL MFILL(1,200, minv, fct*weight)
|
|---|
| 93 | CALL MFILL(1,-200, minv, fct**2*weight)
|
|---|
| 94 |
|
|---|
| 95 | c---
|
|---|
| 96 | c Begin code for variable 2 (PT of the top quark)
|
|---|
| 97 | c---
|
|---|
| 98 |
|
|---|
| 99 | do nu=0,3
|
|---|
| 100 | Ptot1(nu)=0d0
|
|---|
| 101 | Ptot2(nu)=0d0
|
|---|
| 102 | do i=3,5
|
|---|
| 103 | Ptot1(nu)=Ptot1(nu)+momenta(nu,i)
|
|---|
| 104 | Ptot2(nu)=Ptot2(nu)+momenta(nu,i+3)
|
|---|
| 105 | enddo
|
|---|
| 106 | enddo
|
|---|
| 107 | PT1=PT(Ptot1)
|
|---|
| 108 | PT2=PT(Ptot2)
|
|---|
| 109 |
|
|---|
| 110 | CALL MFILL(2,200,PT1,fct*weight)
|
|---|
| 111 | CALL MFILL(2,-200,PT1,fct**2*weight)
|
|---|
| 112 |
|
|---|
| 113 | c CALL MFILL()
|
|---|
| 114 | c CALL MFILL()
|
|---|
| 115 |
|
|---|
| 116 | c---
|
|---|
| 117 | c Begin code for variable 3 (angle of the top quark in the center of mass referentiel)
|
|---|
| 118 | c---
|
|---|
| 119 |
|
|---|
| 120 |
|
|---|
| 121 | BETA = (momenta(0,1)-momenta(0,2))/(momenta(0,1)+momenta(0,2))
|
|---|
| 122 | GAM = dsqrt(1-BETA**2)
|
|---|
| 123 |
|
|---|
| 124 | PZ_CM = GAM*Ptot1(3)-GAM*BETA*Ptot1(0)
|
|---|
| 125 | THETA = PZ_CM/(Ptot1(1)**2+Ptot1(2)**2+PZ_CM**2)
|
|---|
| 126 |
|
|---|
| 127 | CALL MFILL(3,200,THETA,fct*weight)
|
|---|
| 128 | CALL MFILL(3,-200,THETA,fct**2*weight)
|
|---|
| 129 |
|
|---|
| 130 | return
|
|---|
| 131 | end
|
|---|
| 132 |
|
|---|
| 133 |
|
|---|
| 134 |
|
|---|
| 135 | cCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCcccccccccccccccccccccccccccc
|
|---|
| 136 | subroutine histo_final(num_channel)
|
|---|
| 137 | c
|
|---|
| 138 | c argument
|
|---|
| 139 | c
|
|---|
| 140 | integer num_per
|
|---|
| 141 | c
|
|---|
| 142 | c local
|
|---|
| 143 | c
|
|---|
| 144 | integer i,num_iter,j,k
|
|---|
| 145 | character*30 BUFFER
|
|---|
| 146 | character istring
|
|---|
| 147 | c
|
|---|
| 148 | c gobal
|
|---|
| 149 | c
|
|---|
| 150 | double precision GeVbin, etabin, xbin
|
|---|
| 151 | common/to_bin/ GeVbin, etabin, xbin
|
|---|
| 152 | c
|
|---|
| 153 | c include histo globlal
|
|---|
| 154 | c
|
|---|
| 155 | include 'dbook.inc'
|
|---|
| 156 |
|
|---|
| 157 | do k=1,NHistovar
|
|---|
| 158 | do i=1,num_channel
|
|---|
| 159 | c if (i.eq.1) istring='1'
|
|---|
| 160 | c if (i.eq.2) istring='2'
|
|---|
| 161 |
|
|---|
| 162 | call MFINAL(k, i)
|
|---|
| 163 | call MFINAL(k, -i)
|
|---|
| 164 | call MOPERA(k, -1*i, 'I',-1*i,-1*i,1d0,1d0) !contains final error square
|
|---|
| 165 | call MOPERA(k, i, '*',-i,i,1d0,1d0) !contains final estimation of integral
|
|---|
| 166 |
|
|---|
| 167 | if(i.ne.1) then
|
|---|
| 168 | call MOPERA(k,i, '+',1,1,1d0,1d0)
|
|---|
| 169 | call MOPERA(k, -i, '+',-1,-1,1d0,1d0)
|
|---|
| 170 | endif
|
|---|
| 171 |
|
|---|
| 172 | call MFINAL(k, 1)
|
|---|
| 173 | call MOPERA(k, -1,'R',-1,-1,1d0,1d0) ! contains the error for the sum of all permutations
|
|---|
| 174 | call MFINAL(k, -1)
|
|---|
| 175 | enddo
|
|---|
| 176 | buffer='plot_00.dat'
|
|---|
| 177 | if (k.ge.10)then
|
|---|
| 178 | write(buffer(6:7),'(I2)') k
|
|---|
| 179 | else
|
|---|
| 180 | write(buffer(7:7),'(I1)') k
|
|---|
| 181 | endif
|
|---|
| 182 |
|
|---|
| 183 | OPEN(UNIT=98,file=buffer,STATUS='UNKNOWN')
|
|---|
| 184 | buffer=buffer(1:7)//'.top'
|
|---|
| 185 | OPEN(UNIT=99,file=buffer,STATUS='UNKNOWN')
|
|---|
| 186 | CALL MPRINT(k, 1)
|
|---|
| 187 | CALL MTOP(k, 1, 50,' M_INV (GeV) '
|
|---|
| 188 | & ,'d P/d M_inv ','log')
|
|---|
| 189 |
|
|---|
| 190 | close(98)
|
|---|
| 191 | close(99)
|
|---|
| 192 |
|
|---|
| 193 |
|
|---|
| 194 | buffer='err_'//buffer(1:7)//'.dat'
|
|---|
| 195 | OPEN(UNIT=98,file=buffer,STATUS='UNKNOWN')
|
|---|
| 196 | buffer=buffer(1:11)//'.top'
|
|---|
| 197 | OPEN(UNIT=99,file=buffer,STATUS='UNKNOWN')
|
|---|
| 198 | CALL MPRINT(k, -1)
|
|---|
| 199 | CALL MTOP(k, -1,50,' M_INV (GeV) '
|
|---|
| 200 | & ,'d P/d M_inv ','log')
|
|---|
| 201 | c
|
|---|
| 202 | close(98)
|
|---|
| 203 | close(99)
|
|---|
| 204 | enddo
|
|---|
| 205 | return
|
|---|
| 206 | end
|
|---|
| 207 |
|
|---|
| 208 | CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
|
|---|
| 209 | subroutine histo_combine_iteration(channel_pos)
|
|---|
| 210 | implicit none
|
|---|
| 211 | c
|
|---|
| 212 | c argument
|
|---|
| 213 | c
|
|---|
| 214 | integer channel_pos
|
|---|
| 215 | c
|
|---|
| 216 | c local
|
|---|
| 217 | c
|
|---|
| 218 | integer i,num_iter,j,k
|
|---|
| 219 | character*30 BUFFER
|
|---|
| 220 | character istring
|
|---|
| 221 | c
|
|---|
| 222 | c gobal
|
|---|
| 223 | c
|
|---|
| 224 | double precision GeVbin, etabin, xbin
|
|---|
| 225 | common/to_bin/ GeVbin, etabin, xbin
|
|---|
| 226 | c
|
|---|
| 227 | c include histo globlal
|
|---|
| 228 | c
|
|---|
| 229 | include 'dbook.inc'
|
|---|
| 230 | c call MFINAL(i)
|
|---|
| 231 | c call MFINAL(-1*i)
|
|---|
| 232 |
|
|---|
| 233 | do k=1,NHistoVar
|
|---|
| 234 |
|
|---|
| 235 | call MFINAL(k, 200)
|
|---|
| 236 | call MFINAL(k, -200)
|
|---|
| 237 |
|
|---|
| 238 | write(*,*) 'combine for histo', channel_pos
|
|---|
| 239 | call MOPERA(k, 200,'V',-200,-200,1d0,1d0)
|
|---|
| 240 | call MOPERA(k, -200,'S',0,-200,1d0,1d0)
|
|---|
| 241 | call MOPERA(k, 200,'/',-200,200,1d0,1d0)
|
|---|
| 242 | call MOPERA(k, channel_pos,'+',200,channel_pos,1d0,1d0)
|
|---|
| 243 |
|
|---|
| 244 | !define a unity histogram in 200 (after simply redifine to zero)
|
|---|
| 245 | call MOPERA(k, -200,'I',-200,-200,1d0,1d0)
|
|---|
| 246 | call MOPERA(k, -1*channel_pos,'+',-200,-1*channel_pos,1d0,1d0)
|
|---|
| 247 |
|
|---|
| 248 | call MOPERA(k, 200,'+',200,200,0d0,0d0)
|
|---|
| 249 | call MOPERA(k, -200,'+',-200,-200,0d0,0d0)
|
|---|
| 250 |
|
|---|
| 251 | enddo
|
|---|
| 252 | return
|
|---|
| 253 | end
|
|---|
| 254 |
|
|---|