SLIC  6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
PluginManager.hh
Go to the documentation of this file.
1 
7 #ifndef SLIC_PLUGINMANAGER_HH_
8 #define SLIC_PLUGINMANAGER_HH_
9 
10 // LDMX
11 #include "PluginLoader.hh"
12 #include "UserActionPlugin.hh"
13 
14 // STL
15 #include <algorithm>
16 #include <ostream>
17 
18 // Geant4
19 #include "G4ClassificationOfNewTrack.hh"
20 
21 namespace slic {
22 
36 
37  public:
38 
42  typedef std::vector<UserActionPlugin*> PluginVec;
43 
48  }
49 
54  virtual ~PluginManager();
55 
60  void beginRun(const G4Run* aRun);
61 
66  void endRun(const G4Run* aRun);
67 
72  void stepping(const G4Step* aStep);
73 
78  void preTracking(const G4Track* aTrack);
79 
84  void postTracking(const G4Track* aTrack);
85 
90  void beginEvent(const G4Event* anEvent);
91 
96  void endEvent(const G4Event* anEvent);
97 
102  void generatePrimary(G4Event* anEvent);
103 
114  G4ClassificationOfNewTrack stackingClassifyNewTrack(const G4Track* aTrack);
115 
119  void stackingNewStage();
120 
125 
131  UserActionPlugin* findPlugin(const std::string& pluginName);
132 
138  void create(const std::string& pluginName, const std::string& libName);
139 
144  void destroy(const std::string& pluginName);
145 
151  std::ostream& print(std::ostream& os);
152 
153  private:
154 
159  void destroy(UserActionPlugin* plugin);
160 
165  void registerPlugin(UserActionPlugin* plugin);
166 
171  void deregisterPlugin(UserActionPlugin* plugin);
172 
176  void destroyPlugins();
177 
178  private:
179 
184 
189 };
190 
191 }
192 
193 #endif
Loads user sim plugin classes from external shared libraries.
Definition: PluginLoader.hh:19
Manages user sim plugins.
std::ostream & print(std::ostream &os)
void destroy(const std::string &pluginName)
G4ClassificationOfNewTrack stackingClassifyNewTrack(const G4Track *aTrack)
Return a track classification from the user plugins that have stacking actions. Activate the track cl...
void registerPlugin(UserActionPlugin *plugin)
void create(const std::string &pluginName, const std::string &libName)
PluginLoader pluginLoader_
std::vector< UserActionPlugin * > PluginVec
void generatePrimary(G4Event *anEvent)
void beginEvent(const G4Event *anEvent)
void endEvent(const G4Event *anEvent)
void endRun(const G4Run *aRun)
void deregisterPlugin(UserActionPlugin *plugin)
void stepping(const G4Step *aStep)
void preTracking(const G4Track *aTrack)
UserActionPlugin * findPlugin(const std::string &pluginName)
void postTracking(const G4Track *aTrack)
void beginRun(const G4Run *aRun)
Definition: PluginManager.cc:9
virtual ~PluginManager()
Definition: PluginManager.cc:5
User simulation plugin.