77 void G4hNuclearStoppingModel::InitializeMe()
80 highEnergyLimit = 100.*
MeV ;
81 lowEnergyLimit = 1.*
eV ;
83 theZieglerFactor=
eV*
cm2*1.0e-15 ;
89 if(ir49 == modelName || blank == modelName) {
92 }
else if(zi85 == modelName) {
97 "G4hLowEnergyIonisation warning: There is no table with the modelName <"
99 <<
" for nuclear stopping, <ICRU_R49> is applied "
113 delete nStopingPowerTable;
127 G4double nloss = StoppingPower(material, energy, z1, m1) * theZieglerFactor;
143 G4double nloss = StoppingPower(material, kineticEnergy, z1, m1)
151 G4double G4hNuclearStoppingModel::StoppingPower(
158 if(0 == NumberOfElements)
return 0.0 ;
162 const G4double* theAtomicNumDensityVector =
169 for (
G4int iel=0; iel<NumberOfElements; iel++) {
170 const G4Element* element = (*theElementVector)[iel] ;
173 nloss += (nStopingPowerTable->
174 NuclearStoppingPower(kineticEnergy, z1, z2, m1, m2Local))
175 * theAtomicNumDensityVector[iel] ;
std::vector< G4Element * > G4ElementVector
G4double GetKineticEnergy() const
static constexpr double cm2
G4hNuclearStoppingModel(const G4String &name)
const G4ElementVector * GetElementVector() const
G4double TheValue(const G4DynamicParticle *particle, const G4Material *material)
G4GLOB_DLL std::ostream G4cout
void SetNuclearStoppingFluctuationsOff()
G4double GetCharge() const
static constexpr double eplus
static constexpr double eV
const G4double * GetAtomicNumDensityVector() const
G4double GetPDGMass() const
G4double energy(const ThreeVector &p, const G4double m)
~G4hNuclearStoppingModel()
static constexpr double MeV
size_t GetNumberOfElements() const
G4double GetPDGCharge() const
static constexpr double mole