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 "AliTrackingActionMessenger.h"
15 #include "TG4TrackingAction.h"
19 class AliTrackInformation;
25 class AliTrackingAction : public TG4TrackingAction
30 // AliTrackingAction(const AliTrackingAction& right);
31 virtual ~AliTrackingAction();
34 static AliTrackingAction* Instance();
37 void PrepareNewEvent();
38 virtual void PreTrackingAction(const G4Track* aTrack);
39 virtual void PostTrackingAction(const G4Track* aTrack);
40 void FinishPrimaryTrack();
41 void SaveTrack(const G4Track* track);
44 void SetVerboseLevel(G4int level);
45 void SetNewVerboseLevel(G4int level);
46 void SetNewVerboseTrackID(G4int trackID);
47 void SetSavePrimaries(G4bool savePrimaries);
50 G4int GetVerboseLevel() const;
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 fVerboseLevel; //verbose level
74 G4int fNewVerboseLevel; //new /tracking/verbose level
75 G4int fNewVerboseTrackID; //track ID for which new /tracking/verbose level
77 G4int fTrackCounter; //tracks counter
82 inline AliTrackingAction* AliTrackingAction::Instance()
83 { return fgInstance; }
85 inline void AliTrackingAction::SetVerboseLevel(G4int level)
86 { fVerboseLevel = level; }
88 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
89 { fSavePrimaries = savePrimaries; }
91 inline G4int AliTrackingAction::GetVerboseLevel() const
92 { return fVerboseLevel; }
94 inline G4bool AliTrackingAction::GetSavePrimaries() const
95 { return fSavePrimaries; }
97 inline G4int AliTrackingAction::GetNofTracks() const
98 { return fTrackCounter; }
100 #endif //ALI_TRACKING_ACTION_H