#include <G4NeutronElasticXS.hh>
|
| G4NeutronElasticXS () |
|
virtual | ~G4NeutronElasticXS () |
|
virtual G4bool | IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *) |
|
virtual G4double | GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=0) |
|
virtual void | BuildPhysicsTable (const G4ParticleDefinition &) |
|
virtual void | CrossSectionDescription (std::ostream &) const |
|
| G4VCrossSectionDataSet (const G4String &nam="") |
|
virtual | ~G4VCrossSectionDataSet () |
|
virtual G4bool | IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=0, const G4Material *mat=0) |
|
G4double | GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
G4double | ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
virtual G4double | GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0) |
|
virtual G4Isotope * | SelectIsotope (const G4Element *, G4double kinEnergy) |
|
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 G4NeutronElasticXS.hh.
◆ G4NeutronElasticXS() [1/2]
G4NeutronElasticXS::G4NeutronElasticXS |
( |
| ) |
|
Definition at line 66 of file G4NeutronElasticXS.cc.
72 G4cout <<
"G4NeutronElasticXS::G4NeutronElasticXS Initialise for Z < " const G4ParticleDefinition * proton
G4HadronNucleonXsc * fNucleon
G4VCrossSectionDataSet(const G4String &nam="")
G4GLOB_DLL std::ostream G4cout
G4ComponentGGHadronNucleusXsc * ggXsection
static G4Proton * Proton()
static const char * Default_Name()
◆ ~G4NeutronElasticXS()
G4NeutronElasticXS::~G4NeutronElasticXS |
( |
| ) |
|
|
virtual |
Definition at line 80 of file G4NeutronElasticXS.cc.
G4HadronNucleonXsc * fNucleon
G4ComponentGGHadronNucleusXsc * ggXsection
static std::vector< G4PhysicsVector * > * data
◆ G4NeutronElasticXS() [2/2]
◆ BuildPhysicsTable()
Reimplemented from G4VCrossSectionDataSet.
Definition at line 155 of file G4NeutronElasticXS.cc.
158 G4cout <<
"G4NeutronElasticXS::BuildPhysicsTable for " 164 <<
" only neutron is allowed";
165 G4Exception(
"G4NeutronElasticXS::BuildPhysicsTable(..)",
"had012",
173 data =
new std::vector<G4PhysicsVector*>;
174 data->resize(MAXZEL, 0);
182 char* path = getenv(
"G4NEUTRONXSDATA");
191 for(
size_t i=0; i<numOfElm; ++i) {
194 else if(Z >= MAXZEL) { Z = MAXZEL-1; }
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
static G4double coeff[MAXZEL]
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
static size_t GetNumberOfElements()
static G4Neutron * Neutron()
static std::vector< G4PhysicsVector * > * data
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::vector< G4Element * > G4ElementTable
static G4ElementTable * GetElementTable()
void Initialise(G4int Z, G4DynamicParticle *dp=0, const char *=0)
◆ CrossSectionDescription()
void G4NeutronElasticXS::CrossSectionDescription |
( |
std::ostream & |
outFile | ) |
const |
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 94 of file G4NeutronElasticXS.cc.
96 outFile <<
"G4NeutronElasticXS calculates the neutron elastic scattering\n" 97 <<
"cross section on nuclei using data from the high precision\n" 98 <<
"neutron database. These data are simplified and smoothed over\n" 99 <<
"the resonance region in order to reduce CPU time.\n" 100 <<
"G4NeutronElasticXS is valid for energies up to 20 MeV, for all\n" 101 <<
"targets through U.\n";
◆ Default_Name()
static const char* G4NeutronElasticXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
◆ GetElementCrossSection()
Reimplemented from G4VCrossSectionDataSet.
Definition at line 112 of file G4NeutronElasticXS.cc.
118 if(Z < 1 || Z >=
MAXZEL) {
return xs; }
129 if(!pv) {
return xs; }
133 if(ekin <= e1) {
return (*pv)[0]; }
139 xs = pv->
Value(ekin);
149 G4cout <<
"ekin= " << ekin <<
", XSinel= " << xs <<
G4endl;
G4double GetElasticHadronNucleonXsc()
const G4ParticleDefinition * proton
G4HadronNucleonXsc * fNucleon
static G4double coeff[MAXZEL]
G4double GetElasticGlauberGribovXsc()
static G4NistManager * Instance()
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
G4ComponentGGHadronNucleusXsc * ggXsection
size_t GetVectorLength() const
G4double Value(G4double theEnergy, size_t &lastidx) const
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4ParticleDefinition *)
G4double Energy(size_t index) const
void Initialise(G4int Z, G4DynamicParticle *dp=0, const char *=0)
◆ Initialise()
Definition at line 205 of file G4NeutronElasticXS.cc.
208 if((*
data)[
Z]) {
return; }
209 const char* path = p;
213 path = getenv(
"G4NEUTRONXSDATA");
215 G4Exception(
"G4NeutronElasticXS::Initialise(..)",
"had013",
217 "Environment variable G4NEUTRONXSDATA is not defined");
232 std::ostringstream ost;
233 ost << path <<
"/elast" <<
Z ;
234 std::ifstream filein(ost.str().c_str());
237 ed <<
"Data file <" << ost.str().c_str()
238 <<
"> is not opened!";
239 G4Exception(
"G4NeutronElasticXS::Initialise(..)",
"had014",
244 G4cout <<
"file " << ost.str()
245 <<
" is opened by G4NeutronElasticXS" <<
G4endl;
249 if(!((*
data)[Z]->Retrieve(filein,
true))) {
251 ed <<
"Data file <" << ost.str().c_str()
252 <<
"> is not retrieved!";
253 G4Exception(
"G4NeutronElasticXS::Initialise(..)",
"had015",
259 size_t n = (*data)[
Z]->GetVectorLength() - 1;
271 if(sig2 > 0.) {
coeff[
Z] = sig1/sig2; }
273 if(!dp) {
delete dynParticle; }
G4double GetElasticHadronNucleonXsc()
const G4ParticleDefinition * proton
G4HadronNucleonXsc * fNucleon
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
static G4double coeff[MAXZEL]
G4double GetElasticGlauberGribovXsc()
static G4NistManager * Instance()
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4GLOB_DLL std::ostream G4cout
G4ComponentGGHadronNucleusXsc * ggXsection
static G4Neutron * Neutron()
void SetKineticEnergy(G4double aEnergy)
static std::vector< G4PhysicsVector * > * data
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static const G4double emax
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4ParticleDefinition *)
◆ IsElementApplicable()
◆ operator=()
◆ coeff
G4double G4NeutronElasticXS::coeff = {0.0} |
|
staticprivate |
◆ data
◆ fNucleon
◆ ggXsection
◆ isMaster
G4bool G4NeutronElasticXS::isMaster |
|
private |
◆ proton
The documentation for this class was generated from the following files: