48#ifndef G4HadronicProcess_h
49#define G4HadronicProcess_h 1
91 if(x < 0.0) { x = 0.0; }
118 { theCrossSectionDataStore->
AddDataSet(aDataSet);}
122 {
return &theEnergyRangeManager; }
130 {
return &targetNucleus; }
145 aMaterial,anElement);
150 {
return &targetNucleus; }
161 { epCheckLevels.first = relativeLevel;
162 epCheckLevels.second = absoluteLevel;
163 levelsSetByProcess =
true;
167 {
return epCheckLevels; }
171 {
return theCrossSectionDataStore;}
174 { aScaleFactor = factor; }
182 {
return theEnergyRangeManager; }
186 { theEnergyRangeManager = value; }
190 {
return theInteraction; }
194 {
return theLastCrossSection; }
208 G4double XBiasSurvivalProbability();
216 void GetEnergyMomentumCheckEnvvars();
236 bool G4HadronicProcess_debug_flag;
239 std::pair<G4double, G4double> epCheckLevels;
240 G4bool levelsSetByProcess;
242 std::vector<G4VLeadingParticleBiasing *> theBias;
244 G4double theInitialNumberOfInteractionLength;
void AddDataSet(G4VCrossSectionDataSet *)
void DumpPhysicsTable(const G4ParticleDefinition &)
G4double GetCrossSection(const G4DynamicParticle *, const G4Material *)
G4HadronicInteraction * GetHadronicInteraction(const G4double kineticEnergy, const G4Material *aMaterial, const G4Element *anElement) const
void FillResult(G4HadFinalState *aR, const G4Track &aT)
const G4Nucleus * GetTargetNucleus() const
void SetEnergyRangeManager(const G4EnergyRangeManager &value)
void BiasCrossSectionByFactor(G4double aScale)
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *)
G4Nucleus * GetTargetNucleusPointer()
void SetEpReportLevel(G4int level)
G4HadronicInteraction * GetHadronicInteraction() const
G4ParticleChange * theTotalResult
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
virtual G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
G4EnergyRangeManager * GetManagerPointer()
virtual ~G4HadronicProcess()
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
std::pair< G4double, G4double > GetEnergyMomentumCheckLevels() const
G4double GetLastCrossSection()
void CheckEnergyMomentumConservation(const G4Track &, const G4Nucleus &)
G4CrossSectionDataStore * GetCrossSectionDataStore()
G4HadronicInteraction * ChooseHadronicInteraction(G4double kineticEnergy, G4Material *aMaterial, G4Element *anElement)
G4double GetElementCrossSection(const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=0)
G4double GetMicroscopicCrossSection(const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=0)
void DumpState(const G4Track &, const G4String &, G4ExceptionDescription &)
void DumpPhysicsTable(const G4ParticleDefinition &p)
void MultiplyCrossSectionBy(G4double factor)
G4HadFinalState * CheckResult(const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result) const
virtual void ProcessDescription(std::ostream &outFile) const
void RegisterMe(G4HadronicInteraction *a)
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
const G4Isotope * GetTargetIsotope()
void SetEnergyMomentumCheckLevels(G4double relativeLevel, G4double absoluteLevel)
const G4EnergyRangeManager & GetEnergyRangeManager() const
const G4Isotope * GetIsotope()
std::ostringstream G4ExceptionDescription