Geant4  10.02.p02
G4ParticleHPThermalScattering Class Reference

#include <G4ParticleHPThermalScattering.hh>

+ Inheritance diagram for G4ParticleHPThermalScattering:
+ Collaboration diagram for G4ParticleHPThermalScattering:

Public Member Functions

 G4ParticleHPThermalScattering ()
 
 ~G4ParticleHPThermalScattering ()
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)
 
virtual const std::pair
< G4double, G4double
GetFatalEnergyCheckLevels () const
 
void AddUserThermalScatteringFile (G4String, G4String)
 
void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void ModelDescription (std::ostream &outFile) const
 
- 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)
 

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

G4ParticleHPThermalScatteringNames 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
 
G4ParticleHPThermalScatteringDatatheXSection
 
G4ParticleHPElastictheHPElastic
 
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 77 of file G4ParticleHPThermalScattering.hh.

Constructor & Destructor Documentation

G4ParticleHPThermalScattering::G4ParticleHPThermalScattering ( )

Definition at line 56 of file G4ParticleHPThermalScattering.cc.

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

+ Here is the call graph for this function:

G4ParticleHPThermalScattering::~G4ParticleHPThermalScattering ( )

Definition at line 76 of file G4ParticleHPThermalScattering.cc.

References theHPElastic.

Member Function Documentation

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

Definition at line 1163 of file G4ParticleHPThermalScattering.cc.

References G4ParticleHPThermalScatteringNames::AddThermalElement(), G4ParticleHPThermalScatteringData::AddUserThermalScatteringFile(), buildPhysicsTable(), names, and theXSection.

+ Here is the call graph for this function:

void G4ParticleHPThermalScattering::BuildPhysicsTable ( const G4ParticleDefinition particle)
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 202 of file G4ParticleHPThermalScattering.cc.

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

+ Here is the call graph for this function:

void G4ParticleHPThermalScattering::buildPhysicsTable ( )
private

Definition at line 1003 of file G4ParticleHPThermalScattering.cc.

References G4ParticleHPThermalScatteringData::BuildPhysicsTable(), clearCurrentFSData(), coherentFSs, dic, G4String::first(), G4cout, G4endl, G4ThreadLocal, G4Material::GetElement(), G4Element::GetElementTable(), G4ParticleHPManager::GetInstance(), G4Material::GetMaterialTable(), G4Element::GetName(), G4Material::GetName(), G4Element::GetNumberOfElements(), G4Material::GetNumberOfElements(), G4Material::GetNumberOfMaterials(), G4ParticleHPManager::GetThermalScatteringCoherentFinalStates(), G4ParticleHPManager::GetThermalScatteringIncoherentFinalStates(), G4ParticleHPManager::GetThermalScatteringInelasticFinalStates(), G4ParticleHPThermalScatteringNames::GetTS_NDL_Name(), incoherentFSs, inelasticFSs, G4Threading::IsMasterThread(), G4ParticleHPThermalScatteringNames::IsThisThermalElement(), names, nElement, G4Neutron::Neutron(), nMaterial, readACoherentFSDATA(), readAnIncoherentFSDATA(), readAnInelasticFSDATA(), G4ParticleHPManager::RegisterThermalScatteringCoherentFinalStates(), G4ParticleHPManager::RegisterThermalScatteringIncoherentFinalStates(), G4ParticleHPManager::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 G4ParticleHPThermalScattering::check_E_isoAng ( E_isoAng anE_IsoAng)
private

Definition at line 1171 of file G4ParticleHPThermalScattering.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 G4ParticleHPThermalScattering::clearCurrentFSData ( )
private

Definition at line 136 of file G4ParticleHPThermalScattering.cc.

References coherentFSs, incoherentFSs, and inelasticFSs.

Referenced by buildPhysicsTable().

+ Here is the caller graph for this function:

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

Definition at line 807 of file G4ParticleHPThermalScattering.cc.

References angle, 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 > G4ParticleHPThermalScattering::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 G4ParticleHPThermalScattering.cc.

References angle, 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 > G4ParticleHPThermalScattering::find_LH ( G4double  x,
std::vector< G4double > *  aVector 
)
private

Definition at line 752 of file G4ParticleHPThermalScattering.cc.

References LL.

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 G4ParticleHPThermalScattering::get_linear_interpolated ( G4double  x,
std::pair< G4double, G4double Low,
std::pair< G4double, G4double High 
)
private

Definition at line 789 of file G4ParticleHPThermalScattering.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 G4ParticleHPThermalScattering::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 G4ParticleHPThermalScattering.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 > G4ParticleHPThermalScattering::GetFatalEnergyCheckLevels ( ) const
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 1157 of file G4ParticleHPThermalScattering.cc.

References DBL_MAX, and perCent.

G4double G4ParticleHPThermalScattering::getMu ( E_isoAng anEPM)
private

Definition at line 715 of file G4ParticleHPThermalScattering.cc.

References D(), G4UniformRand, and x.

Referenced by ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 1149 of file G4ParticleHPThermalScattering.cc.

References dic.

Referenced by ApplyYourself().

+ Here is the caller graph for this function:

void G4ParticleHPThermalScattering::ModelDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 1185 of file G4ParticleHPThermalScattering.cc.

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

Definition at line 209 of file G4ParticleHPThermalScattering.cc.

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

Referenced by buildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 365 of file G4ParticleHPThermalScattering.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 * G4ParticleHPThermalScattering::readAnE_P_E_isoAng ( std::istream *  file)
private

Definition at line 285 of file G4ParticleHPThermalScattering.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(), E_P_E_isoAng::vE_isoAngle, and x.

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 * > * > * G4ParticleHPThermalScattering::readAnIncoherentFSDATA ( G4String  name)
private

Definition at line 337 of file G4ParticleHPThermalScattering.cc.

References G4ParticleHPManager::GetDataStream(), G4ParticleHPManager::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 * > * > * G4ParticleHPThermalScattering::readAnInelasticFSDATA ( G4String  name)
private

Definition at line 255 of file G4ParticleHPThermalScattering.cc.

References G4ParticleHPManager::GetDataStream(), G4ParticleHPManager::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 >* >* >* >* G4ParticleHPThermalScattering::coherentFSs
private
std::map< std::pair < const G4Material* , const G4Element* > , G4int > G4ParticleHPThermalScattering::dic
private

Definition at line 135 of file G4ParticleHPThermalScattering.hh.

Referenced by buildPhysicsTable(), and getTS_ID().

std::map< G4int , std::map < G4double , std::vector < E_isoAng* >* >* >* G4ParticleHPThermalScattering::incoherentFSs
private
std::map< G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >* G4ParticleHPThermalScattering::inelasticFSs
private
G4ParticleHPThermalScatteringNames G4ParticleHPThermalScattering::names
private
size_t G4ParticleHPThermalScattering::nElement
private
size_t G4ParticleHPThermalScattering::nMaterial
private
G4ParticleHPElastic* G4ParticleHPThermalScattering::theHPElastic
private
G4ParticleHPThermalScatteringData* G4ParticleHPThermalScattering::theXSection
private

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