The calorimeter is a box made of a given number of layers. A layer consists of a sequence of various absorbers (maximum MaxAbsor=9). The layer is replicated.
Parameters defining the calorimeter :
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---------->| | | | | | ========================================================================== || | || | || | || || | || | || | || || abs 1 | abs 2 || abs 1 | abs 2 || abs 1 | abs 2 || || | || | || | || || | || | || | || beam || | || | || | || ======> || | || | || | || || | || | || | || || | || | || | || || | || | || | || || | || | || | || || cell 1 | cell 2 || cell 3 | cell 4 || cell 5 | cell 6 || ========================================================================== ^ ^ ^ ^ ^ ^ ^ pln1 pln2 pln3 pln4 pln5 pln6 pln7
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 emtutor.mac)
Physics lists are based on modular design. Several modules are instantiated:
EM physics builders can be local (eg. in this example) or from G4 kernel physics_lists subdirectory.
Local physics builders:
From geant4/source/physics_lists/builders:
Physics lists and options can be (re)set with UI commands.
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 G4ParticleGun 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.
A RUN is a set of events.
TestEm3 computes the energy deposited per absorber and the energy flow through the calorimeter.
The Visualization Manager is set in the main() (see TestEm3.cc). The initialisation of the drawing is done via the commands : /vis/... in the macro vis.mac. In interactive session:
PreInit or Idle > /control/execute vis.mac
The default view is a longitudinal view of the calorimeter.
The tracks are drawn at the end of event, and erased at the end of run. Optionally one can choose to draw all particles, only the charged ones, or none. This command is defined in EventActionMessenger class.
The particle's type and the physics processes which will be available in this example are set in PhysicsList class.
In addition a built-in interactive command (/process/inactivate 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.
As a homework try to visualize a gamma conversion alone, or the effect of the multiple scattering.
Notice that one can control the maximum step size, via the StepMax process and the command /testem/stepMax
/testem/stepMax/absorber
(see StepMax and PhysicsList classes)
% TestEm3 run01.mac
% TestEm3 .... Idle> type your commands. For instance: Idle> /control/execute run01.mac .... Idle> exit
Macros provided in this example:
Testem3 can produce histograms :
NB. Numbering scheme for histograms:
One can control the binning of the histo with the command:
/analysis/h1/set idAbsor nbin Emin Emax unit
etc.,
where unit is the desired energy unit for that histo (see TestEm3.in).
One can control the name of the histograms file with the command:
/analysis/setFileName name (default testem3)
It is possible to choose the format of the histogram file : root (default), xml, csv, by using namespace in HistoManager.hh
It is also possible to print selected histograms on an ascii file:
/analysis/h1/setAscii id
All selected histos will be written on a file name.ascii (default testem3)