]>
Commit | Line | Data |
---|---|---|
1 | // $Id$ | |
2 | // Category: event | |
3 | // | |
4 | // Author: I. Hrivnacova | |
5 | // | |
6 | // Class AliTrackingAction | |
7 | // ----------------------- | |
8 | // Class that takes care of storing kinematics. | |
9 | ||
10 | #ifndef ALI_TRACKING_ACTION_H | |
11 | #define ALI_TRACKING_ACTION_H | |
12 | ||
13 | #include "AliTrackingActionMessenger.h" | |
14 | ||
15 | #include "TG4TrackingAction.h" | |
16 | ||
17 | #include <globals.hh> | |
18 | ||
19 | class AliTrackInformation; | |
20 | ||
21 | class G4Track; | |
22 | ||
23 | class TClonesArray; | |
24 | ||
25 | class AliTrackingAction : public TG4TrackingAction | |
26 | { | |
27 | public: | |
28 | AliTrackingAction(); | |
29 | // --> protected | |
30 | // AliTrackingAction(const AliTrackingAction& right); | |
31 | virtual ~AliTrackingAction(); | |
32 | ||
33 | // static get method | |
34 | static AliTrackingAction* Instance(); | |
35 | ||
36 | // methods | |
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); | |
42 | ||
43 | // set methods | |
44 | void SetVerboseLevel(G4int level); | |
45 | void SetNewVerboseLevel(G4int level); | |
46 | void SetNewVerboseTrackID(G4int trackID); | |
47 | void SetSavePrimaries(G4bool savePrimaries); | |
48 | ||
49 | // get methods | |
50 | G4int GetVerboseLevel() const; | |
51 | G4bool GetSavePrimaries() const; | |
52 | G4int GetNofTracks() const; | |
53 | ||
54 | protected: | |
55 | AliTrackingAction(const AliTrackingAction& right); | |
56 | ||
57 | // operators | |
58 | AliTrackingAction& operator=(const AliTrackingAction& right); | |
59 | ||
60 | private: | |
61 | // methods | |
62 | G4int GetParticleIndex(G4int trackID); | |
63 | AliTrackInformation* GetTrackInformation(const G4Track* track, | |
64 | const G4String& method) const; | |
65 | ||
66 | // static data members | |
67 | static AliTrackingAction* fgInstance; //this instance | |
68 | ||
69 | // data members | |
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 | |
76 | // is applied | |
77 | G4int fTrackCounter; //tracks counter | |
78 | }; | |
79 | ||
80 | // inline methods | |
81 | ||
82 | inline AliTrackingAction* AliTrackingAction::Instance() | |
83 | { return fgInstance; } | |
84 | ||
85 | inline void AliTrackingAction::SetVerboseLevel(G4int level) | |
86 | { fVerboseLevel = level; } | |
87 | ||
88 | inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries) | |
89 | { fSavePrimaries = savePrimaries; } | |
90 | ||
91 | inline G4int AliTrackingAction::GetVerboseLevel() const | |
92 | { return fVerboseLevel; } | |
93 | ||
94 | inline G4bool AliTrackingAction::GetSavePrimaries() const | |
95 | { return fSavePrimaries; } | |
96 | ||
97 | inline G4int AliTrackingAction::GetNofTracks() const | |
98 | { return fTrackCounter; } | |
99 | ||
100 | #endif //ALI_TRACKING_ACTION_H |