|
gsystem
|
Optical boundary (surface) definition belonging to a detector system. More...
#include <gmirror.h>
Public Member Functions | |
| GMirror (const std::string &system, std::vector< std::string > pars, const std::shared_ptr< GLogger > &logger) | |
| Construct a mirror from a serialized parameter list. | |
| virtual std::unique_ptr< GMirror > | clone () const |
| Clone the mirror (polymorphic deep-copy). | |
| virtual | ~GMirror ()=default |
| Virtual destructor (safe deletion through base pointers). | |
Identity and description | |
| std::string | getName () const |
| std::string | getDescription () const |
Public Member Functions inherited from GBase< GMirror > | |
| GBase (const std::shared_ptr< GOptions > &gopt, std::string logger_name="") | |
| GBase (const std::shared_ptr< GLogger > &logger) | |
| GBase (const GBase &)=default | |
| GBase (GBase &&) noexcept=default | |
| virtual | ~GBase () |
| GBase & | operator= (const GBase &)=default |
| GBase & | operator= (GBase &&) noexcept=default |
Friends | |
| std::ostream & | operator<< (std::ostream &stream, const GMirror &) |
| Stream operator used for logging mirror summaries. | |
Geant4 surface configuration | |
| std::string | getType () const |
| std::string | getFinish () const |
| std::string | getModel () const |
| std::string | getBorder () const |
| bool | isSkinSurface () const |
| double | getSigmaAlpha () const |
| bool | hasSigmaAlpha () const |
Optical properties | |
| std::string | getMatOptProps () const |
| bool | usesMaterialOpticalProperties () const |
| std::vector< double > | getPhotonEnergy () const |
| std::vector< double > | getIndexOfRefraction () const |
| std::vector< double > | getReflectivity () const |
| std::vector< double > | getEfficiency () const |
| std::vector< double > | getSpecularLobe () const |
| std::vector< double > | getSpecularSpike () const |
| std::vector< double > | getBackscatter () const |
| std::vector< double > | getTransmittance () const |
Additional Inherited Members | |
Protected Attributes inherited from GBase< GMirror > | |
| std::shared_ptr< GLogger > | log |
In gemc, any optical boundary is described as a "mirror", regardless of its use or reflective quality. A GMirror is constructed from a serialized list of parameters (typically read from a database row or ASCII file) and stores:
"SkinSurface" for the whole volume skin, or the name of a bordering volume for a border surface;matOptProps) or as explicit tables evaluated at photonEnergy.The module treats mirrors as system-local definitions: a system (GSystem) loads its own mirrors and volumes reference them by name through the GVolume mirror field.
| GMirror::GMirror | ( | const std::string & | system, |
| std::vector< std::string > | pars, | ||
| const std::shared_ptr< GLogger > & | logger ) |
| system | System name that owns this mirror (used for provenance/logging). |
| pars | Serialized mirror parameters (must match GMIRRORNUMBEROFPARS). |
| logger | Logger used for diagnostics and error reporting. |
The constructor validates pars length against GMIRRORNUMBEROFPARS and then parses the fields positionally, in the canonical order used by the loaders: name, description, type, finish, model, border, matOptProps, photonEnergy, indexOfRefraction, reflectivity, efficiency, specularlobe, specularspike, backscatter, transmittance, sigmaAlpha.
Validation performed here (fail fast, before any Geant4 object is created):
matOptProps or a non-empty photonEnergy table must be provided;photonEnergy length. Definition at line 26 of file gmirror.cc.
|
virtualdefault |
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| bool GMirror::isSkinSurface | ( | ) | const |
Definition at line 98 of file gmirror.cc.
|
inline |
|
friend |
Definition at line 131 of file gmirror.cc.