Import Geant4 0.1.0 source tree
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4eEnergyLoss.icc,v 2.4 1998/10/11 15:44:49 urban Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4eEnergyLoss.icc,v 1.4 1999/05/20 10:15:19 urban Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// $Id:
|
||||
// ---------------------------------------------------------------
|
||||
@@ -23,17 +23,46 @@
|
||||
// It calculates the energy loss of e+/e-.
|
||||
// -------------------------------------------------------------
|
||||
//
|
||||
// 27-05-98: new randomization of the Step limit , new extrapolations for
|
||||
// high/low energies. L.Urban
|
||||
// 08-09-98: cleanup
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
inline G4bool G4eEnergyLoss::IsApplicable(const G4ParticleDefinition&
|
||||
particle)
|
||||
inline G4double G4eEnergyLoss::GetConstraints(
|
||||
const G4DynamicParticle* aParticle,
|
||||
G4Material* aMaterial)
|
||||
{
|
||||
return( (&particle == G4Electron::Electron())
|
||||
||(&particle == G4Positron::Positron()) );
|
||||
G4double StepLimit;
|
||||
// returns the Step limit
|
||||
// dRoverRange is the max. allowed relative range loss in one Step
|
||||
// it calculates dEdx and the range as well....
|
||||
|
||||
const G4ParticleDefinition* ParticleType=aParticle->GetDefinition();
|
||||
|
||||
Charge = aParticle->GetDefinition()->GetPDGCharge();
|
||||
if(Charge != lastCharge)
|
||||
{
|
||||
lastCharge = Charge ;
|
||||
|
||||
}
|
||||
|
||||
G4double KineticEnergy = aParticle->GetKineticEnergy();
|
||||
|
||||
fdEdx = G4EnergyLossTables::GetDEDX(ParticleType,KineticEnergy,aMaterial);
|
||||
fRangeNow =
|
||||
G4EnergyLossTables::GetRange(ParticleType,KineticEnergy,aMaterial);
|
||||
|
||||
// compute the (random) Step limit
|
||||
if (fRangeNow>finalRange)
|
||||
{
|
||||
StepLimit = c1lim*fRangeNow+c2lim+c3lim/fRangeNow;
|
||||
//randomise this value
|
||||
if (rndmStepFlag) StepLimit = finalRange +
|
||||
(StepLimit-finalRange)*G4UniformRand();
|
||||
if (StepLimit > fRangeNow) StepLimit = fRangeNow;
|
||||
}
|
||||
else StepLimit = fRangeNow;
|
||||
|
||||
return StepLimit;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -54,3 +83,12 @@ inline G4double G4eEnergyLoss::GetContinuousStepLimit(
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
inline G4bool G4eEnergyLoss::IsApplicable(const G4ParticleDefinition&
|
||||
particle)
|
||||
{
|
||||
return( (&particle == G4Electron::Electron())
|
||||
||(&particle == G4Positron::Positron()) );
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
Reference in New Issue
Block a user