923fb6ba0b00933aff70c9df98234c95a8d34203
[u/mrichter/AliRoot.git] / AliGeant4 / AliSteppingAction.h
1 // $Id$
2 // Category: event
3 //
4 // Class for detecting and stopping looping particles
5 // or particles that reached maximal number of steps.
6
7 #ifndef ALI_STEPPING_ACTION_H
8 #define ALI_STEPPING_ACTION_H
9
10 #include "TG4SteppingAction.h"
11
12 #include <G4ThreeVector.hh>
13 #include <globals.hh>
14
15 class AliSteppingActionMessenger;
16
17 class AliSteppingAction : public TG4SteppingAction
18 {
19   enum { 
20     kCheckNofSteps = 100
21   };
22
23   public:
24     AliSteppingAction();
25     // protected
26     // AliSteppingAction(const AliSteppingAction& right);
27     virtual ~AliSteppingAction();
28
29     // methods
30     virtual void SteppingAction(const G4Step* step);
31     
32   protected:
33     AliSteppingAction(const AliSteppingAction& right);
34
35     // operators
36     AliSteppingAction& operator=(const AliSteppingAction& right);
37
38   private:
39     // static data members
40     static const G4double fgkTolerance; //tolerance used in detecting 
41                                         //of looping particles
42
43     // data members
44     G4ThreeVector  fKeptStepPoint;           //kept step point
45     AliSteppingActionMessenger*  fMessenger; //messenger
46 };
47
48 #endif //ALI_STEPPING_ACTION_H
49