$Id: README,v 1.6 2006/03/31 14:02:13 maire Exp $
-------------------------------------------------------------------

     =========================================================
     Geant4 - an Object-Oriented Toolkit for Simulation in HEP
     =========================================================

                            ExampleN02
                            ----------


	This example simulates a simplified fixe target experiment.

 1- GEOMETRY DEFINITION
 
     The setup consists of a target followed by six chambers of increasing
     transverse size. These chambers are located in a region called Tracker
     region. Their shape are boxes, constructed as parametrised volumes
     (ChamberParametrisation class).
     
     The default geometry is constructed in DetectorConstruction class.
     One can change the material of the target and of the chambers
     interactively via the commands defined in the DetectorMessenger class.
     
     In addition a transverse uniform magnetic field can be applied (see
     N02MagneticField and DetectorMessenger classes). 
 
         
 2- PHYSICS LIST
 
     The particle's type and the physic processes which will be available
     in this example are set in PhysicsList class.
     
     In this example, all the so called 'electromagnetic processes' are
     introduced for gamma, charged leptons, and charged hadrons (see the
     method PhysicsList::ConstructEM()). 
     
     An important data member of this class is the defaultCutValue which
     defines the production threshold of secondary particles
     (only Ionisation and Bremsstrahlung processes are concerned by this
     CutValue).
     Notice that the CutValue must be given in unit of length, corresponding
     to the stopping range of the particle. It is automatically converted
     in energy for each material, and a table is printed in the method
     PhysicsList::SetCuts() 
 	
     In addition the build-in interactive command:
	         /process/(in)activate processName
     allows to activate/inactivate the processes one by one.


 3- RUNS and EVENTS
 
     The primary kinematic consists of a single particle which hits the
     target perpendicular to the input face. The type of the particle
     and its energy are set in the PrimaryGeneratorAction class, and can
     be changed via the G4 build-in commands of ParticleGun class.

     A RUN is a set of events.
     
     The user has control:
        -at Begin and End of each run (class RunAction)
        -at Begin and End of each event (class EventAction)
        -at Begin and End of each track (class TrackingAction, not used here)
	-at End of each step (class SteppingAction)
	
    The class SteppingVerbose prints some informations step per step,
    under the control of the command: /tracking/verbose 1
    It inherits from G4SteppingVerbose, and has been setup here in order
    to illustrate how to extract informations from the G4 kernel during
    the tracking of a particle.


 4- USER' LIMITS
 
    We illustrate how to introduce tracking constraints like maximum step
    length, minimum kinetic energy ..etc.., via G4UserLimits class.
    See DetectorConstruction and PhysicsList.   	
	
 5- DETECTOR RESPONSE
 
     A HIT is a record, track per track (even step per step), of all the 
     informations needed to simulate and analyse the detector response.
     
     In this example the Tracker chambers are considered as the detector.
     Therefore the chambers are declared 'sensitive detectors' (SD) in
     the DetectorConstruction class. 
 	
     Then, a Hit is defined as a set of 4 informations per step, inside 
     the chambers, namely:
        - the track identifier (an integer),
	- the chamber number,
 	- the total energy deposit in this step,
 	- the position of the deposit.
	
     A given hit is an instance of the class TrackerHit which is created
     during the tracking of a particle, step by step, in the method
     TrackerSD::ProcessHits(). This hit is inserted in a HitsCollection. 
     
     The HitsCollection is printed at the end of event (via the method 
     TrackerSD::EndOfEvent()), under the control of the command: /hits/verbose 1

 				
 6- VISUALIZATION
 
     The Visualization Manager is set in the main().
     The initialisation of the drawing is done via a set of /vis/ commands
     in the macro vis.mac. This macro is automatically read from 
     the main when running in interactive mode.
 	
     The tracks are automatically drawn at the end of event and erased at 
     the beginning of the next run.
	
     The visualization (with OpenGL driver) assumes two things:
	1- the visualisation & interfaces categories have been compiled
	       with the environment variable G4VIS_BUILD_OPENGLX_DRIVER.
	2- exampleN02.cc has been compiled with G4VIS_USE_OPENGLX.   

     (The same with DAWNFILE instead of OPENGLX)
     
     
 7- USER INTERFACES
  
      The default command interface, called G4UIterminal, is done via
      standart cin/G4cout.
      On Linux and Sun-cc on can use a smarter command interface G4UItcsh.
      It is enough to set the environment variable G4UI_USE_TCSH before
      compiling exampleN02.cc
 
       	
 8- HOW TO START ?
 
      - compile and link to generate an executable
 	      % cd N02
 	      % gmake
 		
      - execute N02 in 'batch' mode from macro files (without visualization)
 	      % exampleN02   run1.mac
 		
      - execute N02 in 'interactive mode' with visualization
 	      % exampleN02
 	      ....
 	      Idle> type your commands. For instance:
	      Idle> /run/beamOn 10
	      ....
 	      Idle> /control/execute run2.mac
              ....
 	      Idle> exit
 	
      
