45 : ext_sourceEMax(0.), start_event(false),
46 did_adj_part_reach_ext_source(false), last_ekin(0.), last_weight(0.),
47 prim_weight(1.), last_part_def(0), theUserAdjointSteppingAction(0),
48 theUserFwdSteppingAction(0)
64 if(!is_adjoint_tracking_mode){
65 if (!did_one_adj_part_reach_ext_source_during_event) {
69 if(theUserFwdSteppingAction)
75 did_adj_part_reach_ext_source=
false;
76 if (theUserAdjointSteppingAction) theUserAdjointSteppingAction->
UserSteppingAction(aStep);
89 did_adj_part_reach_ext_source=
false;
115 if (surface_name ==
"ExternalSource") {
117 did_adj_part_reach_ext_source=
true;
118 did_one_adj_part_reach_ext_source_during_event=
true;
125 last_pos = crossing_pos;
128 else if (surface_name ==
"AdjointSource" && GoingIn) {
129 did_adj_part_reach_ext_source=
false;
137 did_adj_part_reach_ext_source=
true;
138 did_one_adj_part_reach_ext_source_during_event=
true;
143 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