Celeritas 0.6.0-110+develop.c7dc37d1
|
Recursively build ORANGE proto-universes from a LogicalVolume
.
More...
#include <ProtoConstructor.hh>
Public Types | |
Type aliases | |
using | SPConstObject = std::shared_ptr< orangeinp::ObjectInterface const > |
using | ObjLv = std::pair< SPConstObject, LogicalVolume const * > |
using | SPUnitProto = std::shared_ptr< orangeinp::UnitProto > |
using | ProtoInput = orangeinp::UnitProto::Input |
Public Member Functions | |
ProtoConstructor (GeantGeoParams const &geo, bool verbose) | |
Construct with verbosity setting. | |
SPUnitProto | operator() (PhysicalVolume const &pv) |
Construct a proto-universe from a physical volume. | |
Recursively build ORANGE proto-universes from a LogicalVolume
.
The input to this function is the output of LogicalVolumeConverter
. This class is responsible for "placing" the converted PhysicalVolume
by transforming its children. Depending on heuristics, the children are directly inserted into a UnitProto
as volumes (specifically, the logical volume becomes a UnitProto::MaterialInput
), or a LogicalVolume
is turned into a new UnitProto
that can be used in multiple locations.
auto celeritas::g4org::ProtoConstructor::operator() | ( | PhysicalVolume const & | pv | ) |
Construct a proto-universe from a physical volume.
We can use logical volume for the structure, but we need to associate the world physical volume ID.