Dear all,
I am trying to write out the geometry I have created in G4 into the GDML format via
G4GDMLParser parser;
parser.SetRegionExport(true);
parser.Write("output_file.gdml",
G4TransportationManager::GetTransportationManager()
->GetNavigatorForTracking()
->GetWorldVolume()
->GetLogicalVolume());
However, my geometry contains a G4UnionSolid
from a G4Sphere
and G4Tubs
:
auto bump_sphere = new G4Sphere("bumps_sphere", 0, 1, 0, 360 * CLHEP::deg, 0, 360 * CLHEP::deg);
auto bump_tube = new G4Tubs("bumps_tube", 0, 1.5, 0.5, 0., 360 * CLHEP::deg);
auto bump = new G4UnionSolid("bumps", bump_sphere.get(), bump_tube.get());
auto bumps_cell_log = new G4LogicalVolume(bump.get(), material_solder, "bumps_log");
which is placed physically as a parametrized volume, repeating itself on a 2D grid:
auto bump_box = new G4Box("bump_box", 100.0, 100.0, 0.5.);
auto bumps_wrapper_log = new G4LogicalVolume(bump_box.get(), material, "bumps_wrapper_log");
G4VPVParameterisation* bumps_param = new Parameterization2DG4(50, 25.0, 50, 0, 0, 0);
G4PVParameterised* bumps_param_phys = new ParameterisedG4("bumps_phys",
bumps_cell_log.get(),
bumps_wrapper_log.get(),
kUndefined,
100,
bumps_param.get(),
false);
When I try to write out this geometry, I get the following exception:
-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : InvalidSetup
issued by : G4GDMLWriteParamvol::ParametersWrite()
Solid 'bumps' cannot be used in parameterised volume!
*** Fatal Exception *** core dump ***
**** Track information is not available at this moment
**** Step information is not available at this moment
-------- EEEE -------- G4Exception-END --------- EEEE -------
*** G4Exception: Aborting execution ***
Aborted (core dumped)
Is this a general restriction of GDML or am I doing something wrong here?
Thanks for your input!
/Simon