Geometry Work Plan for 2012
Version 1.0
NOTE: Any dates assigned to items are to be considered just indicative.
- Items marked with refer to new developments.
- Items marked with will involve new man-power or contribution from external sources interested in the project.
- Items marked with will require coordination with more than one Working Group.
- Items marked with (*) may or may not be achieved.
- Architecture:
- Adaptation of relevant classes for multi-threading - (1)/(2)
Investigate possibility to adapt the implementation of thread-safety for classes affected by mixing of R/W and R-only data; introduce keywords and tags to allow for easier automatic translation for Geant4-MT code generation.
Identify design choices to be applied for making any part of the geometry modeller thread-safe.
- Adaptation of relevant classes for multi-threading - (1)/(2)
- Navigation & optimisation:
- Finalize implementation of precise ComputeSafety() in navigation - (1)
Refine and optimize the alternative Computesafety() for use by physics processes (mainly EM) for measuring the exact safety value, not limited by voxels boundaries.
Adapt multiple-scattering EM process to make use of the new feature, after having optimized its performance. - Profiling and optimisation of multiple navigation - (1)/(2)
Revise the design and implementation of multiple navigation and coupled-transportation.
Identify any open issue in application to fast-simulation, scoring and layered tracking geometries and in conjuction with magnetic field transport.
Identify possible CPU performance penalties which may be introduced with the activation of coupled-transportation. Optimize overall performance (ATLAS request).
- Finalize implementation of precise ComputeSafety() in navigation - (1)
- Robustness checking & performance tuning:
- Complete review of accuracy of 2nd order equations on
last remaining solids (sphere, orb) - (1)/(2)
Reiterate the tests on surface for random points close to (and far from) the solids’ surface, to quantify the precision of the response according to the geometrical tolerance. Verify the conditions under which the surface normal must be computed and the accuracy of the algorithms implemented; identify cases with wrong answers in solids not yet analysed and improve testing.
Verify where to applyc/(|b|+sqrt(D))
solution.
Feedback any improvement to/from the USolids library project.
- Complete review of accuracy of 2nd order equations on
last remaining solids (sphere, orb) - (1)/(2)
- General code review and improvements:
- Apply improvements to regular navigation to increase efficiency
and precision and reduce memory consumption - (1)
Implement more efficient indexing of cells, in conjunction with improvements to algorithms in scoring.
Allow for better efficiency and precision, also by implementing more precise safety calculation in case of neighbouring voxels skipping for same materials. - Continue code review for selected CSG shapes - (2)
Joint code review of geometrical shapes meant for:
x Verification of consistency in use of chosen strategies;
x Identification of potential round errors for solution to equations;
x Improvements for performance in operations (use of mathematical functions,sqrt(), pow()
, divisions, …), caching calculation of constants and efficient reuse, identify hot-spots performance critical;
x Double-check behavior on shared surfaces, etc…
c Code readability and simplification. - Review of field classes and of design for field accuracy settings - (1)/(2)
Revise design and implementation of the field classes, improving intersection, adding trajectory (and potentially interpolation); move to use templates to improve performance (i.e. reduce number of virtual method calls in lowest-level of loops).
Provide more intuitive API to users for tuning performance and field response.
- Apply improvements to regular navigation to increase efficiency
and precision and reduce memory consumption - (1)
- New features:
- Complete implementation of first round of solids in the unified library - (2)
Complete implementation of first round of solids in the unified library for geometrical shapes for Geant4 and Root, including also a fully featured implementation of a multi-union solid.
- Identify first/last step in a volume for curved tracks - (1)
Feature currently possible only for linear track; requires to be extended also for curved tracks in magnetic field.
- Complete implementation of first round of solids in the unified library - (2)
- Routine activities
- Extend testing suite for solids (CSG/specific/Boolean/BREPS)
- Review of user documentation
(1) First semester
(2) Second semester
Created: 31 January 2012
Modified: 1 February 2012