G4VUserDetectorConstruction
that is later passed to the G4RunManager
in the main()
function.
This approach makes impossible the reuse (beyond the copy and paste) of such a geometry to build another one (say, for instance,
that you want to use the geometry of a PMT you defined already in a new detector full of them).
To solve this problem, NEXUS adds an additional OO layer of abstraction by encapsulating the geometry descriptions in classes derived
from BaseGeometry
.