4 // Class that takes care of storing kinematics.
6 #ifndef ALI_TRACKING_ACTION_H
7 #define ALI_TRACKING_ACTION_H
9 #include "TG4TrackingAction.h"
13 class AliTrackingActionMessenger;
14 class AliTrackInformation;
20 class AliTrackingAction : public TG4TrackingAction
25 // AliTrackingAction(const AliTrackingAction& right);
26 virtual ~AliTrackingAction();
29 static AliTrackingAction* Instance();
32 void PrepareNewEvent();
33 virtual void PreTrackingAction(const G4Track* aTrack);
34 virtual void PostTrackingAction(const G4Track* aTrack);
35 void FinishPrimaryTrack();
36 void SaveTrack(const G4Track* track);
39 void SetVerboseLevel(G4int level);
40 void SetSavePrimaries(G4bool savePrimaries);
43 G4int GetVerboseLevel() const;
44 G4bool GetSavePrimaries() const;
45 G4int GetNofTracks() const;
48 AliTrackingAction(const AliTrackingAction& right);
51 AliTrackingAction& operator=(const AliTrackingAction& right);
55 G4int GetParticleIndex(G4int trackID);
56 AliTrackInformation* GetTrackInformation(const G4Track* track,
57 const G4String& method) const;
59 // static data members
60 static AliTrackingAction* fgInstance; //this instance
63 AliTrackingActionMessenger* fMessenger; //messenger
64 G4int fPrimaryTrackID; //current primary track ID
65 G4bool fSavePrimaries; //control of saving primaries
66 G4int fVerboseLevel; //verbose level
67 G4int fTrackCounter; //tracks counter
72 inline AliTrackingAction* AliTrackingAction::Instance()
73 { return fgInstance; }
75 inline void AliTrackingAction::SetVerboseLevel(G4int level)
76 { fVerboseLevel = level; }
78 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
79 { fSavePrimaries = savePrimaries; }
81 inline G4int AliTrackingAction::GetVerboseLevel() const
82 { return fVerboseLevel; }
84 inline G4bool AliTrackingAction::GetSavePrimaries() const
85 { return fSavePrimaries; }
87 inline G4int AliTrackingAction::GetNofTracks() const
88 { return fTrackCounter; }
90 #endif //ALI_TRACKING_ACTION_H