Geant4  10.01.p03
G4NeutronHPThermalScattering Class Reference

#include <G4NeutronHPThermalScattering.hh>

+ Inheritance diagram for G4NeutronHPThermalScattering:
+ Collaboration diagram for G4NeutronHPThermalScattering:

Public Member Functions

 G4NeutronHPThermalScattering ()
 
 ~G4NeutronHPThermalScattering ()
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)
 
virtual const std::pair
< G4double, G4double
GetFatalEnergyCheckLevels () const
 
void AddUserThermalScatteringFile (G4String, G4String)
 
void BuildPhysicsTable (const G4ParticleDefinition &)
 
- Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
 
virtual ~G4HadronicInteraction ()
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual G4bool IsApplicable (const G4HadProjectile &, G4Nucleus &)
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
const G4HadronicInteractionGetMyPointer () const
 
virtual G4int GetVerboseLevel () const
 
virtual void SetVerboseLevel (G4int value)
 
const G4StringGetModelName () const
 
void DeActivateFor (const G4Material *aMaterial)
 
void ActivateFor (const G4Material *aMaterial)
 
void DeActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Element *anElement)
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
G4bool IsBlocked (const G4Element *anElement) const
 
void SetRecoilEnergyThreshold (G4double val)
 
G4double GetRecoilEnergyThreshold () const
 
G4bool operator== (const G4HadronicInteraction &right) const
 
G4bool operator!= (const G4HadronicInteraction &right) const
 
virtual std::pair< G4double,
G4double
GetEnergyMomentumCheckLevels () const
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
virtual void ModelDescription (std::ostream &outFile) const
 

Private Member Functions

void clearCurrentFSData ()
 
std::map< G4double,
std::vector< std::pair
< G4double, G4double > * > * > * 
readACoherentFSDATA (G4String)
 
std::map< G4double,
std::vector< E_isoAng * > * > * 
readAnIncoherentFSDATA (G4String)
 
E_isoAngreadAnE_isoAng (std::istream *)
 
std::map< G4double,
std::vector< E_P_E_isoAng * > * > * 
readAnInelasticFSDATA (G4String)
 
E_P_E_isoAngreadAnE_P_E_isoAng (std::istream *)
 
G4double getMu (E_isoAng *)
 
std::pair< G4double, G4doublefind_LH (G4double, std::vector< G4double > *)
 
G4double get_linear_interpolated (G4double, std::pair< G4double, G4double >, std::pair< G4double, G4double >)
 
E_isoAng create_E_isoAng_from_energy (G4double, std::vector< E_isoAng * > *)
 
G4double get_secondary_energy_from_E_P_E_isoAng (G4double, E_P_E_isoAng *)
 
std::pair< G4double, E_isoAngcreate_sE_and_EPM_from_pE_and_vE_P_E_isoAng (G4double, G4double, std::vector< E_P_E_isoAng * > *)
 
void buildPhysicsTable ()
 
G4int getTS_ID (const G4Material *, const G4Element *)
 
G4bool check_E_isoAng (E_isoAng *)
 

Private Attributes

G4NeutronHPThermalScatteringNames names
 
std::map< G4int, std::map
< G4double, std::vector
< std::pair< G4double,
G4double > * > * > * > * 
coherentFSs
 
std::map< G4int, std::map
< G4double, std::vector
< E_isoAng * > * > * > * 
incoherentFSs
 
std::map< G4int, std::map
< G4double, std::vector
< E_P_E_isoAng * > * > * > * 
inelasticFSs
 
G4NeutronHPThermalScatteringDatatheXSection
 
G4NeutronHPElastictheHPElastic
 
std::map< std::pair< const
G4Material *, const G4Element * >
, G4int
dic
 
size_t nMaterial
 
size_t nElement
 

Additional Inherited Members

- Protected Member Functions inherited from G4HadronicInteraction
void SetModelName (const G4String &nam)
 
G4bool IsBlocked () const
 
void Block ()
 
- Protected Attributes inherited from G4HadronicInteraction
G4HadFinalState theParticleChange
 
G4int verboseLevel
 
G4double theMinEnergy
 
G4double theMaxEnergy
 
G4bool isBlocked
 

Detailed Description

Definition at line 74 of file G4NeutronHPThermalScattering.hh.

Constructor & Destructor Documentation

G4NeutronHPThermalScattering::G4NeutronHPThermalScattering ( )

Definition at line 55 of file G4NeutronHPThermalScattering.cc.

References eV, nElement, nMaterial, G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), theHPElastic, and theXSection.

+ Here is the call graph for this function:

G4NeutronHPThermalScattering::~G4NeutronHPThermalScattering ( )

Definition at line 77 of file G4NeutronHPThermalScattering.cc.

References clearCurrentFSData(), theHPElastic, and theXSection.

+ Here is the call graph for this function:

Member Function Documentation

void G4NeutronHPThermalScattering::AddUserThermalScatteringFile ( G4String  nameG4Element,
G4String  filename 
)

Definition at line 1167 of file G4NeutronHPThermalScattering.cc.

References G4NeutronHPThermalScatteringNames::AddThermalElement(), G4NeutronHPThermalScatteringData::AddUserThermalScatteringFile(), buildPhysicsTable(), names, and theXSection.

+ Here is the call graph for this function:

void G4NeutronHPThermalScattering::BuildPhysicsTable ( const G4ParticleDefinition particle)
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 202 of file G4NeutronHPThermalScattering.cc.

References G4NeutronHPElastic::BuildPhysicsTable(), buildPhysicsTable(), and theHPElastic.

+ Here is the call graph for this function:

void G4NeutronHPThermalScattering::buildPhysicsTable ( )
private

Definition at line 1003 of file G4NeutronHPThermalScattering.cc.

References G4NeutronHPThermalScatteringData::BuildPhysicsTable(), clearCurrentFSData(), coherentFSs, dic, G4String::first(), G4cout, G4endl, G4ThreadLocal, G4Material::GetElement(), G4Element::GetElementTable(), G4NeutronHPManager::GetInstance(), G4Material::GetMaterialTable(), G4Element::GetName(), G4Material::GetName(), G4Element::GetNumberOfElements(), G4Material::GetNumberOfElements(), G4Material::GetNumberOfMaterials(), G4NeutronHPManager::GetThermalScatteringCoherentFinalStates(), G4NeutronHPManager::GetThermalScatteringIncoherentFinalStates(), G4NeutronHPManager::GetThermalScatteringInelasticFinalStates(), G4NeutronHPThermalScatteringNames::GetTS_NDL_Name(), incoherentFSs, inelasticFSs, G4NeutronHPThermalScatteringNames::IsThisThermalElement(), G4Threading::IsWorkerThread(), name, names, nElement, G4Neutron::Neutron(), nMaterial, readACoherentFSDATA(), readAnIncoherentFSDATA(), readAnInelasticFSDATA(), G4NeutronHPManager::RegisterThermalScatteringCoherentFinalStates(), G4NeutronHPManager::RegisterThermalScatteringIncoherentFinalStates(), G4NeutronHPManager::RegisterThermalScatteringInelasticFinalStates(), second, and theXSection.

Referenced by AddUserThermalScatteringFile(), and BuildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4NeutronHPThermalScattering::check_E_isoAng ( E_isoAng anE_IsoAng)
private

Definition at line 1174 of file G4NeutronHPThermalScattering.cc.

References E_isoAng::isoAngle, E_isoAng::n, and n.

Referenced by create_E_isoAng_from_energy().

+ Here is the caller graph for this function:

void G4NeutronHPThermalScattering::clearCurrentFSData ( )
private

Definition at line 138 of file G4NeutronHPThermalScattering.cc.

References coherentFSs, incoherentFSs, and inelasticFSs.

Referenced by buildPhysicsTable(), and ~G4NeutronHPThermalScattering().

+ Here is the caller graph for this function:

E_isoAng G4NeutronHPThermalScattering::create_E_isoAng_from_energy ( G4double  energy,
std::vector< E_isoAng * > *  vEPM 
)
private

Definition at line 807 of file G4NeutronHPThermalScattering.cc.

References check_E_isoAng(), E_isoAng::energy, G4INCL::KinematicsUtils::energy(), find_LH(), G4cout, G4endl, get_linear_interpolated(), E_isoAng::isoAngle, and E_isoAng::n.

Referenced by ApplyYourself(), and create_sE_and_EPM_from_pE_and_vE_P_E_isoAng().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::pair< G4double, E_isoAng > G4NeutronHPThermalScattering::create_sE_and_EPM_from_pE_and_vE_P_E_isoAng ( G4double  rand_for_sE,
G4double  pE,
std::vector< E_P_E_isoAng * > *  vNEP_EPM 
)
private

Definition at line 923 of file G4NeutronHPThermalScattering.cc.

References create_E_isoAng_from_energy(), E_isoAng::energy, find_LH(), get_linear_interpolated(), get_secondary_energy_from_E_P_E_isoAng(), E_isoAng::isoAngle, E_isoAng::n, and E_P_E_isoAng::vE_isoAngle.

Referenced by ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::pair< G4double, G4double > G4NeutronHPThermalScattering::find_LH ( G4double  x,
std::vector< G4double > *  aVector 
)
private

Definition at line 752 of file G4NeutronHPThermalScattering.cc.

References L.

Referenced by ApplyYourself(), create_E_isoAng_from_energy(), and create_sE_and_EPM_from_pE_and_vE_P_E_isoAng().

+ Here is the caller graph for this function:

G4double G4NeutronHPThermalScattering::get_linear_interpolated ( G4double  x,
std::pair< G4double, G4double Low,
std::pair< G4double, G4double High 
)
private

Definition at line 789 of file G4NeutronHPThermalScattering.cc.

References G4cout, and G4endl.

Referenced by ApplyYourself(), create_E_isoAng_from_energy(), create_sE_and_EPM_from_pE_and_vE_P_E_isoAng(), and get_secondary_energy_from_E_P_E_isoAng().

+ Here is the caller graph for this function:

G4double G4NeutronHPThermalScattering::get_secondary_energy_from_E_P_E_isoAng ( G4double  random,
E_P_E_isoAng anE_P_E_isoAng 
)
private

Definition at line 877 of file G4NeutronHPThermalScattering.cc.

References dE, eV, get_linear_interpolated(), E_P_E_isoAng::n, n, E_P_E_isoAng::prob, E_P_E_isoAng::sum_of_probXdEs, G4INCL::CrossSections::total(), and E_P_E_isoAng::vE_isoAngle.

Referenced by create_sE_and_EPM_from_pE_and_vE_P_E_isoAng().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::pair< G4double, G4double > G4NeutronHPThermalScattering::GetFatalEnergyCheckLevels ( ) const
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 1161 of file G4NeutronHPThermalScattering.cc.

References DBL_MAX, and perCent.

G4double G4NeutronHPThermalScattering::getMu ( E_isoAng anEPM)
private

Definition at line 715 of file G4NeutronHPThermalScattering.cc.

References G4UniformRand.

Referenced by ApplyYourself().

+ Here is the caller graph for this function:

G4int G4NeutronHPThermalScattering::getTS_ID ( const G4Material material,
const G4Element element 
)
private

Definition at line 1153 of file G4NeutronHPThermalScattering.cc.

References dic.

Referenced by ApplyYourself().

+ Here is the caller graph for this function:

std::map< G4double, std::vector< std::pair< G4double, G4double > * > * > * G4NeutronHPThermalScattering::readACoherentFSDATA ( G4String  name)
private

Definition at line 209 of file G4NeutronHPThermalScattering.cc.

References G4NeutronHPManager::GetDataStream(), G4NeutronHPManager::GetInstance(), and n.

Referenced by buildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

E_isoAng * G4NeutronHPThermalScattering::readAnE_isoAng ( std::istream *  file)
private

Definition at line 365 of file G4NeutronHPThermalScattering.cc.

References E_isoAng::energy, G4INCL::KinematicsUtils::energy(), eV, E_isoAng::isoAngle, E_isoAng::n, and n.

Referenced by readAnIncoherentFSDATA().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

E_P_E_isoAng * G4NeutronHPThermalScattering::readAnE_P_E_isoAng ( std::istream *  file)
private

Definition at line 285 of file G4NeutronHPThermalScattering.cc.

References dE, E_isoAng::energy, E_P_E_isoAng::energy, G4INCL::KinematicsUtils::energy(), eV, E_isoAng::isoAngle, E_isoAng::n, E_P_E_isoAng::n, E_P_E_isoAng::prob, E_P_E_isoAng::sum_of_probXdEs, G4INCL::CrossSections::total(), and E_P_E_isoAng::vE_isoAngle.

Referenced by readAnInelasticFSDATA().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::map< G4double, std::vector< E_isoAng * > * > * G4NeutronHPThermalScattering::readAnIncoherentFSDATA ( G4String  name)
private

Definition at line 337 of file G4NeutronHPThermalScattering.cc.

References G4NeutronHPManager::GetDataStream(), G4NeutronHPManager::GetInstance(), n, and readAnE_isoAng().

Referenced by buildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::map< G4double, std::vector< E_P_E_isoAng * > * > * G4NeutronHPThermalScattering::readAnInelasticFSDATA ( G4String  name)
private

Definition at line 255 of file G4NeutronHPThermalScattering.cc.

References G4NeutronHPManager::GetDataStream(), G4NeutronHPManager::GetInstance(), n, and readAnE_P_E_isoAng().

Referenced by buildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

std::map< G4int , std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* >* G4NeutronHPThermalScattering::coherentFSs
private

Definition at line 100 of file G4NeutronHPThermalScattering.hh.

Referenced by buildPhysicsTable(), and clearCurrentFSData().

std::map< std::pair < const G4Material* , const G4Element* > , G4int > G4NeutronHPThermalScattering::dic
private

Definition at line 130 of file G4NeutronHPThermalScattering.hh.

Referenced by buildPhysicsTable(), and getTS_ID().

std::map< G4int , std::map < G4double , std::vector < E_isoAng* >* >* >* G4NeutronHPThermalScattering::incoherentFSs
private

Definition at line 105 of file G4NeutronHPThermalScattering.hh.

Referenced by buildPhysicsTable(), and clearCurrentFSData().

std::map< G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >* G4NeutronHPThermalScattering::inelasticFSs
private

Definition at line 111 of file G4NeutronHPThermalScattering.hh.

Referenced by buildPhysicsTable(), and clearCurrentFSData().

G4NeutronHPThermalScatteringNames G4NeutronHPThermalScattering::names
private
size_t G4NeutronHPThermalScattering::nElement
private
size_t G4NeutronHPThermalScattering::nMaterial
private
G4NeutronHPElastic* G4NeutronHPThermalScattering::theHPElastic
private

The documentation for this class was generated from the following files: