GeantTips

From Mu2eWiki
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

Duplicate volume names

In G4 it is legal to create multiple logical volumes with the same name. For many purposes this is just fine; in particular G4 itself will work just fine. However if you do this there is one feature of G4 you must never use or it will silently produce incorrect results and without warning.

The class G4LogicalVolumeStore provides a member function:

G4LogicalVolume* G4LogicalVolumeStore::GetVolume( G4String const& );

This function returns a pointer to the *first* G4LogicalVolume whose name matches the G4String argument. Here "first" means the first volume encountered by looping over the store. If there are multiple volumes with the same name you can never access the second or subsequent volumes this way.

If you need to do something to all of the volumes with the same name, you need to loop over the volume store and find each match yourself.

G4 Solids unknown to ROOT (and therefore ROOT based display programs)

As of August 2024 the following G4 solids were not supported by ROOT

G4Tet  (tetrahedron)
Generic polycone and polyhedron
Twisted solids
CSGfaceted 
multi-union
displaced solid

The list may not be fully complete. Please take that into account when using them in the Geant4 code defining the geometry. In general it is a good idea to verify if a solid that has not been used in the geometry is displayable by a display program.