make scene able to run parallel simulations

This commit is contained in:
AndreaRigoni
2026-03-19 21:51:38 +00:00
parent 85e1f1448f
commit c44a7738c0
12 changed files with 247 additions and 24 deletions

View File

@@ -6,10 +6,12 @@ namespace uLib {
namespace Geant {
ActionInitialization::ActionInitialization(EmitterPrimary *emitter,
Vector<GeantEvent> *output)
Vector<GeantEvent> *output,
int verbosity)
: G4VUserActionInitialization(),
m_Emitter(emitter),
m_Output(output)
m_Output(output),
m_Verbosity(verbosity)
{}
ActionInitialization::~ActionInitialization() {}
@@ -21,7 +23,7 @@ void ActionInitialization::BuildForMaster() const {
void ActionInitialization::Build() const {
// Register the primary generator
if (m_Emitter) {
SetUserAction(m_Emitter);
SetUserAction(m_Emitter->Clone());
} else {
// Fallback: default EmitterPrimary
SetUserAction(new EmitterPrimary());
@@ -30,6 +32,7 @@ void ActionInitialization::Build() const {
// Register actions
if (m_Output) {
SteppingAction *sa = new SteppingAction(m_Output);
sa->SetVerbosity(m_Verbosity);
SetUserAction(static_cast<G4UserSteppingAction*>(sa));
SetUserAction(static_cast<G4UserEventAction*>(sa));
}