35 lines
897 B
C++
35 lines
897 B
C++
#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<GeantEvent> *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<GeantEvent> *m_Output;
|
|
};
|
|
|
|
} // namespace Geant
|
|
} // namespace uLib
|
|
|
|
#endif |