#ifndef ActionInitialization_h #define ActionInitialization_h #include "G4VUserActionInitialization.hh" #include "Core/Vector.h" namespace uLib { namespace Geant { class EmitterPrimary; class GeantEvent; class ActionInitialization : public G4VUserActionInitialization { public: /// @param emitter the primary generator to use (owned by caller) /// @param output pointer to the results vector (owned by caller) ActionInitialization(EmitterPrimary *emitter = nullptr, Vector *output = nullptr); ~ActionInitialization(); // Metodo chiamato solo dal thread principale (Master) virtual void BuildForMaster() const; // Metodo chiamato dai thread di lavoro (Worker) o in modalità sequenziale virtual void Build() const; private: EmitterPrimary *m_Emitter; Vector *m_Output; }; } // namespace Geant } // namespace uLib #endif