37 fProcessToApply(nullptr),
38 fInteractionOccured(false),
39 fMaximumDistance(-1.0)
59 proposeForceCondition =
Forced;
64 proposeForceCondition =
Forced;
83 forceFinalState =
true;
89 forceFinalState =
true;
97 if ( processGPIL <= step->GetStepLength() )
103 forceFinalState =
false;
109 forceFinalState =
true;
135 GetNavigatorForTracking()->
136 GetGlobalToLocalTransform()).TransformPoint(track->
GetPosition());
138 GetNavigatorForTracking()->
171 for ( std::map< const G4VProcess*, G4double>::const_iterator it =
fCrossSections.begin();
175 sigmaSelect += (*it).second;
176 if ( sigmaRand <= sigmaSelect )
void AddCrossSection(const G4VProcess *, G4double)
std::map< const G4VProcess *, G4double > fCrossSections
G4double GetPostStepGPIL() const
G4LogicalVolume * GetLogicalVolume() const
void SetSelectedProcessXSfraction(G4double fXS)
G4ParticleChangeForNothing fDummyParticleChange
virtual ~G4BOptnForceCommonTruncatedExp()
const G4VProcess * fProcessToApply
G4double fMaximumDistance
virtual G4VParticleChange * ApplyFinalStateBiasing(const G4BiasingProcessInterface *, const G4Track *, const G4Step *, G4bool &)
G4bool fInteractionOccured
G4ThreeVector fInitialMomentum
G4BOptnForceCommonTruncatedExp(G4String name)
G4double fTotalCrossSection
G4double GetMaximumDistance() const
G4ThreeVector GetMomentum() const
virtual void Initialize(const G4Track &track)
G4double GetStepLength() const
virtual G4GPILSelection ProposeGPILSelection(const G4GPILSelection processSelection)
G4VProcess * GetWrappedProcess() const
const G4ThreeVector & GetPosition() const
G4ILawCommonTruncatedExp * fCommonTruncatedExpLaw
void ChooseProcessToApply()
G4double GetAlongStepGPIL() const
static G4TransportationManager * GetTransportationManager()
virtual const G4VBiasingInteractionLaw * ProvideOccurenceBiasingInteractionLaw(const G4BiasingProcessInterface *, G4ForceCondition &)
void SetForceCrossSection(G4double xs)
void SetMaximumDistance(G4double d)
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
G4VSolid * GetSolid() const
void Initialize(const G4Track *)
void UpdateForStep(const G4Step *)
const G4ThreeVector & GetMomentumDirection() const
G4ILawForceFreeFlight * fForceFreeFlightLaw
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0
G4VPhysicalVolume * GetVolume() const
G4double UpdateForStep(G4double truePathLength)