60 static const G4double taulimit = 30.0;
69 G4double beta = std::sqrt(tau*(tau + 2.0))*invgamma;
71 G4double invgamma2 = invgamma*invgamma;
74 if (tau < 1.) { grejsup = (1.+b-beta*
b)/invgamma2; }
75 else { grejsup = (1.+b+beta*
b)/invgamma2; }
79 costeta = (rndm + beta)/(rndm*beta + 1);
80 term = invgamma2/(1 + beta*
rndm);
81 sint2 = (1 - costeta)*(1 + costeta);
82 greject = sint2*(1 + b*term)/(term*term);
98 G4cout <<
"Non-polarized photoelectric effect angular generator." <<
G4endl;
99 G4cout <<
"The Sauter-Gavrila distribution for the K-shell is used."<<
G4endl;
100 G4cout <<
"Originally developed by M.Maire for Geant3"
void set(double x, double y, double z)
G4double GetKineticEnergy() const
DOUBLE PRECISION function rndm(RDUMMY)
virtual ~G4SauterGavrilaAngularDistribution()
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double e=0.0, G4int shellId=0, const G4Material *mat=0)
void PrintGeneratorInformation() const
G4GLOB_DLL std::ostream G4cout
const G4ThreeVector & GetMomentumDirection() const
Hep3Vector & rotateUz(const Hep3Vector &)
G4SauterGavrilaAngularDistribution()
G4ThreeVector fLocalDirection