Problem 1470 - GDML does not add assemblies of assemblies
Summary: GDML does not add assemblies of assemblies
Status: RESOLVED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: persistency/gdml (show other problems)
Version: 9.4
Hardware: All All
: P5 normal
Assignee: tatiana.nikitina
URL:
Depends on:
Blocks:
 
Reported: 2013-05-22 13:17 CEST by Nigel Hessey
Modified: 2014-10-15 11:22 CEST (History)
0 users

See Also:


Attachments
GDML input using an assembly of an assembly. (1.98 KB, application/octet-stream)
2013-05-22 13:17 CEST, Nigel Hessey
Details

Note You need to log in before you can comment on or make changes to this problem.
Description Nigel Hessey 2013-05-22 13:17:19 CEST
Created attachment 215 [details]
GDML input using an assembly of an assembly.

Geant4 allows assemblies to be made up of physvols and other assemblies; the GDML schema also allows this. An assembly of physvols works fine. However, I cannot get an assembly of an assembly to be added to the geometry.

I am using load_gdml from example G01, and the heprep viewer.

I attach a minimal gdml file illustrating the problem. I hoped to get 7 balls, but see only 3 (the physvol and the assembly, but not the nested assembly).

What am I doing wrong?
Comment 1 Witold.Pokorski 2014-05-26 09:27:51 CEST
Tatiana has kindly agreed to look into this.
Comment 2 tatiana.nikitina 2014-06-29 12:10:18 CEST
Dear Nigel,

Thank you for reporting this problem and for proposing the example.
I don't see errors in proposed GDML file. Also in the documentation(GDML user's guide)the part about how to use assembly is missing.
I will examinate this problem.


Best Regards,
Tatiana.
Comment 3 tatiana.nikitina 2014-10-14 15:22:48 CEST
Dear Nigel,

I have reproduced this problem, it is an error in G4GDML Reader, I will fix it.

Best Regards,
Tatiana.
Comment 4 tatiana.nikitina 2014-10-15 11:22:11 CEST
Dear Nigel,

By making different tests I found that error was in your assembly file.

   <physvol name="Ball600">
        <volumeref ref="BallC" />
      </physvol>

      <physvol name="Ball300">
        <volumeref ref="BallB" />
      </physvol>

      <physvol name="BallCentre">
        <volumeref ref="BallA" />
      </physvol>

All physical volumes are positioned in the centre of your system coordinates, this way you see only 3 boxes. You need move one of assembly by adding position or/and rotation to physical volume. For example : 

      <physvol name="Ball300">
        <volumeref ref="BallB" />
         <position name="Dumb5" z="300"/>
      </physvol>

Best Regards,
Tatiana