4 // Author: I. Hrivnacova
6 // Class AliTrackingAction
7 // -----------------------
8 // Class that takes care of storing kinematics.
10 #ifndef ALI_TRACKING_ACTION_H
11 #define ALI_TRACKING_ACTION_H
13 #include "AliVerbose.h"
14 #include "AliTrackingActionMessenger.h"
16 #include "TG4TrackingAction.h"
20 class AliTrackInformation;
26 class AliTrackingAction : public TG4TrackingAction,
32 // AliTrackingAction(const AliTrackingAction& right);
33 virtual ~AliTrackingAction();
36 static AliTrackingAction* Instance();
39 void PrepareNewEvent();
40 virtual void PreTrackingAction(const G4Track* aTrack);
41 virtual void PostTrackingAction(const G4Track* aTrack);
42 void FinishPrimaryTrack();
43 void SaveTrack(const G4Track* track);
46 void SetNewVerboseLevel(G4int level);
47 void SetNewVerboseTrackID(G4int trackID);
48 void SetSavePrimaries(G4bool savePrimaries);
51 G4bool GetSavePrimaries() const;
52 G4int GetNofTracks() const;
55 AliTrackingAction(const AliTrackingAction& right);
58 AliTrackingAction& operator=(const AliTrackingAction& right);
62 G4int GetParticleIndex(G4int trackID);
63 AliTrackInformation* GetTrackInformation(const G4Track* track,
64 const G4String& method) const;
66 // static data members
67 static AliTrackingAction* fgInstance; //this instance
70 AliTrackingActionMessenger fMessenger; //messenger
71 G4int fPrimaryTrackID; //current primary track ID
72 G4bool fSavePrimaries; //control of saving primaries
73 G4int fNewVerboseLevel; //new /tracking/verbose level
74 G4int fNewVerboseTrackID; //track ID for which new /tracking/verbose level
76 G4int fTrackCounter; //tracks counter
81 inline AliTrackingAction* AliTrackingAction::Instance()
82 { return fgInstance; }
84 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
85 { fSavePrimaries = savePrimaries; }
87 inline G4bool AliTrackingAction::GetSavePrimaries() const
88 { return fSavePrimaries; }
90 inline G4int AliTrackingAction::GetNofTracks() const
91 { return fTrackCounter; }
93 #endif //ALI_TRACKING_ACTION_H