]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliTrackingAction.h
removal of TG4Messenger commented
[u/mrichter/AliRoot.git] / AliGeant4 / AliTrackingAction.h
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 "AliVerbose.h"
14 #include "AliTrackingActionMessenger.h"
15
16 #include "TG4TrackingAction.h"
17
18 #include <globals.hh>
19
20 class AliTrackInformation;
21
22 class G4Track;
23
24 class TClonesArray;
25
26 class AliTrackingAction : public TG4TrackingAction,
27                           public AliVerbose
28 {
29   public:
30     AliTrackingAction();
31     // --> protected
32     // AliTrackingAction(const AliTrackingAction& right);
33     virtual ~AliTrackingAction();
34    
35     // static get method
36     static AliTrackingAction* Instance();
37
38     // methods
39     void PrepareNewEvent();
40     virtual void PreTrackingAction(const G4Track* aTrack);
41     virtual void PostTrackingAction(const G4Track* aTrack);
42     void FinishPrimaryTrack();
43     void SaveTrack(const G4Track* track);
44
45     // set methods
46     void SetNewVerboseLevel(G4int level);
47     void SetNewVerboseTrackID(G4int trackID);
48     void SetSavePrimaries(G4bool savePrimaries);
49
50     // get methods
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   fNewVerboseLevel;   //new /tracking/verbose level
74     G4int   fNewVerboseTrackID; //track ID for which new /tracking/verbose level
75                                 // is applied
76     G4int   fTrackCounter;      //tracks counter
77 };
78
79 // inline methods
80
81 inline AliTrackingAction* AliTrackingAction::Instance() 
82 { return fgInstance; }
83
84 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
85 { fSavePrimaries = savePrimaries; }
86
87 inline G4bool AliTrackingAction::GetSavePrimaries() const
88 { return fSavePrimaries; }
89
90 inline G4int AliTrackingAction::GetNofTracks() const
91 { return fTrackCounter; }
92
93 #endif //ALI_TRACKING_ACTION_H