Files
geant4/examples/README.HowToRun.md
T
2025-12-05 08:54:02 +01:00

2.7 KiB

\page README_HowToRun How to build and run an example

All basic and most of extended examples have a similar structure. The main() function is included in exampleXYZ.cc in the example top directory and the example source code is structered in include and src subdirectories. When the example is built, the executable takes the same name as the file with main() function without the .cc extension, exampleXYZ.

Then several macros are provided to run the example with various start-up conditions. These macros have usually the .mac extension. Besides these macros, there is often a macro exampleXYZ.in (note its different extension) which is used in Geant4 testing and which output, exampleXYZ.out, can be also included in the distribution.

You can find all details about building the examples in the Geant4 Installation Guide , in the section How to Use the Geant4 Toolkit Libraries . Here we recall only the basics.

% cd path_to_exampleXYZ     # go to directory which contains your example
% mkdir exampleXYZ_build
% cd exampleXYZ_build
% cmake -DGeant4_DIR=path_to_Geant4_installation/lib[64]/cmake/Geant4/ ../exampleXYZ
% make -j N exampleXYZ      # "N" is the number of processes 

Execute exampleXYZ in 'batch' mode from macro files

% cd exampleXYZ_build
% ./exampleXYZ  xyz.mac

Execute exampleXYZ in the 'interactive mode' with visualization

% cd exampleXYZ_build
% ./exampleXYZ
....
Idle> type your commands
....
Idle> exit

See also the explicit instructions for building TestEm1 example at \ref README_HowToRunTestEm1 page.

\page README_HowToRunTestEm1 How to build and run TestEm1 example

Below we give the explicit instructions (described in general at \ref README_HowToRun page) for the example extended/electromagnetic/TestEm1.

Let's suppose that the TestEm1 directory is available in $HOME and Geant4 installation in /usr/local and we work within the bash shell on a `64-bit machine.

% cd $HOME
% mkdir TestEm1_build
% cd TestEm1_build
% cmake -DGeant4_DIR=/usr/local/lib64/Geant4-11.3.0/ ../TestEm1
% make -j 2 TestEm1

Execute TestEm1 in 'batch' mode from macro files

% cd $HOME/TestEm1_build
% ./TestEm1 annihil.mac
% ./TestEm1 brem.mac
% ./TestEm1 TestEm1.in >& myTestEm1.out   # redirecting output in a file

Execute TestEm1 in 'interactive mode' with visualization

% cd $HOME/TestEm1_build
% ./TestEm1
PreInit> /run/initialize 
Idle>    /run/beamOn 1
...
Idle>    exit