89 minNumberInteractionsBohr(10.0),
90 theBohrBeta2(50.0*
keV/proton_mass_c2),
147 if (meanLoss <
minLoss) {
return meanLoss; }
151 CLHEP::HepRandomEngine* rndmEngineF = G4Random::getTheEngine();
156 G4double beta2 = tau*(tau + 2.0)/gam2;
169 G4double tmaxkine = 2.*electron_mass_c2*beta2*gam2/
171 if (tmaxkine <= 2.*tmax)
174 siga = sqrt((1.0/beta2 - 0.5) * twopi_mc2_rcl2 * tmax * length
182 G4double twomeanLoss = meanLoss + meanLoss;
186 }
while (0.0 > loss || twomeanLoss < loss);
216 if(tmax <=
e0) {
return meanLoss; }
222 if(rndmEngineF->flat()*
ipotFluct< 0.04*meanLoss)
231 for (
G4int istep=0; istep < nstep; ++istep) {
249 if(rndmEngineF->flat() <
G4Exp(-sa1))
252 a1 = meanLoss*(1.-
rate)/
e1;
296 loss += (1.-2.*rndmEngineF->flat())*e1;
311 loss += (1.-2.*rndmEngineF->flat())*e2;
331 G4double namean =
a3*w1*(alfa-1.)/((w1-1.)*alfa);
332 emean += namean*
e0*alfa1;
333 sig2e +=
e0*
e0*namean*(alfa-alfa1*alfa1);
383 G4double siga = (1.0/beta2 - 0.5) * twopi_mc2_rcl2 * tmax * length
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double m_Inv_particleMass
G4IonisParamMat * GetIonisation() const
G4long G4Poisson(G4double mean)
G4double GetKineticEnergy() const
G4double GetEnergy2fluct() const
const G4Material * lastMaterial
const G4double w[NPOINTSGL]
G4double GetLogEnergy2fluct() const
G4UniversalFluctuation(const G4String &nam="UniFluc")
G4ParticleDefinition * GetDefinition() const
G4double GetLogMeanExcEnergy() const
G4double minNumberInteractionsBohr
virtual G4double Dispersion(const G4Material *, const G4DynamicParticle *, G4double, G4double)
G4double GetEnergy0fluct() const
virtual ~G4UniversalFluctuation()
virtual void SetParticleAndCharge(const G4ParticleDefinition *, G4double q2)
G4double GetElectronDensity() const
virtual void InitialiseMe(const G4ParticleDefinition *)
const G4ParticleDefinition * particle
virtual G4double SampleFluctuations(const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double, G4double, G4double)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double GetLogEnergy1fluct() const
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double GetMeanExcitationEnergy() const
G4double GetF2fluct() const
static const double eplus
G4double GetPDGCharge() const
G4double GetF1fluct() const
const G4Material * GetMaterial() const
G4double GetEnergy1fluct() const