Geant4-11
Public Member Functions | Protected Attributes
G4hZiegler1985Nuclear Class Reference

#include <G4hZiegler1985Nuclear.hh>

Inheritance diagram for G4hZiegler1985Nuclear:
G4VhNuclearStoppingPower

Public Member Functions

 G4hZiegler1985Nuclear ()
 
G4double NuclearStoppingPower (G4double kineticEnergy, G4double z1, G4double z2, G4double m1, G4double m2) const override
 
void SetNuclearStoppingFluctuationsOff ()
 
void SetNuclearStoppingFluctuationsOn ()
 
 ~G4hZiegler1985Nuclear ()
 

Protected Attributes

G4bool lossFlucFlag
 

Detailed Description

Definition at line 58 of file G4hZiegler1985Nuclear.hh.

Constructor & Destructor Documentation

◆ G4hZiegler1985Nuclear()

G4hZiegler1985Nuclear::G4hZiegler1985Nuclear ( )
explicit

◆ ~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
overridevirtual

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 ionloss *= G4RandGauss::shoot(1.0,sig) ;
98 }
99
100 ionloss *= 8.462 * z1 * z2 * m1 / rm ; // Return to [ev/(10^15 atoms/cm^2]
101
102 if ( ionloss < 0.0) ionloss = 0.0 ;
103
104 return ionloss;
105}
static constexpr double keV
Definition: G4SIunits.hh:202
double G4double
Definition: G4Types.hh:83
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double energy(const ThreeVector &p, const G4double m)

References G4INCL::KinematicsUtils::energy(), keV, G4VhNuclearStoppingPower::lossFlucFlag, and G4INCL::DeJongSpin::shoot().

◆ SetNuclearStoppingFluctuationsOff()

void G4VhNuclearStoppingPower::SetNuclearStoppingFluctuationsOff ( )
inlineinherited

◆ SetNuclearStoppingFluctuationsOn()

void G4VhNuclearStoppingPower::SetNuclearStoppingFluctuationsOn ( )
inlineinherited

Field Documentation

◆ lossFlucFlag

G4bool G4VhNuclearStoppingPower::lossFlucFlag
protectedinherited

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