#include <G4NeutronElasticXS.hh>
|
| G4NeutronElasticXS () |
|
| ~G4NeutronElasticXS () final |
|
G4bool | IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *) final |
|
G4bool | IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *) final |
|
G4double | GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *) final |
|
G4double | GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) final |
|
G4double | ComputeCrossSectionPerElement (G4double kinEnergy, G4double loge, const G4ParticleDefinition *, const G4Element *, const G4Material *) final |
|
G4double | ComputeIsoCrossSection (G4double kinEnergy, G4double loge, const G4ParticleDefinition *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) final |
|
const G4Isotope * | SelectIsotope (const G4Element *, G4double kinEnergy, G4double logE) final |
|
void | BuildPhysicsTable (const G4ParticleDefinition &) final |
|
void | CrossSectionDescription (std::ostream &) const final |
|
G4double | ElementCrossSection (G4double kinEnergy, G4double loge, G4int Z) |
|
G4NeutronElasticXS & | operator= (const G4NeutronElasticXS &right)=delete |
|
| G4NeutronElasticXS (const G4NeutronElasticXS &)=delete |
|
| G4VCrossSectionDataSet (const G4String &nam="") |
|
virtual | ~G4VCrossSectionDataSet () |
|
G4double | GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr) |
|
G4double | ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr) |
|
virtual void | DumpPhysicsTable (const G4ParticleDefinition &) |
|
virtual void | SetVerboseLevel (G4int value) |
|
G4double | GetMinKinEnergy () const |
|
void | SetMinKinEnergy (G4double value) |
|
G4double | GetMaxKinEnergy () const |
|
void | SetMaxKinEnergy (G4double value) |
|
bool | ForAllAtomsAndEnergies () const |
|
void | SetForAllAtomsAndEnergies (G4bool val) |
|
const G4String & | GetName () const |
|
void | SetName (const G4String &nam) |
|
G4VCrossSectionDataSet & | operator= (const G4VCrossSectionDataSet &right)=delete |
|
| G4VCrossSectionDataSet (const G4VCrossSectionDataSet &)=delete |
|
Definition at line 55 of file G4NeutronElasticXS.hh.
◆ G4NeutronElasticXS() [1/2]
G4NeutronElasticXS::G4NeutronElasticXS |
( |
| ) |
|
Definition at line 66 of file G4NeutronElasticXS.cc.
69{
70
72 G4cout <<
"G4NeutronElasticXS::G4NeutronElasticXS Initialise for Z < "
74 }
75 ggXsection =
77 if (ggXsection == nullptr)
80}
G4GLOB_DLL std::ostream G4cout
G4VComponentCrossSection * GetComponentCrossSection(const G4String &name)
static G4CrossSectionDataSetRegistry * Instance()
static const char * Default_Name()
static G4Neutron * Neutron()
G4VCrossSectionDataSet(const G4String &nam="")
void SetForAllAtomsAndEnergies(G4bool val)
◆ ~G4NeutronElasticXS()
G4NeutronElasticXS::~G4NeutronElasticXS |
( |
| ) |
|
|
final |
Definition at line 82 of file G4NeutronElasticXS.cc.
83{
84 if (isFirst) {
85 for(
G4int i=0; i<MAXZEL; ++i) {
86 delete data[i];
87 data[i] = nullptr;
88 }
89 }
90}
◆ G4NeutronElasticXS() [2/2]
◆ BuildPhysicsTable()
Reimplemented from G4VCrossSectionDataSet.
Definition at line 197 of file G4NeutronElasticXS.cc.
198{
200 G4cout <<
"G4NeutronElasticXS::BuildPhysicsTable for "
202 }
206 << " only neutron is allowed";
207 G4Exception(
"G4NeutronElasticXS::BuildPhysicsTable(..)",
"had012",
209 return;
210 }
211 if (fLock || isFirst) {
213 if (fLock) {
214 isFirst = true;
215 fLock = false;
216 FindDirectoryPath();
217 }
218
219
221 for ( auto & elm : *table ) {
222 G4int Z = std::max( 1, std::min( elm->GetZasInt(), MAXZEL-1) );
223 if ( nullptr == data[Z] ) { Initialise(Z); }
224 }
225 l.unlock();
226 }
227}
std::vector< G4Element * > G4ElementTable
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
static G4ElementTable * GetElementTable()
const G4String & GetParticleName() const
◆ ComputeCrossSectionPerElement()
◆ ComputeIsoCrossSection()
◆ CrossSectionDescription()
void G4NeutronElasticXS::CrossSectionDescription |
( |
std::ostream & | outFile | ) |
const |
|
finalvirtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 92 of file G4NeutronElasticXS.cc.
93{
94 outFile << "G4NeutronElasticXS calculates the neutron elastic scattering\n"
95 << "cross section on nuclei using data from the high precision\n"
96 << "neutron database. These data are simplified and smoothed over\n"
97 << "the resonance region in order to reduce CPU time.\n"
98 << "For high energies Glauber-Gribiv cross section is used.\n";
99}
◆ Default_Name()
static const char * G4NeutronElasticXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
◆ ElementCrossSection()
◆ GetElementCrossSection()
◆ GetIsoCrossSection()
◆ IsElementApplicable()
◆ IsIsoApplicable()
◆ operator=()
◆ SelectIsotope()
Reimplemented from G4VCrossSectionDataSet.
Definition at line 172 of file G4NeutronElasticXS.cc.
174{
177
178
179 if(1 == nIso) { return iso; }
180
184
185
186 for (
G4int j=0; j<nIso; ++j) {
187 sum += abundVector[j];
188 if(q <= sum) {
190 break;
191 }
192 }
193 return iso;
194}
G4double * GetRelativeAbundanceVector() const
const G4Isotope * GetIsotope(G4int iso) const
size_t GetNumberOfIsotopes() const
The documentation for this class was generated from the following files: