78{
79
80
81
82
83
84
85
87 ratio = final_energy/
energy;
88 ratio1 = (1 + ratio)*(1 + ratio);
89 ratio2 = 1 + ratio*ratio;
90
92 G4double beta = std::sqrt((gamma - 1)*(gamma + 1))/gamma;
93
94
95 fz = 0.00008116224*g4pow->
Z13(
Z)*g4pow->
Z13(
Z+1);
96
97
98 G4double ymax = 2*beta*(1 + beta)*gamma*gamma;
101
103
104 do{
106 y = q*ymax/(1 + ymax*(1 - q));
108
109
110 if(gfun > gMax && nwarn >= 20) {
111 ++nwarn;
112 G4cout <<
"### WARNING in G4Generator2BS: Etot(MeV)= " <<
energy/MeV
113 <<
" Egamma(MeV)" << (
energy - final_energy)/MeV
114 << " gMax= " << gMax << " < " << gfun
115 << " results are not reliable!"
117 if(20 == nwarn) {
118 G4cout <<
" WARNING in G4Generator2BS is closed" <<
G4endl;
119 }
120 }
121
123
125 G4double sint = std::sqrt((1 - cost)*(1 + cost));
127
130
132}
void set(double x, double y, double z)
Hep3Vector & rotateUz(const Hep3Vector &)
const G4ThreeVector & GetMomentumDirection() const
G4double GetTotalEnergy() const
G4double RejectionFunction(G4double value) const
G4double Z13(G4int Z) const
G4ThreeVector fLocalDirection
G4double energy(const ThreeVector &p, const G4double m)