94 tsam = 2.0*ac * (2.0*rand + a2*std::sqrt(rand)) / (a2*a2 - 4.0*rand);
95 gtr = (2.0 - tsam) * (a1 + 1.0/(ac+tsam));
99 costheta = 1.0 - tsam;
101 G4double sint = std::sqrt(tsam*(2.0 - tsam));
113 G4cout <<
"Non-polarized photoelectric effect angular generator." <<
G4endl;
114 G4cout <<
"The Sauter-Gavrila distribution for the K-shell is used."<<
G4endl;
115 G4cout <<
"Originally developed by M.Maire for Geant3"
static const G4double emax
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)
Hep3Vector & rotateUz(const Hep3Vector &)
const G4ThreeVector & GetMomentumDirection() const
G4double GetKineticEnergy() const
~G4SauterGavrilaAngularDistribution() override
void PrintGeneratorInformation() const override
G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double e=0.0, G4int shellId=0, const G4Material *mat=0) final
G4SauterGavrilaAngularDistribution()
G4ThreeVector fLocalDirection
static constexpr double twopi
static constexpr double MeV
static constexpr double eV
G4double energy(const ThreeVector &p, const G4double m)
T max(const T t1, const T t2)
brief Return the largest of the two arguments