43{
46
47
48 if(!getenv("G4NEUTRONHPDATA"))
49 throw G4HadronicException(__FILE__, __LINE__,
"Please setenv G4NEUTRONHPDATA to point to the neutron cross-section files.");
50 dirName = getenv("G4NEUTRONHPDATA");
52 dirName = dirName + tString;
53
56 unavailable_elements.clear();
57 for (
G4int i=0; i<numEle; i++)
58 {
60 do
61 {
62
63 try
64 {
65 theInelastic[i].
Register(&theNFS,
"F01");
66 theInelastic[i].
Register(&theNXFS,
"F02");
67 theInelastic[i].
Register(&the2NDFS,
"F03");
68 theInelastic[i].
Register(&the2NFS,
"F04");
69 theInelastic[i].
Register(&the3NFS,
"F05");
70 theInelastic[i].
Register(&theNAFS,
"F06");
71 theInelastic[i].
Register(&theN3AFS,
"F07");
72 theInelastic[i].
Register(&the2NAFS,
"F08");
73 theInelastic[i].
Register(&the3NAFS,
"F09");
74 theInelastic[i].
Register(&theNPFS,
"F10");
75 theInelastic[i].
Register(&theN2AFS,
"F11");
76 theInelastic[i].
Register(&the2N2AFS,
"F12");
77 theInelastic[i].
Register(&theNDFS,
"F13");
78 theInelastic[i].
Register(&theNTFS,
"F14");
79 theInelastic[i].
Register(&theNHe3FS,
"F15");
80 theInelastic[i].
Register(&theND2AFS,
"F16");
81 theInelastic[i].
Register(&theNT2AFS,
"F17");
82 theInelastic[i].
Register(&the4NFS,
"F18");
83 theInelastic[i].
Register(&the2NPFS,
"F19");
84 theInelastic[i].
Register(&the3NPFS,
"F20");
85 theInelastic[i].
Register(&theN2PFS,
"F21");
86 theInelastic[i].
Register(&theNPAFS,
"F22");
87 theInelastic[i].
Register(&thePFS,
"F23");
88 theInelastic[i].
Register(&theDFS,
"F24");
89 theInelastic[i].
Register(&theTFS,
"F25");
90 theInelastic[i].
Register(&theHe3FS,
"F26");
91 theInelastic[i].
Register(&theAFS,
"F27");
92 theInelastic[i].
Register(&the2AFS,
"F28");
93 theInelastic[i].
Register(&the3AFS,
"F29");
94 theInelastic[i].
Register(&the2PFS,
"F30");
95 theInelastic[i].
Register(&thePAFS,
"F31");
96 theInelastic[i].
Register(&theD2AFS,
"F32");
97 theInelastic[i].
Register(&theT2AFS,
"F33");
98 theInelastic[i].
Register(&thePDFS,
"F34");
99 theInelastic[i].
Register(&thePTFS,
"F35");
100 theInelastic[i].
Register(&theDAFS,
"F36");
101 }
102
104 {
106 }
108 }
109 while( !theInelastic[i].HasDataInAnyFinalState());
110
111 }
112
113
114 if ( unavailable_elements.size() > 0 )
115 {
116 std::set< G4String>::iterator it;
117 G4cout <<
"HP Inelastic data are not available for thess elements "<<
G4endl;
118 for ( it = unavailable_elements.begin() ; it != unavailable_elements.end() ; it++ )
120 G4cout <<
"Low Energy Parameterization Models will be used."<<
G4endl;
121 }
122
123 createXSectionDataSet();
124}
G4DLLIMPORT std::ostream G4cout
static size_t GetNumberOfElements()
static const G4ElementTable * GetElementTable()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
void RestartRegistration()
void Register(G4NeutronHPFinalState *theFS, const G4String &aName)