add detector simulation
This commit is contained in:
@@ -5,37 +5,26 @@
|
||||
namespace uLib {
|
||||
namespace Geant {
|
||||
|
||||
ActionInitialization::ActionInitialization(EmitterPrimary *emitter,
|
||||
Vector<GeantEvent> *output,
|
||||
int verbosity)
|
||||
ActionInitialization::ActionInitialization(EmitterPrimary *emitter, SimulationContext *context)
|
||||
: G4VUserActionInitialization(),
|
||||
m_Emitter(emitter),
|
||||
m_Output(output),
|
||||
m_Verbosity(verbosity)
|
||||
m_Context(context)
|
||||
{}
|
||||
|
||||
ActionInitialization::~ActionInitialization() {}
|
||||
|
||||
void ActionInitialization::BuildForMaster() const {
|
||||
// Master thread: no per-event actions needed
|
||||
}
|
||||
void ActionInitialization::BuildForMaster() const {}
|
||||
|
||||
void ActionInitialization::Build() const {
|
||||
// Register the primary generator
|
||||
if (m_Emitter) {
|
||||
SetUserAction(m_Emitter->Clone());
|
||||
} else {
|
||||
// Fallback: default EmitterPrimary
|
||||
SetUserAction(new EmitterPrimary());
|
||||
}
|
||||
|
||||
// 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));
|
||||
}
|
||||
SteppingAction *sa = new SteppingAction(m_Context);
|
||||
SetUserAction(static_cast<G4UserSteppingAction*>(sa));
|
||||
SetUserAction(static_cast<G4UserEventAction*>(sa));
|
||||
}
|
||||
|
||||
} // namespace Geant
|
||||
|
||||
Reference in New Issue
Block a user