Sections and cutaways
Why we need an improved Boolean Processor
John Allison
University of Manchester

Sections (DCUT)
/vis/viewer/set/sectionPlane only ever worked on OpenGL (Mesa)
Bad news: it doesn’t work on today’s OpenGL (at least Mac and Linux; OK on Windows)
OpenGL’s clip plane clips too much

Cutaways
DAWNCUT is available as ever
Make a .prim file with DAWNFILE, then invoke dawncut, then view with dawn
Good news: the aforementioned change of behaviour means we can implement cutaways in OpenGL
You can see inside the detector

New commands
New commands control up to 3 cutaway planes
/vis/viewer/addCutawayPlane
/vis/viewer/changeCutawayPlane
/vis/viewer/clearCutawayPlanes
/vis/viewer/set/cutawayMode union|intersection
Implemented only by OpenGL driver at present

Slide 5
Animation commands
Slide 7
Slide 8
Boolean Processor
Proposal: use to implement generic sections and cutaways
Extend to all drivers
Insulate from OpenGL ambiguities
Operates on G4Polyhedron objects available in principle for each Geant4 shape
Currently doesn’t do cutaways
Not all shapes implemented
Other problems…

Current problems
Pathological cases cause failure and/or incorrect polyhedron objects
Subtraction of polyhedra with coincident or nearly coincident faces
Cascaded operations (Booleans of Booleans)
Continuing user problem reports
Signs of user fatigue
Sections and cutaways particularly troublesome
Prototype use code disabled

Proposal
G4Polyhedron Discussion Document
John Allison and Evgueni Tchernaiev
October 2005!!
Needs your support
Proposal
Reimplement existing functionality, including
Improved robustness
Caching of normals (for speed)
Offer the option of user-supplied normals (for space saving and speed)
Add a new Boolean operation – cut – that creates open polyhedra for cutaway views
Complete the implementation of polyhedron representations of all Geant4 shapes