36 fExpInteractionLaw(
"expLawFor"+name)
55 return std::exp( std::log(niProba) / fNumberOfSharing );
60 ed <<
" Negative probability for `" <<
GetName() <<
"' p = " << niProba <<
" distance = " << distance <<
" !!! " <<
G4endl;
61 G4Exception(
" G4ILawCommonTruncatedExp::ComputeNonInteractionProbabilityAt(...)",
69 G4double G4ILawCommonTruncatedExp::SampleInteractionLength()
72 fFirstSamplingCall =
false;
76 G4double G4ILawCommonTruncatedExp::UpdateInteractionLengthForStep(
G4double truePathLength)
78 if ( fFirstUpdateCall )
80 fFirstUpdateCall =
false;
86 fFirstSamplingCall =
true;
87 fFirstUpdateCall =
true;
virtual ~G4ILawCommonTruncatedExp()
std::ostringstream G4ExceptionDescription
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const
G4ILawCommonTruncatedExp(G4String name="expSharedForceInteractionLaw")
virtual G4double SampleInteractionLength()
G4double GetTriggeredProcessXSfraction()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const
virtual G4double UpdateInteractionLengthForStep(G4double truePathLength)
const G4String & GetName() const
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const