1 #ifndef SimG4Core_CustomPhysics_HadronicProcessHelper_H
2 #define SimG4Core_CustomPhysics_HadronicProcessHelper_H
5 #include "G4ParticleDefinition.hh"
6 #include "G4DynamicParticle.hh"
7 #include "G4Element.hh"
14 class G4ParticleTable;
40 const G4Material* material,
41 G4ParticleDefinition*&
target);
50 const G4DynamicParticle* aDynamicParticle,
51 G4ParticleDefinition*
target);
54 const G4DynamicParticle* aDynamicParticle,
55 G4ParticleDefinition*
target);
58 const G4DynamicParticle* aDynamicParticle,
59 G4ParticleDefinition*
target);
61 void m_readAndParse(
const G4String&
str, std::vector<G4String>& tokens,
const G4String& delimiters =
" ");
ReactionProduct finalState(const G4Track &track, G4ParticleDefinition *&target)
void m_readAndParse(const G4String &str, std::vector< G4String > &tokens, const G4String &delimiters=" ")
std::vector< ReactionProduct > ReactionProductList
ReactionMap m_neutronReactionMap
std::map< G4int, ReactionProductList > ReactionMap
HadronicProcessHelper(const std::string &fileName)
G4bool m_reactionIsPossible(const ReactionProduct &aReaction, const G4DynamicParticle *aDynamicParticle, G4ParticleDefinition *target)
G4double m_phaseSpace(const ReactionProduct &aReaction, const G4DynamicParticle *aDynamicParticle, G4ParticleDefinition *target)
std::vector< G4int > ReactionProduct
G4double m_reactionProductMass(const ReactionProduct &aReaction, const G4DynamicParticle *aDynamicParticle, G4ParticleDefinition *target)
G4double inclusiveCrossSection(const G4DynamicParticle *particle, const G4Element *element)
HadronicProcessHelper * instance()
HadronicProcessHelper & operator=(const HadronicProcessHelper &)
G4ParticleDefinition * m_neutron
ReactionMap m_protonReactionMap
G4ParticleTable * m_particleTable
G4ParticleDefinition * m_proton
std::map< const G4ParticleDefinition *, G4bool > m_knownParticles
G4bool applicabilityTester(const G4ParticleDefinition &particle)
std::vector< G4int > ReactionProduct