38 fExpInteractionLaw(
"expLawFor"+name)
46 return fExpInteractionLaw.ComputeEffectiveCrossSectionAt( distance ) * fSelectedProcessXSfraction;
51 G4double niProba = fExpInteractionLaw.ComputeNonInteractionProbabilityAt( distance );
56 ed <<
" Negative probability for `" <<
GetName() <<
"' p = " << niProba <<
" distance = " << distance <<
" !!! " <<
G4endl;
57 G4Exception(
" G4ILawCommonTruncatedExp::ComputeNonInteractionProbabilityAt(...)",
64G4double G4ILawCommonTruncatedExp::SampleInteractionLength()
67 return fInteractionDistance;
70G4double G4ILawCommonTruncatedExp::UpdateInteractionLengthForStep(
G4double truePathLength)
72 fInteractionDistance = fExpInteractionLaw.UpdateInteractionLengthForStep(truePathLength);
73 return fInteractionDistance;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
virtual ~G4ILawCommonTruncatedExp()
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const
G4ILawCommonTruncatedExp(const G4String &name="expSharedForceInteractionLaw")
virtual G4double SampleInteractionLength()
const G4String & GetName() const
G4VBiasingInteractionLaw(const G4String &name)