86 minNumberInteractionsBohr(10.0),
95 particleMass = chargeSquare = ipotFluct = electronDensity = f1Fluct = f2Fluct
96 = e1Fluct = e2Fluct = e1LogFluct = e2LogFluct = ipotLogFluct = e0 = esmall
135 if (meanLoss < minLoss) {
return meanLoss; }
142 G4double beta2 = tau*(tau + 2.0)/gam2;
151 (meanLoss >= minNumberInteractionsBohr*tmax))
155 (1.+massrate*(2.*gam+massrate)) ;
156 if (tmaxkine <= 2.*tmax)
160 * electronDensity * chargeSquare);
168 G4double twomeanLoss = meanLoss + meanLoss;
170 loss = G4RandGauss::shoot(meanLoss,siga);
171 }
while (0.0 > loss || twomeanLoss < loss);
186 if (material != lastMaterial) {
196 esmall = 0.5*sqrt(e0*ipotFluct);
201 if(tmax <= e0) {
return meanLoss; }
205 if(meanLoss < 25.*ipotFluct)
216 for (
G4int istep=0; istep < nstep; ++istep) {
220 G4double a1 = 0. , a2 = 0., a3 = 0. ;
222 if(tmax > ipotFluct) {
225 if(w2 > ipotLogFluct) {
226 G4double C = meanLoss*(1.-rate)/(w2-ipotLogFluct);
227 a1 = C*f1Fluct*(w2-e1LogFluct)/e1Fluct;
228 if(w2 > e2LogFluct) {
229 a2 = C*f2Fluct*(w2-e2LogFluct)/e2Fluct;
237 a1 = meanLoss*(1.-rate)/e1;
260 a3 = rate*meanLoss*(tmax-e0)/(e0*tmax*log(w1));
300 loss += max(0.,G4RandGauss::shoot(emean,sige));
313 alfa = w1*(nmaxCont+a3)/(w1*nmaxCont+a3);
314 G4double alfa1 = alfa*log(alfa)/(alfa-1.);
315 G4double namean = a3*w1*(alfa-1.)/((w1-1.)*alfa);
316 emean += namean*e0*alfa1;
317 sig2e += e0*e0*namean*(alfa-alfa1*alfa1);
332 lossc += max(0.,G4RandGauss::shoot(emean,sige));
362 * electronDensity * chargeSquare;
373 if(part != particle) {