Celeritas 0.7.0-dev.79+develop.b3dc2e108
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::g4org::ProtoConstructor Class Reference

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< UnitProto >
 

Public Member Functions

 ProtoConstructor (VolumeParams const &vols, bool verbose)
 Construct with verbosity setting.
 
SPUnitProto operator() (LogicalVolume const &)
 Construct a proto-universe from a physical volume.
 

Detailed Description

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.

Both "material" entries and "daughter" entries are labeled with the corresponding VolumeInstanceId. Multiple levels of volumes in the geometry hierarchy can be expanded into a single proto, so the local_parent field is set for every "material" entry created: the enclosing material entry ID normally, or an empty material entry if the volume is placed directly in the "background".

Member Function Documentation

◆ operator()()

auto celeritas::g4org::ProtoConstructor::operator() ( LogicalVolume const lv)

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.


The documentation for this class was generated from the following files: