Review charge

Review of performance aspects of a subset of ElectroMagnetic (and
related) classes of Geant4 code.

It has been suggested by John Apostolakis to review various aspects of
Geant4 code used to simulate ElectroMagnetic (EM) processes.

The full review should consider design and implementation of key
classes regarding the language and class structure to identify:
- Areas of potential improvement for correctness,
performance, maintainability and adaptability
- Concerns for Multi-Threading (performance, correctness)
- Potential issues for Vector and/or GPU prototypes
- Issues or potential improvements from moving to C++11

Given a relatively high computational significance (cost) of some of
the EM functions, it would be beneficial to initially review the
Geant4 EM code with the goal to assess if it is written in a
computationally optimal way and to see if the code could be improved.

Therefore, the review should initially concentrate on the most costly
classes and functions. After the initial phase it may be needed or
useful to expand the scope of the review to other closely related
areas or aspects of the code.

One should keep in mind the objectives of the full review however, so
that the potential improvements would not negatively interfere with
the ongoing efforts to make the code thread safe, suitable for
vector/GPU architectures and more maintainable.

In order to facilitate the work, Soon Yung Jun has prepared an
executable (cmsExp, a Geant4 application) which he configured to
emphasize the to be reviewed Geant4 code by using a relatively simple
detector geometry and no magnetic field, thereby diminishing the
importance of the tracking code.

A list of initial classes and functions to be reviewed was obtained
based on results of profiling of various Geant4 applications and shall be
provided once participants of the review are identified.