Message: How to understand /geometry/test/recursive_test output Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None How to understand /geometry/test/recursive_test output 

Forum: Geometry
Date: 10 May, 2005
From: Emanuele Leonardi <Emanuele Leonardi>

I am creating a quite simple geometry setup: 16 cylindrical slices,
each spanning 1/16th of 360deg, are assembled to create a full
cylindrical ring.

This is (part) of the code I am using:


// Ring/slice dimensions
LeadRingZLength = 1.*mm;
LeadRingInnerRadius = 66.1*cm;
LeadRingOuterRadius = 96.*cm;

// Slice angular span
NPhiSlice = 16;
LeadSlicePhiAngle = 2*M_PI/NPhiSlice*rad;

// Lead Slice
G4Tubs* solidLeadSlice =
  new G4Tubs("leadSlice",LeadRingInnerRadius,LeadRingOuterRadius,
G4LogicalVolume* logicLeadSlice =
  new G4LogicalVolume(solidLeadSlice,Pb,"LeadSlice",0,0,0);

// Veto Lead Ring
G4Tubs* solidLeadRing =
  new G4Tubs("leadRing",LeadRingInnerRadius,LeadRingOuterRadius,
G4LogicalVolume* logicLeadRing =
  new G4LogicalVolume(solidLeadRing,Vacuum,"LeadRing",0,0,0);

// Position Lead Slices inside Lead Ring
for ( G4int iphi = 0; iphi < NPhiSlice; iphi++ ) {
  G4double Dphi = iphi*LeadSlicePhiAngle;
  G4RotationMatrix* rotationSlice = new G4RotationMatrix;
  G4VPhysicalVolume* physiLeadSlice =
    new G4PVPlacement(rotationSlice,0,logicLeadSlice,

// Position Lead Ring in World volume
G4VPhysicalVolume* physiRing =
   new G4PVPlacement(0,0,logicLeadRing,"LeadRing",logicWorld,false,0);


A visual inspection of the result looks ok, but if I run
/geometry/test/recursive_test I get a large number of errors like:

GeomTest Error: SolidProblem
    Spurious entering intersection point
    Solid name = leadSlice
    Local position =          94.08   -2.7153e-14             0 cm
GeomTest Error: SolidProblem
    Spurious exiting intersection point
    Solid name = leadSlice
    Local position =          94.08   -2.7153e-14             0 cm
GeomTest Error: Overlapping daughter volumes
    The volumes LeadSlice[1] and LeadSlice[0],
    both daughters of volume LeadRing[0],
    appear to overlap at the following points in global coordinates: (list truncated)
       length (cm)    ---------- start position (cm) -----------   ----------- end position (cm) ------------
           28.6304             69.12      -28.6304        -0.049            69.12             0        -0.049
           19.1038             94.08      -19.1038        -0.045            94.08             0        -0.045
             26.88             92.16        -26.88         -0.04            92.16             0         -0.04

I assume that these errors come from some mathematical approximation
on the exact positions of the side surfaces of adjacent slices.

I have here a few questions:

- Are these errors going to affect my simulation and how?

- What are the "Spurious entering/exiting intersection point" cited in
the error messages?

- How do I distinguish between an approximation error from a real error?
To clarify the questions: for an approximation error I would expect to
see the overlap volume size measured by some very small number, while
here all overlaps are of the order of a few cm, or at least this is
what I understand from the messages.

- How should I handle these errors? Should I subtract some very small
number from the angular span of a slice so that the edges do not touch?
How is this handled by other developers?

- Where can I find some manual/tutorial dedicated to the handling of
these errors? Something like "G4 Geometry Debugging for Dummies" ;-)



Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

 Add Message Add Message
to: "How to understand /geometry/test/recursive_test output"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews

[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]