Removing part of a TGeoVolume object


I have to build a volume which is made of the intersection between a rotated (by 45 degree) box (which holds other volumes) and another box. I know how to intersect shapes, but not volumes, as it used to be possible with geant321.

How can I do that? The normal solution of intersecting shapes I found in the root pages does not fulfill my needs, I need to remove part of a volume.



Hi Luiz,

You mean tou want to intersect also the content of the inclined box with the other shape ? This was the feature “MANY” in GEANT3 and it is supported in ROOT modeller but I would never advice using it (TGeoVolume::AddNodeOverlap). I agree it is sometimes an easy way out but may lead to strange results if you don’t know exactly what you are doing.

How many levels depth is your first volume and what exactly do you want to put inside ?



It doesn’t have the purpose of simulation, it is just for visualization. I have tried this option (AddNodeOverlap) but it didn’t work since the part that should be deleted is still visible. The volume that should have some parts cut off has only one level, I mean, it is a box with several other placed in both side.

    _     _     _     _
 _| |__| |__| |__| |__
|_   __   __   __   __|
   |_|   |_|   |_|   |_| 


More or less like the schema above (I hope the forum keeps the format). So, I build one large box and one small one. Placed the big one in the center of the mother volume (vacuum medium) and several copies of the small one to form the slots where the fibers are inserted. Another problem is that after feeling it, I need to access some of these copies and change its color (a fired fiber) and I’ve also not been able to do so.

Thank you very much.

Luiz, if you just need to clip out a region for visualization, the functionality is offered by the OpenGL viewer where you can use a clipping plane or box. It is only that there is no API to control it - you have to do it by hand. You can also use transparency. To be able to change colors individually you have to create your copies as different volumes (even if not so efficient…)
There is no way to make a boolean operation between volumes implemented yet - so no visualization support neither… If you can workaround with boolean shapes it is OK - I realise though that this may not be the case for your example.


Ok, thank you very much, I’m afraid I’ll have to find another solution… too bad.

Thanks again.