I'm trying to simulate the light distribution characteristics from a Gaussian laser beam, but having difficulty with the angular distribution.
I need to generate a large number of points on an x/y plane, along with pointing vectors down the z-axis, such that their aggregate approximates the power distribution of a laser beam. The distribution on the x/y plane is a Gaussian, while the pointing vector down the z-axis approximates the laser divergence.
For example, a beam with a 1 mm beam waist with a 1.5 mrad divergence has the following beam irradiance, E(r):
$E(r) = exp(-r^2/b^2)/(\pi b^2)$
where $r$ is the radius from the beam center, $b$ is the beam waist (1/e radius). Therefore, I can sample from this distribution by the following equation:
$r = b\sqrt(-ln(1-\mathbb{R}))$
where $\mathbb{R}$ is a random number uniformly distribution on [0,1], to get the radius from the origin on the beams starting point on the x/y plane.
OK, so the question I'm having trouble with, is how do I randomly choose the polar angle $\theta$ of divergence such that it approximates the laser divergence of 1.5 mradians? Do I just choose the polar angle to be uniform on $[0,1.5e^{-3}]$ radians?
I guess I'm getting confused by whether the distribution should be uniform over polar angle, or uniform irradiance over the solid angle, and how to sample from that. Below is an illustration to help sort things out. I'm trying to determine how to distribute the polar angle in order to approximate the laser divergence.

