122 G4double analogInteractionLength =
123 callingProcess->GetWrappedProcess()->GetCurrentInteractionLength();
124 if ( analogInteractionLength > DBL_MAX/10. )
return 0;
127 G4double analogXS = 1./analogInteractionLength;
132 G4double XStransformation = 2.0 ;
137 G4VBiasingOperation* previousOperation = callingProcess->GetPreviousOccurenceBiasingOperation();
150 if ( previousOperation == 0 )
152 operation->SetBiasedCrossSection( XStransformation * analogXS );
157 if ( previousOperation != operation )
160 G4ExceptionDescription ed;
161 ed <<
" Logic problem in operation handling !" << G4endl;
162 G4Exception(
"GB01BOptrChangeCrossSection::ProposeOccurenceBiasingOperation(...)",
168 if ( operation->GetInteractionOccured() )
170 operation->SetBiasedCrossSection( XStransformation * analogXS );
177 operation->UpdateForStep( callingProcess->GetPreviousStepSize() );
179 operation->SetBiasedCrossSection( XStransformation * analogXS );
182 operation->UpdateForStep( 0.0 );
virtual void OperationApplied(const G4BiasingProcessInterface *callingProcess, G4BiasingAppliedCase biasingCase, G4VBiasingOperation *occurenceOperationApplied, G4double weightForOccurenceInteraction, G4VBiasingOperation *finalStateOperationApplied, const G4VParticleChange *particleChangeProduced)