28.11.2014 Views

THE EGS5 CODE SYSTEM

THE EGS5 CODE SYSTEM

THE EGS5 CODE SYSTEM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3<br />

4<br />

costhe = 1.d0 - 2.d0 * xmu<br />

sinthe = DSQRT(1.d0 - costhe * costhe)<br />

iskpms = 0<br />

nomsct(ir(np)).eq.1<br />

.or.<br />

iskpms.ne.0<br />

no<br />

xr = sqrt(gms*tvstep*b)<br />

yes<br />

sinthe = 0.<br />

costhe = 1.<br />

theta = 0.<br />

noscat = noscat + 1<br />

iskpms = 0<br />

"Set bi (B-inverse) that will be<br />

used in sampling (bi must not<br />

be larger than 1/lambda=1/2)"<br />

b<br />

.gt.<br />

2.<br />

no<br />

yes<br />

bi = 1./b<br />

bi = 0.5<br />

bmd = 1. + 1.75*bi<br />

bm1 = (1. - 2./b)/bmd<br />

bm2 = (1. + 0.025*bi)/bmd<br />

call<br />

randomset (rms1)<br />

" Loop for Bethe correction<br />

factor (or other) rejection"<br />

rms1<br />

.le.<br />

bm1<br />

no<br />

yes<br />

"Gaussian, F1"<br />

call<br />

randomset (rms2)<br />

no<br />

"Tail, F3"<br />

rms1<br />

.le.<br />

bm2<br />

yes<br />

call<br />

randomset (rms3)<br />

rms2<br />

.eq.<br />

0.<br />

yes<br />

rms2 = 1.E-30<br />

no<br />

thr = sqrt(max(0.D0,-log(rms2)))<br />

call<br />

randomset (rms4)<br />

"Rejection sampling loop"<br />

eta = max(rms3,rms4)<br />

i31 = b0g31 + eta*b1g31<br />

g31 = g310(i31) + eta*(g311(i31) + eta*g312(i31))<br />

i32 = b0g32 + eta*b1g32<br />

g32 = g320(i32) + eta*(g321(i32) + eta*g322(i32))<br />

g3 = g31 + g32*bi<br />

call<br />

randomset (rms5)<br />

yes<br />

rms5<br />

.gt.<br />

g3<br />

5 6 7<br />

no<br />

8 9<br />

266

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!