33 fMaximumDistance(0.0),
35 fCrossSectionDefined(false),
44 if (crossSection < 0.0)
46 G4Exception(
"G4ILawTruncatedExp::SetForceCrossSection(..)",
49 "Cross-section value passed is negative. It is set to zero !");
62 G4Exception(
"G4ILawTruncatedExp::ComputeEffectiveCrossSection(..)",
65 "Cross-section value requested, but has not been defined yet. Assumes 0 !");
77 G4Exception(
"G4ILawTruncatedExp::ComputeNonInteractionProbability(..)",
80 "Non interaction probability value requested, but cross section has not been defined yet. Assumes it to be 0 !");
86 return 1.0 - num/denum;
96 "Trying to sample while cross-section is not defined, assuming 0 !");
114 G4Exception(
"G4ILawTruncatedExp::UpdateInteractionLengthForStep(...)",
117 "Trying to sample while cross-section is not defined, assuming 0 !");
virtual G4double SampleInteractionLength()
std::ostringstream G4ExceptionDescription
void SetForceCrossSection(G4double xs)
virtual G4double UpdateInteractionLengthForStep(G4double truePathLength)
G4double fCrossSectionDefined
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const
const G4String & GetName() const
G4double fInteractionDistance
G4ILawTruncatedExp(G4String name="expForceInteractionLaw")
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
virtual ~G4ILawTruncatedExp()
G4double fMaximumDistance