void actionInitialization::Build() const { primaryGeneratorAction* prim = new primaryGeneratorAction(fLman) ; SetUserAction(prim); SetUserAction(new runAction); SetUserAction(new eventAction(fLman)); SetUserAction(new trackingAction(fLman)); }
/// Build the actions for the worker thread void Geant4UserActionInitialization::Build() const { G4AutoLock protection_lock(&action_mutex); Geant4Kernel& krnl = kernel().worker(Geant4Kernel::thread_self(),true); Geant4Context* ctx = krnl.workerContext(); if ( m_sequence ) { Geant4Context* old = m_sequence->context(); m_sequence->info("+++ Executing Geant4UserActionInitialization::Build. " "Context:%p Kernel:%p [%ld]", (void*)ctx, (void*)&krnl, krnl.id()); m_sequence->updateContext(ctx); m_sequence->build(); m_sequence->updateContext(old); } // Set user generator action sequence. Not optional, since event context is defined inside Geant4UserGeneratorAction* gen_action = new Geant4UserGeneratorAction(ctx,krnl.generatorAction(false)); SetUserAction(gen_action); // Set the run action sequence. Not optional, since run context is defined/destroyed inside Geant4UserRunAction* run_action = new Geant4UserRunAction(ctx,krnl.runAction(false)); SetUserAction(run_action); // Set the event action sequence. Not optional, since event context is destroyed inside Geant4UserEventAction* evt_action = new Geant4UserEventAction(ctx,krnl.eventAction(false)); run_action->eventAction = evt_action; evt_action->runAction = run_action; SetUserAction(evt_action); // Set the tracking action sequence Geant4TrackingActionSequence* trk_action = krnl.trackingAction(false); if ( trk_action ) { Geant4UserTrackingAction* action = new Geant4UserTrackingAction(ctx, trk_action); SetUserAction(action); } // Set the stepping action sequence Geant4SteppingActionSequence* stp_action = krnl.steppingAction(false); if ( stp_action ) { Geant4UserSteppingAction* action = new Geant4UserSteppingAction(ctx, stp_action); SetUserAction(action); } // Set the stacking action sequence Geant4StackingActionSequence* stk_action = krnl.stackingAction(false); if ( stk_action ) { Geant4UserStackingAction* action = new Geant4UserStackingAction(ctx, stk_action); SetUserAction(action); } }
void ActionInitialization::Build() const { SetUserAction(new PrimaryGeneratorAction); SetUserAction(new RunAction); SetUserAction(new StackingAction); }
void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); }
void ActionInitialization::Build() const { PrimaryGeneratorAction* primary = new PrimaryGeneratorAction(); SetUserAction(primary); SetUserAction(new RunAction(primary)); }