83 G4double sint = std::sqrt((1 - cost)*(1 + cost));
109 u = (border > rndmEngine->
flat()) ? uu*a1 : uu*a2;
114 return 1.0 - 2.0*u*u/(uMax*uMax);
131 G4double sint = std::sqrt((1. - cost)*(1. + cost));
133 dirElectron.
set(sint*cosp, sint*sinp, cost);
137 sint = std::sqrt((1. - cost)*(1. + cost));
139 dirPositron.
set(-sint*cosp, -sint*sinp, cost);
148 G4cout <<
"Bremsstrahlung Angular Generator is Modified Tsai" <<
G4endl;
149 G4cout <<
"Distribution suggested by L.Urban (Geant3 manual (1993) Phys211)"
151 G4cout <<
"Derived from Tsai distribution (Rev Mod Phys 49,421(1977)) \n"
void set(double x, double y, double z)
G4double SampleCosTheta(G4double kinEnergy)
virtual void PrintGeneratorInformation() const final
const G4ThreeVector & GetMomentumDirection() const
Hep3Vector & rotateUz(const Hep3Vector &)
virtual ~G4ModifiedTsai()
G4double G4Log(G4double x)
static constexpr double electron_mass_c2
virtual void SamplePairDirections(const G4DynamicParticle *dp, G4double elecKinEnergy, G4double posiKinEnergy, G4ThreeVector &dirElectron, G4ThreeVector &dirPositron, G4int Z=0, const G4Material *mat=nullptr) final
static constexpr double twopi
G4ThreeVector fLocalDirection
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=nullptr) final
G4ModifiedTsai(const G4String &name="")