Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/cross_sections/include/G4NeutronInelasticXS.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/hadronic/cross_sections/include/G4NeutronInelasticXS.hh (Version 11.3.0) and /processes/hadronic/cross_sections/include/G4NeutronInelasticXS.hh (Version 8.0)


  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 //                                                
 28 // GEANT4 Class header file                       
 29 //                                                
 30 //                                                
 31 // File name:    G4NeutronInelasticXS             
 32 //                                                
 33 // Author  Ivantchenko, Geant4, 3-AUG-09          
 34 //                                                
 35                                                   
 36 // Class Description:                             
 37 // This is a base class for neutron inelastic     
 38 // data files from G4PARTICLEXSDATA data set      
 39 // Class Description - End                        
 40                                                   
 41 #ifndef G4NeutronInelasticXS_h                    
 42 #define G4NeutronInelasticXS_h 1                  
 43                                                   
 44 #include "G4VCrossSectionDataSet.hh"              
 45 #include "globals.hh"                             
 46 #include "G4ElementData.hh"                       
 47 #include "G4PhysicsVector.hh"                     
 48 #include <vector>                                 
 49                                                   
 50 class G4DynamicParticle;                          
 51 class G4ParticleDefinition;                       
 52 class G4Element;                                  
 53 class G4VComponentCrossSection;                   
 54                                                   
 55 class G4NeutronInelasticXS final : public G4VC    
 56 {                                                 
 57 public:                                           
 58                                                   
 59   G4NeutronInelasticXS();                         
 60                                                   
 61   ~G4NeutronInelasticXS() override = default;     
 62                                                   
 63   static const char* Default_Name() { return "    
 64                                                   
 65   G4bool IsElementApplicable(const G4DynamicPa    
 66            const G4Material*) final;              
 67                                                   
 68   G4bool IsIsoApplicable(const G4DynamicPartic    
 69        const G4Element*, const G4Material*) fi    
 70                                                   
 71   G4double GetElementCrossSection(const G4Dyna    
 72           G4int Z, const G4Material*) final;      
 73                                                   
 74   G4double ComputeCrossSectionPerElement(G4dou    
 75                                          const    
 76                                          const    
 77                                          const    
 78                                                   
 79   G4double ComputeIsoCrossSection(G4double kin    
 80                                   const G4Part    
 81                                   G4int Z, G4i    
 82                                   const G4Isot    
 83                                   const G4Elem    
 84                                   const G4Mate    
 85                                                   
 86   G4double GetIsoCrossSection(const G4DynamicP    
 87                               const G4Isotope*    
 88                               const G4Element*    
 89                               const G4Material    
 90                                                   
 91   const G4Isotope* SelectIsotope(const G4Eleme    
 92                                  G4double kinE    
 93                                                   
 94   void BuildPhysicsTable(const G4ParticleDefin    
 95                                                   
 96   void CrossSectionDescription(std::ostream&)     
 97                                                   
 98   G4double ElementCrossSection(G4double kinEne    
 99                                                   
100   G4double IsoCrossSection(G4double ekin, G4do    
101                                                   
102   G4NeutronInelasticXS & operator=(const G4Neu    
103   G4NeutronInelasticXS(const G4NeutronInelasti    
104                                                   
105 private:                                          
106                                                   
107   void Initialise(G4int Z);                       
108                                                   
109   void InitialiseOnFly(G4int Z);                  
110                                                   
111   const G4String& FindDirectoryPath();            
112                                                   
113   inline const G4PhysicsVector* GetPhysicsVect    
114                                                   
115   G4PhysicsVector* RetrieveVector(std::ostring    
116                                                   
117   G4VComponentCrossSection* ggXsection = nullp    
118                                                   
119   const G4ParticleDefinition* neutron;            
120                                                   
121   std::vector<G4double> temp;                     
122                                                   
123   G4double elimit;                                
124   G4double lowElimit;                             
125   G4double loglowElimit;                          
126                                                   
127   G4bool isInitializer{false};                    
128                                                   
129   static const G4int MAXZINEL = 93;               
130   static G4ElementData* data;                     
131   static G4double coeff[MAXZINEL];                
132   static G4double lowcoeff[MAXZINEL];             
133   static G4String gDataDirectory;                 
134 };                                                
135                                                   
136 inline                                            
137 const G4PhysicsVector* G4NeutronInelasticXS::G    
138 {                                                 
139   const G4PhysicsVector* pv = data->GetElement    
140   if (pv == nullptr) {                            
141     InitialiseOnFly(Z);                           
142     pv = data->GetElementData(Z);                 
143   }                                               
144   return pv;                                      
145 }                                                 
146                                                   
147 #endif                                            
148