45 : ext_sourceEMax(0.), start_event(false),
46 did_adj_part_reach_ext_source(false), last_ekin(0.), last_weight(0.),
47 prim_weight(0.), last_part_def(0), theUserAdjointSteppingAction(0),
48 theUserFwdSteppingAction(0)
61 G4Track* aTrack =aStep->GetTrack();
66 aTrack->SetTrackStatus(fStopAndKill);
87 aTrack->SetTrackStatus(fStopAndKill);
93 if ( (weight_factor>0 && weight_factor<=0) || weight_factor<= 1e-290 || weight_factor>1.e200)
96 aTrack->SetTrackStatus(fStopAndKill);
112 if (surface_name ==
"ExternalSource") {
115 aTrack->SetTrackStatus(fStopAndKill);
124 else if (surface_name ==
"AdjointSource" && GoingIn) {
126 aTrack->SetTrackStatus(fStopAndKill);
132 if (aStep->GetPostStepPoint()->GetStepStatus() == fWorldBoundary) {
G4bool did_adj_part_reach_ext_source
G4int GetBaryonNumber() const
G4UserSteppingAction * theUserAdjointSteppingAction
const G4String & GetParticleType() const
G4AdjointSteppingAction()
virtual void UserSteppingAction(const G4Step *)
G4bool is_adjoint_tracking_mode
G4AdjointCrossSurfChecker * theG4AdjointCrossSurfChecker
G4ThreeVector last_momentum
void UserSteppingAction(const G4Step *)
G4UserSteppingAction * theUserFwdSteppingAction
static G4AdjointCrossSurfChecker * GetInstance()
G4bool CrossingOneOfTheRegisteredSurface(const G4Step *aStep, G4String &surface_name, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
~G4AdjointSteppingAction()
G4ParticleDefinition * last_part_def