77void G4hNuclearStoppingModel::InitializeMe()
80 highEnergyLimit = 100.*MeV ;
81 lowEnergyLimit = 1.*eV ;
82 factorPDG2AMU = 1.007276/proton_mass_c2 ;
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)
151G4double G4hNuclearStoppingModel::StoppingPower(
158 if(0 == NumberOfElements)
return 0.0 ;
162 const G4double* theAtomicNumDensityVector =
169 for (std::size_t 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< const G4Element * > G4ElementVector
G4GLOB_DLL std::ostream G4cout
G4double GetCharge() const
G4double GetKineticEnergy() const
const G4ElementVector * GetElementVector() const
size_t GetNumberOfElements() const
const G4double * GetAtomicNumDensityVector() const
G4double GetPDGMass() const
G4double GetPDGCharge() const
void SetNuclearStoppingFluctuationsOff()
~G4hNuclearStoppingModel()
G4double TheValue(const G4DynamicParticle *particle, const G4Material *material) override
G4hNuclearStoppingModel(const G4String &name)