Loading Geometry
Generally, a reader class is provided for each format. The reader is created, then told to load a file, and it creates a Registry object (see Registry) containing the model. The registry is the final object from a reader, and its top-most volume can be used for visualisation or other operations.
In directory pyg4ometry/test/gdmlG4examples/ChargeExchangeMC/
1import pyg4ometry
2r = pyg4ometry.gdml.Reader("lht.gdml")
3l = r.getRegistry().getWorldVolume()
4v = pyg4ometry.visualisation.VtkViewerColouredMaterial()
5v.addLogicalVolume(l)
6v.view()

Geant4 example GDML from ChargeExchangeMC example.
In directory pyg4ometry/test/flukaCompoundExamples
Note FLUKA geometry can be loaded but cannot be visualised directly without conversion to a Geant4 model. This is not necessary for loading, but shown here.
1import pyg4ometry
2r = pyg4ometry.fluka.Reader("corrector-dipole2.inp")
3flukaRegistry = r.flukaregistry
4
5geantRegistry = pyg4ometry.convert.fluka2Geant4(flukaRegistry)
6
7l = geantRegsitry.getWorldVolume()
8v = pyg4ometry.visualisation.VtkViewerColouredMaterial()
9v.addLogicalVolume(l)
10v.view()

FLUKA example of a dipole magnet.
In directory pyg4ometry/test/root2Gdml
1import pyg4ometry
2r = pyg4ometry.io.ROOTTGeo.Reader("example_lht.root")
3l = r.getRegistry().getWorldVolume()
4v = pyg4ometry.visualisation.VtkViewerColouredMaterial()
5v.addLogicalVolume(l)
6v.view()

ROOT example of Geant4’s LHT geometry.
In directory pyg4ometry/test/stl
STL files are typically used for a single watertight solid mesh. This mesh is
converted to a TesselatedSolid and then a logical volume which can be placed
in a geometry. In directory pyg4ometry/test/stl
.
import pyg4ometry
reg = pyg4ometry.geant4.Registry()
r = pyg4ometry.stl.Reader("utahteapot.stl", reg)
s = r.getSolid()
copper = pyg4ometry.geant4.MaterialPredefined("G4_Cu", reg)
l = pyg4ometry.geant4.LogicalVolume(s, copper, "utahteapot_lv", reg)
v = pyg4ometry.visualisation.VtkViewerColouredMaterial()
v.addLogicalVolume(l)
v.view()

In directory pyg4ometry/test/freecad
1import pyg4ometry
2r = pyg4ometry.freecad.Reader("08_AshTray.step")
3r.relabelModel()
4r.convertFlat()
5l = r.getRegistry().getWorldVolume()
6v = pyg4ometry.visualisation.VtkViewer()
7v.addLogicalVolume(l)
8v.view()
