45 if ( fParticleToBias == 0 )
48 ed <<
"Particle `" << particleName <<
"' not found !" <<
G4endl;
58 for ( std::map< const G4BiasingProcessInterface*, G4BOptnChangeCrossSection* >::iterator
59 it = fChangeCrossSectionOperations.begin() ;
60 it != fChangeCrossSectionOperations.end() ;
61 it++ )
delete (*it).second;
65 GB01BOptrChangeCrossSection::ProposeOccurenceBiasingOperation(
const G4Track* track,
80 if ( ( fFirstProcess == 0 ) &&
82 if ( fLastProcess == 0 )
84 G4String operationName =
"XSchange-" +
86 fChangeCrossSectionOperations[callingProcess] =
90 fLastProcess = callingProcess;
106 if ( analogInteractionLength >
DBL_MAX/10. )
return 0;
109 G4double analogXS = 1./analogInteractionLength;
132 if ( previousOperation == 0 )
139 if ( previousOperation != operation )
143 ed <<
" Logic problem in operation handling !" <<
G4endl;
144 G4Exception(
"GB01BOptrChangeCrossSection::ProposeOccurenceBiasingOperation(...)",
170 void GB01BOptrChangeCrossSection::
G4ParticleDefinition * GetDefinition() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
std::ostringstream G4ExceptionDescription
G4double GetPreviousStepSize() const
virtual ~GB01BOptrChangeCrossSection()
GB01BOptrChangeCrossSection(G4String particleToBias, G4String name="ChangeXS")
void SetBiasedCrossSection(G4double xst)
G4VProcess * GetWrappedProcess() const
G4bool GetIsFirstPostStepGPILInterface(G4bool physOnly=true) const
void SetInteractionOccured()
G4bool GetIsLastPostStepGPILInterface(G4bool physOnly=true) const
G4double GetCurrentInteractionLength() const
const G4String & GetProcessName() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4ParticleTable * GetParticleTable()
void UpdateForStep(G4double stepLength)
G4bool GetInteractionOccured() const
G4VBiasingOperation * GetPreviousOccurenceBiasingOperation() const