Skip to content

Commit 1baa73b

Browse files
author
Jing Liu
committed
updated README.md
1 parent 7f31ab2 commit 1baa73b

File tree

1 file changed

+42
-15
lines changed

1 file changed

+42
-15
lines changed

README.md

+42-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[![YouTube](https://img.shields.io/badge/You-Tube-red?style=flat)](https://www.youtube.com/@physino)
2-
[![Web UI](https://img.shields.io/badge/Web-UI-blue?style=flat)](shine:-web-ui-for-geant4)
3-
[![Geant4 Container](https://img.shields.io/badge/Geant4-Container-yellow?style=flat)](geant4-container)
2+
[![Web UI](https://img.shields.io/badge/Web-UI-blue?style=flat)](shine-a-web-ui-for-geant4)
3+
[![Geant4 Container](https://img.shields.io/badge/Geant4-Container-green?style=flat)](geant4-container)
44

55
According to <https://geant4.org>, Geant4 is a
66
> **Toolkit** for the simulation of the passage of particles through matter.
@@ -15,15 +15,18 @@ Think Geant4 as a set of disassembled Lego pieces (libraries). One needs to put
1515

1616
The Geant4 [Q&A] hence defines three types of users:
1717

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 **framework provider**, who updates or extends Geant4 libraries.
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 [framework provider], who updates or extends Geant4 libraries.
2121

2222
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.
2323

2424
[Q&A]: https://geant4-userdoc.web.cern.ch/UsersGuides/IntroductionToGeant4/html/IntroductionToG4.html#software-knowledge-required-to-use-the-geant4-toolkit
25+
[end user]: #for-end-user
26+
[application developer]: #for-application-developer
27+
[framework provider]: #for-framework-provider
2528

26-
## For End Users
29+
## For End User
2730

2831
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.
2932

@@ -42,11 +45,21 @@ Is it possible to provide a compiled Geant4 application that can be double click
4245
- There is no way to include all existing, or to-be-constructed radiation detectors or shielding geometries into one program. Even end users must be responsible for constructing their specific geometries.
4346
- A C++ program must be compiled on a specific operating system to run on that system. A C++ program that is compiled on a Mac cannot be used on a Windows or a Linux computer.
4447

45-
However, there are ways to get closer to this goal. To solve the first problem, a web-based user interface <https://physino.xyz/shine> can be used by the end user to construct a specific detector or shielding structure without C++ programming. To solve the second problem, a docker image <https://hub.docker.com/r/physino/geant4> can be used to include Geant4 libraries and a Geant4 application that can read the output of <https://physino.xyz/shine>, which can be downloaded and run on all major operating systems.
48+
However, there are ways to get closer to this goal. To solve the first problem, a [web-based user interface] can be used by the [end user] to construct a specific detector or shielding structure without C++ programming. To solve the second problem, a [docker image] can be used to include Geant4 libraries and a Geant4 application that can read the output of <https://physino.xyz/shine>, which can be downloaded and run on all major operating systems.
4649

47-
### Shine: a web user interface for Geant4
50+
[web-based user interface]: #shine-a-web-ui-for-geant4
4851

49-
### For Docker Users
52+
### Shine: a Web UI for Geant4
53+
54+
[![YouTube](https://img.shields.io/badge/You-Tube-red?style=flat)](https://www.youtube.com/@physino)
55+
[![Shine](https://img.shields.io/badge/Shine-blue?style=flat)](https://physino.xyz/shine)
56+
57+
![Shine: a Web UI for Geant4](https://drive.google.com/uc?id=1IYnxORUysfgw7ymhGuH_jlVCUpe2lsd-)
58+
59+
### Geant4 Container
60+
[![physino/geant4](https://img.shields.io/badge/physino-geant4-blue?style=flat)](https://hub.docker.com/r/physino/geant4)
61+
62+
#### For Docker Users
5063

5164
[compose.yml](compose.yml) in this folder provides the following command to quickly start your container with automatic volume and port mapping to the host:
5265

@@ -76,7 +89,7 @@ git pull origin main
7689
git branch --set-upstream-to=origin/main main
7790
```
7891

79-
### For Apptainer Users
92+
#### For Apptainer Users
8093

8194
Use the following command to get into the container in a Linux host that has [Apptainer][] installed.
8295

@@ -93,17 +106,31 @@ export GEANT4_DATA_DIR=~/path/to/geant4/data/in/the/host/
93106
apptainer exec docker://physino/geant4 bash
94107
```
95108

96-
### Download Geant4 Examples
97-
The latest [Geant4][] examples can be found in <https://github.com/Geant4/geant4/tree/master/examples>. The best way to download a single example from there is described in a [StackOverflow][] post: <https://stackoverflow.com/a/70729494/1801749>.
109+
#### Download Official Geant4 Examples
98110

99-
## For Developers
111+
[![GEARS](https://img.shields.io/badge/GEARS-red?style=flat)](https://www.github.com/jintonic/gears)
112+
[![MinGLE](https://img.shields.io/badge/MinGLE-blue?style=flat)](https://www.github.com/jintonic/mingle)
113+
[![Official Examples](https://img.shields.io/badge/Official-Examples-green?style=flat)](https://github.com/Geant4/geant4/tree/master/examples)
100114

101-
This repository is created to avoid [Geant4][] related stuff (e.g. datasets, examples, etc.) being duplicated in specific [Geant4][] applications, such as [GEARS][] and [MinGLE][].
115+
[GEARS][] and [MinGLE][] are more [end user] friendly than most [official geant4 examples]. However, if The latest [Geant4][] examples can be found in <https://github.com/Geant4/geant4/tree/master/examples>. The best way to download a single example from there is described in a [StackOverflow][] post: <https://stackoverflow.com/a/70729494/1801749>.
116+
117+
[official geant4 examples]: https://github.com/Geant4/geant4/tree/master/examples
118+
119+
## For Application Developer
120+
[![GEARS](https://img.shields.io/badge/GEARS-red?style=flat)](https://www.github.com/jintonic/gears)
121+
[![MinGLE](https://img.shields.io/badge/MinGLE-blue?style=flat)](https://www.github.com/jintonic/mingle)
122+
[![Shine](https://img.shields.io/badge/Shine-yellow?style=flat)](https://www.github.com/jintonic/shine)
123+
124+
This GitHub [repository] was originally created to avoid duplicating common [Geant4][] related stuff (e.g. datasets, containers, documentation, etc.) in individual [Geant4][] applications, such as [GEARS][] and [MinGLE][]. It has evolved into a central hub to collect and disseminate my ideas and effort toward a more [end user] friendly Geant4 ecosystem. Welcome to join me if you are interested in the development of [Shine][], [GEARS][], [MinGLE][], or YouTube [tutorials][]. - [Physino][]
102125

103126
[StackOverflow]: https://stackoverflow.com
104127
[git]: https://git-scm.com
105128
[Apptainer]: https://apptainer.org
106129
[Geant4]: https://geant4.org
107130
[GEARS]: https://github.com/jintonic/gears
108131
[MinGLE]: https://github.com/jintonic/mingle
109-
132+
[repository]: https://github.com/jintonic/geant4
133+
[physino]: https://physino.xyz
134+
[shine]: https://physino.xyz/shine
135+
[image]: https://hub.docker.com/r/physino/geant4
136+
[tutorials]: https://www.youtube.com/@physino

0 commit comments

Comments
 (0)