]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliTrackingAction.h
flistTreeFrame attribute added; fCanvasWindow removed
[u/mrichter/AliRoot.git] / AliGeant4 / AliTrackingAction.h
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
9 #include "TG4TrackingAction.h"
10
11 #include <globals.hh>
12
13 class AliTrackingActionMessenger;
14 class AliTrackInformation;
15
16 class G4Track;
17
18 class TClonesArray;
19
20 class AliTrackingAction : public TG4TrackingAction 
21 {
22   public:
23     AliTrackingAction();
24     // --> protected
25     // AliTrackingAction(const AliTrackingAction& right);
26     virtual ~AliTrackingAction();
27    
28     // static get method
29     static AliTrackingAction* Instance();
30
31     // methods
32     void PrepareNewEvent();
33     virtual void PreTrackingAction(const G4Track* aTrack);
34     virtual void PostTrackingAction(const G4Track* aTrack);
35     void FinishPrimaryTrack();
36     void SaveTrack(const G4Track* track);
37
38     // set methods
39     void SetVerboseLevel(G4int level);
40     void SetSavePrimaries(G4bool savePrimaries);
41
42     // get methods
43     G4int GetVerboseLevel() const;
44     G4bool GetSavePrimaries() const;
45     G4int GetNofTracks() const;
46
47   protected:
48     AliTrackingAction(const AliTrackingAction& right);
49
50     // operators
51     AliTrackingAction& operator=(const AliTrackingAction& right);
52
53   private:
54     // methods
55     G4int GetParticleIndex(G4int trackID);
56     AliTrackInformation* GetTrackInformation(const G4Track* track,
57                                              const G4String& method) const;
58   
59     // static data members
60     static AliTrackingAction*    fgInstance; //this instance
61
62     // data members
63     AliTrackingActionMessenger*  fMessenger; //messenger
64     G4int   fPrimaryTrackID;   //current primary track ID 
65     G4bool  fSavePrimaries;    //control of saving primaries
66     G4int   fVerboseLevel;     //verbose level
67     G4int   fTrackCounter;     //tracks counter
68 };
69
70 // inline methods
71
72 inline AliTrackingAction* AliTrackingAction::Instance() 
73 { return fgInstance; }
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
87 inline G4int AliTrackingAction::GetNofTracks() const
88 { return fTrackCounter; }
89
90 #endif //ALI_TRACKING_ACTION_H