一様等方乱数の撃ち方

G4double phi=2*M_PI*G4UniformRand();
G4double theta=0;
G4double rand = 2*G4UniformRand()-1;
theta = acos(rand);

G4UniformRand()は0〜1の乱数になる。

ちなみに、半球だけで良いのなら三行目を書き換えて、

G4double phi=2*M_PI*G4UniformRand();
G4double theta=0;
G4double rand = G4UniformRand();
theta = acos(rand);

とすれば良い。