34 fMaximumDistance(0.0),
36 fCrossSectionDefined(false),
45 if (crossSection < 0.0)
47 G4Exception(
"G4ILawTruncatedExp::SetForceCrossSection(..)",
50 "Cross-section value passed is negative. It is set to zero !");
63 G4Exception(
"G4ILawTruncatedExp::ComputeEffectiveCrossSection(..)",
66 "Cross-section value requested, but has not been defined yet. Assumes 0 !");
78 G4Exception(
"G4ILawTruncatedExp::ComputeNonInteractionProbability(..)",
81 "Non interaction probability value requested, but cross section has not been defined yet. Assumes it to be 0 !");
87 return 1.0 - num/denum;
97 "Trying to sample while cross-section is not defined, assuming 0 !");
115 G4Exception(
"G4ILawTruncatedExp::UpdateInteractionLengthForStep(...)",
118 "Trying to sample while cross-section is not defined, assuming 0 !");
virtual ~G4ILawTruncatedExp()
std::ostringstream G4ExceptionDescription
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const
virtual G4double SampleInteractionLength()
G4ILawTruncatedExp(G4String name="expForceInteractionLaw")
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double fMaximumDistance
G4double fCrossSectionDefined
virtual G4double UpdateInteractionLengthForStep(G4double truePathLength)
const G4String & GetName() const
G4double fInteractionDistance
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const
void SetForceCrossSection(G4double xs)