Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/materials/src/G4IonisParamElm.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /materials/src/G4IonisParamElm.cc (Version 11.3.0) and /materials/src/G4IonisParamElm.cc (Version 11.0.p3,)


** Warning: Cannot open xref database.

  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25                                                   
 26 // 09-07-98, data moved from G4Element. M.Mair    
 27 // 22-11-00, tabulation of ionisation potentia    
 28 //           the ICRU Report N#37. V.Ivanchenk    
 29 // 08-03-01, correct handling of fShellCorrect    
 30 // 17-10-02, Fix excitation energy interpolati    
 31 // 06-09-04, Update calculated values after an    
 32 //           potential change. V.Ivanchenko       
 33 // 29-04-10, Using G4Pow and mean ionisation e    
 34 // 27.10.11: new scheme for G4Exception  (mma)    
 35                                                   
 36 #include "G4IonisParamElm.hh"                     
 37                                                   
 38 #include "G4NistManager.hh"                       
 39 #include "G4PhysicalConstants.hh"                 
 40 #include "G4Pow.hh"                               
 41 #include "G4SystemOfUnits.hh"                     
 42                                                   
 43 //....oooOO0OOooo........oooOO0OOooo........oo    
 44                                                   
 45 G4IonisParamElm::G4IonisParamElm(G4double Atom    
 46 {                                                 
 47   G4int Z = G4lrint(AtomNumber);                  
 48   if (Z < 1) {                                    
 49     G4Exception("G4IonisParamElm::G4IonisParam    
 50       "It is not allowed to create an Element     
 51   }                                               
 52   G4Pow* g4pow = G4Pow::GetInstance();            
 53                                                   
 54   // some basic functions of the atomic number    
 55   fZ = Z;                                         
 56   fZ3 = g4pow->Z13(Z);                            
 57   fZZ3 = fZ3 * g4pow->Z13(Z + 1);                 
 58   flogZ3 = g4pow->logZ(Z) / 3.;                   
 59                                                   
 60   fMeanExcitationEnergy = G4NistManager::Insta    
 61                                                   
 62   // compute parameters for ion transport         
 63   // The aproximation from:                       
 64   // J.F.Ziegler, J.P. Biersack, U. Littmark      
 65   // The Stopping and Range of Ions in Matter,    
 66   // Vol.1, Pergamon Press, 1985                  
 67   // Fast ions or hadrons                         
 68                                                   
 69   G4int iz = Z - 1;                               
 70   if (91 < iz) {                                  
 71     iz = 91;                                      
 72   }                                               
 73                                                   
 74   // clang-format off                             
 75   static const G4double vFermi[92] = {            
 76     1.0309,  0.15976, 0.59782, 1.0781,  1.0486    
 77     0.45259, 0.71074, 0.90519, 0.97411, 0.9718    
 78     0.81707, 0.9943,  1.1423,  1.2381,  1.1222    
 79     0.84912, 0.95,    1.0903,  1.0429,  0.4971    
 80     1.029,   1.2542,  1.122,   1.1241,  1.0882    
 81     0.93155, 1.0047,  0.55379, 0.43289, 0.3263    
 82     0.71418, 0.71453, 0.5911,  0.70263, 0.6804    
 83     0.71801, 0.83048, 1.1222,  1.2381,  1.045,    
 84     0.66401, 0.84912, 0.88433, 0.80746, 0.4335    
 85     1.9578,  1.0257} ;                            
 86                                                   
 87   static const G4double lFactor[92] = {           
 88     1.0,  1.0,  1.1,  1.06, 1.01, 1.03, 1.04,     
 89     0.82, 0.81, 0.83, 0.88, 1.0,  0.95, 0.97,     
 90     0.98, 0.97, 0.96, 0.93, 0.91, 0.9,  0.88,     
 91     0.9,  0.85, 0.9,  0.9,  0.91, 0.92, 0.9,      
 92     0.9,  0.88, 0.9,  0.88, 0.88, 0.9,  0.9,      
 93     0.9,  0.9,  0.96, 1.2,  0.9,  0.88, 0.88,     
 94     0.92, 0.95, 0.99, 1.03, 1.05, 1.07, 1.08,     
 95     1.08, 1.08, 1.09, 1.09, 1.1,  1.11, 1.12,     
 96     1.17, 1.2,  1.18, 1.17, 1.17, 1.16, 1.16,     
 97     1.16, 1.16} ;                                 
 98   // clang-format on                              
 99                                                   
100   fVFermi = vFermi[iz];                           
101   fLFactor = lFactor[iz];                         
102                                                   
103   // obsolete parameters for ionisation           
104   fTau0 = 0.1 * fZ3 * MeV / proton_mass_c2;       
105   fTaul = 2. * MeV / proton_mass_c2;              
106                                                   
107   // compute the Bethe-Bloch formula for energ    
108   G4double rate = fMeanExcitationEnergy / elec    
109   G4double w = fTaul * (fTaul + 2.);              
110   fBetheBlochLow = (fTaul + 1.) * (fTaul + 1.)    
111   fBetheBlochLow = 2. * fZ * twopi_mc2_rcl2 *     
112                                                   
113   fClow = std::sqrt(fTaul) * fBetheBlochLow;      
114   fAlow = 6.458040 * fClow / fTau0;               
115   G4double Taum = 0.035 * fZ3 * MeV / proton_m    
116   fBlow = -3.229020 * fClow / (fTau0 * std::sq    
117                                                   
118   // Shell correction parameterization            
119   fShellCorrectionVector = new G4double[3];  /    
120   rate = 0.001 * fMeanExcitationEnergy / eV;      
121   G4double rate2 = rate * rate;                   
122   fShellCorrectionVector[0] = (0.422377 + 3.85    
123   fShellCorrectionVector[1] = (0.0304043 - 0.1    
124   fShellCorrectionVector[2] = (-0.00038106 + 0    
125 }                                                 
126                                                   
127 //....oooOO0OOooo........oooOO0OOooo........oo    
128                                                   
129 G4IonisParamElm::~G4IonisParamElm() { delete[]    
130