55 #ifndef G4BiasingProcessInterface_h 56 #define G4BiasingProcessInterface_h 68 class G4ParticleChange;
109 {
return fSharedData-> fPublicBiasingProcessInterfaces;}
111 {
return fSharedData-> fPublicPhysicsBiasingProcessInterfaces;}
170 virtual G4VParticleChange*
PostStepDoIt(
const G4Track& track,
177 G4GPILSelection* selection);
178 virtual G4VParticleChange*
AlongStepDoIt(
const G4Track& track,
183 virtual G4VParticleChange*
AtRestDoIt(
const G4Track&,
255 return 4*firstLast + 2*GPILDoIt + physAll;
262 G4ForceCondition* condition );
G4double condition(const G4ErrorSymMatrix &m)
virtual void BuildWorkerPhysicsTable(const G4ParticleDefinition &pd)
G4VBiasingOperation * fPreviousFinalStateBiasingOperation
G4bool fResetWrappedProcessInteractionLength
virtual void PreparePhysicsTable(const G4ParticleDefinition &pd)
virtual G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
G4VBiasingOperation * fFinalStateBiasingOperation
static G4Cache< G4bool > fCommonEnd
G4VBiasingOperation * fNonPhysicsBiasingOperation
G4double fBiasingAlongStepGPIL
virtual G4bool StorePhysicsTable(const G4ParticleDefinition *pd, const G4String &s, G4bool f)
G4GPILSelection fWrappedProcessGPILSelection
G4double GetPreviousStepSize() const
static G4Cache< G4bool > fResetInteractionLaws
G4ParticleChange * fParticleChange
G4bool GetWrappedProcessIsAtRest() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &pd)
G4double fBiasingPostStepGPIL
virtual void PrepareWorkerPhysicsTable(const G4ParticleDefinition &pd)
static G4Cache< G4bool > fDoCommonConfigure
G4VBiasingOperation * GetPreviousOccurenceBiasingOperation() const
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &step)
G4ParticleChangeForNothing * fDummyParticleChange
void InvokeWrappedProcessPostStepGPIL(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
void ResetForUnbiasedTracking()
G4VBiasingOperation * GetCurrentOccurenceBiasingOperation() const
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &step)
G4double fWrappedProcessPostStepGPIL
const G4bool fIsPhysicsBasedBiasing
G4double fPreviousStepSize
virtual void SetProcessManager(const G4ProcessManager *)
G4double GetCurrentMinimumStep() const
G4ForceCondition fBiasingForceCondition
G4VBiasingOperation * fPreviousOccurenceBiasingOperation
const G4ProcessManager * fProcessManager
G4VBiasingOperation * GetCurrentNonPhysicsBiasingOperation() const
const G4VBiasingInteractionLaw * fPreviousBiasingInteractionLaw
G4bool IsLastPostStepGPILInterface(G4bool physOnly=true) const
void SetUpFirstLastFlags()
G4VBiasingOperator * GetCurrentBiasingOperator() const
const std::vector< const G4BiasingProcessInterface *> & GetBiasingProcessInterfaces() const
const G4BiasingProcessSharedData * GetSharedData() const
static G4Cache< G4bool > fCommonStart
const std::vector< const G4BiasingProcessInterface *> & GetPhysicsBiasingProcessInterfaces() const
const G4VBiasingInteractionLaw * fBiasingInteractionLaw
G4bool IsFirstPostStepDoItInterface(G4bool physOnly=true) const
G4VBiasingOperation * GetPreviousNonPhysicsBiasingOperation() const
const G4bool fWrappedProcessIsPost
std::vector< const G4BiasingProcessInterface *> fPublicNonPhysicsBiasingProcessInterfaces
G4bool GetWrappedProcessIsAlong() const
G4double GetAlongStepGPIL() const
G4VBiasingOperation * fPreviousNonPhysicsBiasingOperation
G4VProcess * fWrappedProcess
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4ForceCondition fWrappedProcessForceCondition
G4bool GetIsFirstPostStepDoItInterface(G4bool physOnly=true) const
const G4bool fWrappedProcessIsAlong
virtual G4bool IsApplicable(const G4ParticleDefinition &pd)
virtual const G4ProcessManager * GetProcessManager()
static G4MapCache< const G4ProcessManager *, G4BiasingProcessSharedData *> fSharedDataMap
G4int IdxFirstLast(G4int firstLast, G4int GPILDoIt, G4int physAll) const
G4VBiasingOperation * GetPreviousFinalStateBiasingOperation() const
G4bool GetIsLastPostStepDoItInterface(G4bool physOnly=true) const
G4VBiasingOperation * fOccurenceBiasingOperation
G4ParticleChangeForOccurenceBiasing * fOccurenceBiasingParticleChange
G4bool fFirstLastFlags[8]
virtual void SetMasterProcess(G4VProcess *masterP)
G4BiasingProcessInterface(G4String name="biasWrapper(0)")
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *pd, const G4String &s, G4bool f)
G4double GetProposedSafety() const
G4VProcess * GetWrappedProcess() const
G4double fWrappedProcessInteractionLength
void SetProposedSafety(G4double sft)
G4bool GetIsFirstPostStepGPILInterface(G4bool physOnly=true) const
G4bool IsFirstPostStepGPILInterface(G4bool physOnly=true) const
G4InteractionLawPhysical * fPhysicalInteractionLaw
virtual void ResetNumberOfInteractionLengthLeft()
G4BiasingProcessSharedData * fSharedData
const std::vector< const G4BiasingProcessInterface *> & GetNonPhysicsBiasingProcessInterfaces() const
G4bool GetWrappedProcessIsPost() const
G4double fWrappedProcessAlongStepGPIL
const G4bool fWrappedProcessIsAtRest
G4double fCurrentMinimumStep
G4VBiasingOperation * GetCurrentFinalStateBiasingOperation() const
void ReorderBiasingVectorAsGPIL()
G4VBiasingOperator * fPreviousBiasingOperator
G4VBiasingOperator * GetPreviousBiasingOperator() const
G4GPILSelection fBiasingGPILSelection
void StartTracking(G4Track *track)
G4bool IsLastPostStepDoItInterface(G4bool physOnly=true) const
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)
~G4BiasingProcessInterface()
G4bool GetIsLastPostStepGPILInterface(G4bool physOnly=true) const
G4double GetPostStepGPIL() const