GEANT4

GEANT4 User Support Process



Definition: The provision of help and analysis of code-related problems, 
            the consultancy, and the enhancement requests, as well as the
            investigation of anomalous results, are defined as the GEANT4
            "User Support".


 
The User Support relative to the GEANT4 software is performed by the GEANT4
collaboration, a world-wide collaboration of experiments, laboratories and 
institutes, which distribute amongst themselves the user support 
responsibilities and the maintenance of the various domains of the GEANT4 
software (as described in the GEANT4 Memorandum of Understanding).

The GEANT4 software has been developed by a world-wide R&D project of about 100 scientists
from over 40 institutions and laboratories participating in more than 10 experiments in 
Europe, Russia, Japan, Canada and the United States.
Geant4 exploits advanced software engineering techniques and Object Oriented technology to 
make possible the distributed software design and development in the world-wide 
collaboration. 
Many specialised working groups have been responsible for fields as divers as physics, 
geometrical modelling, visualisation, event generation and user interfaces.
A major advantage of this distributed approach is the exploitation of the expertise and 
knowledge of scientists all over the world. Moreover, the consequent distribution of
responsibilities requires the maintenance of modular software and clear definition of
interfaces between components.

A distributed User Support model was driven naturally by the existing distribution of
expertise and manpower across the experiments, laboratories and institutes which have
contributed to create and mantain GEANT4. 
This model offers major advantages over a traditional central support:
- A larger number of people is now performing the support, and always on the domain of 
  their competence or even on the code they developed themselves.
- A larger number of contact/reference points for the users are now available, avoiding 
  the channelling of all problems through the same support people and thus improving
  efficiency.

In order to exploit those advantages, an adequate structure is needed to filter, analyse, 
dispatch, or prioritise the users' requests, and also to provide the user with a direct
interface to which one can refer without knowing the details of the GEANT4 User Support
mechanism.
The needed structure is provided by the GEANT4 Technical Steering Board and the GEANT4
Working Groups.

The Technical Steering Board:
The TSB is the forum where technical matters (software and physics), users requests, and 
further developments are discussed, prioritised, and decided. 
Each laboratory, experiment or institute signing the GEANT4 MoU (representing users
communities), as well as each GEANT4 Working Group (representing technical expertise), 
has one representative in the TSB.
The representative of each laboratory, experiment, and institute in the TSB is the contact
and reference person for the user community represented by his/her laboratory, experiment,
or institute. Those TSB representatives have the knowledge needed and the possibility to
contact the proper Working Group to address the requests of the users they represent. 


The Working Groups:
The Working Groups tasks are assigned by the TSB. 
The Working Groups perform the work necessary in each GEANT4 domain:
Run&Events, Tracking, Particles, Processes&Materials, E.M. Physics, Hadronic Physics,
Geometry&Transport, Detector Response, Visualisation, User&Categories Interfaces, 
Testing&QA, Software Management, Documentation Management. 
The Working Groups co-ordinators are initially selected among the current RD44 working 
group co-ordinators of the GEANT4 domains and activities in order to ensure continuity.

The TSB and the Working Groups perform the full User Support process.

The provision of help related to the documentation and analysis of code related problems, 
such as bugs and fixes, is guaranteed to the user in two ways, and in addition a modern
problem tracking procedure is applied.
If a bug is found in any GEANT4 source file, the user is able to fill a web form 
which will automatically route the problem report to the Coordinator of the Working Group
responsible for the domain to which the given file belongs; the problem will be classified
in a web-based data-base where it is possible to consult its status and evolution; 
the user will be acknowledged of the reception of his report within 24 hours.
Alternatively, the user can contact his representative in the TSB, who will take care to
forward or discuss the problem reported with the responsible working group coordinator,
which will then allow the same procedure as above. The ultimate responsibility to 
accept or implement a fix belongs to the Working Group Coordinators. 
Every fix is implemented in a cvs branch and is thus available in no time, on top of the 
reference GEANT4 release, to any interested user. In addition, the branching system of
cvs allows the user to load any desired selection of fixes to be applied on top of the
reference release.

