You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-10Lines changed: 11 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -7,27 +7,29 @@ According to <https://geant4.org>, Geant4 is a
7
7
8
8
which means that it is **NOT** a program that can be double-clicked and run after installation.
9
9
10
-
Instead, Geant4 is provided as a set of C++ libraries that need to be compiled [^1]. One must write a C++ program (Geant4 application) that calls functions provided in the compiled Geant4 libraries. The application itself also needs to be compiled, before it can be double-clicked and run.
10
+
Instead, Geant4 is provided as a set of C++ libraries that need to be compiled [^1]. One must write a C++ program (Geant4 [application]) that calls functions provided in the compiled Geant4 libraries. The [application] itself also needs to be compiled, before it can be double-clicked and run.
11
11
12
-
[^1]: The compiled ones only work in very specific operating systems.
12
+
[^1]: The compiled ones only work on very specific operating systems. This approach works best for Windows users. Please watch the first 5 videos in [this] YouTube playlist.
Think Geant4 as a set of disassembled Lego pieces (libraries). One needs to put them together into a Lego model, such as a car, a plane, or a house, etc. (applications).
15
17
16
18
The Geant4 [Q&A] hence defines three types of users:
17
19
18
-
- the [end user], who uses a Geant4 application written by someone else,
19
-
- the [application developer], who writes a Geant4 application, and
20
+
- the [end user], who uses a Geant4 [application] written by someone else,
21
+
- the [application developer], who writes a Geant4 [application], and
20
22
- the *framework provider*, who updates or extends Geant4 libraries.
21
23
22
-
This tutorial is provided to flatten the steep learning curve of Geant4 for the first two types of users with some thoughts on how a framework provider can serve the first two better.
24
+
This website is provided to flatten the steep learning curve of Geant4 for the first two types of users with some thoughts on how a framework provider can serve the first two better.
Most of us are end users. All we need is a Geant4 application that has already been compiled for our operating system so that we can double click and run it. Geant4 does provide many [example applications] to show its muscles. However, too many choices actually paralyze a poor end user. Which one shall we choose?! A reasonable choice would be the simplest one. However, the simplest Geant4 application example, [B1][], has very limited functionality. To adopt it for our specific applications, we, as end users, are forced to learn how to modify and compile a Geant4 example application, and become an application developer. No wonder the first Geant4 User guide is for application developers instead of end users.
32
+
Most of us are end users. All we need is a Geant4 [application] that has already been compiled for our operating system so that we can double click and run it. Geant4 does provide many [example applications] to show its muscles. However, too many choices actually paralyze a poor end user. Which one shall we choose?! A reasonable choice would be the simplest one. However, the simplest Geant4 application example, [B1][], has very limited functionality. To adopt it for our specific applications, we, as end users, are forced to learn how to modify and compile a Geant4 example [application], and become an [application developer]. No wonder the first Geant4 User guide is for application developers instead of end users.
The [compilation][] of Geant4 C++ libraries and [application]s is a very challenging process for most end users who have limited experience on command-line user interface and C++ programming. The easiest way to bypass this challenge is to package both Geant4 libraries and some [versatile][universal] applications into a single [container][] image that can be used in all operating systems without any modification.
78
+
The [compilation][] of Geant4 C++ libraries and [application]s is a very challenging process for most end users who have limited experience on command-line user interface and C++ programming. The easiest way to bypass this challenge is to package both Geant4 libraries and some versatile[application]s into a single [container][] image that can be used in all operating systems without any modification.
<https://hub.docker.com/r/physino/geant4> is such an image. It includes the [official Geant4 libraries pre-compiled on AlmaLinux 9](https://geant4.org/download) and two tiny [universal] Geant4 applications, [GEARS][] and [MinGLE][], that accept the `detector.tg` file exported from [Shine][].
83
+
<https://hub.docker.com/r/physino/geant4> is such an image. It includes the [official Geant4 libraries pre-compiled on AlmaLinux 9](https://geant4.org/download) and two tiny universal Geant4 [application]s, [GEARS][] and [MinGLE][], that accept the `detector.tg` file exported from [Shine][].
To use this image, we need to install [Docker Desktop][], a program that manages container images and containers. Please follow <https://youtu.be/RIBJ-2LsqsA> to get familiar with the program and the concept behind it.
0 commit comments