79 currentMaterial(nullptr),
80 baseMaterial(nullptr),
82 twoln10(2.0*
G4Log(10.0)),
83 fAlphaTlimit(CLHEP::
GeV),
84 fProtonTlimit(10*CLHEP::
GeV),
200 if(cutEnergy < maxEnergy) {
203 G4double energy2 = totEnergy*totEnergy;
204 G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*
mass)/energy2;
206 cross = (maxEnergy - cutEnergy)/(cutEnergy*maxEnergy)
207 - beta2*
G4Log(maxEnergy/cutEnergy)/tmax;
210 if( 0.0 <
spin ) { cross += 0.5*(maxEnergy - cutEnergy)/energy2; }
286 if(cutEnergy < tmax) {
340 if(e < preKinEnergy*0.75) { e = preKinEnergy*0.75; }
352 G4double elossnew = eloss*qfactor + highOrder;
373 if(minKinEnergy >= maxKinEnergy) {
return; }
379 G4double etot2 = totEnergy*totEnergy;
380 G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*
mass)/etot2;
385 if( 0.0 <
spin ) { fmax += 0.5*maxKinEnergy*maxKinEnergy/etot2; }
393 deltaKinEnergy = minKinEnergy*maxKinEnergy
394 /(minKinEnergy*(1.0 - rndm[0]) + maxKinEnergy*rndm[0]);
396 f = 1.0 - beta2*deltaKinEnergy/tmax;
398 f1 = 0.5*deltaKinEnergy*deltaKinEnergy/etot2;
403 }
while( fmax*rndm[1] > f);
418 G4cout <<
"### G4BetheBlochModel WARNING: grej= " << grej
420 <<
" Ekin(MeV)= " << kineticEnergy
421 <<
" delEkin(MeV)= " << deltaKinEnergy
424 if(rndmEngineMod->
flat() > grej) {
return; }
443 if(cost > 1.0) { cost = 1.0; }
444 G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
448 deltaDirection.
set(sint*cos(phi),sint*sin(phi), cost) ;
466 vdp->push_back(delta);
469 kineticEnergy -= deltaKinEnergy;
471 finalP = finalP.
unit();