10 #include "montecarlo/generators/manager/GGSGeneratorActionsManager.h"
24 GGSGeneratorActionsManager::GGSGeneratorActionsManager() :
25 _messenger(new G4GenericMessenger(this,
"/GGS/generatorActions/")), _candidates(
"") {
26 _commandSet = &(_messenger->DeclareMethod(
"set", &GGSGeneratorActionsManager::SetGeneratorAction,
27 "Set the particle generator").SetStates(G4State_Idle));
33 GGSGeneratorActionsManager::~GGSGeneratorActionsManager() {
39 void GGSGeneratorActionsManager::RegisterGABuilder(
const G4String &name,
40 G4VUserPrimaryGeneratorAction *(*genBuilder)()) {
41 static const std::string routineName(
"GGSGeneratorActionsManager::RegisterGABuilder");
42 std::pair<GenBuildersMap::iterator, bool> insertResult = _buildersMap.insert(
43 std::pair<G4String, G4VUserPrimaryGeneratorAction *(*)()>(name, genBuilder));
44 if (!insertResult.second) {
45 COUT(WARNING) <<
"Generator " << name <<
" is already present." <<
ENDL;
48 _candidates.append(
" ").append(name);
49 _commandSet->SetCandidates(_candidates);
56 void GGSGeneratorActionsManager::SetGeneratorAction(
const G4String &name) {
58 static const std::string routineName(
"GGSGeneratorActionsManager::SetGenerator");
61 GenBuildersMap::iterator builder = _buildersMap.find(name);
62 if (builder == _buildersMap.end()) {
63 COUT(WARNING) <<
"Wuilder for generator " << name <<
" is not present." <<
ENDL;
68 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.