57 const std::string& system,
58 std::vector<std::string> pars,
71 explicit GVolume(
const std::string& rootVolumeDefinition,
const std::shared_ptr<GLogger>&
log);
81 [[nodiscard]]
virtual std::unique_ptr<GVolume>
clone()
const {
82 return std::make_unique<GVolume>(*
this);
91 std::string motherName;
92 std::string description;
93 std::string importFilename;
97 std::string parameters;
106 std::string material;
116 std::string digitization;
117 std::string gidentity;
121 std::string solidsOpr;
131 std::string g4motherName;
134 std::string variation;
143 [[nodiscard]] std::string
getSystem()
const {
return system; }
144 [[nodiscard]] std::string
getName()
const {
return name; }
146 [[nodiscard]] std::string
getG4Name()
const {
return g4name; }
165 [[nodiscard]] std::string
getType()
const {
return type; }
171 [[nodiscard]] std::string
getMaterial()
const {
return material; }
172 [[nodiscard]] std::string
getEMField()
const {
return emfield; }
178 [[nodiscard]] std::string_view
getColor()
const {
return color; }
180 [[nodiscard]]
bool isVisible()
const {
return visible; }
181 [[nodiscard]]
int getStyle()
const {
return style; }
187 [[nodiscard]] std::string
getPos()
const {
return pos; }
188 [[nodiscard]] std::string
getRot()
const {
return rot; }
189 [[nodiscard]] std::string
getShift()
const {
return shift; }
190 [[nodiscard]] std::string
getTilt()
const {
return tilt; }
201 [[nodiscard]] std::string
getCopyOf()
const {
return copyOf; }
242 void setColor(std::string c) { color = std::move(c); }
std::shared_ptr< GLogger > log
Geometry volume record loaded into a GSystem.
std::string getDescription() const
void resetMotherName(std::string m)
Override the mother name (placement parent) after loading.
GVolume(const std::shared_ptr< GLogger > &log, const std::string &system, std::vector< std::string > pars, const std::string &importPath=UNINITIALIZEDSTRINGQUANTITY)
Construct a volume from a serialized parameter vector.
std::string getRot() const
void setGIdentity(std::string g)
Override the identity string after loading.
void setColor(std::string c)
Override the color after loading.
std::string getGIdentity() const
void assignG4Names(const std::string &g4n, const std::string &g4m)
Assign Geant4 names after all volumes are loaded.
std::string getCopyOf() const
virtual ~GVolume()=default
Virtual destructor (safe deletion through base pointers).
virtual std::unique_ptr< GVolume > clone() const
Polymorphic deep-copy.
bool getExistence() const
std::string getImportedFile()
Return the import filename (path) for imported volumes.
std::string getEMField() const
std::string getPos() const
std::string getShift() const
std::string getDigitization() const
std::string getName() const
void modifyExistence(bool e)
Enable or disable this volume in the final assembled world.
std::string getParameters() const
std::string getMaterial() const
void setDigitization(std::string d)
Override the digitization label after loading.
std::string getG4Name() const
void applyTilt(std::string t)
Apply an additional rotation to this volume.
void applyShift(std::string s)
Apply an additional translation to this volume.
std::string getSystem() const
void setMaterial(std::string m)
Override the material name after loading.
std::vector< double > getDetectorDimensions() const
Returns numeric detector dimensions parsed from the parameters string.
friend std::ostream & operator<<(std::ostream &stream, const GVolume &)
Stream operator used for logging volume summaries.
std::string getType() const
std::string_view getColor() const
double getOpacity() const
std::string getG4MotherName() const
std::string getMotherName() const
std::string getSolidsOpr() const
std::string getTilt() const
#define UNINITIALIZEDSTRINGQUANTITY
vector< double > getG4NumbersFromString(const string &vstring, bool warnIfNotUnit=false)