Celeritas
0.5.0-86+4a8eea4
|
Create an ORANGE geometry model from an in-memory Geant4 model. More...
#include <Converter.hh>
Classes | |
struct | Options |
Input options for the conversion. More... | |
struct | result_type |
Public Types | |
Type aliases | |
using | arg_type = G4VPhysicalVolume const * |
using | MapLvVolId = std::unordered_map< G4LogicalVolume const *, VolumeId > |
Public Member Functions | |
Converter (Options &&) | |
Construct with options. | |
Converter () | |
Construct with default options. | |
result_type | operator() (arg_type) |
Convert the world. | |
Create an ORANGE geometry model from an in-memory Geant4 model.
Return the new world volume and a mapping of Geant4 logical volumes to VecGeom-based volume IDs.
The default Geant4 "tolerance" (often used as surface "thickness") is 1e-9 mm, and the relative tolerance when specifying a length scale is 1e-11 (so the default macro length scale is expected to be 100 mm = 10 cm). That relative tolerance is much too small for any quadric operations or angular rotations to be differentiated, so for now we'll stick with the ORANGE default tolerance of 1e-8 relative, and we assume a 1mm length scale.