function Apart(Ap,At,b) c c impact parameter distribution in Ap+At collisions as function of b (in fm) c c modified last on: 12/04/2000 by R. Holzmann c implicit none real Apart, Ap, At, b real Npart Apart = Npart(Ap,At,b) + Npart(At,Ap,b) ! have it both ways return end real function Npart(Ap,At,b) c c returns number of projectile participant nucleons for given impact c parameter b (in fm) according to Gosset et al. PRC 16 (1977) 629. c implicit none real Ap, At, b real Rp, Rt, beta, mu, nu, F Npart = 0.0 Rp = 1.14*Ap**0.3333 ! in fm Rt = 1.14*At**0.3333 if(b.gt.Rp+Rt) return beta = b/(Rp+Rt) nu = Rp/(Rp+Rt) mu = Rt/Rp if(nu.ge.0.5) then ! Ap > At if(nu.ge.0.5*(1.0+beta)) then F = (1.0-(1.0-mu**2)**1.5)*sqrt(1.0-(beta/nu)**2) else F = 0.75*sqrt(1.0-nu)*((1.0-beta)/nu)**2 + - 0.125*(3.0*sqrt(1.0-nu)/mu - + ((1.0-(1.0-mu**2)**1.5)*sqrt(1.0-(1.0-mu)**2))/mu**3) + *((1.0-beta)/nu)**3 end if else ! Ap < At if(nu.ge.0.5*(1.0-beta)) then F = 0.75*sqrt(1.0-nu)*((1.0-beta)/nu)**2 - + 0.125*(3.0*sqrt(1.0-nu) - 1.0)*((1.0-beta)/nu)**3 else F = 1.0 end if end if Npart = F*Ap return end