51 if ( fParticleToBias == 0 )
54 ed <<
"Particle `" << particleName <<
"' not found !" <<
G4endl;
55 G4Exception(
"G4ChannelingOptrChangeCrossSection(...)",
67 for ( std::map< const G4BiasingProcessInterface*, G4BOptnChangeCrossSection* >::iterator
68 it = fChangeCrossSectionOperations.begin() ;
69 it != fChangeCrossSectionOperations.end() ;
70 it++ )
delete (*it).second;
85 G4String operationName =
"channelingChangeXS-" + processName;
86 fChangeCrossSectionOperations[wrapperProcess] =
173G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(
const G4Track* track,
181 if ( analogInteractionLength >
DBL_MAX/10. )
return 0;
183 G4double analogXS = 1./analogInteractionLength;
187 if(trackdata==
nullptr)
return 0;
191 if(search != fProcessToDensity.end()) {
192 switch (search->second) {
197 XStransformation = trackdata->
GetNuD();
200 XStransformation = trackdata->
GetElD();
220 if ( previousOperation == 0 ){
225 if ( previousOperation != operation ){
227 ed <<
" Logic problem in operation handling !" <<
G4endl;
228 G4Exception(
"G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(...)",
251void G4ChannelingOptrChangeCrossSection::
@ fDensityRatioNotDefined
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
void UpdateForStep(G4double stepLength)
G4bool GetInteractionOccured() const
void SetBiasedCrossSection(G4double xst, bool updateInteractionLength=false)
void SetInteractionOccured()
G4double GetPreviousStepSize() const
const G4BiasingProcessSharedData * GetSharedData() const
G4VBiasingOperation * GetPreviousOccurenceBiasingOperation() const
G4VProcess * GetWrappedProcess() const
const std::vector< const G4BiasingProcessInterface * > & GetPhysicsBiasingProcessInterfaces() const
virtual ~G4ChannelingOptrChangeCrossSection()
G4ChannelingOptrChangeCrossSection(G4String particleToBias, G4String name="ChannelingChangeXS")
G4ProcessManager * GetProcessManager() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
G4VAuxiliaryTrackInformation * GetAuxiliaryTrackInformation(G4int id) const
G4ParticleDefinition * GetDefinition() const
G4ProcessType GetProcessType() const
G4double GetCurrentInteractionLength() const
G4int GetProcessSubType() const
const G4String & GetProcessName() const