
   ==============================================================
	Geant4 - an Object-oriented Toolkit for Simulation HEP
   ==============================================================	

			Rich Detector for LHCb
                   ----------------------------------

This example is intended to simulate the TestBeam Setup of the Rich detector 
at the LHCb to test the performance of the aerogel radiator. 
The goal of the Rich is the proper identification of charged particles 
in a momentum range of 1-150 GeV/c and to assist in the separation of 
signal and background. 


1. GEOMETRY DEFINITION
-----------------------------

It consists on 2 detector; RICH1, RICH2 which have to cover
the full LHCb momentum range:

	RICH1: Aerogel 		2 to 10 GeV/c
               C4F10            < 70 GeV/c

	RICH2: CF4              < 150 GeV/c


The geometry (defined inside RichDetectorConstruction class) consists of
4 Hpd, a target containing the aerogel and a spherical mirror. 
The TestbeamSetUp is related to changes in teils, distances between elements
of the testbeam and types. All the possible configurations are considered 
by a loop inside the MaterialParameters class. 


2. AN EVENT: THE PRIMARY GENERATOR
-------------------------------------

The primary kinematic consists of a single charge particle (normally pions) 
which is sent towards the target producing a rain of photons reflected and
focused by the spherical mirrors and recolected after in the Hpd. 

The aim of the testbeam is to perform resolutions measurements with
and without the aerogel to probe the improvement of its use. Comparisons
between simulation and data are performed to determine the angle defined 
between the simmetry axis of the system (axis z) and the distance to the
interaction point of the produced photons in the Hpd. 

The information related to type of particles to be sent, their energy
and directions is included inside the PrimaryGeneratorAction class. 
These parameters can be changed interactively using an extern macro 
(run1.mac). It is recomended the use of such macro for changes because
it avoids further compilations. 

A RUN is a set of events.


3. VISUALIZATION
--------------------

The Visualization manager is set in the main(). 
The Initialisation of the drawing is already defined in run1.mac. 
The example is prepared to use any other visualization packages which
can be defined in such macro or inside RichTbVis0.mac. Before running 
the events, the visualization must be initialized by:

> /control/execute/RichTbVis0.mac

The detector has longitudinal view of the geometry as default. 

The tracks are drawn at the end of event, and erased at the end of the run.


4. PHYSICS DEMO
----------------

The particles type and physics processes which will be available in 
this example are set in PhysicsList class. 

In addition a built-in interactive command (process/inactivate proname)
allows to activate/inactivatethe processes one by one. 

5. HOW TO START?
-----------------

- compile and link to generate an executable
	% cd geant4/examples/advanced/Rich/
  	% gmake

- execute the program in 'batch' mode from macro files
	%  RichTbSim run1.mac

- execute tests in 'interactive mode' 
	%  RichTbSim
	   .....

	Idle> type your commands
	   .....
	Idle> exit


6. HISTOGRAMS
---------------

This example produces 7 histograms (saved as rich.his generated automatically
during the running time) which illustrate the final state of the most important
information of the example:

 histo1  --> Number of Photon Hits per Track
 histo2  --> Number of Photons before Mirror
 histo3  --> WaveLength of Photons before Mirror
 histo4  --> WaveLength of Photons after Mirror
 histo5  --> Cherekov Angle at roduction all angles
 histo6  --> Z of the Photon Emission Point
 histo7  --> Cherenkov Ring Radius

See their definition on AnalysisManager.

Note that histograms are disabled via the flag G4ANALYSIS_USE in GNUmakefile.  


7. Using the PI implementation of the AIDA histograms:
------------------------------------------------------

In order to setup the proper environmental variables, needed for 
running AIDA / PI , run the script:

 --- For c-shell  :     source setupAidaPi.csh

 --- For bash-shell :   . setupAidaPi.sh

Notice that you need g++ 3.2 or 3.23.
 