The consultancy requested by the users before finding any problem represent cases where
a human interface is necessary. The same is true for the investigation of anomalous
results, such as when the program runs but the user suspects that the physics results
are not correct. In these cases, each user is supposed to refer to his/her representative
in the GEANT4 TSB, who will proceed to contact the people responsible for the affected
GEANT4 domains.
 
The users' requests for enhancements, as well as any modification involving interfaces
between multiple GEANT4 domains, will be discussed, prioritised and decided by 
the GEANT4 TSB. In the same style, the TSB is responsible to take decisions such as
triggering a GEANT4 release. In this case, a formal procedure is applied:
- The Testing&QA Working Group performs the system testing and the acceptance testing.
- The Software Management Group is then responsible to tag, release and distribute the new
  GEANT4 version.
- The Documentation Management Group is responsible to release the updated users manuals,
  reference manuals, and other public documents such as the URD.



                         GEANT4 User Support Use Cases

Provision of help (on the documentation or on where to find information)

G4USC-1  Where can I find the manual, both in hypertext and printable format
         (such as Postscript) ?
         On the web it is possible to access 6 manuals, including an 
         Introduction, an Installation Guide, two User Manuals (for different 
         levels of expertise), a Physics Reference and a Software Reference 
         manuals. The address is:
         http://wwwinfo.cern.ch/asd/geant/geant4.html .

G4USC-2  Where can I find the manuals already printed ?
         In each laboratory and institute participating to the GEANT4 
         collaboration copies of the manuals will be available (e.g. at the 
         Users Help Offices).

G4USC-3  If I work in an experiment participating to the GEANT4 collaboration,
         who should I contact to ask for some first aid help ? 
         Each experiment participating to GEANT4 has a G4 Technical Board 
         Representative who is the person to be contacted for getting first aid
         help within his domain of expertise and information.

G4USC-4  If I work in an experiment not participating to the GEANT4 
         collaboration, who should I contact to ask for some first aid help ?
         You should select an institute or laboratory involved in your 
         experiment, and at the same time participating to GEANT4, and contact 
         its G4 Technical Board Representative, who will offer information and first 
         aid help within his domain of expertise (to an extent that is at the discretion 
         of his laboratory or institute) on best-effort basis.  



Analysis of code-related problems

G4USC-5  If I find a bug, identifying the file affected, who should be informed?
         A WWW interface available from the GEANT4 web will forward the bug 
         report to the responsible person for the GEANT4 domain to which the 
         affected file belongs. The responsible person is the G4 Working Group 
         Coordinator of the given domain, and he is a member of a laboratory or 
         experiment participating to the GEANT4 collaboration.

G4USC-6  If I find a bug, how can I check if it has been fixed already, 
         or what is its status ?
         The GEANT4 web makes available a data-base of open Incident Reports, 
         tagging the ones already fixed and showing their status. In addition, 
         an acknowledgement will be sent. 

G4USC-7  If I work in an experiment or institute participating to the GEANT4 
         collaboration, how can I require that a bug be fixed in a time useful 
         for my needs ?
         The G4 Technical Board Representative of your experiment or institute 
         is responsible to discuss with the Technical Representative of the 
         experiment, laboratory, or institute responsible for the domain where 
         the bug was found. Unless there are no conflicting priorities, the fix
         is implemented in the shortest possible time and made available in a 
         branch of the code repository.
         Otherwise, the issue is addressed at the GEANT4 Technical Steering 
         Board, which is the forum where technical matters are discussed and 
         prioritised.

G4USC-8  If I work in an experiment or institute not participating to the GEANT4
         collaboration, how can I require that a bug be fixed in a useful time 
         for me ?
         You cannot require that a bug will be fixed in a given time. The 
         priority of the needed work will be decided by the GEANT4 Technical 
         Steering Board according to the interest of the represented 
         experiments, institutes and laboratories.

G4USC-9  If I find a fix, who should be informed ?
         The same procedure as for reporting bugs should be followed, including
         the fix in the bug report.

G4USC-10 If I propose a fix, who is responsible to approve it ?
         The G4 Technical Board Representative of the experiment, laboratory,
         or institute responsible for the domain where the fix has to be applied
         and the relative Working Group Coordinator are responsible to decide. 
         If the fix affects more than a domain, then the matter has to be 
         addressed at the G4 Technical Steering Board.

