diff --git a/FullSimLight/src/FSLActionInitialization.cc b/FullSimLight/src/FSLActionInitialization.cc index 443eeca8ed1f7642727074b295f0fa6201334833..a7a8c9943af116e9dd3971325b54bbb7f4e587a7 100644 --- a/FullSimLight/src/FSLActionInitialization.cc +++ b/FullSimLight/src/FSLActionInitialization.cc @@ -42,20 +42,29 @@ FSLActionInitialization::~FSLActionInitialization() {} // called in case of MT void FSLActionInitialization::BuildForMaster() const { - if(fCustomUserActions){}/*set run action from config file*/ + //set run action from config file + if(fCustomUserActions){ + for (const std::string & element: userActions) { + GeoPluginLoader<FSLUserActionPlugin> loader; + const FSLUserActionPlugin * plugin = loader.load(element); + if (plugin->getRunAction()) SetUserAction(plugin->getRunAction()); + } + + } else - {FSLRunAction* masterRunAct = new FSLRunAction(); - masterRunAct->SetPerformanceFlag(fIsPerformance); - masterRunAct->SetSpecialScoringRegionName(fSpecialScoringRegionName); - + { + FSLRunAction* masterRunAct = new FSLRunAction(); + masterRunAct->SetPerformanceFlag(fIsPerformance); + masterRunAct->SetSpecialScoringRegionName(fSpecialScoringRegionName); + #if USE_PYTHIA - if (use_pythia()) { - G4String str(get_pythia_config()); - masterRunAct->SetPythiaConfig(str); - } + if (use_pythia()) { + G4String str(get_pythia_config()); + masterRunAct->SetPythiaConfig(str); + } #endif - SetUserAction(masterRunAct); -} + SetUserAction(masterRunAct); + } }