$Id: README,v 1.13 2005/11/30 19:58:30 santin Exp $
-------------------------------------------------------------------

     =========================================================
               Geant4 - X-Ray Telescope Example
     =========================================================


NEW: May 2004: Migration to AIDA 3.2.1 - see below


Introduction
------------
XrayTel is an advanced Geant4 example based on a realistic simulation of 
an X-ray Telescope.  It is based on work carried out by a team of Geant4 
experts to simulate the interaction between X-ray Telescopes XMM-Newton 
and Chandra with low energy protons present in the orbital radiation 
background.  The X-ray mirrors are designed to collect x-ray photons at
grazing-incidence angles and focus them onto detectors at the focal plane.
However, this mechanism also seems to work for low energy protons which,
if they reach the detectors in sufficient numbers, can cause damage.
In this example, the geometry has been simplified by using a single mirror 
shell and no baffles, but all the dimensions and materials are realistic.

The aim of this advanced example is to illustrate the use advanced 
GUI, visualisation, particle generation and analysis schemes available 
in Geant4:

 - the simulation can be run from GAG or the command prompt

 - macros are provided to display the geometry and particle tracks with 
   OpenGL, DAWN Postscript or VRML visualisation

 - the generation of particles is done via the new General Particle Source

 - histograming facilities are available through the AIDA 3.0 interfaces.

 - on-line visualisation of histograms is provided through the AIDA 3.0 interface.

In order to be able to use any of these packages, prior installation is 
necessary and a number of environment variables will have to be set.


1. Setting up the environment variables for GAG, Visualisation and 
   Analysis options (example based on Linux at CERN)

#set up GAG 
setenv G4UI_BUILD_GAG_SESSION       1
setenv G4UI_USE_GAG                 1

#set up VRMLview
setenv G4VIS_USE_VRML               1
setenv G4VRMLFILE_MAX_FILE_NUM     100
setenv G4VRMLFILE_VIEWER        vrmlview    #if installed
setenv G4VIS_USE_VRML               1
setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux"  # example at CERN

#set up OpenGL
setenv G4VIS_BUILD_OPENGLX_DRIVER   1
setenv G4VIS_USE_OPENGLX            1

#set up DAWN
setenv G4VIS_BUILD_DAWN_DRIVER      1
setenv G4VIS_USE_DAWN               1

NOTE: The geometry is refreshed on the viewer at the beginning of each run, 
      but the tracks are plotted only in case an interesting event occurs. 
      This is the case only for about 1 every 10**4 events.



Sources
-------

GAG can be found in:

geant4/environments/MOMO

DAWN can be obtained from:

http://geant4.kek.jp/~tanaka/

VRMLview for Linux can be obtained from:

http://www.sim.no


2. Run

To execute a sample simulation with visualisation of proton tracks
reaching the detector run:

XrayTel 

execute command "/control/execute xxxxx.mac"

visualisation macros provided are 
  - opengl.mac  for OpenGL display
  - vrml.mac    for VRML display and output file
  - dawn.mac    for dawn display and PS output file

To execute a run without visualisation use 
  - test.mac


If the analysis options are set, histograming windows will
automatically open and the corresponding files will be created.
A 1D histogram will display the energy distribution of the protons
that reach the detector at the end of the run.


3. Detector description

The telescope and detector geometry is defined in 
XrayTelDetectorConstruction.cc


4. Physics processes

The physics processes are in XrayTelPhysicsList.cc
The main process in this example is MultipleScattering of the protons
on the mirror surfaces.


5. Event generation

This is done using the new General Particle Source. Documentation for 
this can be found in:

http://reat.space.qinetiq.com/gps/


6. Analysis

In case the variable G4ANALYSIS_USE is set:
setenv G4ANALYSIS_USE               1
relevant information from the simulation is processed in the XrayTelAnalysis
class and saved, through the AIDA interface, to Histograms and Tuples.

Compilation and link flags to hook any AIDA compliant system are passed 
to the Geant4 GNUmakefile system by using the "aida-config" tool
that should come with any AIDA compliant system.
Specifically in the GNUmakefile you find the 2 lines:
  CPPFLAGS += `aida-config --include`
  LDFLAGS += `aida-config --lib`

For more information about AIDA and PI please look at:
http://aida.freehep.org/
http://www.cern.ch/PI

Presently, the tools
- PI (http://cern.ch/pi)
- OpenScientist (http://openscientist.lal.in2p3.fr/)
- JAS (http://jas.freehep.org/jas3/)
provide an implementation of AIDA 3.2.1

To build and execute the example on platforms where there is no
implementation of the analysis system, the environment variables 
must not be set.

