#include <G4NeutronCaptureXS.hh>
|
| G4NeutronCaptureXS () |
|
virtual | ~G4NeutronCaptureXS () |
|
virtual G4bool | IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *) |
|
virtual G4bool | IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *) |
|
virtual G4double | GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=0) |
|
virtual G4double | GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) |
|
virtual G4Isotope * | SelectIsotope (const G4Element *, G4double kinEnergy) |
|
virtual void | BuildPhysicsTable (const G4ParticleDefinition &) |
|
virtual void | CrossSectionDescription (std::ostream &) const |
|
| G4VCrossSectionDataSet (const G4String &nam="") |
|
virtual | ~G4VCrossSectionDataSet () |
|
G4double | GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
G4double | ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
virtual void | DumpPhysicsTable (const G4ParticleDefinition &) |
|
virtual G4int | GetVerboseLevel () const |
|
virtual void | SetVerboseLevel (G4int value) |
|
G4double | GetMinKinEnergy () const |
|
void | SetMinKinEnergy (G4double value) |
|
G4double | GetMaxKinEnergy () const |
|
void | SetMaxKinEnergy (G4double value) |
|
const G4String & | GetName () const |
|
Definition at line 61 of file G4NeutronCaptureXS.hh.
G4NeutronCaptureXS::G4NeutronCaptureXS |
( |
| ) |
|
Definition at line 86 of file G4NeutronCaptureXS.cc.
88 emax(20*
MeV),elimit(1.0e-10*
eV)
92 G4cout <<
"G4NeutronCaptureXS::G4NeutronCaptureXS: Initialise for Z < "
G4VCrossSectionDataSet(const G4String &nam="")
G4GLOB_DLL std::ostream G4cout
static constexpr double eV
static const char * Default_Name()
static constexpr double MeV
G4NeutronCaptureXS::~G4NeutronCaptureXS |
( |
| ) |
|
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 248 of file G4NeutronCaptureXS.cc.
251 G4cout <<
"G4NeutronCaptureXS::BuildPhysicsTable for "
257 <<
" only neutron is allowed";
258 G4Exception(
"G4NeutronCaptureXS::BuildPhysicsTable(..)",
"had012",
266 data->SetName(
"NeutronCapture");
275 char* path = getenv(
"G4NEUTRONXSDATA");
281 for(
size_t i=0; i<numOfElm; ++i) {
287 if(!
data->GetElementData(Z)) { Initialise(Z, path); }
std::ostringstream G4ExceptionDescription
const G4String & GetParticleName() const
const XML_Char const XML_Char * data
G4GLOB_DLL std::ostream G4cout
static size_t GetNumberOfElements()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::vector< G4Element * > G4ElementTable
static G4ElementTable * GetElementTable()
void G4NeutronCaptureXS::CrossSectionDescription |
( |
std::ostream & |
outFile | ) |
const |
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 103 of file G4NeutronCaptureXS.cc.
105 outFile <<
"G4NeutronCaptureXS calculates the neutron capture cross sections\n"
106 <<
"on nuclei using data from the high precision neutron database.\n"
107 <<
"These data are simplified and smoothed over the resonance region\n"
108 <<
"in order to reduce CPU time. G4NeutronCaptureXS is valid up to\n"
109 <<
"20 MeV for all targets through U.\n";
static const char* G4NeutronCaptureXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 128 of file G4NeutronCaptureXS.cc.
133 if(ekin > emax || Z < 1 || Z >=
MAXZCAPTURE) {
return xs; }
134 if(ekin < elimit) { ekin = elimit; }
140 pv =
data->GetElementData(
Z);
141 if(!pv) {
return xs; }
145 if(ekin < e1) { xs = (*pv)[0]*std::sqrt(e1/ekin); }
146 else if(ekin <= pv->GetMaxEnergy()) { xs = pv->
Value(ekin); }
G4double GetKineticEnergy() const
const XML_Char const XML_Char * data
G4GLOB_DLL std::ostream G4cout
G4double Energy(size_t index) const
G4double Value(G4double theEnergy, size_t &lastidx) const
Reimplemented from G4VCrossSectionDataSet.
Definition at line 198 of file G4NeutronCaptureXS.cc.
216 for (j = 0; j<
nIso; ++j) {
217 sum += abundVector[j];
219 iso = (*isoVector)[j];
226 if(!
data->GetElementData(Z)) { Initialise(Z); }
227 size_t nn = temp.size();
228 if(nn < nIso) { temp.resize(nIso, 0.); }
230 for (j=0; j<
nIso; ++j) {
231 sum += abundVector[j]*IsoCrossSection(kinEnergy, Z,
232 (*isoVector)[j]->GetN());
236 for (j = 0; j<
nIso; ++j) {
238 iso = (*isoVector)[j];
size_t GetNumberOfIsotopes() const
std::vector< G4Isotope * > G4IsotopeVector
const XML_Char const XML_Char * data
G4double * GetRelativeAbundanceVector() const
G4IsotopeVector * GetIsotopeVector() const
The documentation for this class was generated from the following files: