4 // Class that takes care of storing kinematics.
6 #ifndef ALI_TRACKING_ACTION_H
7 #define ALI_TRACKING_ACTION_H
9 #include <G4UserTrackingAction.hh>
12 #include <TClonesArray.h>
14 class AliTrackingActionMessenger;
18 class AliTrackingAction : public G4UserTrackingAction
23 // AliTrackingAction(const AliTrackingAction& right);
24 virtual ~AliTrackingAction();
27 static AliTrackingAction* Instance();
30 void PrepareNewEvent();
31 virtual void PreUserTrackingAction(const G4Track* aTrack);
32 virtual void PostUserTrackingAction(const G4Track* aTrack);
33 void SaveParticle(const G4Track* track, G4String processName);
34 void SaveAndDestroyTrack();
37 void SetVerboseLevel(G4int level);
38 void SetSavePrimaries(G4bool savePrimaries);
41 G4int GetVerboseLevel() const;
42 G4bool GetSavePrimaries() const;
43 G4int GetNofPrimaryTracks() const;
44 G4int GetNofSavedTracks() const;
47 AliTrackingAction(const AliTrackingAction& right);
50 AliTrackingAction& operator=(const AliTrackingAction& right);
54 G4int GetParticleIndex(G4int trackID);
56 // static data members
57 static AliTrackingAction* fgInstance; //this instance
60 TClonesArray* fParticles; //AliRun::fParticles
61 G4int fPrimaryTrackID; //primary track ID
62 G4bool fSavePrimaries; //control of saving primaries
63 G4int fVerboseLevel; //verbose level
64 G4int fPrimariesCounter; //primary particles counter
65 G4int fParticlesCounter; //particles counter
66 G4int fLastParticleIndex; //index of the last particle in fParticles
67 AliTrackingActionMessenger* fMessenger; //messenger
72 inline void AliTrackingAction::SetVerboseLevel(G4int level)
73 { fVerboseLevel = level; }
75 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
76 { fSavePrimaries = savePrimaries; }
78 inline G4int AliTrackingAction::GetVerboseLevel() const
79 { return fVerboseLevel; }
81 inline G4bool AliTrackingAction::GetSavePrimaries() const
82 { return fSavePrimaries; }
84 inline G4int AliTrackingAction::GetNofPrimaryTracks() const
85 { return fPrimariesCounter; }
87 inline G4int AliTrackingAction::GetNofSavedTracks() const
88 { return fParticlesCounter; }
90 #endif //ALI_TRACKING_ACTION_H