|
Low Energy Electromagnetic Physics |
Software
Requirements Document
Status: in CVS repository
Version: 1.4
Project: Geant4-LowE
Created: 22 June 2001
Last modified: 12 September 2002
Prepared by: Maria Grazia Pia (INFN)
1. Processes should be decomposed into components.
·
Components: cross sections, final state etc.
1. A unified interface should be provided to the set of process components interfaces.
2. Interchangeable implementations should be provided for each process component, all obeying the same abstract interface.
3. The component interface may define the skeleton of algorithms or required operations, but the implementation should be deferred to subclasses.
·
Example: final state = generation of spectrum +
generation of angular distribution.
4. Process components may either belong to the same process family (i.e. standard, LowE), or be combinations of components from different families (e.g. LowE + standard).
5. In the case of combinations of process components from different families, the coherence of the combination must be ensured.
6. Physics data sources and related operations (e.g. interpolations) should be encapsulated into objects.
7. Various alternative interpolation algorithms should be available and interchangeable. If the encapsulation of interpolation algorithms leads to a proliferation of objects, mechanisms for sharing such algorithms should be provided.
8. It should be possible to attach additional responsibilities to a process component.
·
Example: the de-excitation of an atom left in an
excited state as an add-on to a final state.
1. The internal representation and structure of a process should be hidden from the creation of the process itself.
2. There should not be any permanent binding between the abstraction of a process and its implementation.
·
Example: open the possibility of switching process
implementation depending, for instance, on the detector region.
3. Interfaces should be defined, and tools should be provided, for the creation of families of processes.
1. Objects depending on cuts should be notified and updated automatically, whenever a change in cuts occurs.
1. Relevant physics quantities, either primitive or calculated, should be accessible for testing.
1. Processes should be customizable through a user interface.
2. The user interface should be uniform across the electromagnetic processes.
1. No protected data members should be used.
2. STL should be thoroughly used in the implementation.
3. Performance optimization should be based on quantitative measurements (profiling).
4. The software should be compatible with Geant4 design and coding guidelines.