$Id: README,v 1.1 1999/01/07 16:05:40 gunter Exp $
-------------------------------------------------------------------

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

                            ExampleN01
                            ----------

 ExampleN01 is the simplest example in this novice level examples. It has 
a tracker tube and a sandwitch calorimeter made of boxes. It shoots a 
geantino (pseudo-particle which has no "real" physics interaction) per 
one event. This example demonstrates how the basic GEANT4 framework works.

1. Detector descreption

 The detector is defined in ExN01DetectorConstruction.cc. Argon gas,
alminum and lead are defined first, where all of them are single element
material. Though materials are assigned for each volume, they will not
affect to the trajectory of a geantino.

 The experimental hall, which is the world volume, is made of alminum
and it is a box. The tracker tube made of argon gas is placed at 
(-1m,0m,0m) respect to the origin of the world volume. The calorimeter
block made of lead and it has 19 layers of alminum plates inside.

2. Physics processes

 ExN01PhysicsList.cc defines only a geantino and a transprotation
process. Though cutoff will not be applied onto geantino, a dummy
valume must be set.

3. Event generation

 G4ParticleGun is instanciated in the constructor of 
ExN01PrimaryGeneratorAction class. At the every event, the public
method GeneratePrimaries(G4Event*) is invoked. In this method,
G4ParticleGun is accessed to generate a primary particle (geantino).
 Please note that the direction of the primary particle is set
just before shooting, i.e. GeneratePrimaryVertex() method invokation.
G4ParticleGun class itself does not have any capability of randomizing
the energy nor momentum of the primary particle. Thus the user should
implement randomizing code in GeneratePrimaries() method.

4. main()

 exampleN01.cc has the main() method. In this main() method, three
mandatory user classes described above are constructed and set to
the G4RunManager object. Then, "Initialize()" method of G4RunManager
is invoked. 
 Some UI commands for setting verbosity are applied via hardly coded
"ApplyCommand()" method of G4UImanager class.
 "BeamOn()" method triggers the event loop. The argument of this
method is the number of event in this run.


