72     G4cout  << 
"G4NeutronElasticXS::G4NeutronElasticXS Initialise for Z < "  
   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";  
 
  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;
 
  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) {
 
  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
 
G4double GetKineticEnergy() const 
 
CLHEP::Hep3Vector G4ThreeVector
 
static G4double coeff[MAXZEL]
 
size_t GetVectorLength() const 
 
G4double GetElasticGlauberGribovXsc()
 
static G4NistManager * Instance()
 
const G4String & GetParticleName() const 
 
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 size_t GetNumberOfElements()
 
G4_DECLARE_XS_FACTORY(G4NeutronElasticXS)
 
static G4Neutron * Neutron()
 
G4double Energy(size_t index) const 
 
G4double Value(G4double theEnergy, size_t &lastidx) const 
 
void SetKineticEnergy(G4double aEnergy)
 
static std::vector< G4PhysicsVector * > * data
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
virtual ~G4NeutronElasticXS()
 
static const G4double emax
 
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
 
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4ParticleDefinition *)
 
virtual void CrossSectionDescription(std::ostream &) const 
 
std::vector< G4Element * > G4ElementTable
 
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *)
 
static G4ElementTable * GetElementTable()
 
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
 
void Initialise(G4int Z, G4DynamicParticle *dp=0, const char *=0)