Varying thickness TGeoXtru in ROOT Geometry


Dear All,

Could you please guide me on how to use the Xtru geometry volume in the root geometry? I am particularly interested in varying the thickness of Xtru along the Z direction (thickness direction).

As I understood, the current Xtru available in root can perform, for example: If it is stepped like above, then:

<solids>

    <xtru name="SteppedThicknessXtruShape" lunit="cm">

      <twoDimVertex x="0" y="-0.75"/>

      <twoDimVertex x="10" y="-0.75"/>

      <twoDimVertex x="10" y="0.75"/>

      <twoDimVertex x="5" y="0.75"/>

      <twoDimVertex x="5" y="0"/>

      <twoDimVertex x="0" y="0"/>

      <section zOrder="0" zPosition="-10" xOffset="0" yOffset="0" scalingFactor="1"/>

      <section zOrder="1" zPosition="10" xOffset="0" yOffset="0" scalingFactor="1"/>

    </xtru>

  </solids> 

or

<solids>

    <xtru name="SectionScaledXtruShape" lunit="cm">

      <twoDimVertex x="-10" y="-0.75"/>

      <twoDimVertex x="10" y="-0.75"/>

      <twoDimVertex x="10" y="0.75"/>

      <twoDimVertex x="-10" y="0.75"/>

      <section zOrder="0" zPosition="-10" xOffset="0" yOffset="0" scalingFactor="0.5"/>

      <section zOrder="1" zPosition="-0.02" xOffset="0" yOffset="0" scalingFactor="0.5"/>

      <section zOrder="2" zPosition="0.02" xOffset="0" yOffset="0" scalingFactor="1"/>

      <section zOrder="3" zPosition="10" xOffset="0" yOffset="0" scalingFactor="1"/>

    </xtru>

  </solids> 

This means TGeoXtru can represent:

  • a straight extrusion;

  • a globally tapered extrusion;

  • an extrusion that shifts in X or Y;

  • an abrupt change between two globally scaled profiles using repeated Z sections.

However, how is it possible to represent geometry for a varying thickness, a case when

  • only one local region becomes thinner;

  • selected vertices moving while other vertices remain fixed;

meaning a change in polygon topology.

Because for standard TGeoXtru, changing scale changes every vertex.

Actually, I wanted to build a geometry volume like shown below as a single Xtru volume.

and from the back

Could you please guide me on how it can be possible?

Thank you.

Hello @mehul,

I will refer this to @agheata as the geometry expert.

Hi @mehul, TGeoXtru only offers a polygonal “blueprint” that can only be scaled and/or shifted, it does not allow to change the shape/vertices at different sections. For what you want, it looks like you should use either multiple volumes positioned adjacent to each other, or use Boolean subtractions. TGeoXtru is not appropriate for that.