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

#include <G4hZiegler1985p.hh>

+ Inheritance diagram for G4hZiegler1985p:

Public Member Functions

 G4hZiegler1985p ()
 
 ~G4hZiegler1985p ()
 
G4bool HasMaterial (const G4Material *material)
 
G4double StoppingPower (const G4Material *material, G4double kineticEnergy)
 
G4double ElectronicStoppingPower (G4double z, G4double kineticEnergy) const
 
- Public Member Functions inherited from G4VhElectronicStoppingPower
 G4VhElectronicStoppingPower ()
 
virtual ~G4VhElectronicStoppingPower ()
 
virtual G4double StoppingPower (const G4Material *material, G4double kineticEnergy)=0
 
virtual G4bool HasMaterial (const G4Material *material)=0
 
virtual G4double ElectronicStoppingPower (G4double z, G4double kineticEnergy) const =0
 

Additional Inherited Members

- Protected Member Functions inherited from G4VhElectronicStoppingPower
G4double HeEffChargeSquare (const G4double z, const G4double kineticEnergyHe) const
 
G4double GetHeMassAMU () const
 

Detailed Description

Definition at line 59 of file G4hZiegler1985p.hh.

Constructor & Destructor Documentation

◆ G4hZiegler1985p()

G4hZiegler1985p::G4hZiegler1985p ( )

Definition at line 168 of file G4hZiegler1985p.cc.

169 protonMassAMU(1.007276)
170{;}

◆ ~G4hZiegler1985p()

G4hZiegler1985p::~G4hZiegler1985p ( )

Definition at line 174 of file G4hZiegler1985p.cc.

175{;}

Member Function Documentation

◆ ElectronicStoppingPower()

G4double G4hZiegler1985p::ElectronicStoppingPower ( G4double  z,
G4double  kineticEnergy 
) const
virtual

Implements G4VhElectronicStoppingPower.

Definition at line 203 of file G4hZiegler1985p.cc.

205{
206 G4double ionloss ;
207 G4int i = G4int(z) - 1 ; // index of atom
208 if(i < 0) i = 0 ;
209 if(i > 91) i = 91 ;
210
211 // The data and the fit from:
212 // J.F.Ziegler, J.P.Biersack, U.Littmark The Stoping and
213 // Range of Ions in Solids, Vol.1, Pergamon Press, 1985
214 // Proton kinetic energy for parametrisation in Ziegler's units (keV/amu)
215
216 G4double T = kineticEnergy/(keV*protonMassAMU) ;
217
218
219
220 G4double e = T ;
221 if ( T < 25.0 ) e = 25.0 ;
222
223 // universal approximation
224 G4double slow = a[i][0] * std::pow(e, a[i][1]) + a[i][2] * std::pow(e, a[i][3]) ;
225 G4double shigh = std::log( a[i][6]/e + a[i][7]*e ) * a[i][4] / std::pow(e, a[i][5]) ;
226 ionloss = slow*shigh / (slow + shigh) ;
227
228 // low energy region
229 if ( T < 25.0 ) {
230
231 G4double sLocal = 0.45 ;
232 // light elements
233 if(6.5 > z) sLocal = 0.25 ;
234 // semiconductors
235 if(5 == i || 13 == i || 31 == i) sLocal = 0.375 ;
236
237 ionloss *= std::pow(T/25.0, sLocal) ;
238 }
239
240 if ( ionloss < 0.0) ionloss = 0.0 ;
241
242 return ionloss;
243}
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85

Referenced by StoppingPower().

◆ HasMaterial()

G4bool G4hZiegler1985p::HasMaterial ( const G4Material material)
virtual

Implements G4VhElectronicStoppingPower.

Definition at line 179 of file G4hZiegler1985p.cc.

180{
181 if(1 == (material->GetNumberOfElements())) return true;
182 return false ;
183}
size_t GetNumberOfElements() const
Definition: G4Material.hh:184

◆ StoppingPower()

G4double G4hZiegler1985p::StoppingPower ( const G4Material material,
G4double  kineticEnergy 
)
virtual

Implements G4VhElectronicStoppingPower.

Definition at line 187 of file G4hZiegler1985p.cc.

189{
190 G4double ionloss = 0.0 ;
191
192 // pure material (normally not the case for this function)
193 if(1 == (material->GetNumberOfElements())) {
194 G4double z = material->GetZ() ;
195 ionloss = ElectronicStoppingPower( z, kineticEnergy ) ;
196 }
197
198 return ionloss;
199}
G4double GetZ() const
Definition: G4Material.cc:701
G4double ElectronicStoppingPower(G4double z, G4double kineticEnergy) const

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