192 lines
7.0 KiB
Plaintext
192 lines
7.0 KiB
Plaintext
$Id: README,v 1.16 2005/11/22 16:11:04 maire Exp $
|
|
-------------------------------------------------------------------
|
|
|
|
=========================================================
|
|
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
|
=========================================================
|
|
|
|
ExampleN03
|
|
----------
|
|
|
|
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 an absorber plate and of a detection gap. The layer is
|
|
replicated.
|
|
|
|
Six parameters define the calorimeter :
|
|
- the material of the absorber,
|
|
- the thickness of an absorber plate,
|
|
- the material of the detection gap,
|
|
- the thickness of a gap,
|
|
- the number of layers,
|
|
- 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.
|
|
|
|
|
|
|<----layer 0---------->|<----layer 1---------->|<----layer 2---------->|
|
|
| | | |
|
|
==========================================================================
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
|| absorber | gap || absorber | gap || absorber | gap ||
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
beam || | || | || | ||
|
|
======> || | || | || | ||
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
==========================================================================
|
|
|
|
NB. The thickness of the absorber or of the gap can be set to zero
|
|
(but not together), and the number of layers 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 (see run2.mac).
|
|
|
|
A RUN is a set of events.
|
|
|
|
|
|
3- 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 in case of interactive running mode.
|
|
|
|
By default, vis.mac opens a DAWNFILE, suitable for viewing in DAWN,
|
|
and an OGLX for OpenGl.
|
|
You can switch to other graphics systems by commenting out this line
|
|
and instead uncommenting one of the other /vis/open statements, such as
|
|
HepRepFile or HepRepXML.
|
|
|
|
The DAWNFILE, HepRepFile and HepRepXML drivers are always available
|
|
(since they require no external libraries), but the OGLIX driver
|
|
requires:
|
|
1- the visualisation & interfaces categories have been compiled
|
|
with the environment variable G4VIS_BUILD_OPENGLX_DRIVER.
|
|
2- exampleN03.cc has been compiled with G4VIS_USE_OPENGLX.
|
|
|
|
The HepRepXML driver outputs a zip file that can be unzipped into
|
|
several individual HepRep files, each viewable in WIRED.
|
|
|
|
For more information on visualization, including information on how to
|
|
install and run DAWN, OpenGL and WIRED, see the visualization tutorials
|
|
on the Geant4 Workshop Tutorial CD available at:
|
|
http://geant4.slac.stanford.edu/g4cd/Welcome.html
|
|
|
|
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,
|
|
or neutral or none. This command is build in EventActionMessenger class.
|
|
|
|
Additional visualization tutorial macros are available in the visTutor
|
|
subdirectory. They can be tried as:
|
|
% $G4BINDIR/exampleN03
|
|
idle > /control/execute visTutor/exN03VisX.mac
|
|
For details, see comment lines described in the macro files.
|
|
These macros are designed to help your understanding the User's Guide.
|
|
|
|
|
|
4- PHYSICS DEMO
|
|
|
|
The particle's type and the physic processes which will be available
|
|
in this example are set in PhysicsList class.
|
|
|
|
In addition the build-in interactive command:
|
|
/process/(in)activate processName
|
|
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.
|
|
(see run2.mac and newgeom.mac)
|
|
|
|
As a homework try to visualize a gamma conversion alone,
|
|
or the effect of the multiple scattering.
|
|
|
|
5- RANDOM NUMBERS HANDLING
|
|
|
|
CLHEP provides several random number engines. In this example the Ranecu
|
|
engine is choosen at beginning of the main (exampleN03.cc).
|
|
|
|
By default, G4RunManager does not save the rndm seed.
|
|
To do so the user must set in BeginOfRunAction:
|
|
G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
|
|
|
Then the rndm seed is systematically saved at beginning of run
|
|
(currentRun.rndm) and beginning of event (currentEvent.rndm)
|
|
Therefore, in case of abnormal end, the seed of the last event processed
|
|
is available in currentEvent.rndm
|
|
|
|
Even in case of normal run processing, the user may wish to preserve the
|
|
rndm seed of selected events. At any time in the event, put the
|
|
following statement:
|
|
if (condition) G4RunManager::GetRunManager()->rndmSaveThisEvent();
|
|
currentEvent.rndm will be copied to runXXevntYY.rndm
|
|
(see ExN03SteppingAction::UserSteppingAction() )
|
|
|
|
To restart a run from a given rndm seed, use the UI command :
|
|
/random/resetEngineFrom fileName
|
|
|
|
The macro rndmSeed.mac shows how to save and reset the random number
|
|
seed between runs, from UI commands.
|
|
|
|
6- 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
|
|
|
|
On can use a Motif driven command interface (called G4UIXm) if:
|
|
1- interfaces category has been compiled with G4UI_BUILD_XM_SESSION
|
|
2- exampleN03.cc has been compiled with G4UI_USE_XM.
|
|
|
|
|
|
7- HOW TO START ?
|
|
|
|
- compile and link to generate an executable
|
|
% cd N03
|
|
% gmake
|
|
|
|
- execute N03 in 'batch' mode from macro files
|
|
% exampleN03 run1.mac
|
|
|
|
- execute N03 in 'interactive mode' with visualization
|
|
% exampleN03
|
|
....
|
|
Idle> ---> type your commands. For instance:
|
|
Idle> /run/beamOn
|
|
....
|
|
Idle> /run/beamOn 10
|
|
....
|
|
Idle> /control/execute newgeom.mac
|
|
....
|
|
Idle> exit
|
|
|
|
|
|
|