g4system
Loading...
Searching...
No Matches
g4volume.h
Go to the documentation of this file.
1#pragma once
21// c++
22#include <memory>
23
24// gemc
25#include "glogger.h"
26
27// ─── Geant4 includes ───────────────────────────────────────────────
28#include "G4FieldManager.hh"
29#include "G4LogicalVolume.hh"
30#include "G4VPhysicalVolume.hh"
31#include "G4VSolid.hh"
32
50{
51public:
55 G4Volume() = default;
56
61 ~G4Volume() = default;
62
63 // ────── getters ────────────────────────────────────────────────
64
69 [[nodiscard]] G4VSolid* getSolid() const noexcept { return solidVolume; }
70
75 [[nodiscard]] G4LogicalVolume* getLogical() const noexcept { return logicalVolume; }
76
81 [[nodiscard]] G4VPhysicalVolume* getPhysical() const noexcept { return physicalVolume; }
82
83 // ────── setters ────────────────────────────────────────────────
84
94 void setSolid(G4VSolid* s, const std::shared_ptr<GLogger>& log);
95
105 void setLogical(G4LogicalVolume* l, const std::shared_ptr<GLogger>& log);
106
116 void setPhysical(G4VPhysicalVolume* p, const std::shared_ptr<GLogger>& log);
117
128 void setFieldManager(G4FieldManager* fm, bool forceToAllDaughters);
129
130private:
131 // ────── data members ───────────────────────────────────────────
132
134 G4VSolid* solidVolume{nullptr};
135
137 G4LogicalVolume* logicalVolume{nullptr};
138
140 G4VPhysicalVolume* physicalVolume{nullptr};
141};
Convenience container holding a Geant4 solid, logical, and physical volume.
Definition g4volume.h:50
void setLogical(G4LogicalVolume *l, const std::shared_ptr< GLogger > &log)
Store a G4LogicalVolume pointer and log the assignment.
Definition g4volume.cc:16
G4VSolid * getSolid() const noexcept
Return the stored G4VSolid pointer.
Definition g4volume.h:69
void setPhysical(G4VPhysicalVolume *p, const std::shared_ptr< GLogger > &log)
Store a G4VPhysicalVolume pointer and log the assignment.
Definition g4volume.cc:22
G4VPhysicalVolume * getPhysical() const noexcept
Return the stored G4VPhysicalVolume pointer.
Definition g4volume.h:81
G4LogicalVolume * getLogical() const noexcept
Return the stored G4LogicalVolume pointer.
Definition g4volume.h:75
void setFieldManager(G4FieldManager *fm, bool forceToAllDaughters)
Attach a G4FieldManager to the stored logical volume, if present.
Definition g4volume.cc:28
~G4Volume()=default
Destructor (no-op).
void setSolid(G4VSolid *s, const std::shared_ptr< GLogger > &log)
Store a G4VSolid pointer and log the assignment.
Definition g4volume.cc:10
G4Volume()=default
Default construct an empty wrapper (all pointers set to nullptr).