35 fCumulatedWeightChange ( -1.0 ),
36 fInitialTrackWeight ( -1.0 ),
37 fOperationComplete ( true )
44 if ( fForceFreeFlightInteractionLaw )
delete fForceFreeFlightInteractionLaw;
49 fOperationComplete =
false;
50 proposeForceCondition =
Forced;
51 return fForceFreeFlightInteractionLaw;
67 forceFinalState =
true;
71 if ( fInitialTrackWeight <=
DBL_MIN )
74 ed <<
" Initial track weight is null ! " <<
G4endl;
75 G4Exception(
" G4BOptnForceFreeFlight::ApplyFinalStateBiasing(...)",
80 if ( fCumulatedWeightChange <=
DBL_MIN )
83 ed <<
" Cumulated weight is null ! " <<
G4endl;
84 G4Exception(
" G4BOptnForceFreeFlight::ApplyFinalStateBiasing(...)",
92 else proposedWeight *= fCumulatedWeightChange;
94 fOperationComplete =
true;
97 return &fParticleChange;
103 fCumulatedWeightChange *= weightChange;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
virtual const G4VBiasingInteractionLaw * ProvideOccurenceBiasingInteractionLaw(const G4BiasingProcessInterface *, G4ForceCondition &)
G4BOptnForceFreeFlight(G4String name)
virtual void AlongMoveBy(const G4BiasingProcessInterface *, const G4Step *, G4double)
virtual ~G4BOptnForceFreeFlight()
virtual G4VParticleChange * ApplyFinalStateBiasing(const G4BiasingProcessInterface *, const G4Track *, const G4Step *, G4bool &)
G4bool GetIsFirstPostStepDoItInterface(G4bool physOnly=true) const
void Initialize(const G4Track &) override
G4StepStatus GetStepStatus() const
G4StepPoint * GetPostStepPoint() const
G4double GetWeight() const
void ProposeWeight(G4double finalWeight)