G4hSRIM2000p Class Reference

#include <G4hSRIM2000p.hh>

Inheritance diagram for G4hSRIM2000p:

G4VhElectronicStoppingPower

Public Member Functions

 G4hSRIM2000p ()
 ~G4hSRIM2000p ()
G4bool HasMaterial (const G4Material *material)
G4double StoppingPower (const G4Material *material, G4double kineticEnergy)
G4double ElectronicStoppingPower (G4double z, G4double kineticEnergy) const

Detailed Description

Definition at line 58 of file G4hSRIM2000p.hh.


Constructor & Destructor Documentation

G4hSRIM2000p::G4hSRIM2000p (  ) 

Definition at line 156 of file G4hSRIM2000p.cc.

00156                           :G4VhElectronicStoppingPower(), 
00157   protonMassAMU(1.007276)
00158 {;}

G4hSRIM2000p::~G4hSRIM2000p (  ) 

Definition at line 162 of file G4hSRIM2000p.cc.

00163 {;}


Member Function Documentation

G4double G4hSRIM2000p::ElectronicStoppingPower ( G4double  z,
G4double  kineticEnergy 
) const [virtual]

Implements G4VhElectronicStoppingPower.

Definition at line 191 of file G4hSRIM2000p.cc.

Referenced by StoppingPower().

00193 {
00194   G4double ionloss ;
00195   G4int i = G4int(z) - 1 ;  // index of atom
00196   if(i < 0)  i = 0 ;
00197   if(i > 91) i = 91 ;
00198   
00199   // Proton kinetic energy for parametrisation in Ziegler's units (keV/amu)  
00200   
00201   G4double T = kineticEnergy/(keV*protonMassAMU) ; 
00202   
00203   
00204   
00205   G4double e = T ;
00206   if ( T < 25.0 ) e = 25.0 ;
00207   
00208   // universal approximation  
00209   G4double slow  = a[i][0] * std::pow(e, a[i][1]) + a[i][2] * std::pow(e, a[i][3])  ;
00210   G4double shigh = std::log( a[i][6]/e + a[i][7]*e ) * a[i][4] / std::pow(e, a[i][5]) ;
00211   ionloss = slow*shigh / (slow + shigh) ; 
00212     
00213   // low energy region
00214   if ( T < 25.0 ) {
00215     
00216     G4double  sLocal = 0.45 ;
00217     // light elements
00218     if(6.5 > z) sLocal = 0.25 ;
00219     // semiconductors
00220     if(5 == i || 13 == i || 31 == i) sLocal = 0.375 ;
00221     
00222     ionloss *= std::pow(T/25.0, sLocal) ;
00223   }
00224   
00225   if ( ionloss < 0.0) ionloss = 0.0 ;
00226   
00227   return ionloss;
00228 }

G4bool G4hSRIM2000p::HasMaterial ( const G4Material material  )  [virtual]

Implements G4VhElectronicStoppingPower.

Definition at line 167 of file G4hSRIM2000p.cc.

References G4Material::GetNumberOfElements().

00168 {
00169   if(1 == (material->GetNumberOfElements())) return true;
00170   return false ;
00171 }

G4double G4hSRIM2000p::StoppingPower ( const G4Material material,
G4double  kineticEnergy 
) [virtual]

Implements G4VhElectronicStoppingPower.

Definition at line 175 of file G4hSRIM2000p.cc.

References ElectronicStoppingPower(), G4Material::GetNumberOfElements(), and G4Material::GetZ().

00177 {
00178   G4double ionloss = 0.0 ;
00179 
00180   // pure material (normally not the case for this function)
00181   if(1 == (material->GetNumberOfElements())) {
00182     G4double z = material->GetZ() ;
00183     ionloss = ElectronicStoppingPower( z, kineticEnergy ) ;  
00184   }
00185   
00186   return ionloss;
00187 }  


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:14 2013 for Geant4 by  doxygen 1.4.7