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

@@ -33,6 +33,9 @@ class EmitterPrimary : public G4VUserPrimaryGeneratorAction, public Object, publ
virtual void GeneratePrimaries(G4Event*);
virtual void Updated() override { ULIB_SIGNAL_EMIT(EmitterPrimary::Updated); }
/// Create a clone of this emitter for multi-threading
virtual EmitterPrimary* Clone() const;
protected:
G4ParticleGun* fParticleGun; // Puntatore al cannone di particelle
@@ -49,6 +52,8 @@ class SkyPlaneEmitterPrimary : public EmitterPrimary
void SetPlane(const uLib::Vector3f& p0, const uLib::Vector3f& normal);
void SetSkySize(const uLib::Vector2f& size);
uLib::Vector2f GetSkySize() const { return m_Size; }
virtual EmitterPrimary* Clone() const override;
private:
EcoMug* m_EcoMug;
@@ -67,6 +72,8 @@ class CylinderEmitterPrimary : public EmitterPrimary
float GetRadius() const { return m_Radius; }
void SetHeight(float h);
float GetHeight() const { return m_Height; }
virtual EmitterPrimary* Clone() const override;
private:
EcoMug* m_EcoMug;
@@ -89,6 +96,8 @@ class QuadMeshEmitterPrimary : public EmitterPrimary
virtual void GeneratePrimaries(G4Event*);
void SetMesh(uLib::QuadMesh* mesh);
virtual EmitterPrimary* Clone() const override;
private:
uLib::QuadMesh* m_Mesh;