48 #ifndef G4HadronicProcess_h
49 #define G4HadronicProcess_h 1
90 if(x < 0.0) { x = 0.0; }
146 aMaterial,anElement);
235 std::vector<G4VLeadingParticleBiasing *>
theBias;
G4bool levelsSetByProcess
void AddDataSet(G4VCrossSectionDataSet *)
std::ostringstream G4ExceptionDescription
void BiasCrossSectionByFactor(G4double aScale)
G4HadronicInteraction * GetHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement) const
bool G4HadronicProcess_debug_flag
G4HadronicInteraction * theInteraction
G4EnergyRangeManager theEnergyRangeManager
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
G4double GetMicroscopicCrossSection(const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=0)
void CheckEnergyMomentumConservation(const G4Track &, const G4Nucleus &)
const G4Isotope * GetTargetIsotope()
std::vector< G4HadronicInteraction * > & GetHadronicInteractionList()
std::pair< G4double, G4double > epCheckLevels
void GetEnergyMomentumCheckEnvvars()
void RegisterMe(G4HadronicInteraction *a)
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4CrossSectionDataStore * theCrossSectionDataStore
void DumpState(const G4Track &, const G4String &, G4ExceptionDescription &)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void FillResult(G4HadFinalState *aR, const G4Track &aT)
G4ParticleChange * theTotalResult
G4HadronicProcess & operator=(const G4HadronicProcess &right)
const G4Nucleus * GetTargetNucleus() const
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *)
G4double XBiasSurvivalProbability()
G4CrossSectionDataStore * GetCrossSectionDataStore()
G4double theInitialNumberOfInteractionLength
G4double GetCrossSection(const G4DynamicParticle *, const G4Material *)
virtual void ProcessDescription(std::ostream &outFile) const
void SetEnergyMomentumCheckLevels(G4double relativeLevel, G4double absoluteLevel)
void SetEpReportLevel(G4int level)
void DumpPhysicsTable(const G4ParticleDefinition &)
G4double GetElementCrossSection(const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=0)
static const G4double factor
G4HadronicInteraction * GetHadronicInteraction() const
G4double XBiasSecondaryWeight()
G4Nucleus * GetTargetNucleusPointer()
const G4Isotope * GetIsotope()
virtual ~G4HadronicProcess()
void DumpPhysicsTable(const G4ParticleDefinition &p)
void MultiplyCrossSectionBy(G4double factor)
std::vector< G4VLeadingParticleBiasing * > theBias
G4HadronicInteraction * ChooseHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, G4Material *aMaterial, G4Element *anElement)
G4HadronicProcess(const G4String &processName="Hadronic", G4ProcessType procType=fHadronic)
virtual G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
std::pair< G4double, G4double > GetEnergyMomentumCheckLevels() const
G4double GetLastCrossSection()
G4double theLastCrossSection
G4HadFinalState * CheckResult(const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result)
std::vector< G4HadronicInteraction * > & GetHadronicInteractionList()