63 fWeightWindowAlgorithm(aWeightWindowAlgorithm),
64 fWeightWindowStore(aWWStore),
66 fPlaceOfAction(placeOfAction),
67 fGhostWorldName(
"NoParallelWorld"),fGhostWorld(0),
68 fGhostNavigator(0), fNavigatorID(-1), fFieldTrack(
'0'),
69 fParaflag(), fEndTrack(
'0'), feLimited(
kDoNot)
81 G4Exception(
"G4WeightWindowProcess::G4WeightWindowProcess()",
83 "Failed allocation of G4ParticleChange !");
159 G4Exception(
"G4WeightWindowProcess::StartTracking",
161 "G4WeightWindowProcess is used for tracking without having a parallel world assigned");
311 if (previousStepSize > 0.)
320 if (currentMinimumStep <= fGhostSafety && currentMinimumStep > 0.)
323 returnedStep = currentMinimumStep;
355 returnedStep *= (1.0 + 1.0e-9);
G4double GetKineticEnergy() const
void StartTracking(G4Track *)
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)
const G4VTouchable * GetTouchable() const
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
void SetStepLength(G4double value)
G4StepPoint * fGhostPreStepPoint
G4VPhysicalVolume * fGhostWorld
G4StepPoint * GetPreStepPoint() const
G4SamplingPostStepAction * fPostStepAction
virtual G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
G4WeightWindowProcess(const G4VWeightWindowAlgorithm &aWeightWindowAlgorithm, const G4VWeightWindowStore &aWWStore, const G4VTrackTerminator *TrackTerminator, G4PlaceOfAction placeOfAction, const G4String &aName="WeightWindowProcess", G4bool para=false)
void SetTotalEnergyDeposit(G4double value)
const G4VWeightWindowAlgorithm & fWeightWindowAlgorithm
virtual G4double GetLowerWeight(const G4GeometryCell &gCell, G4double partEnergy) const =0
G4VPhysicalVolume * GetPhysicalVolume() const
G4VPhysicalVolume * GetParallelWorld(const G4String &worldName)
G4int GetCurrentStepNumber() const
G4double condition(const G4ErrorSymMatrix &m)
virtual ~G4WeightWindowProcess()
const G4TouchableHandle & GetTouchableHandle() const
void SetTrack(G4Track *value)
G4TouchableHandle fNewGhostTouchable
G4double GetWeight() const
virtual void Initialize(const G4Track &)
G4double ComputeStep(const G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, G4int navigatorId, G4int stepNo, G4double &pNewSafety, ELimited &limitedStep, G4FieldTrack &EndState, G4VPhysicalVolume *currentVolume)
void SetParallelWorld(const G4String ¶llelWorldName)
G4StepStatus GetStepStatus() const
G4VParticleChange * pParticleChange
virtual void Initialize(const G4Track &)
virtual G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
G4double GetStepLength() const
G4SteppingControl GetControlFlag() const
G4PathFinder * fPathFinder
G4TouchableHandle CreateTouchableHandle(G4int navId) const
G4Track * GetTrack() const
const G4String & GetProcessName() const
const G4ThreeVector & GetPosition() const
G4double GetTotalEnergyDeposit() const
G4StepPoint * GetPostStepPoint() const
G4TouchableHandle fOldGhostTouchable
G4ParticleChange * fParticleChange
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)
static G4TransportationManager * GetTransportationManager()
G4StepPoint * fGhostPostStepPoint
G4Navigator * GetNavigator(const G4String &worldName)
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
virtual const G4String & GetName() const
virtual G4Nsplit_Weight Calculate(G4double init_w, G4double lowerWeightBound) const =0
virtual G4int GetReplicaNumber(G4int depth=0) const
G4PlaceOfAction fPlaceOfAction
void DoIt(const G4Track &aTrack, G4ParticleChange *aParticleChange, const G4Nsplit_Weight &nw)
void PrepareNewTrack(const G4ThreeVector &position, const G4ThreeVector &direction, G4VPhysicalVolume *massStartVol=0)
G4int ActivateNavigator(G4Navigator *aNavigator)
const G4VWeightWindowStore & fWeightWindowStore
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4GLOB_DLL std::ostream G4cout
void CopyStep(const G4Step &step)
G4Navigator * fGhostNavigator
void SetTouchableHandle(const G4TouchableHandle &apValue)
const G4ThreeVector & GetMomentumDirection() const
static G4PathFinder * GetInstance()
void ProposeTrackStatus(G4TrackStatus status)
virtual void KillTrack() const
void SetControlFlag(G4SteppingControl StepControlFlag)
const G4String & GetName() const
void SetStepStatus(const G4StepStatus aValue)
G4VPhysicalVolume * GetVolume() const
G4TransportationManager * fTransportationManager
static void Update(G4FieldTrack *, const G4Track *)