69 0.7628, 0.8983, 0.9801 };
72 0.1569, 0.1112, 0.0506 };
82 limitKinEnergy(100.*
keV),
83 logLimitKinEnergy(
G4Log(limitKinEnergy)),
84 twoln10(2.0*
G4Log(10.0)),
139 if(cutEnergy < maxEnergy) {
142 G4double energy2 = totEnergy*totEnergy;
143 G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*
mass)/energy2;
145 cross = 1.0/cutEnergy - 1.0/maxEnergy - beta2*
G4Log(maxEnergy/cutEnergy)/tmax
146 + 0.5*(maxEnergy - cutEnergy)/energy2;
153 G4double logstep = logtmax - logtmin;
156 for (
G4int ll=0; ll<8; ll++)
161 dcross +=
wgi[ll]*(1.0/ep - beta2/tmax + 0.5*ep/energy2)*a1*(a3 - a1);
187 (p,kineticEnergy,cutEnergy,maxEnergy);
202 (p,kineticEnergy,cutEnergy,maxEnergy);
226 -(1.0 + cutEnergy/tmax)*beta2;
229 G4double del = 0.5*cutEnergy/totEnergy;
241 if (dedx < 0.0) dedx = 0.0 ;
249 G4double ftot2= 0.5/(totEnergy*totEnergy);
251 for (
G4int ll=0; ll<8; ll++)
256 dloss +=
wgi[ll]*(1.0 - beta2*ep/tmax + ep*ep*ftot2)*a1*(a3 - a1);
279 if(minKinEnergy >= maxKinEnergy) {
return; }
283 G4double etot2 = totEnergy*totEnergy;
284 G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*
mass)/etot2;
297 deltaKinEnergy = minKinEnergy*maxKinEnergy
298 /(minKinEnergy*(1.0 - q) + maxKinEnergy*q);
301 f = 1.0 - beta2*deltaKinEnergy/tmax
302 + 0.5*deltaKinEnergy*deltaKinEnergy/etot2;
311 G4cout <<
"G4MuBetheBlochModel::SampleSecondary Warning! "
312 <<
"Majorant " << grej <<
" < "
313 << f <<
" for edelta= " << deltaKinEnergy
314 <<
" tmin= " << minKinEnergy <<
" max= " << maxKinEnergy
322 G4double totalMomentum = totEnergy*sqrt(beta2);
324 (deltaMomentum * totalMomentum);
326 G4double sint = sqrt(1.0 - cost*cost);
330 G4ThreeVector deltaDirection(sint*cos(phi),sint*sin(phi), cost) ;
335 kineticEnergy -= deltaKinEnergy;
337 direction = dir.
unit();
343 deltaDirection,deltaKinEnergy);
344 vdp->push_back(delta);