Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4NeutronHPThermalScatteringData.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26#ifndef G4NeutronHPThermalScatteringData_h
27#define G4NeutronHPThermalScatteringData_h 1
28
29// Thermal Neutron Scattering
30// Koi, Tatsumi (SCCS/SLAC)
31//
32// Class Description
33// Cross Sections for a high precision (based on evaluated data
34// libraries) description of themal neutron scattering below 4 eV;
35// Based on Thermal neutron scattering files
36// from the evaluated nuclear data files ENDF/B-VI, Release2
37// To be used in your physics list in case you need this physics.
38// In this case you want to register an object of this class with
39// the corresponding process.
40// Class Description - End
41
42// 15-Nov-06 First implementation is done by T. Koi (SLAC/SCCS)
43// 070625 create clearCurrentXSData to fix memory leaking by T. Koi
44// 080417 Add IsZAApplicable method (return false) by T. Koi
45
47#include "G4NeutronHPVector.hh"
49#include "G4DynamicParticle.hh"
50#include "G4Element.hh"
51#include "G4Material.hh"
53//#include "G4PhysicsTable.hh"
54
55#include <map>
56#include <vector>
57
59{
60
61 public:
62
64
66
68 G4int /*Z*/ , G4int /*A*/ ,
69 const G4Element* /*elm*/ ,
70 const G4Material* /*mat*/ );
71
73 G4int /*Z*/ , G4int /*A*/ ,
74 const G4Isotope* /*iso*/ ,
75 const G4Element* /*elm*/ ,
76 const G4Material* /*mat*/ );
77
79
80 //G4bool IsZAApplicable( const G4DynamicParticle* , G4double /*ZZ*/, G4double /*AA*/)
81 //{ return false;}
82
87
89
91
92 private:
93
94 G4double GetX ( const G4DynamicParticle* , G4double aT , std::map< G4double , G4NeutronHPVector* >* );
95
96 G4double emax;
97
98 void clearCurrentXSData();
99
100// element temp x section from E
101 std::map< G4int , std::map< G4double , G4NeutronHPVector* >* > coherent;
102 std::map< G4int , std::map< G4double , G4NeutronHPVector* >* > incoherent;
103 std::map< G4int , std::map< G4double , G4NeutronHPVector* >* > inelastic;
104
105 std::map< G4double , G4NeutronHPVector* >* readData ( G4String );
106
107 std::vector < G4int > indexOfThermalElement;
109// G4Element NDL name
110// std::map< G4String , G4String > names;
111
112 G4double ke_cache;
113 G4double xs_cache;
114 const G4Element* element_cache;
115 const G4Material* material_cache;
116
117 std::map < std::pair < const G4Material* , const G4Element* > , G4int > dic;
118 G4int getTS_ID( const G4Material* , const G4Element* );
119
120};
121
122#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int, G4int, const G4Element *, const G4Material *)
G4double GetIncoherentCrossSection(const G4DynamicParticle *, const G4Element *, const G4Material *)
G4double GetInelasticCrossSection(const G4DynamicParticle *, const G4Element *, const G4Material *)
void DumpPhysicsTable(const G4ParticleDefinition &)
void BuildPhysicsTable(const G4ParticleDefinition &)
G4double GetCrossSection(const G4DynamicParticle *, const G4Element *, const G4Material *)
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int, G4int, const G4Isotope *, const G4Element *, const G4Material *)
G4bool IsApplicable(const G4DynamicParticle *, const G4Element *)
G4double GetCoherentCrossSection(const G4DynamicParticle *, const G4Element *, const G4Material *)