50 if ( fParticleToBias == 0 )
53 ed <<
"Particle `" << particleName <<
"' not found !" <<
G4endl;
54 G4Exception(
"G4ChannelingOptrChangeCrossSection(...)",
66 for ( std::map< const G4BiasingProcessInterface*, G4BOptnChangeCrossSection* >::iterator
67 it = fChangeCrossSectionOperations.begin() ;
68 it != fChangeCrossSectionOperations.end() ;
69 it++ )
delete (*it).second;
84 G4String operationName =
"channelingChangeXS-" + processName;
85 fChangeCrossSectionOperations[wrapperProcess] =
172G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(
const G4Track* track,
180 if ( analogInteractionLength >
DBL_MAX/10. )
return 0;
182 G4double analogXS = 1./analogInteractionLength;
184 if(fChannelingID==-1){
189 if(trackdata==
nullptr)
return 0;
193 if(search != fProcessToDensity.end()) {
194 switch (search->second) {
199 XStransformation = trackdata->
GetNuD();
202 XStransformation = trackdata->
GetElD();
222 if ( previousOperation == 0 ){
227 if ( previousOperation != operation ){
229 ed <<
" Logic problem in operation handling !" <<
G4endl;
230 G4Exception(
"G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(...)",
253void 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()
static G4int GetIndex(const G4String &)
G4ParticleDefinition * GetDefinition() const
G4VAuxiliaryTrackInformation * GetAuxiliaryTrackInformation(G4int idx) const
G4ProcessType GetProcessType() const
G4double GetCurrentInteractionLength() const
G4int GetProcessSubType() const
const G4String & GetProcessName() const