]> git.uio.no Git - u/mrichter/AliRoot.git/blame - AliGeant4/AliTrackingAction.h
added AliRoot categories to HTML generating
[u/mrichter/AliRoot.git] / AliGeant4 / AliTrackingAction.h
CommitLineData
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
9#include <G4UserTrackingAction.hh>
10#include <globals.hh>
11
12#include <TClonesArray.h>
13
14class AliTrackingActionMessenger;
15
16class G4Track;
17
18class AliTrackingAction : public G4UserTrackingAction
19{
20 public:
21 AliTrackingAction();
22 // --> protected
23 // AliTrackingAction(const AliTrackingAction& right);
fdfe18c5 24 virtual ~AliTrackingAction();
676fb573 25
26 // static get method
27 static AliTrackingAction* Instance();
28
29 // methods
30 void PrepareNewEvent();
31 virtual void PreUserTrackingAction(const G4Track* aTrack);
32 virtual void PostUserTrackingAction(const G4Track* aTrack);
33 void SaveParticle(const G4Track* track, G4String processName);
34 void SaveAndDestroyTrack();
35
36 // set methods
37 void SetVerboseLevel(G4int level);
38 void SetSavePrimaries(G4bool savePrimaries);
39
40 // get methods
41 G4int GetVerboseLevel() const;
42 G4bool GetSavePrimaries() const;
43 G4int GetNofPrimaryTracks() const;
44 G4int GetNofSavedTracks() const;
45
46 protected:
47 AliTrackingAction(const AliTrackingAction& right);
48
49 // operators
50 AliTrackingAction& operator=(const AliTrackingAction& right);
51
52 private:
53 // methods
54 G4int GetParticleIndex(G4int trackID);
55
56 // static data members
57 static AliTrackingAction* fgInstance; //this instance
58
59 // data members
60 TClonesArray* fParticles; //AliRun::fParticles
61 G4int fPrimaryTrackID; //primary track ID
62 G4bool fSavePrimaries; //control of saving primaries
63 G4int fVerboseLevel; //verbose level
64 G4int fPrimariesCounter; //primary particles counter
65 G4int fParticlesCounter; //particles counter
66 G4int fLastParticleIndex; //index of the last particle in fParticles
67 AliTrackingActionMessenger* fMessenger; //messenger
68};
69
70// inline methods
71
72inline void AliTrackingAction::SetVerboseLevel(G4int level)
73{ fVerboseLevel = level; }
74
75inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
76{ fSavePrimaries = savePrimaries; }
77
78inline G4int AliTrackingAction::GetVerboseLevel() const
79{ return fVerboseLevel; }
80
81inline G4bool AliTrackingAction::GetSavePrimaries() const
82{ return fSavePrimaries; }
83
84inline G4int AliTrackingAction::GetNofPrimaryTracks() const
85{ return fPrimariesCounter; }
86
87inline G4int AliTrackingAction::GetNofSavedTracks() const
88{ return fParticlesCounter; }
89
90#endif //ALI_TRACKING_ACTION_H