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 #include <TClonesArray.h>
15 class AliTrackingActionMessenger;
19 class AliTrackingAction : public TG4TrackingAction
24 // AliTrackingAction(const AliTrackingAction& right);
25 virtual ~AliTrackingAction();
28 static AliTrackingAction* Instance();
31 void PrepareNewEvent();
32 virtual void PreTrackingAction(const G4Track* aTrack);
33 virtual void PostTrackingAction(const G4Track* aTrack);
34 void SaveParticle(const G4Track* track, G4String processName);
35 void SaveAndDestroyTrack();
38 void SetVerboseLevel(G4int level);
39 void SetSavePrimaries(G4bool savePrimaries);
42 G4int GetVerboseLevel() const;
43 G4bool GetSavePrimaries() const;
44 G4int GetNofTracks() const;
45 G4int GetNofPrimaryTracks() const;
46 G4int GetNofSavedTracks() const;
49 AliTrackingAction(const AliTrackingAction& right);
52 AliTrackingAction& operator=(const AliTrackingAction& right);
56 G4int GetParticleIndex(G4int trackID);
58 // static data members
59 static AliTrackingAction* fgInstance; //this instance
62 TClonesArray* fParticles; //AliRun::fParticles
63 G4int fPrimaryTrackID; //primary track ID
64 G4bool fSavePrimaries; //control of saving primaries
65 G4int fVerboseLevel; //verbose level
66 G4int fPrimariesCounter; //primary particles counter
67 G4int fParticlesCounter; //particles counter
68 G4int fTrackCounter; //tracks counter
69 G4int fLastParticleIndex; //index of the last particle in fParticles
70 AliTrackingActionMessenger* fMessenger; //messenger
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 inline G4int AliTrackingAction::GetNofPrimaryTracks() const
91 { return fPrimariesCounter; }
93 inline G4int AliTrackingAction::GetNofSavedTracks() const
94 { return fParticlesCounter; }
96 #endif //ALI_TRACKING_ACTION_H