8 #include "montecarlo/generators/manager/GGSGeneratorActionsManager.h"
23 GGSGeneratorActionsManager::GGSGeneratorActionsManager()
24 : _messenger(new G4GenericMessenger(this,
"/GGS/generatorActions/")), _candidates(
"") {
26 &(_messenger->DeclareMethod(
"set", &GGSGeneratorActionsManager::SetGeneratorAction,
"Set the particle generator")
27 .SetStates(G4State_Idle));
32 GGSGeneratorActionsManager::~GGSGeneratorActionsManager() {
delete _messenger; }
36 void GGSGeneratorActionsManager::RegisterGABuilder(
const G4String &name,
37 G4VUserPrimaryGeneratorAction *(*genBuilder)()) {
38 static const std::string routineName(
"GGSGeneratorActionsManager::RegisterGABuilder");
39 std::pair<GenBuildersMap::iterator, bool> insertResult =
40 _buildersMap.insert(std::pair<G4String, G4VUserPrimaryGeneratorAction *(*)()>(name, genBuilder));
41 if (!insertResult.second) {
42 COUT(WARNING) <<
"Generator " << name <<
" is already present." <<
ENDL;
44 _candidates.append(
" ").append(name);
45 _commandSet->SetCandidates(_candidates);
51 void GGSGeneratorActionsManager::SetGeneratorAction(
const G4String &name) {
53 static const std::string routineName(
"GGSGeneratorActionsManager::SetGenerator");
56 GenBuildersMap::iterator builder = _buildersMap.find(name);
57 if (builder == _buildersMap.end()) {
58 COUT(WARNING) <<
"Wuilder for generator " << name <<
" is not present." <<
ENDL;
63 G4VUserPrimaryGeneratorAction *gen = builder->second();
#define COUT(level)
Smart log macro. It writes on stdout only if the specified verbosity level is lesser than the maximum...
void SetGGSGeneratorAction(G4VUserPrimaryGeneratorAction *userAction)
Replacement of the SetUserAction method.
static GGSRunManager * GetRunManager()
Static getter function the run manager.