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 GetNofPrimaryTracks() const;
45 G4int GetNofSavedTracks() const;
48 AliTrackingAction(const AliTrackingAction& right);
51 AliTrackingAction& operator=(const AliTrackingAction& right);
55 G4int GetParticleIndex(G4int trackID);
57 // static data members
58 static AliTrackingAction* fgInstance; //this instance
61 TClonesArray* fParticles; //AliRun::fParticles
62 G4int fPrimaryTrackID; //primary track ID
63 G4bool fSavePrimaries; //control of saving primaries
64 G4int fVerboseLevel; //verbose level
65 G4int fPrimariesCounter; //primary particles counter
66 G4int fParticlesCounter; //particles counter
67 G4int fLastParticleIndex; //index of the last particle in fParticles
68 AliTrackingActionMessenger* fMessenger; //messenger
73 inline void AliTrackingAction::SetVerboseLevel(G4int level)
74 { fVerboseLevel = level; }
76 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
77 { fSavePrimaries = savePrimaries; }
79 inline G4int AliTrackingAction::GetVerboseLevel() const
80 { return fVerboseLevel; }
82 inline G4bool AliTrackingAction::GetSavePrimaries() const
83 { return fSavePrimaries; }
85 inline G4int AliTrackingAction::GetNofPrimaryTracks() const
86 { return fPrimariesCounter; }
88 inline G4int AliTrackingAction::GetNofSavedTracks() const
89 { return fParticlesCounter; }
91 #endif //ALI_TRACKING_ACTION_H