Skip to content

Commit

Permalink
Update Readme
Browse files Browse the repository at this point in the history
  • Loading branch information
janmayer committed Feb 26, 2020
1 parent 38da834 commit 6882cbc
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 11 deletions.
2 changes: 1 addition & 1 deletion G4Batch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -e

## Geant 4 Version
# If a specific Geant4 version should be used, adapt and uncomment these lines.
source /data/jmayer/software/geant4.10.05/bin/geant4.sh
# source /data/jmayer/software/geant4.10.05/bin/geant4.sh
echo "Using Geant4 Version `geant4-config --version` in `dirname $(dirname $(geant4-config --prefix))`"


Expand Down
2 changes: 1 addition & 1 deletion G4Horus.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export LIBGL_ALWAYS_INDIRECT=y

## Geant 4 Version
# If a specific Geant4 version should be used, adapt and uncomment these lines.
source /data/jmayer/software/geant4.10.05/bin/geant4.sh
# source /data/jmayer/software/geant4.10.05/bin/geant4.sh
echo "Using Geant4 Version `geant4-config --version` in `dirname $(dirname $(geant4-config --prefix))`"

## Build Project
Expand Down
95 changes: 86 additions & 9 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,98 @@
# G4Horus

An implementation of the HORUS spectrometer geometry and detectors in Geant4.
An implementation of the HORUS High-Purity Germanium (HPGe) γ-ray spectrometer and associated equipment in Geant4.

![G4Horus Default Geometry](doc/g4horus.png)

## Quickstart
1) On poseidon or gaia, create a new folder and do

git clone https://gitlab.ikp.uni-koeln.de/jmayer/g4horus.git .
./G4Horus.sh
## Overview

Note: On some systems, git will stumble over the SSL certificate, in this case use `git config --global http.sslVerify false` .
The main goal of this project is to provide an accurate, easy-to-use efficiency simulation for the HORUS setup at the Institute for Nuclear Physics, University of Cologne.

Components:

- Geometries
- Target Chambers
- Astro Target Chamber
- Astro Target Chamber V2
- SONIC
- SONIC V3
- SONIC V3 ΔEE
- Setups (HPGe Arrays with positions for HPGe Detectors)
- HORUS (14)
- Cologne Clover Counting Setup (2)
- Detectors
- High-Purity Germanium (HPGe)*
- Coaxial (default)
- Clover
- Encapsulated Hexagonal
- Bismuth Germanate (BGO) anti-Compton shields
- [WIP] Passivated Implanted Planar Silicon (PIPS)
- Auxiliary equipment
- γ-Filter-Disks
- [NYI] Passive γ-Supershields
- Actions
- Event Generators
- Particle Gun
- [WIP] Scattering Gun
- [NYI] Coincidence Gun
- Output Formats
- ROOT Histograms
- ROOT Ntuples (not recommended)
- SOCOv2 Events
- Evaluation
- Visualization Mode
- Batch processing Mode
- Automated efficiency evaluation

\*) Note that each HPGe detector has unique properties, stored in the `DetectorLibrary`, and is referenced by its manufactured ID.


## Getting Started

### Dependencies
- A not horribly outdated C++ build environment (`cmake` >= 3.11, `gcc` with C++11 support)
- [Geant4](https://github.com/Geant4/geant4) >= 10.5
(make sure the proper environment variables are set, see example in `G4Horus.sh`
- [CadMesh](https://github.com/christopherpoole/CADMesh/tree/v1.1) V1.1 (exactly!) and its dependencies

### Installation

```sh
git clone https://gitlab.ikp.uni-koeln.de/jmayer/g4horus.git
cd g4horus
./G4Horus.sh
```

The project should compile and open a visual interface with a default view should open.

2) Modify `src/DetectorConstruction.cc` to change the target chamber, detectors, and sensitve volumes. Use `./G4Horus.sh` to check your setup.
### Quick Simulation

- Run `./G4Batch.sh scripts/doit.mac` or other macro files to run the actual simulation.
- Use `./efficiency.sh` to automatically extract efficiencies from the simulated data.


## Constructing the Setup

The experimental setup is assembled in `src/DetectorConstruction.cc`. Change the target chamber, detectors, and sensitive volumes here.
Use `./G4Horus.sh` to check your setup.

Example for equipping HORUS with detectors:

```C++
auto horus = new Horus(worldLV);
// ID, Position, Distance (to endcap or filters on endcap), Filters
// BGO Type, Position, Distance (to BGO or filters on bgo), BGO-Filters
horus->PlaceDetector("73954", "Ge00", 20. * cm);
horus->PlaceDetector(BGO::tSMALLNOSE, "BGO00", 10. * cm, {{"G4_Cu", 2. * mm}});
```
and the sensitive volumes [WIP]:
```C++
extern const std::vector<std::string> detectors = {"Ge00", "BGO00"};
```

3) Run `./G4Batch.sh` to run the actual simulation.
Note that without setting the sensitive detector, no output will be recorded.

4) Use `./efficiency.sh` to automatically extract efficiencys from the simulated data.
The output type is set in `G4Batch.sh`, e.g. `-k hist` for histograms and `-k soco` for SOCOv2 events.

0 comments on commit 6882cbc

Please sign in to comment.