How to use loop functionality in gdml file

Hii all,

I would like to ask here to some experts on the topic related to loop functionality in gdml file.

My question: how can I use a loop functionality in the GDML file to create a Volume, Physical volume and their Assemblies in the GDML file that automatizes the geometry creation in a bit maintainable manner?

I have attached a gdml file I have created for reference. Is there any way to do it in a better way I am not ware of it therefore I am seeking help.

If you could guide me on how can I implement loop functionality in the gdml file I have created, would be a great help.

much_passive.txt (33.8 KB)

<assembly name="Module_0">

      <physvol copynumber="0">
        <volumeref ref="TubesAssembly"/>
        <position name="position_0_0" unit="cm" x="0.0" y="0" z="0"/>
        <rotation name="rotation_0_0" unit="deg" x="0" y="0" z="0"/>
      </physvol>
      <physvol copynumber="1">
        <volumeref ref="TubesAssembly"/>
        <position name="position_0_1" unit="cm" x="0.55" y="0" z="0"/>
        <rotation name="rotation_0_1" unit="deg" x="0" y="0" z="0"/>
      </physvol>
      <physvol copynumber="2">
        <volumeref ref="TubesAssembly"/>
        <position name="position_0_2" unit="cm" x="1.1" y="0" z="0"/>
        <rotation name="rotation_0_2" unit="deg" x="0" y="0" z="0"/>
      </physvol>
 </assembly>

 <assembly name="Module_Layer_1">

      <physvol copynumber="0">
        <volumeref ref="Module_0"/>
        <position name="position_1_0" unit="cm" x="-17.6" y="0" z="0"/>
        <rotation name="rotation_1_0" unit="deg" x="0" y="0" z="0"/>
      </physvol>
      <physvol copynumber="1">
        <volumeref ref="Module_1"/>
        <position name="position_1_1" unit="cm" x="0.0" y="0" z="0"/>
        <rotation name="rotation_1_1" unit="deg" x="0" y="0" z="0"/>
      </physvol>
    </assembly>

_ROOT Version:6.30
Platform: UBUNTU 22.04 LTS

Hi,

I am adding in the loop the maintainer of the Geometry package, @agheata .

Cheers,
D

The ROOT GDML parser does not support loops, unfortunately.

@agheata

Okay, this also explains why I didn’t find any example of a loop functionality for gdml.

But, I would like to ask, maybe it is not relevant, but just for knowledge, Is there any future plan from the ROOT side to include loop functionality for a gdml?

Thank you. :smiley:

Hi,
No, it is not foreseen, the main target of the GDML support is to provide a persistent exchange format to/from Geant4 and not a geometry programming environment.