]>
Commit | Line | Data |
---|---|---|
676fb573 | 1 | // $Id$ |
2 | // Category: event | |
3 | // | |
4 | // Class that takes care of storing kinematics. | |
5 | ||
6 | #ifndef ALI_TRACKING_ACTION_H | |
7 | #define ALI_TRACKING_ACTION_H | |
8 | ||
9bcb6317 | 9 | #include "TG4TrackingAction.h" |
10 | ||
676fb573 | 11 | #include <globals.hh> |
12 | ||
676fb573 | 13 | class AliTrackingActionMessenger; |
14 | ||
15 | class G4Track; | |
16 | ||
c97337f9 | 17 | class TClonesArray; |
18 | ||
9bcb6317 | 19 | class AliTrackingAction : public TG4TrackingAction |
676fb573 | 20 | { |
21 | public: | |
22 | AliTrackingAction(); | |
23 | // --> protected | |
24 | // AliTrackingAction(const AliTrackingAction& right); | |
fdfe18c5 | 25 | virtual ~AliTrackingAction(); |
676fb573 | 26 | |
27 | // static get method | |
28 | static AliTrackingAction* Instance(); | |
29 | ||
30 | // methods | |
31 | void PrepareNewEvent(); | |
9bcb6317 | 32 | virtual void PreTrackingAction(const G4Track* aTrack); |
33 | virtual void PostTrackingAction(const G4Track* aTrack); | |
2bf39c7c | 34 | void SaveParticle(const G4Track* track); |
676fb573 | 35 | void SaveAndDestroyTrack(); |
36 | ||
37 | // set methods | |
38 | void SetVerboseLevel(G4int level); | |
39 | void SetSavePrimaries(G4bool savePrimaries); | |
40 | ||
41 | // get methods | |
42 | G4int GetVerboseLevel() const; | |
43 | G4bool GetSavePrimaries() const; | |
3bfabcfc | 44 | G4int GetNofTracks() const; |
676fb573 | 45 | G4int GetNofPrimaryTracks() const; |
46 | G4int GetNofSavedTracks() const; | |
47 | ||
48 | protected: | |
49 | AliTrackingAction(const AliTrackingAction& right); | |
50 | ||
51 | // operators | |
52 | AliTrackingAction& operator=(const AliTrackingAction& right); | |
53 | ||
54 | private: | |
55 | // methods | |
56 | G4int GetParticleIndex(G4int trackID); | |
57 | ||
58 | // static data members | |
59 | static AliTrackingAction* fgInstance; //this instance | |
60 | ||
61 | // data members | |
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 | |
3bfabcfc | 68 | G4int fTrackCounter; //tracks counter |
676fb573 | 69 | G4int fLastParticleIndex; //index of the last particle in fParticles |
70 | AliTrackingActionMessenger* fMessenger; //messenger | |
71 | }; | |
72 | ||
73 | // inline methods | |
74 | ||
75 | inline void AliTrackingAction::SetVerboseLevel(G4int level) | |
76 | { fVerboseLevel = level; } | |
77 | ||
78 | inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries) | |
79 | { fSavePrimaries = savePrimaries; } | |
80 | ||
81 | inline G4int AliTrackingAction::GetVerboseLevel() const | |
82 | { return fVerboseLevel; } | |
83 | ||
84 | inline G4bool AliTrackingAction::GetSavePrimaries() const | |
85 | { return fSavePrimaries; } | |
86 | ||
3bfabcfc | 87 | inline G4int AliTrackingAction::GetNofTracks() const |
88 | { return fTrackCounter; } | |
89 | ||
676fb573 | 90 | inline G4int AliTrackingAction::GetNofPrimaryTracks() const |
91 | { return fPrimariesCounter; } | |
92 | ||
93 | inline G4int AliTrackingAction::GetNofSavedTracks() const | |
94 | { return fParticlesCounter; } | |
95 | ||
96 | #endif //ALI_TRACKING_ACTION_H |