Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4hZiegler1985Nuclear Class Reference

#include <G4hZiegler1985Nuclear.hh>

+ Inheritance diagram for G4hZiegler1985Nuclear:

Public Member Functions

 G4hZiegler1985Nuclear ()
 
 ~G4hZiegler1985Nuclear ()
 
G4double NuclearStoppingPower (G4double kineticEnergy, G4double z1, G4double z2, G4double m1, G4double m2) const
 
- Public Member Functions inherited from G4VhNuclearStoppingPower
 G4VhNuclearStoppingPower ()
 
virtual ~G4VhNuclearStoppingPower ()
 
void SetNuclearStoppingFluctuationsOn ()
 
void SetNuclearStoppingFluctuationsOff ()
 
virtual G4double NuclearStoppingPower (G4double kineticEnergy, G4double z1, G4double z2, G4double m1, G4double m2) const =0
 

Additional Inherited Members

- Protected Attributes inherited from G4VhNuclearStoppingPower
G4bool lossFlucFlag
 

Detailed Description

Definition at line 58 of file G4hZiegler1985Nuclear.hh.

Constructor & Destructor Documentation

◆ G4hZiegler1985Nuclear()

G4hZiegler1985Nuclear::G4hZiegler1985Nuclear ( )

◆ ~G4hZiegler1985Nuclear()

G4hZiegler1985Nuclear::~G4hZiegler1985Nuclear ( )

Definition at line 68 of file G4hZiegler1985Nuclear.cc.

69{;}

Member Function Documentation

◆ NuclearStoppingPower()

G4double G4hZiegler1985Nuclear::NuclearStoppingPower ( G4double  kineticEnergy,
G4double  z1,
G4double  z2,
G4double  m1,
G4double  m2 
) const
virtual

Implements G4VhNuclearStoppingPower.

Definition at line 73 of file G4hZiegler1985Nuclear.cc.

76{
77 G4double energy = kineticEnergy/keV ; // energy in keV
78 G4double ionloss ;
79
80 G4double rm = (m1 + m2Local) * ( std::pow(z1, .23) + std::pow(z2, .23)) ;
81
82 G4double er = 32.536 * m2Local * energy / ( z1 * z2 * rm ) ; // reduced energy
83
84 if ( er <= 30 ) {
85 ionloss = 0.5*std::log(1+1.1383*er)/
86 (er+0.01312*std::pow(er,0.21226)+0.19593*std::sqrt(er)) ;
87
88 } else {
89 ionloss = 0.5*std::log(er)/er ;
90 }
91
92 // Stragling
93 if(lossFlucFlag) {
94 G4double sig = 4.0 * m1 * m2Local / ((m1 + m2Local)*(m1 + m2Local)*
95 (4.0 + 0.197*std::pow(er,-1.6991)+6.584*std::pow(er,-1.0494))) ;
96
97
98 ionloss *= G4RandGauss::shoot(1.0,sig) ;
99 }
100
101 ionloss *= 8.462 * z1 * z2 * m1 / rm ; // Return to [ev/(10^15 atoms/cm^2]
102
103 if ( ionloss < 0.0) ionloss = 0.0 ;
104
105 return ionloss;
106}
double G4double
Definition: G4Types.hh:64

The documentation for this class was generated from the following files: