ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticleHPThermalScattering Class Reference

#include <geant4/tree/geant4-10.6-release/source/processes/hadronic/models/particle_hp/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 &aTrack, G4Nucleus &targetNucleus)
 
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)
 
G4int GetVerboseLevel () const
 
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
 
virtual std::pair< G4double,
G4double
GetEnergyMomentumCheckLevels () const
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
virtual void InitialiseModel ()
 

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.

View newest version in sPHENIX GitHub at line 77 of file G4ParticleHPThermalScattering.hh

Constructor & Destructor Documentation

G4ParticleHPThermalScattering::G4ParticleHPThermalScattering ( )

Definition at line 56 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub 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.

View newest version in sPHENIX GitHub at line 76 of file G4ParticleHPThermalScattering.cc

References theHPElastic.

Member Function Documentation

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

Definition at line 1168 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 1168 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.

View newest version in sPHENIX GitHub 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 1008 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 1008 of file G4ParticleHPThermalScattering.cc

References G4ParticleHPThermalScatteringData::BuildPhysicsTable(), clearCurrentFSData(), coherentFSs, dic, 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(), it, material(), 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 1176 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 1176 of file G4ParticleHPThermalScattering.cc

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

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.

View newest version in sPHENIX GitHub at line 136 of file G4ParticleHPThermalScattering.cc

References coherentFSs, incoherentFSs, inelasticFSs, and it.

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 809 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 809 of file G4ParticleHPThermalScattering.cc

References angle, check_E_isoAng(), energy, E_isoAng::energy, FatalException, find_LH(), G4Exception(), get_linear_interpolated(), E_isoAng::isoAngle, JustWarning, 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 928 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 928 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 753 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 753 of file G4ParticleHPThermalScattering.cc

References H, it, and 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 790 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 790 of file G4ParticleHPThermalScattering.cc

References G4cout, G4endl, and y.

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 882 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 882 of file G4ParticleHPThermalScattering.cc

References dE, eV, get_linear_interpolated(), 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 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 1162 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 1162 of file G4ParticleHPThermalScattering.cc

References DBL_MAX, and perCent.

G4double G4ParticleHPThermalScattering::getMu ( E_isoAng anEPM)
private

Definition at line 715 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 715 of file G4ParticleHPThermalScattering.cc

References G4UniformRand, in, int(), ratio, x, and xx.

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 1154 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 1154 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 1190 of file G4ParticleHPThermalScattering.cc.

View newest version in sPHENIX GitHub at line 1190 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.

View newest version in sPHENIX GitHub at line 209 of file G4ParticleHPThermalScattering.cc

References G4ParticleHPManager::GetDataStream(), G4ParticleHPManager::GetInstance(), in, 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.

View newest version in sPHENIX GitHub at line 365 of file G4ParticleHPThermalScattering.cc

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

Referenced by readAnIncoherentFSDATA().

+ 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.

View newest version in sPHENIX GitHub at line 285 of file G4ParticleHPThermalScattering.cc

References dE, energy, E_isoAng::energy, E_P_E_isoAng::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.

View newest version in sPHENIX GitHub at line 337 of file G4ParticleHPThermalScattering.cc

References G4ParticleHPManager::GetDataStream(), G4ParticleHPManager::GetInstance(), in, 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.

View newest version in sPHENIX GitHub at line 255 of file G4ParticleHPThermalScattering.cc

References G4ParticleHPManager::GetDataStream(), G4ParticleHPManager::GetInstance(), in, 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

Definition at line 105 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 105 of file G4ParticleHPThermalScattering.hh

Referenced by ApplyYourself(), buildPhysicsTable(), and clearCurrentFSData().

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

Definition at line 135 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub 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

Definition at line 110 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 110 of file G4ParticleHPThermalScattering.hh

Referenced by ApplyYourself(), buildPhysicsTable(), and clearCurrentFSData().

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

Definition at line 116 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 116 of file G4ParticleHPThermalScattering.hh

Referenced by ApplyYourself(), buildPhysicsTable(), and clearCurrentFSData().

G4ParticleHPThermalScatteringNames G4ParticleHPThermalScattering::names
private

Definition at line 101 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 101 of file G4ParticleHPThermalScattering.hh

Referenced by AddUserThermalScatteringFile(), and buildPhysicsTable().

size_t G4ParticleHPThermalScattering::nElement
private

Definition at line 145 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 145 of file G4ParticleHPThermalScattering.hh

Referenced by buildPhysicsTable(), and G4ParticleHPThermalScattering().

size_t G4ParticleHPThermalScattering::nMaterial
private

Definition at line 144 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 144 of file G4ParticleHPThermalScattering.hh

Referenced by buildPhysicsTable(), and G4ParticleHPThermalScattering().

G4ParticleHPElastic* G4ParticleHPThermalScattering::theHPElastic
private

Definition at line 122 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 122 of file G4ParticleHPThermalScattering.hh

Referenced by ApplyYourself(), BuildPhysicsTable(), G4ParticleHPThermalScattering(), and ~G4ParticleHPThermalScattering().

G4ParticleHPThermalScatteringData* G4ParticleHPThermalScattering::theXSection
private

Definition at line 120 of file G4ParticleHPThermalScattering.hh.

View newest version in sPHENIX GitHub at line 120 of file G4ParticleHPThermalScattering.hh

Referenced by AddUserThermalScatteringFile(), ApplyYourself(), buildPhysicsTable(), and G4ParticleHPThermalScattering().


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