Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/electromagnetic/TestEm7/src/G4LindhardPartition.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 /examples/extended/electromagnetic/TestEm7/src/G4LindhardPartition.cc (Version 11.3.0) and /examples/extended/electromagnetic/TestEm7/src/G4LindhardPartition.cc (Version 7.1)


  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 /*                                                
 27  *  \file electromagnetic/TestEm7/src/G4Lindha    
 28  *  \brief Implementation of the G4LindhardPar    
 29  *                                                
 30  *  Created by Marcus Mendenhall on 1/14/08.      
 31  *  2008 Vanderbilt University, Nashville, TN,    
 32  *                                                
 33  */                                               
 34                                                   
 35 //                                                
 36                                                   
 37 #include "G4LindhardPartition.hh"                 
 38                                                   
 39 #include "G4Element.hh"                           
 40 #include "G4Material.hh"                          
 41 #include "G4PhysicalConstants.hh"                 
 42 #include "G4SystemOfUnits.hh"                     
 43                                                   
 44 //....oooOO0OOooo........oooOO0OOooo........oo    
 45 /*                                                
 46 for a first cut, we will compute NIEL from a L    
 47 based on the most abundant element in the mate    
 48                                                   
 49 this is from IEEE Trans. Nucl Science Vol. 48     
 50 Insoo Jun, "Effects of Secondary Particles on     
 51 and, by reference,                                
 52 Lindhard, Nielsen, Scharff & Thompson,            
 53 "Integral Equations Governing Radiation Efects    
 54 Mat. Fys. Medd. Dan. Vid. Selsk. vol 33 #10, p    
 55 and                                               
 56 Robinson, "The dependence of radiation effects    
 57 in Proc. Int. Conf. Radiation-Induced Voids in    
 58 Albany, NY 1972 pp. 397-439                       
 59 def lindhard_robinson(z1, a1, z2, a2, ke):        
 60 el=30.724*z1*z2*math.sqrt(z1**0.6667+z2**0.666    
 61 fl=0.0793*z1**0.6667*math.sqrt(z2)*(a1+a2)**1.    
 62 ((z1**0.6667+z2**0.6667)**0.75*a1**1.5*math.sq    
 63 eps=ke*(1.0/el)                                   
 64 return 1.0/(1+fl*(3.4008*eps**0.16667+0.40244*    
 65 */                                                
 66                                                   
 67 G4LindhardRobinsonPartition::G4LindhardRobinso    
 68 {                                                 
 69   max_z = 120;                                    
 70   for (size_t i = 1; i < max_z; i++) {            
 71     z23[i] = std::pow((G4double)i, 2. / 3.);      
 72   }                                               
 73 }                                                 
 74                                                   
 75 //....oooOO0OOooo........oooOO0OOooo........oo    
 76                                                   
 77 G4double G4LindhardRobinsonPartition::Partitio    
 78                                                   
 79                                                   
 80 {                                                 
 81   size_t nMatElements = material->GetNumberOfE    
 82                                                   
 83   const G4double* atomDensities = material->Ge    
 84   G4double maxdens = 0.0;                         
 85   size_t maxindex = 0;                            
 86   for (size_t k = 0; k < nMatElements; k++) {     
 87     if (atomDensities[k] > maxdens) {             
 88       maxdens = atomDensities[k];                 
 89       maxindex = k;                               
 90     }                                             
 91   }                                               
 92   const G4Element* element = material->GetElem    
 93                                                   
 94   G4int z2 = G4int(element->GetZ());              
 95                                                   
 96   G4double a2 = element->GetA() / (Avogadro *     
 97                                                   
 98   G4double zpow = z23[z1] + z23[z2];              
 99   G4double asum = a1 + a2;                        
100                                                   
101   G4double el = 30.724 * z1 * z2 * std::sqrt(z    
102   G4double fl = 0.0793 * z23[z1] * std::sqrt(z    
103                 / std::pow(zpow, 0.75);           
104   G4double eps = (energy / eV) * (1.0 / el);      
105                                                   
106   return 1.0 / (1 + fl * (3.4008 * std::pow(ep    
107 }                                                 
108