The GLAD-TPC (Time Projection Chamber) detector, also known as HYDRA, is part of the R3B (Reactions with Relativistic Radioactive Beams) experimental setup at the GSI/FAIR research center (Facility for Antiproton and Ion Research). The GLAD-TPC software allows for Monte Carlo simulations and experimental data analysis, enabling seamless integration with the data analysis workflows of other R3B detectors within the R3BRoot software. GLAD-TPC software is a source distribution with recurring releases for MacOS and Linux.
For the software-related user support you can post a new topic on our forum.
GLAD-TPC is distributed under the terms of the GNU Lesser General Public Licence version 3 (LGPLv3).
Please visit releases
Please ask your questions, request features, and report issues by creating a github issue.
GLAD-TPC as part of R3BRoot delivers various project templates that can be used as a starting point for anybody who would like to build simulation and reconstruction algorithms. The project Templates are located in the R3BRoot/template directory.
The GLAD-TPC project (as part of R3BRoot) uses clang-format-16 to ensure a common code formatting. The script "apply-format.sh" can be used for this purpose:
. apply-format.shFirst, you will need to install FairSoft, FairRoot and R3BRoot. For more details: R3BRoot README.
- FaiSoft version: nov22p1 or later
- FairROOT version: v18.2.1 or later
Follow the instructions in the R3BRoot README.
For the general R3BRoot simulations, follow the instructions in R3BRoot README.
The steps to properly run the glad-tpc simulation:
-
Create all the necessary files to run the code:
- The particle generator needs to be created, to do so go in the folder
/glad-tpc/gtpgen/and run the macroINCL_Background_ASCIIGenerator.ccto generate the bkg orPhaseSpaceDecay_hypertriton_ASCIIGenerator.ccto generate the hypertriton decay. The instructions are inside the macros. The output of the macros could be found in the folder/glad-tpc/gtpgen/ASCII/ - The geometry of the detector you want to use should be already in the folder
/glad-tpc/geometry/if it is not the case, go in the folder/glad-tpc/macros/geo/and run the macro for the geometry you want.
- The particle generator needs to be created, to do so go in the folder
-
How to run the simulation, in the folder
/glad-tpc/macros/simthere are 2 macros:simHYDRA.C: Needs the files created in step 1 to produce the events.run_simHYDRA: It requires the definition of the number of events, geometry and generator you want to use. In output will producepar.root,sim.rootand two.pngfigures (these to check that the chamber is well placed).
-
Check the simulation output, in the folder of the geometry chosen ,e.g. Prototype, there are the following macros:
eventDisplay.C: To see the geometry and the particles event by event. Be careful, close it from the terminal (.q).checkAll.C: Checks the primary, Points and Hits characteristics.
-
Electron drift, in the folder
/glad-tpc/macros/proj/there are several macros, the important ones are:run_proj.root: Simple projection of the tracks onto the pad planes, produce in output the fileproj.root.readProjPoints.C: General macro for checking the projPoints from the projector.
-
Visualization of the pad plane, in the folder
/glad-tpc/macro/visthere is the macroreadVPadPlane.C: This macro plots the output of the glad-tpc projector: plots theR3BGTPCProjPointwhich contains the virtual pads calculated after the projection of the track. -
Electronics response, in the folder
/glad-tpc/macro/electronicsthere is the macroElectronics_MT.C: This macro simulate the electronics response.
It is possible to use the bash script run_full.sh to run all these steps at once. BE CAREFUL, set first the wanted parameters in the different folders.
...Under development...
The following systems are tested regularly.
| OS Name | Arch | OS Version | Compiler | CMake | C++ Version |
|---|---|---|---|---|---|
| Almalinux | x86_64 | 9.3 | GCC 11.4.1 | 3.27.9 / 4.0.3 | C++17 / C++20 |
| Almalinux | x86_64 | 9.4 | GCC 14.2.0 | 3.30.6 | C++17 |
| RHEL | x86_64 | 9.6 | GCC 14.2.0 | 3.30.6 | C++17 |
| Debian | x86_64 | 10 | GCC 8.3.0 | 3.27.4 / 4.0.3 | C++17 |
| Debian | x86_64 | 11 | GCC 10.2.1 | 3.27.4 / 3.30.0 | C++17 |
| Debian | x86_64 | 12 | GCC 12.2.0 | 3.27.4 / 3.30.0 | C++17 / C++20 |
| Ubuntu | x86_64 | 24.04 | GCC 13.3.0 | 3.28.3 / 4.0.3 | C++17 / C++20 |
| Ubuntu | x86_64 | 25.04 | GCC 14.2.0 | 3.31.6 / 4.0.3 | C++17 |