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: G4eEnergyLossPlus.icc,v 2.1 1998/12/02 17:10:56 urban Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4eEnergyLossPlus.icc,v 1.3 1999/05/20 10:15:20 urban Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// $Id:
|
||||
// ---------------------------------------------------------------
|
||||
@@ -27,11 +27,46 @@
|
||||
// continuous energy loss with generation of subcutoff delta rays
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
inline G4bool G4eEnergyLossPlus::IsApplicable(const G4ParticleDefinition&
|
||||
particle)
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eEnergyLossPlus::GetConstraints(
|
||||
const G4DynamicParticle* aParticle,
|
||||
G4Material* aMaterial)
|
||||
{
|
||||
return( (&particle == G4Electron::Electron())
|
||||
||(&particle == G4Positron::Positron()) );
|
||||
// returns the Step limit
|
||||
// dRoverRange is the max. allowed relative range loss in one Step
|
||||
// it calculates dEdx and the range as well....
|
||||
|
||||
G4double CutInRange,StepLimit;
|
||||
G4bool isOutRange;
|
||||
|
||||
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....
|
||||
@@ -52,3 +87,12 @@ inline G4double G4eEnergyLossPlus::GetContinuousStepLimit(
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4bool G4eEnergyLossPlus::IsApplicable(const G4ParticleDefinition&
|
||||
particle)
|
||||
{
|
||||
return( (&particle == G4Electron::Electron())
|
||||
||(&particle == G4Positron::Positron()) );
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Reference in New Issue
Block a user