Import Geant4 10.0.0 source tree
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4VMscModel.hh 71484 2013-06-17 08:12:51Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
|
||||
virtual G4double ComputeTrueStepLength(G4double geomPathLength);
|
||||
|
||||
virtual G4ThreeVector& SampleScattering(const G4DynamicParticle*,
|
||||
virtual G4ThreeVector& SampleScattering(const G4ThreeVector&,
|
||||
G4double safety);
|
||||
|
||||
// empty method
|
||||
@@ -288,13 +288,17 @@ inline G4double
|
||||
G4VMscModel::GetRange(const G4ParticleDefinition* part,
|
||||
G4double kinEnergy, const G4MaterialCutsCouple* couple)
|
||||
{
|
||||
//G4cout << "G4VMscModel::GetRange E(MeV)= " << kinEnergy << " " << ionisation
|
||||
// << " " << part->GetParticleName()
|
||||
// << G4endl;
|
||||
localtkin = kinEnergy;
|
||||
if(ionisation) {
|
||||
localrange = ionisation->GetRangeForLoss(kinEnergy, couple);
|
||||
} else {
|
||||
G4double q = part->GetPDGCharge()/CLHEP::eplus;
|
||||
localrange = kinEnergy/(dedx*q*q*couple->GetMaterial()->GetDensity());
|
||||
localtkin = kinEnergy;
|
||||
}
|
||||
//G4cout << "R(mm)= " << localrange << " " << ionisation << G4endl;
|
||||
return localrange;
|
||||
}
|
||||
|
||||
@@ -305,6 +309,9 @@ G4VMscModel::GetEnergy(const G4ParticleDefinition* part,
|
||||
G4double range, const G4MaterialCutsCouple* couple)
|
||||
{
|
||||
G4double e;
|
||||
//G4cout << "G4VMscModel::GetEnergy R(mm)= " << range << " " << ionisation
|
||||
// << " Rlocal(mm)= " << localrange << " Elocal(MeV)= " << localtkin
|
||||
// << G4endl;
|
||||
if(ionisation) { e = ionisation->GetKineticEnergy(range, couple); }
|
||||
else {
|
||||
e = localtkin;
|
||||
@@ -316,11 +323,15 @@ G4VMscModel::GetEnergy(const G4ParticleDefinition* part,
|
||||
return e;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4VEnergyLossProcess* G4VMscModel::GetIonisation() const
|
||||
{
|
||||
return ionisation;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void G4VMscModel::SetIonisation(G4VEnergyLossProcess* p,
|
||||
const G4ParticleDefinition* part)
|
||||
{
|
||||
@@ -328,6 +339,8 @@ inline void G4VMscModel::SetIonisation(G4VEnergyLossProcess* p,
|
||||
currentPart = part;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double
|
||||
G4VMscModel::GetTransportMeanFreePath(const G4ParticleDefinition* part,
|
||||
G4double ekin)
|
||||
@@ -335,7 +348,7 @@ G4VMscModel::GetTransportMeanFreePath(const G4ParticleDefinition* part,
|
||||
G4double x;
|
||||
if(xSectionTable) {
|
||||
G4int idx = CurrentCouple()->GetIndex();
|
||||
x = (*xSectionTable)[(*theDensityIdx)[idx]]->Value(ekin)
|
||||
x = (*xSectionTable)[(*theDensityIdx)[idx]]->Value(ekin, idxTable)
|
||||
*(*theDensityFactor)[idx]/(ekin*ekin);
|
||||
} else {
|
||||
x = CrossSectionPerVolume(CurrentCouple()->GetMaterial(), part, ekin,
|
||||
|
||||
Reference in New Issue
Block a user