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)
63 if(!is_adjoint_tracking_mode){
65 if (!did_adj_part_reach_ext_source) {
69 if(theUserFwdSteppingAction)
77 if (theUserAdjointSteppingAction) theUserAdjointSteppingAction->
UserSteppingAction(aStep);
90 did_adj_part_reach_ext_source=
false;
95 if ( (weight_factor>0 && weight_factor<=0) || weight_factor<= 1e-290 || weight_factor>1.e200)
99 did_adj_part_reach_ext_source=
false;
114 if (surface_name ==
"ExternalSource") {
116 did_adj_part_reach_ext_source=
true;
123 last_pos = crossing_pos;
126 else if (surface_name ==
"AdjointSource" && GoingIn) {
127 did_adj_part_reach_ext_source=
false;
134 did_adj_part_reach_ext_source=
true;
139 last_pos = crossing_pos;
void SetTrackStatus(const G4TrackStatus aTrackStatus)
G4ParticleDefinition * GetDefinition() const
G4StepStatus GetStepStatus() const
G4AdjointSteppingAction()
virtual void UserSteppingAction(const G4Step *)
G4double GetKineticEnergy() const
void UserSteppingAction(const G4Step *)
const G4String & GetParticleType() const
static G4AdjointCrossSurfChecker * GetInstance()
G4ThreeVector GetMomentum() const
G4bool CrossingOneOfTheRegisteredSurface(const G4Step *aStep, G4String &surface_name, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
G4StepPoint * GetPostStepPoint() const
G4double GetWeight() const
~G4AdjointSteppingAction()
G4Track * GetTrack() const
G4int GetBaryonNumber() const