Navigation
index
modules
|
next
|
previous
|
env
»
Env documentation
»
Quick search
Enter search terms or a module, class or function name.
Links
env
tl
repo
edocs
heprez
tl
repo
hdocs
backup status
Content Skeleton
Installing
env
Base Tools
LOG
TODO
Sys Admin
Plotting
SCM
Trac
ROOT
Sphinx Extensions
Matplotlib
nose
SVN
Numerical Python, numpy et al
PyPy : faster python
Tools
MySQL hotcopy
MySQL Tools
SQLite
DB scripts
QXML
Fossil
Java Demos
cuda
pycuda
geant4
Geant4 Release Notes
Geant4 GPU
Geant4 Profiling
Geant4 Release Notes
Verbosity
Geant4 Documentation
GiGa
Geant4 API
Geant4 Optical Photon
Geant4 Processes
Medical Communities Using Geant4 (esp. optical photon)
Geant4 Geometry Export
g4py
nuwa
Geant4 Event
Geant4
Geant4 Multi Threading
muon_simulation
chroma
llvm
Graphics
cuda
opencl
Linux
Cloud
Package Management
ui
debugging
mercurial
javascript
nuwa
ccgpu
pygame
zeromq
doc
Python
osx
hg
simoncblyth.bitbucket.org
numpy
Muon Simulation Presentation
optix
This Page
Show Source
Previous topic
PyCUDA Memory
Next topic
Geant4 Release Notes
geant4
ΒΆ
Geant4 Release Notes
Schedule
4.9.2
4.9.3
4.9.4
4.9.5
4.9.6
Geant4 GPU
Geant4 Particle Transportation on GPU
Status of the GPU Simulation prototype
GPU computing in medical physics: A review
Geant4 Profiling
callgrind (too slow for G4 usage probably)
Geant4 Computing Performance Task Force (G4CP Task Force)
Talk: Geant4 Performance Monitoring
Geant4 Release Notes
Schedule
4.9.2
4.9.3
4.9.4
4.9.5
4.9.6
Verbosity
10k lines of G4ParticleDefinition
GiGa/G4RunManager verbosity control
DetSim GiGa usage
From python control
Debug
Geant4 Documentation
GiGa
ipython GiGa/Gauss introspection
GiGaEventActionCommand
GiGaRunActionCommand
breakpoints
Geant4 API
G4EventManager Overview
Optional User Actions
G4EventManager::DoProcessing
G4UserEventAction
G4UserStackingAction
ClassifyNewTrack()
NewStage()
PrepareNewEvent()
Examples DsFastMuonStackAction, DsOpStackAction, ExampleN04
G4UserTrackingAction
G4UserSteppingAction
G4SDManager
ProcessHits
Registering hits on sensitive detectors
Hits
Sensitive Detector
Geant4 Optical Photon
Production of OP (/processes/electromagnetic/xrays)
Propagation of OP (/processes/optical)
Hypernews on opticalphotons
Min step size for optical photons
Geant4 OP processes
g4optical/include/G4OpProcessSubType.hh
G4OpBoundaryProcess.hh patch
DayaBay DetSim specializations
env:source:dybgaudi/trunk/Simulation/DetSim/src/DsG4OpBoundaryProcess.h
env:source:dybgaudi/trunk/Simulation/DetSim/src/DsG4OpBoundaryProcess.cc
env:source:dybgaudi/trunk/Simulation/DetSim/src/DsG4OpRayleigh.h
env:source:dybgaudi/trunk/Simulation/DetSim/src/DsG4OpRayleigh.cc
Geant4 Processes
Medical Communities Using Geant4 (esp. optical photon)
Open GATE
Geant4 Geometry Export
Overview
Objective
Requirements
Subfolder purposes
Geometry Representations
Commercial Converters
Introduction Resources
Solid LV PV
Geometrical Hierarchy
Touchables
Geant4 Geometry Exports
gdml
folder
vrml2
xdae
VRML2
Geant4 VRML2 Tools
VRML2FILE Geometry Export
TODO
GiGa python export
G4VRML2FileViewer::SendViewParameters
G4VRML2FileViewer::DrawView
export settings
visualization/management/src/G4VisManager.cc
where is the export steered from
export warnings
vis recursion
export output
booleanprocessor
scene scaling
examine the g4_00.wrl comments
Writing polyhedron primitives
vrml2file driver
source/visualization/VRML/include/G4VRML2FileSceneHandler.hh
VRML2 File Format
VRML2 IndexFaceSet
meaning of
solid FALSE
VRML2 .wrl inspection
Rebuild Geant4 VRML2FILE Visualisation lib
Geant4 Patch to see which solids give trouble
Annotated Traverse
Explore ShapeDB
Overview
Create Geometry DB from .wrl
Open Geometry DB
Find the big volumes
Ordering by decreasing extent in x
shape counting
shape join xshape
xshape
ranging the cetroids
primitive binning
point
Primitive histogramming the 1.2M entries
xshape
instant reality player
References
Navigation Tips
Primitive Web Interface
EAI java Interface
Navigation
Keyboard Mapping
Fully Overlapping volumes, due to imprecise export
executive summary
G4Point3D streaming
Probable Fix
distinct volume count discrepancy
confirmation of shape overlapping
check detdesc source xml
correlate extents of exported shapes with expectations
initial hypothesis
Look for others with those names
Scene Attribute edits via web interface
Volume selection with the dupes and context volumes
highlight the dupes
first degenerate pair
VRML2FILE export debugging
TODO
Observations Summary
Examining raw export log with pv dumping
Ordering Check
parse the log
exportdbg.txt
Noisy 15
Skip the big 3 + lowZ 2
4539 subtraction tubs with holes
4550 + 4565 are cables
scene for the noisy ones
noisy 15 with 4550 highlighted
4550 detdesc
4550 at the point level
Viscinity
Polyhedron
Relation Between Vertices, Edges and Faces
VRML2FILE Polyhedron Export
VRML2FILE implementation
Observations
Visualization Steering
stacktrace from draw command to graphics primitives
Traversing scene data
runDurationModelList
G4PhysicalVolumeModel
DescribeYourselfTo
GetPolyhedron
CreateSurfaces
CreatePolyhedron
Geant4 Geometry in Collada
DAE TOOLS
Planning Geant4 Collada Exporter
About Collada
Geant4 docs
How to implement ?
Triangulate the output geometry ?
Collada Double Sided Faces
Sketchup DAE exporter
XML format
CADMesh : From CAD files into Geant4 G4TessellatedSolid
XMLDAE : raw G4DAE node structure
Questions
Reversible Char Swaps
Raw Node Tree
Compare daenames with wrlnames : tracing the id
PyCOLLADA Internals
XML parsing into IndexLists
collada._loadNodes
scene.loadNode
Node.load
Binding objects to a list of transforms
SceneNodes
PyCOLLADA Triangulation
WRL Crosscheck : reveals mangled vertex coordinates
Vertex Coordinate Debug : finding the invertex rotation matrix
Coordinate Systems
Collada
Geant4
GDML
VRML2
GDML Geometry Trace
Debug PV1
near_rock
vertices
pycollada Access
PV0 WorldBox
PV1 near_rock untransformed
PV1 near_rock transformation
PV1 primitives
Unsuccessfull diddling
reconcile PV1 vertices, VRML2 cf pycollada
PV1 VRML2 coordinates
Transformation Implementations
PyCollada Transformation Inconsistency
PyCollada Primitive Fix
G4DAEWriteStructure::MatrixWrite
G4GDMLReadStructure::PhysvolRead rotation inverted ?
G4Transform3D::G4Transform3D
PyCollada Recursive Transformations
Geant4 Transform handling
DAE cf WRL
Questions
Answered Questions
Create DAE DB
Attaching two DB in sqlite3
Consistent Volume counts
Volume index join between WRL and DAE tables in separate DB
Vertex Count Discrepancy for 1688/12230 volumes (14 %)
With first generation DAE makes no difference
Discrepancies grouped by geometry id
Caution System SQLite3 is glacial on N
Check GDML
Visual check of discrepants : lots of interesting shapes
Same process DAE then WRL : vertex counts match
Same process WRL then DAE : vertex counts match
Built Meshlab in order to read DAE and WRL
Nov 18 2013 : Same Process export : WRL then DAE
WRL coordinate roundings again
OOPS : FIX IS ON CMS02 BUT NOT BELLE7
max squared offset per volume, before VRML mm rounding fix
Nov 18 2013 : Same Process export : DAE then WRL
Nov 19 : recompile N Geant4 with patched VRML2
Nov 19 : Move Matrix fix from pycollada monkey patch to G4DAEWrite
DAE WRL comparison with invrot done in DAE writing
DAE Viz
Face Check
Investigate DAE/WRL code path differences
Polysmry for debug
Always Create Polyhedron
[Dec 3, 2013] Back to Face checking after MeshLab Visualisation Interlude
With Poly reuse : quick polysmry is matching
With poly reuse
DGV_20131204-1746 : after removing all extra poly creation
VGD_20131204-1806 : VRML first
Crossed Order Comparison
DAE cf WRL at code level
Compare G4DAE and VRML2 geometry handling code
BooleanProcessor
G4Polyhedron::SetNumberOfRotationSteps ?
Geant4
Collada To Chroma
Initial Shakedown
g4daeview
DAEVIEW FUNCTIONS
DEPENDENCIES
Delta : OSX 10.9.2 chroma virtualenv python, based off macports py27
G4PB : OSX 10.5.8 macports py26
G4DAE and G4DAEVIEW Development History
g4daeview.py
Usage Tips
Usage text
Event Loading/slicing tips
Receive ChromaPhotonList from Remote Geant4
Load/Save ChromaPhotonList
Screen Captures and apache publishing
Grab Screen Captures including GLUT menus
Partial geometry
Target Mode
interactive target selection
near/far clipping controls
ISSUES
solid picking
TODO
placemarks
markers
Viewpoint Bookmarks
ISSUES
Animation
interpolate between bookmarks
orbiting mode
animation control
photon propagation time control : interactive and auto scanning
remote control
raycast launch control
interactive switch to metric pixels presentation
screen capture
movie capture
Parallel/Orthographic projection
Presentation
G4DAEView Chroma
Single PMT Test
A Few PMTs and radial shield
g4daeview debugging
Tricks to work out whats gone wrong
Issue
Near behaving like far
Removing the scale kludge
Targetting outer volumes draw blanks
Near
Light control
Unproject
Trackball
Remote Control
Modes of operation
scaled mode
target mode
Scenarios
detail view
outside view
Lighting
G4DAEVIEW Lights
reference
Light Positioning
Controlling a Light’s Position and Direction
Understanding Lights
glumpy lights
refs
Daeview Dev Notes
Limitations
GPU Out-of-memory during BVH construction with full Juno geometry (50M nodes?)
Old Issues To Be Revisited
More Bizarrness
Animation
Reflectors
Bizarre
Interpolation
Interpolation Jumps (FIXED)
DAEVertexBuffer Dev Notes
Interop
Too Many Moving parts
AoS or SoA
Data flow
What needs to be shared between CUDA and OpenGL ?
Single VBO approach (array-of-structs)
NVIDIA Example
Targetted googling
andyswarm
Separate VBO approach (struct-of-arrays)
glBindBuffer
OpenGL Drawing Techniques
glDrawElements
glDrawElements offset
glPushClientAttrib
glMultiDrawElements
Read OpenGL buffer back into numpy arrays
DAEPhotonsShader
OpenGL Shader Language
GLSL 120
GLSL 120 Extensions
GL_EXT_gpu_shader4
GL_EXT_geometry_shader4
glVertexAttribIPointer API hunt
GL_NV_vertex_program4
Fixed Pipeline and Shaders
Bitwise operations glsl
line strip finnicky
shaders and integers dont mix in version 120
Photon Level Debug
Issues
spagetti style and surface step selection incompatible
Pushing Up the Slots causes BUS error (AVOIDED)
Single Photon Debug
Photon Picking
Make Bialkali absorb rate ?
Quite a lot of many step histories
Visual distinction for zombie photons
Difficult to zoom into closeups
Photon Appearance
ESR Step start Asymmetry
Material Step Starts
Discrepancy between presentation modes (FIXED)
Material Selection not compatible with Spagetti style
Timeconstant for reemitted photons ?
Infinite wavelength for reemitted photons (FIXED)
Disappearing/Reappearing Photon 3126 : FIXED
Missing NO_HIT : FIXED
Dropouts : 91 long bouncers out of 4165
Fixed Issues
Repeatability/Seeding Doubts
Techniques
daephotonsanalyzer.sh
truncation
debugphoton
history selection
Restrict to photons with n-step histories
Restrict birth time range, allowing to examine cohorts
cohort mode, third value in cohort string
photon highlighting
style playoff
Material Pair Debug
Thoughts on how to proceed
Geant4 step level comparison
Machinery
DAEPhotonsAnalyzer.get_material_pairs
Both end material check
Implement step selection based in
from
and
to
materials
Broken chain
Examine the big hitters
Observations
Long lived
Propagated Flags Mismatch
G4DAEView Performance
Pushing to max-slots 100 bogs down performance
Apple OpenGL Profiler
LINE_STRIP slow performance report
Optical Photon Marshalling
Overview/Issues
Numpy Serialize into buffer ?
Efficient Selection of Numpy array, eg just the hits with PMTID > 0
Current lifecycle of optical photon data
Photon Data
Using C++ placement new for dummy OP ?
Alternate Serialization/Compression to ROOT TObject
Propagate Timeouts
Objectives
mock001 : normal incidence NAN_ABORT
mock001 : axis aligned photons issue
Code Improvements
Dependencies
DONE
Issues
timeouts
mock photons
vbo vs non-vbo hit count difference
mocknuwa propagation testing over network
file based propagation testing
visualize initial positions by holding propagation
vbo propagation
non-vbo propagation
threading sensor ids back to caller (vbo)
threading sensor ids back to caller (non-vbo)
BVH Splits
Datamodel
Performance Data Model examples
MySQL Performance Schema
Instrumenting Python Code
Profiling Python
Projects for instrumentation
Graphite : Graphing infrastructure
whisper
G4DAEView geometry cache
Fixed Problem was the time sorting again
Serialization
Current Solution : NPY
Alternatives serialization/deserialization to ROOT ?
NEXT
contenders
comparisons
capnproto
cereal
boost serialization
G4DAEView Dependencies
Dependencies Tree
Alternatives to GLUT ?
Implications of ancient OpenGL 2.1
GLFW
glfwcy with PyOpenGL and OpenGL 3.2
glfw python wrappers
migration from glumpy to glfw
G4DAEView Ideas
JSON State vending
Tight zooming not easy
Attempts to do rotation interpolation with no geometry visible cause NaN fails
During VBO structural changes
Live Style Change issues FIXED
Step Interpolation Visualization IMPLEMENTED
What about non-Chroma devices ?
Geometry Shaders
Node selection only applies to to particular geometry dyb/juno/lxe
Live Updating Test
worker
client
Next
improved structuring
Histogramming
issues
Photon provenance
ChromaOtherList for transport over ZMQ
Geant4 Chroma Process
Avoid Geometry Duplication
interactive target switching
NEEDS OVERHAUL
smaller things
G4DAEView Architecture
Division of concerns
G4DAEView Issues
Fallovers
Photon Presentation
NAN Abort Photon
VBO Propagation Call Sequence needs simplification now that using NPL
G4DAECHROMA transport testing
Same Node Success
Client sends workload to broker
Worker polls the broker for smth to do
Normal Topology Success, via tunneling both client and worker
G4DAEChroma Memory Leak
Executive Summary
Initial Observation of 30G VSIZE
Large VSIZE
Not ballooning to 30G
vmmap
vmmap -resident
G4DAEChroma.cpp : ZMQResponder, CUDA kernel call
Progress
Motivation
Dependencies
Initialization
Propagation
NPY Geometry Cache
Potential Dependencies
CuPP
boost::program_options
boost::numeric::ublas::vector<double>
cuda::thrust
CUDA Unified Memory
Other Libs
G4DAEChroma CUDA tune
Small Problem Size
Large problem size
Variation of time with workload
Larger than 512 ?
Straggler Mode
Propagate Queues
Visualizing GenSteps
swift
Apples SceneKit uses ColladaDOM it seems
daeserver
G4DAESERVER
gather pieces
ideas
bits of geometry
xdae
XDAE
pycollada check
xdaefile
XDAEFILE
Compare Original with DAE WRL output
SOLID names
208 z-shifts of +0.1 mm
26 Solids with +Z 0.1 mm shifts
GDML
GDML
Overviews
Extensions
Geant4 GDML
Module Examples
Module Sources
Building GDML module in Geant4
Schema Highlights
GDML Approaches Explored
Export GDML
GDML is switched off in NuWa
Geant4 level manual GDML build
Subsequent Geant4Py build misses libG4persistency
GDML Manual Install lib and includes
GDML via GiGa
Manually install G4DAE includes into NuWa/G4 location
Build modified GaussTools
Perform Export creating 3.2M file
NuWa integration GDML export functionality
How to preprocessor protect entire classes with NuWa/cmt ?
Cursory Look
Obnoxious uniqing
Annoying physvol name truncation + uniqing
Rebuild GDML with simple fix
Confirm the fix
Consolidated DAE and GDML export
GDML Examination
TODO
physvol
VRML2 GDML mismatch ?
Maybe the AD split happedns here
Pick a volume to see whats going down in the GDML
Compare VRML2 shape names with physvol names
volume names
GDML from ROOT
Not enabled by default
rebuild root
test GDML load into ROOT
ROOT GL Viewer
ROOT GDML DOCS
GDML from Geant4Py
GDML Export Implementation
detdesc
NuWa DetDesc
Geant4 Geometry Others
Other Geant4 Geometry Approaches
STEP
Geometry Source
HepRep
Geant4 VMC
InSTEP
DetDesc Creation of Geometry
DetDesc Geometry Dumping
Geant4 CAD interface
Importing CAD models as tesselated solids
STEP export from Geant4 ?
G4tgb
FreeCAD
ESA uses restrictive licences
CADMesh
Meshlab
VCGLIB
salome
Geant4 Geometry and Visualization
Drivers
DAVID
OpenGL
GaussTools
Memory Corruption
export
Export Usage
EXPORT GEANT4 GEOMETRY INTO VRML, GDML AND DAE
issue : not producing exports on G5
Relation of export-name to GCache idp dir
How the export works
Explore Id Mapping export
Notable Exports
Belle7 down, so custom copy
Getting Exports
Getting CerenkovStep/ScintillationStep files
Administrator: Placing Exports
Export Environment Setup
ACTION CONTROLLED BY ENVVARS
BACKGROUND
FUNCTIONS
MALLOC DEBUGGING
Export All
VRML2 sensitivity
Order dependance : interference between DAE and WRL exports
Comparing the interfered
DB extend takinh ages and filling disk
Add Sequence flexibility
renders
Example Geometry Renders
Mac OS X Preview
MeshLab
materials
Material Properties
Objective
To Checkout
G4 Docs
Interfacing to Chroma
Check Length units for ABSLENGTH etc.. in G4 and Chroma
Chroma Units
G4 Examples
Units
G4 Optical processes
Definitions from Peter Gumplinger
G4 Material Properties in NuWa
property key usage
NuWa surface properties
Optical Surface modelling in G4
GDML persisting optical surface properties
G4LogicalSkinSurface and G4LogicalBorderSurface
Some Hardcoded reflectivity
Key discoverability
GDML persisting properties
Checking DAE Properties
What about constant properties ?
Need to propagate surface properties too
Recent Reflectivity Change
properties too
how to position the elements inside DAE extra
Completeness ?
surfaces
G4LogicalBorderSurface
GDML/G4DAE persisted form
Issues
Refs
Geant4 Usage of G4LogicalBorderSurface
PV Ambiguity Issue
How deep does the ambiguity bug go ?
Check VMRL code
PV CopyNo
DAE CopyNo
DAE Debug
GiGa Creation
Ambiguity By Design ? Detdesc XML would suggest so
BorderSurface Debug during traverse
G4OpticalSurface
G4DAE surface
Geant4 Surface
DAE/GDML persisted
Chroma Surface
Surfaces Roundtrip
Info flow
Issue : Model mismatch
Issue : Missing bordersurface
detdesc level
xmldae level (raw DAE XML)
daenode level
Use of surfaces by Chroma
surface association
propagate_at_surface
g4py
Geant4Py
Executive Summary
Sources/Examples
g4py configure has issues
Install on N
Build needs geant4 global libs
Wrong boost_python
On C
Finally
But still issue on C
FUNCTIONS
G4PY Examples
emplot
nuwa
Geant4 Patch
Need for patching
Notes
LCG Geant4 patch machinery within NuWa
LCG apply_patch
man patch
Material Property Introspection patch
Usage in future geant4.10 GDML persisting
Backport GDML Property writing
2014/02/19 compare G4MaterialPropertyVector with G4PhysicsVector
2014/02/19 Backport G4PhysicsVector API to patch G4MaterialPropertyVector
2014/02/19 Incomplete Rebuild
2014/02/18 Geant4 Dybinst Rebuild
Integration of Export Functionality into NuWa
Commits
Patches
Forking techniques
CMT gymnastics
Dependencies
Geant4 GDML Building
Geant4 Patches
Geant4 Additions
G4DAE builder or extended patch ?
LCG Builder-ization
Arghh existing patch touches MPV
Modifications
relax
lhcb
geant4 liblist
docs
libname.map
dybgaudi
installation
export_all test in dybx installation
do nothing test in vanilla dyb installation
nuwa.py integration
dae updating
Make sense of dirty patch
Problems
Moral
Reproducing a patch
Extend diff.py to dump single file patches
Create
patch-;patch-match
test patching
Four dirty patches
There are more
.orig
Check other geant4.9.2.p01.patch2
My dyb.old Geant4 mods were ontop of two patches
Create Incremental Patch
Changes
VRML
Geant4 Event
Geant4 EventManager
G4EventManager::DoProcessing
G4EventManager::StackTracks
Geant4 StackingAction
Documentation
G4UserStackingAction
Documentation Extracts
ClassifyNewTrack
NewStage : deal with the wait stack
PrepareNewEvent
StackingAction Source
StackingAction examples
Geant4 StackManager
G4StackManager.hh
G4StackManager::G4StackManager
G4TrackStack
G4StackedTrack
G4Track
G4DynamicParticle
G4StackManager::PushOneTrack
G4StackManager::PopNextTrack
External Propagation Intervention Possibilities
Standard Operation
G4StackManager::ReClassify
PrepareNewEvent
Geant4 TrackingAction
Chroma PhotonTrackingAction::PreUserTrackingAction
PreUserTrackingAction examples
G4UserTrackingAction
Examples
PostUserTrackingAction examples
Geant4 SteppingAction
Geant4 SteppingManager
G4SteppingManager::Stepping
Geant4 TrackingManager
G4TrackingManager.hh
Chroma PreUserTrackingAction
G4TrackingManager::ProcessOneTrack (98% OF TIME IN HERE)
Geant4 Navigator
Geant4 Process
Overview
G4 Stepping, Process mechanics
What is a Process?
What is a ParticleChange?
External Shoe-horning
Process Example : G4OpRayleigh
Where are the canonical calls to GetMeanFreePath
G4ProcessManager
G4SteppingManager
G4TrackingManager
G4EventManager
Modelling Processes
Tracking of Photons in processes/optical
Absorption
ABSLENGTH
G4OpAbsorption::PostStepDoIt
G4OpAbsorption::GetMeanFreePath
G4VDiscreteProcess::PostStepGetPhysicalInteractionLength
G4VProcess::PostStepGPIL
G4VDiscreteProcess::PostStepGetPhysicalInteractionLength
processes/management/include/G4VProcess.hh
Rayleigh Scattering
G4SteppingManager::GetProcessNumber
How are the relevant processes determined ?
What distribution is used for OP times, energy
DsPmtSensDet::ProcessHits
Where do the times come from ?
G4Transportation::AlongStepDoIt
G4SteppingManager::DefinePhysicalStepLength
G4SteppingManager::DefinePhysicalStepLength
Only 6 processes ?
2.4.4. Interaction with Physics Processes
G4Transportation
NuWa hookup
PhysicsList setup
Impingement
Wrapper Process
G4WrapperProcess usage for event biasing
Geant4 External Propagation
Remit
External Propagation Requirements
Alternate Early Photon Collection
GPU Hit formation Approach
Pros
Cons
How to implement ?
Propagated Photon Mergeback approach
pseudo process complications
Geant4 Hits
What passes HCE to Initialize and EndOfEvent ?
G4SensitiveDetector
G4SDManager
G4OpBoundaryProcess
Geant4
Geant4 Multi Threading
Navigation
index
modules
|
next
|
previous
|
env
»
Env documentation
»