SLIC  6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
Module.hh
Go to the documentation of this file.
1 #ifndef SLIC_MODULE_HH_
2 #define SLIC_MODULE_HH_ 1
3 
4 // slic
5 #include "LogManager.hh"
6 
7 // std
8 #include <string>
9 
10 // geant4
11 #include "G4ClassificationOfNewTrack.hh"
12 
13 class G4Event;
14 class G4Run;
15 class G4Step;
16 class G4Track;
17 
18 namespace slic {
19 
25 class Module {
26  public:
27  enum ModuleStatus {
29  };
30 
31  protected:
32 
39  Module(const std::string& name, bool deleteOnExit = true, bool autoRegister = true);
40 
41  public:
42 
46  virtual ~Module();
47 
48  public:
49 
54  const std::string& getName() const {
55  return m_name;
56  }
57 
63  return m_status;
64  }
65 
69  virtual void initialize() {
70  ;
71  }
72 
76  virtual void reset() {
77  ;
78  }
79 
83  virtual void cleanup() {
84  ;
85  }
86 
91  bool deleteOnExit() {
92  return m_deleteOnExit;
93  }
94 
100  return *m_log;
101  }
102 
107  virtual void beginEvent(const G4Event*) {
108  }
109 
114  virtual void endEvent(const G4Event*) {
115  }
116 
121  virtual void beginRun(const G4Run*) {
122  }
123 
128  virtual void endRun(const G4Run*) {
129  }
130 
135  virtual void preTracking(const G4Track*) {
136  }
137 
142  virtual void postTracking(const G4Track*) {
143  }
144 
149  virtual void stepping(const G4Step*) {
150  }
151 
152  public:
154  std::string m_name;
157 };
158 }
159 
160 #endif
A class for streaming messages to a log.
Definition: LogStream.hh:71
Base class for slic code modules that provides common functionality, such as logging to an output str...
Definition: Module.hh:25
virtual void cleanup()
Definition: Module.hh:83
virtual void endEvent(const G4Event *)
Definition: Module.hh:114
virtual void beginRun(const G4Run *)
Definition: Module.hh:121
bool deleteOnExit()
Definition: Module.hh:91
@ eFatalError
Definition: Module.hh:28
@ eNotInitialized
Definition: Module.hh:28
ModuleStatus getStatus() const
Definition: Module.hh:62
virtual void initialize()
Definition: Module.hh:69
virtual ~Module()
Definition: Module.cc:25
virtual void reset()
Definition: Module.hh:76
const std::string & getName() const
Definition: Module.hh:54
virtual void endRun(const G4Run *)
Definition: Module.hh:128
Module(const std::string &name, bool deleteOnExit=true, bool autoRegister=true)
Definition: Module.cc:7
virtual void preTracking(const G4Track *)
Definition: Module.hh:135
LogStream * m_log
Definition: Module.hh:155
ModuleStatus m_status
Definition: Module.hh:153
virtual void beginEvent(const G4Event *)
Definition: Module.hh:107
virtual void stepping(const G4Step *)
Definition: Module.hh:149
std::string m_name
Definition: Module.hh:154
bool m_deleteOnExit
Definition: Module.hh:156
virtual void postTracking(const G4Track *)
Definition: Module.hh:142
LogStream & log()
Definition: Module.hh:99
@ name
Definition: LogStream.hh:26