50 if ( fParticleToBias == 0 )
53 ed <<
"Particle `" << particleName <<
"' not found !" <<
G4endl;
65 for ( std::map< const G4BiasingProcessInterface*, G4BOptnChangeCrossSection* >::iterator
66 it = fChangeCrossSectionOperations.begin() ;
67 it != fChangeCrossSectionOperations.end() ;
68 it++ )
delete (*it).second;
92 G4String operationName =
"XSchange-" +
94 fChangeCrossSectionOperations[wrapperProcess] =
105 GB01BOptrChangeCrossSection::ProposeOccurenceBiasingOperation(
const G4Track* track,
124 if ( analogInteractionLength >
DBL_MAX/10. )
return 0;
127 G4double analogXS = 1./analogInteractionLength;
150 if ( previousOperation == 0 )
157 if ( previousOperation != operation )
161 ed <<
" Logic problem in operation handling !" <<
G4endl;
162 G4Exception(
"GB01BOptrChangeCrossSection::ProposeOccurenceBiasingOperation(...)",
192 void GB01BOptrChangeCrossSection::
G4ParticleDefinition * GetDefinition() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
std::ostringstream G4ExceptionDescription
G4double GetPreviousStepSize() const
virtual ~GB01BOptrChangeCrossSection()
const std::vector< const G4BiasingProcessInterface * > & GetPhysicsBiasingProcessInterfaces() const
GB01BOptrChangeCrossSection(G4String particleToBias, G4String name="ChangeXS")
void SetBiasedCrossSection(G4double xst)
G4VProcess * GetWrappedProcess() const
void SetInteractionOccured()
G4double GetCurrentInteractionLength() const
const G4String & GetProcessName() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4ParticleTable * GetParticleTable()
G4ProcessManager * GetProcessManager() const
Definition of the GB01BOptrChangeCrossSection class.
void UpdateForStep(G4double stepLength)
G4bool GetInteractionOccured() const
G4VBiasingOperation * GetPreviousOccurenceBiasingOperation() const
const G4BiasingProcessSharedData * GetSharedData() const