Geant4 Version:
Geant4 version Name: geant4-10-07-patch-01 [MT] (5-February-2021)
<< in Multi-threaded mode >>
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
: NIM A 835 (2016), 186-225
WWW : http://geant4.org/
Operating System:
MacOS 12.6.8
I am looking for advice on debugging some problems.
The problems are as a result of trying to use a python program that uses lxml to process a large GDML file and for a specified volume creates a directory structure with one directory per volume.
I am testing on a old gdml for CERN Alice experiment and specifying the name ‘Dipole’. As Dipole is actually an assembly in the main Alice gdml file an extra volume is created.
<volume name="rootDipole"><materialref ref="G4_AIR"/><solidref ref="WorldBox"/><physvol name="PV-Dipole"><volumeref ref="Dipole"/><positionref ref="center"/></physvol></volume>
(Similarly for sub assemblies but these are not referenced when trying to load Dipole into Geant4)
I am getting Exceptions in checking for overlapping volumes eg
-------- WWWW ------- G4Exception-START -------- WWWW -------
*** ExceptionHandler is not defined ***
*** G4Exception : GeomVol1002
issued by : G4PVPlacement::CheckOverlaps()
Overlap with volume already placed !
Overlap is detected for volume av_4_impr_1_DL0_pv_12:13 (G4Box)
with av_4_impr_1_DC11_pv_5:6 (G4Tubs) volume's
local point (463.087,-295,96.6925), overlapping by at least: 23.4067 cm
NOTE: Reached maximum fixed number -1- of overlaps reports for this volume !
*** This is just a warning message. ***
-------- WWWW ------- G4Exception-END -------- WWWW -------
Now I know that Geant4 munges physical volumes for Assemblies.
Proceeding messages are
Checking overlaps for volume av_4_impr_1_DC11_pv_4 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC11_pv_5 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC11_pv_6 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC11_pv_7 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC12_pv_8 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC12_pv_9 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC12_pv_10 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DC12_pv_11 (G4Tubs) ... OK!
Checking overlaps for volume av_4_impr_1_DL0_pv_12 (G4Box) ...
So by my reconning and looking at the Dipole_struct.xml I make
4_impr_1_DL0_pv_12 the first physvol referencing DL0
<physvol name="DL0_1" copynumber="1">
<volumeref ref="DL0"/>
<positionref ref="DL0_1inDCoilpos"/>
<rotationref ref="DL0_1inDCoilrot"/>
</physvol>
and av_4_impr_1_DC11_pv_5 the second physvol referencing DC11 i.e.
<physvol name="DC11_2" copynumber="2">
<volumeref ref="DC11"/>
<positionref ref="DC11_2inDCoilpos"/>
<rotationref ref="DC11_2inDCoilrot"/>
</physvol>
Looking at Dipole_define.xml
<position name="DL0_1inDCoilpos" x="-55.615730285644531" y="-244.72003173828125" z="0" unit="cm"/>
<rotation name="DL0_1inDCoilrot" x="0" y="-0" z="-61" unit="deg"/>
<position name="DC11_2inDCoilpos" x="-116.839111328125" y="-210.78335571289062" z="136.94999694824219" unit="cm"/>
<rotation name="DC11_2inDCoilrot" x="90" y="-29.000000000000011" z="-90" unit="deg"/>
My question is any advice on how I can check what I am seeing.
I strongly suspect there is a problem in my code but as the values used have been copied ( python deep copy ) of the elements in the original Alice.gdml file how come I am seeing overlaps. My understanding is CERN use Root rather than Geant4, is it less strict on overlaps?
Any other advice?
Files are available at CERN-Dipole-Test
I know the file does not look right in the FreeCAD gdml workbench but that is why I want to load into Geant4 for confirmation of what it should look like for debugging.