37#ifndef G4AdjointTrackingAction_hh
38#define G4AdjointTrackingAction_hh 1
63 { theUserFwdTrackingAction = anAction; }
65 {
return last_pos_vec[i]; }
67 {
return last_direction_vec[i]; }
69 {
return last_ekin_vec[i]; }
71 {
return last_ekin_nuc_vec[i]; }
73 {
return last_weight_vec[i]; }
75 {
return last_cos_th_vec[i]; }
77 {
return last_fwd_part_name; }
79 {
return last_fwd_part_PDGEncoding_vec[i]; }
81 {
return is_adjoint_tracking_mode; }
83 {
return last_fwd_part_index_vec[i]; }
85 {
return last_pos_vec.size(); }
87 { pListOfPrimaryFwdParticles = aListOfParticles; }
93 G4bool is_adjoint_tracking_mode =
false;
99 G4double last_ekin = 0.0, last_ekin_nuc = 0.0;
103 G4int last_fwd_part_PDGEncoding = 0;
105 G4int last_fwd_part_index = 0;
106 std::vector<G4ParticleDefinition*>* pListOfPrimaryFwdParticles =
nullptr;
108 std::vector<G4ThreeVector> last_pos_vec;
109 std::vector<G4ThreeVector> last_direction_vec;
110 std::vector<G4double> last_ekin_vec;
111 std::vector<G4double> last_ekin_nuc_vec;
112 std::vector<G4double> last_cos_th_vec;
113 std::vector<G4double> last_weight_vec;
114 std::vector<G4int> last_fwd_part_PDGEncoding_vec;
115 std::vector<G4int> last_fwd_part_index_vec;
G4double GetEkinAtEndOfLastAdjointTrack(std::size_t i=0)
virtual void PreUserTrackingAction(const G4Track *)
virtual void PostUserTrackingAction(const G4Track *)
void SetListOfPrimaryFwdParticles(std::vector< G4ParticleDefinition * > *aListOfParticles)
G4double GetEkinNucAtEndOfLastAdjointTrack(std::size_t i=0)
G4ThreeVector GetPositionAtEndOfLastAdjointTrack(std::size_t i=0)
G4bool GetIsAdjointTrackingMode()
const G4String & GetFwdParticleNameAtEndOfLastAdjointTrack()
G4int GetFwdParticlePDGEncodingAtEndOfLastAdjointTrack(std::size_t i=0)
G4double GetWeightAtEndOfLastAdjointTrack(std::size_t i=0)
void RegisterAtEndOfAdjointTrack()
void ClearEndOfAdjointTrackInfoVectors()
std::size_t GetNbOfAdointTracksReachingTheExternalSurface()
G4ThreeVector GetDirectionAtEndOfLastAdjointTrack(std::size_t i=0)
G4int GetLastFwdParticleIndex(std::size_t i=0)
virtual ~G4AdjointTrackingAction()
G4double GetCosthAtEndOfLastAdjointTrack(std::size_t i=0)
void SetUserForwardTrackingAction(G4UserTrackingAction *anAction)