65 ratio1(1.),ratio2(1.),delta(0.)
92 G4double beta = std::sqrt((gamma - 1)*(gamma + 1))/gamma;
106 y = q*ymax/(1 + ymax*(1 - q));
110 if(gfun > gMax &&
nwarn >= 20) {
113 <<
" Egamma(MeV)" << (
energy - final_energy)/
MeV
114 <<
" gMax= " << gMax <<
" < " << gfun
115 <<
" results are not reliable!"
118 G4cout <<
" WARNING in G4Generator2BS is closed" <<
G4endl;
125 G4double sint = std::sqrt((1 - cost)*(1 + cost));
137 G4cout <<
"Bremsstrahlung Angular Generator is 2BS Generator "
138 <<
"from 2BS Koch & Motz distribution (Rev Mod Phys 31(4), 920 (1959))" <<
G4endl;
139 G4cout <<
"Sampling algorithm adapted from PIRS-0203" <<
G4endl;
static constexpr double twopi
static constexpr double MeV
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)
Hep3Vector & rotateUz(const Hep3Vector &)
const G4ThreeVector & GetMomentumDirection() const
G4double GetTotalEnergy() const
G4double RejectionFunction(G4double value) const
void PrintGeneratorInformation() const override
G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=nullptr) override
G4Generator2BS(const G4String &name="")
virtual ~G4Generator2BS()
static G4Pow * GetInstance()
G4double Z13(G4int Z) const
G4ThreeVector fLocalDirection
G4double energy(const ThreeVector &p, const G4double m)
T max(const T t1, const T t2)
brief Return the largest of the two arguments