$Id: README,v 1.1 1999/10/11 16:55:33 maire Exp $
-------------------------------------------------------------------

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

                            TestEm3
                            -------

	This example simulates a simple Sampling Calorimeter setup.
	
 1- GEOMETRY DEFINITION
 
 	The calorimeter is a box made of a given number of layers.
	A layer consists of a sequence of various absorbers (maximum 10).
	The layer is replicated.
 	
 	Parameters defining the calorimeter :
 	- the number of layers,
 	- the number of absorbers within a layer,		
 	- the material of the absorbers,
	- the thickness of the absorbers,
 	- the transverse size of the calorimeter (the input face is a square). 
 	
 	In addition a transverse uniform magnetic field can be applied.
 	
 	The default geometry is constructed in DetectorConstruction class,
 	but all of the above parameters can be modified interactively via
 	the commands defined in the DetectorMessenger class.
 	
 	NB. The number of absorbers and the number of layers can be set to 1.
	    In this case we have a unique homogeneous block of matter,
	    which looks like a bubble chamber rather than a calorimeter ...
 	    (see the macro of commands: newgeom.mac)
 	    
 2- AN EVENT : THE PRIMARY GENERATOR
 
 	The primary kinematic consists of a single particle which hits the
 	calorimeter 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 (see
 	the macros provided with this example).
 	
 	In addition one can choose randomly the impact point of the incident
 	particle. The corresponding interactive command is built in
 	PrimaryGeneratorMessenger class.
 	
 	A RUN is a set of events.
 	
 3- DETECTOR RESPONSE
 
 	A HIT is a record, event per event and volume per volume, of all the 
 	informations needed to simulate and analyse the detector response.
 	
 	In this example a CalorHit is defined as a set of 2*N informations per
	layer :
 	- the total energy deposit in the absorber[i],
 	- the total tracklength of all charged particles in the absorber[i],  
 	
 	Therefore all the absorbers are declared 'sensitive detector' (SD),
        which means they can contribute to the hit.
 	
 	At the end of a run, from the CalorHitsCollection, one can study the
	calorimeter performances such as :
				- shower profile,
 				- calorimeter resolution,
 				- pi/e ratio ...
 				
 4- VISUALIZATION
 
 	The Visualization Manager is set in the main().
 	The initialisation of the drawing is done via commands
 	/vis/... in the macro init.mac. This macro is
 	automatically read from the main in case of interactive running mode.
 	
 	The detector has a default view which is a longitudinal view of the 
 	calorimeter.
 	
 	The tracks are drawn at the end of event, and erased at the end of run.
 	Optionaly one can choose to draw all particles, only the charged one,
 	or none. This command is defined in EventActionMessenger class.
 	
 5- PHYSICS DEMO
 
 	The particle's type and the physic processes which will be available
 	in this example are set in PhysicsList class.
 	
 	In addition a build-in interactive command (/process/inactivate proname)
 	allows to activate/inactivate the processes one by one.
 	Then one can well visualize the processes one by one, especially 
 	in the bubble chamber setup with a transverse magnetic field.
 
 	As a homework try to visualize a gamma conversion alone, 
 	or the effect of the multiple scattering.
 	
 6- HOW TO START ?
 
 	- compile and link to generate an executable
 		% cd TestEm3
 		% gmake
 		
 	- execute TestEm3 in 'batch' mode from macro files
 		% TestEm3   run01.mac
 		
 	- execute TestEm3 in 'interactive mode' with visualization
 		% TestEm3
 		....
 		Idle> type your commands. For instance:
 		Idle> /control/execute newgeom.mac
 		....
 		Idle> exit
 	
 7- NTUPLE
 
	Testem3 produce an Ntuple which is saved as testem3.histo
	under the control of the command /run/save on
 
	Content of this Ntuple:
  
	EAbs0 = energy deposit in absorber[0] per event
	LAbs0 = charged track length in absorber[0] per event
        ........
	EAbsN = energy deposit in absorber[N] per event
	LAbsN = charged track length in absorber[N] per event
	  
 	
