It is a single box representing a 'semi infinite' homogeneous medium. Two parameters define the geometry :
The default geometry (10 m of molybdenum) is built in DetectorConstruction, but the above parameters can be changed interactively via commands defined in DetectorMessenger.
The PhysicsList contains builders for hadronic interactions. Predefined G4 PhysicsConstructors or 'local' PhysicsConstructors can be used (see geant4/source/physics_lists or example runAndEvent/RE04).
In order not to introduce 'artificial' constraints on the step size, electromagnetic processes are not registered: there is no continuous energy loss.
Several hadronic physics options are controlled by environment variables. To select them, see Hadr03.cc
The primary kinematic consists of a single particle starting at the edge of the box. The type of the particle and its energy are set in PrimaryGeneratorAction (neutron 1 MeV), and can be changed via the G4 build-in commands of ParticleGun class (see the macros provided with this example).
An event is killed at the first interaction of the incident particle. The absorption length, also called mean free path, is computed as the mean value of the track length of the incident particle. This is why the medium must be 'infinite' : to be sure that interaction occurs at any events.
The result is compared with the 'input' value, i.e. with the cross sections given by G4HadronicProcessStore and used by Geant4.
The list of nuclear reactions that occured is printed. (the number of gamma of deexcitation is not printed).
Then, comes the total list of generated particles and ions.
The energy spectrum of the scattered particle (if any) and of the created secondaries are plotted (see SteppingAction).
Momentum conservation is checked as :
momentum balance = modulus(P_out - P_in)
A set of macros defining various run conditions are provided. The processes can be actived/inactived in order to survey the processes individually.
The test contains 13 built-in 1D histograms, which are managed by G4AnalysisManager and its Messenger. The histos can be individually activated with the command : /analysis/h1/set id nbBins valMin valMax unit where unit is the desired unit for the histo (MeV or keV, etc..) (see the macros xxxx.mac).
The histograms are managed by the HistoManager class and its Messenger. The histos can be individually activated with the command :
/analysis/h1/set id nbBins valMin valMax unit
where unit is the desired unit for the histo (MeV or keV, deg or mrad, etc..)
One can control the name of the histograms file with the command:
/analysis/setFileName name (default Hadr03)
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 Hadr03)
The Visualization Manager is set in the main(). The initialisation of the drawing is done via the commands /vis/... in the macro vis.mac. To get visualisation:
> /control/execute vis.mac
The detector has a default view which is a longitudinal view of the box. The tracks are drawn at the end of event, and erased at the end of run.
Execute Hadr03 in 'batch' mode from macro files :
% Hadr03 inelastic.mac
Execute Hadr03 in 'interactive mode' with visualization :
% Hadr03 Idle> control/execute vis.mac .... Idle> type your commands .... Idle> exit
Macros provided in this example:
Macros to be run interactively: