154 lines
5.4 KiB
Plaintext
154 lines
5.4 KiB
Plaintext
--------------------------------------------------
|
|
|
|
=========================================================
|
|
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
|
=========================================================
|
|
|
|
AnaEx03
|
|
-------
|
|
Examples AnaEx01, AnaEx02 and AnaEx03 show the usage of histogram and tuple
|
|
manipulations using G4Analysis, ROOT and AIDA compliant systems on the same
|
|
scenario. All analysis manipulations (histo booking, filling, saving histos
|
|
in a file, etc...) are located in one class : HistoManager, implementation of
|
|
which is different in each example. All the other classes are same in all
|
|
three examples.
|
|
|
|
This example shows the usage of histogram and tuple manipulations using
|
|
an AIDA compliant system.
|
|
|
|
The example is an adaptation of examples/novice/N03. It describes a simple
|
|
sampling calorimeter setup.
|
|
|
|
1- Detector description
|
|
-----------------------
|
|
|
|
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).
|
|
|
|
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---------->|
|
|
| | | |
|
|
==========================================================================
|
|
|| | || | || | ||
|
|
|| | || | || | ||
|
|
beam || absorber | gap || absorber | gap || absorber | gap ||
|
|
======> || | || | || | ||
|
|
|| | || | || | ||
|
|
==========================================================================
|
|
|
|
2- Physics list
|
|
---------------
|
|
|
|
The particle's type and the physic processes which will be available
|
|
in this example are set in the FTFP_BERT physics list.
|
|
|
|
3- Action Initialization
|
|
------------------------
|
|
|
|
A newly introduced class, ActionInitialization,
|
|
instantiates and registers to Geant4 kernel all user action classes
|
|
which are defined thread-local and a run action class
|
|
which is defined both thread-local and global.
|
|
|
|
The thread-local action classes are defined in
|
|
ActionInitialization::Build()
|
|
and the global run action class is defined in
|
|
ActionInitialization::BuildForMaster().
|
|
Note that ActionInitialization::Build() is also used to
|
|
instatiate user action clasess in sequential mode.
|
|
|
|
4- An event : PrimaryGeneratorAction
|
|
------------------------------------
|
|
|
|
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.
|
|
|
|
5- Histograms
|
|
-------------
|
|
To produce histograms, at least one of the AIDA implementations should be
|
|
available. See the file InstallAida.txt
|
|
|
|
AnaEx03 can produce 4 histograms :
|
|
|
|
histo 1 : total energy deposit in absorber per event
|
|
histo 2 : total energy deposit in gap per event
|
|
histo 3 : total track length of charged particles in absorber per event
|
|
histo 4 : total track length of charged particles in gap per event
|
|
|
|
And 2 Ntuples :
|
|
- ntuple 1:
|
|
- one row per event : EnergyAbs EnergyGap
|
|
- ntuple 1:
|
|
- one row per event : TrackLAbs TrackLGap
|
|
|
|
These histos and ntuples are booked in HistoManager and filled from
|
|
EventAction.
|
|
|
|
One can control the name of the histograms file and its format:
|
|
default name : AnaEx03
|
|
possible formats : hbook root (default) xml
|
|
|
|
See HistoManager constructor
|
|
|
|
Note that, by default, histograms are disabled. To activate them, uncomment
|
|
the flag G4ANALYSIS_USE in GNUmakefile, *before* compilation.
|
|
|
|
6- OpenScientist
|
|
----------------
|
|
|
|
See the files README.AIDA and README.OpenScientist for more indications
|
|
how to use this system to visualize and handle histogram files.
|
|
|
|
|
|
7- How to build
|
|
---------------
|
|
|
|
An additional step is needed when building the example with GNUmake
|
|
due to using the extra shared directory:
|
|
% cd path_to_AnaEx03/AnaEx03
|
|
% gmake setup
|
|
% gmake
|
|
|
|
This will copy the files from shared in the example include and src;
|
|
to remove these files:
|
|
% gmake clean_setup
|
|
|
|
7- How to run
|
|
--------------
|
|
|
|
- Execute AnaEx03 in the 'interactive mode' with visualization:
|
|
% ./AnaEx03
|
|
and type in the commands from run.mac line by line:
|
|
Idle> /control/verbose 2
|
|
Idle> /tracking/verbose 1
|
|
Idle> /run/beamOn 10
|
|
Idle> ...
|
|
Idle> exit
|
|
or
|
|
Idle> /control/execute run.mac
|
|
....
|
|
Idle> exit
|
|
|
|
- Execute AnaEx03 in the 'batch' mode from macro files
|
|
(without visualization)
|
|
% ./AnaEx03 run.mac
|
|
% ./AnaEx03 run.mac > run.out
|
|
|
|
The AnaEx03.in macro is used in Geant4 testing.
|
|
|
|
|