G4USC-11 How much time it will take to implement my fix ?
         The timescale to implement a proposed fix is subject to the same 
         conditions as for the fixes associated to bug reports.



Consultancy (requests for expert reccomendations before finding problems)
 
G4USC-12 If I am working in an experiment participating to the GEANT4 
         collaboration, and I need to discuss technical matters specific to my 
         experiment's simulation application, who can I contact?
         The G4 Technical Board Representatives of your experiment and of the 
         laboratory or institute where you are working will be available to 
         provide consultancy within his domain of expertise.

G4USC-13 If I am working in an experiment not participating to the GEANT4 
         collaboration, and I need to discuss technical matters specific to my 
         experiment's simulation application, who can I contact?
         You should select an institute or laboratory involved in your 
         experiment, and at the same time participating to GEANT4, and contact 
         its G4 Technical Board Representative, who will offer consultancy within his
         domain of expertise (to an extent that is at the discretion of each institute
         or laboratory participating to the GEANT4 collaboration) on best effort basis. 



Enhancements requests

G4USC-14 To whom I could send a proposal of a new requirement for an improvement
         in functionality?
         Any new requirement will be discussed at the GEANT4 Technical
         Steering Board.
         You should contact the G4 Technical Board Representative of your 
         experiment, institute, or laboratory to pose the given requirement to 
         the GEANT4 Technical Steering Board.

G4USC-15 How can I get an enhancement into the GEANT4 code 
         independently from the agreement of the other experiments, 
         laboratories, or institutes participating in the GEANT4 collaboration ?
         A new requirement will trigger a cycle of analysis, design, 
         implementation, testing and documentation, that can involve 
         responsibilities of different laboratories and experiments. In all 
         cases, any new software or enhancements which will become a part of 
         GEANT4 has to be agreed by the GEANT4 Technical Steering Board, which 
         has also to ensure the consistency of the whole product.

G4USC-16 What is the timescale to get implemented an enhancement in the 
         software ?
         If the request is produced by an experiment/laboratory/institute 
         participating to the GEANT4 collaboration, the timescale is the one 
         determined by the procedure explained above. Otherwise, it might be 
         longer because it will be analysed after the requests and proposals 
         coming from members of the GEANT4 collaboration.
          


Investigation of anomalous results
 
G4USC-17  I get a result I can't understand, what can I do?
          If your GEANT4 application runs but you suspect the results produced 
          are wrong, you have to inform the G4 Technical Board Representative of
          your experiment or institute. He will then be responsible to contact 
          the G4 Working Group Coordinator or the G4 Technical Board 
          Representative of the domain to which the anomalous results refer. 
          They will then investigate the problem as soon as possible, according
          to the priorities set by the GEANT4 Technical Steering Board.

G4USC-18  How can I access a debugging environment?
          If you are working in an experiment/institute/laboratory participating
          to the GEANT4 collaboration, you can ask to access the GEANT4 servers
          (if any) or accounts available in your experiment/institute/laboratory
          (including the access to libraries compiled in debug mode for various 
          platforms).
 
 

Miscellaneous

G4USC-19 Do I need to send emails to a general mailing list ?
         No, the GEANT4 user support is made of the activities listed above,
         and for each activity there is a dedicated interface as explained 
         above.

G4USC-20 Is there a regular user meeting which I should attend ?
         The GEANT4 user support is distributed between different laboratories, 
         institutes and experiments, so there will be only a global GEANT4 
         workshop per year when all the responsible people of the GEANT4 domains
         will meet together with users' representatives and the members of the 
         GEANT4 collaboration. However, there are regular GEANT4 users meetings 
         within each experiment participating to the GEANT4 collaboration, which
         can be attended to inform and discuss with the respective G4 Technical 
         Board Representative.

G4USC-21 To whom should I refer to give feedback on the GEANT4 user support or 
         propose improvements for the user support ?
         You should contact the GEANT4 Collaboration Board Representative of 
         your experiment, institute, or laboratory.



Friday 4 December 1998 GF