Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/lowenergy/include/G4MicroElecInelasticModel.hh

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 /processes/electromagnetic/lowenergy/include/G4MicroElecInelasticModel.hh (Version 11.3.0) and /processes/electromagnetic/lowenergy/include/G4MicroElecInelasticModel.hh (Version 9.4.p2)


  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 // G4MicroElecInelasticModel.hh, 2011/08/29 A.    
 28 //                                                
 29 // Based on the following publications            
 30 //                                                
 31 //          - Inelastic cross-sections of low     
 32 //      for the simulation of heavy ion tracks    
 33 //      NSS Conf. Record 2010, pp. 80-85          
 34 //      - Geant4 physics processes for microdo    
 35 //      very low energy electromagnetic models    
 36 //      NIM B, vol. 288, pp. 66-73, 2012.         
 37 //      - Geant4 physics processes for microdo    
 38 //      very low energy electromagnetic models    
 39 //      heavy ions in Si, NIM B, vol. 287, pp.    
 40 //                                                
 41 //....oooOO0OOooo........oooOO0OOooo........oo    
 42                                                   
 43 #ifndef G4MicroElecInelasticModel_h               
 44 #define G4MicroElecInelasticModel_h 1             
 45                                                   
 46                                                   
 47 #include "globals.hh"                             
 48 #include "G4VEmModel.hh"                          
 49 #include "G4ParticleChangeForGamma.hh"            
 50 #include "G4ProductionCutsTable.hh"               
 51 #include "G4VAtomDeexcitation.hh"                 
 52 #include "G4MicroElecSiStructure.hh"              
 53                                                   
 54 class G4ParticleDefinition;                       
 55 class G4NistManager;                              
 56 class G4MicroElecCrossSectionDataSet;             
 57                                                   
 58 class G4MicroElecInelasticModel : public G4VEm    
 59 {                                                 
 60                                                   
 61 public:                                           
 62                                                   
 63   G4MicroElecInelasticModel(const G4ParticleDe    
 64                const G4String& nam = "MicroEle    
 65   virtual ~G4MicroElecInelasticModel();           
 66                                                   
 67   void Initialise(const G4ParticleDefinition*,    
 68                                                   
 69   G4double CrossSectionPerVolume(  const G4Mat    
 70            const G4ParticleDefinition* p,         
 71            G4double ekin,                         
 72            G4double emin,                         
 73            G4double emax) override;               
 74   void SampleSecondaries(std::vector<G4Dynamic    
 75        const G4MaterialCutsCouple*,               
 76        const G4DynamicParticle*,                  
 77        G4double tmin,                             
 78        G4double maxEnergy) override;              
 79   G4double DifferentialCrossSection(G4Particle    
 80                                     G4double k    
 81                                     G4int shel    
 82   G4double TransferedEnergy(G4ParticleDefiniti    
 83                             G4double incomingP    
 84                                                   
 85   inline void SelectFasterComputation(G4bool i    
 86                                                   
 87   G4MicroElecInelasticModel & operator=(const     
 88   G4MicroElecInelasticModel(const  G4MicroElec    
 89                                                   
 90 protected:                                        
 91   G4ParticleChangeForGamma* fParticleChangeFor    
 92                                                   
 93 private:                                          
 94   G4double RandomizeEjectedElectronEnergy(G4Pa    
 95             G4double incomingParticleEnergy, G    
 96   G4double RandomizeEjectedElectronEnergyFromC    
 97                 G4double incomingParticleEnerg    
 98   G4double Interpolate(G4double e1, G4double e    
 99   G4double QuadInterpolator( G4double e11,        
100            G4double e12,                          
101            G4double e21,                          
102            G4double e22,                          
103            G4double x11,                          
104            G4double x12,                          
105            G4double x21,                          
106            G4double x22,                          
107            G4double t1,                           
108            G4double t2,                           
109            G4double t,                            
110            G4double e);                           
111   // Partial cross section                        
112   G4int RandomSelect(G4double energy,const G4S    
113                                                   
114   //deexcitation manager to produce fluo photn    
115   G4VAtomDeexcitation*      fAtomDeexcitation;    
116   G4Material* nistSi;                             
117   std::map<G4String,G4double,std::less<G4Strin    
118   std::map<G4String,G4double,std::less<G4Strin    
119                                                   
120   // Cross section                                
121   typedef std::map<G4String,G4String,std::less    
122   MapFile tableFile;                              
123                                                   
124   typedef std::map<G4String,G4MicroElecCrossSe    
125   MapData tableData;                              
126                                                   
127   typedef std::map<G4double, std::map<G4double    
128   TriDimensionMap eDiffCrossSectionData[7];       
129   TriDimensionMap eNrjTransfData[7]; // for cu    
130   TriDimensionMap pDiffCrossSectionData[7];       
131   TriDimensionMap pNrjTransfData[7]; // for cu    
132   std::vector<G4double> eTdummyVec;               
133   std::vector<G4double> pTdummyVec;               
134                                                   
135   typedef std::map<G4double, std::vector<G4dou    
136   VecMap eVecm;                                   
137   VecMap pVecm;                                   
138   VecMap eProbaShellMap[7]; // for cumulated d    
139   VecMap pProbaShellMap[7]; // for cumulated d    
140                                                   
141   // Final state                                  
142   G4MicroElecSiStructure SiStructure;             
143                                                   
144   G4int verboseLevel;                             
145   G4bool isInitialised;                           
146   G4bool fasterCode;                              
147   //                                              
148 };                                                
149                                                   
150 //....oooOO0OOooo........oooOO0OOooo........oo    
151                                                   
152 inline void G4MicroElecInelasticModel::SelectF    
153 {                                                 
154     fasterCode = input;                           
155 }                                                 
156                                                   
157 //....oooOO0OOooo........oooOO0OOooo........oo    
158                                                   
159 #endif                                            
160