79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
|
|
# SiPM Detector simulation using CERN Geant4
|
|
|
|
## Description
|
|
Simulation of detecting photons using Silicon photomultiplier.
|
|
The output file is a ROOT file. Can be checked by TBrowser.
|
|
|
|
## Prerequisities
|
|
* CERN Geant4
|
|
* CERN Root (tested on 6.19/01)
|
|
* Linux or MacOS (should work on Windows, not tested)
|
|
* Also tested on WLS Ubuntu (X11 (for e.g. VcXsrv) and OpenGL needed)
|
|
|
|
## Building
|
|
Before building, be sure that you changed the macroPath to the right directory in sipm.cc.
|
|
```
|
|
git clone https://git.divaldo.hu/divaldo/SiPM.git
|
|
mkdir build_dir && cd build_dir
|
|
cmake ../SiPM
|
|
make -jN (where N is the number of jobs to run simultaneously)
|
|
```
|
|
|
|
## Running
|
|
Run with default parameters (not always works)
|
|
```
|
|
./sipm
|
|
```
|
|
Run with default config file (config.conf)
|
|
```
|
|
./sipm -df
|
|
```
|
|
Run with custom config file
|
|
```
|
|
./sipm -f config_file_name.conf
|
|
```
|
|
|
|
## Config file parameters
|
|
* pgpositionx - Particle Gun X position
|
|
* pgpositiony - Particle Gun Y position
|
|
* pgpositionz - Particle Gun Z position
|
|
* pgmomentumx - Particle Gun X momentum
|
|
* pgmomentumy - Particle Gun Y momentum
|
|
* pgmomentumz - Particle Gun Z momentum
|
|
* sipmsizex - SiPM X Size
|
|
* sipmsizey - SiPM Y Size
|
|
* sipmsizez - SiPM Z Size
|
|
* scintillatorsizex - Scintillator X Size
|
|
* scintillatorsizey - Scintillator Y Size
|
|
* scintillatorlength - Scintillator Z Size
|
|
* scintillatorisbox - Scintillator can be a tube or a box
|
|
* coatingthickness - Scintillator coating thickness
|
|
* scintillatorradius - Radius of the scintillator. Only used when it is a tube.
|
|
* xdivision - How many detectors should be placed along the X axis
|
|
* ydivision - How many detectors should be placed along the Y axis
|
|
* pgenergy - Particle Gun energy
|
|
* numberofevents - Number of events
|
|
* lengthunit - Size unit in detector construction (mm | cm | m)
|
|
* firstsipmenabled - Enable the first SiPM
|
|
* secondsipmenabled - Enable the second SiPM
|
|
|
|
# Changelog
|
|
## 2020-02-19
|
|
* Scintillator subtracted from it's coating
|
|
* Scintillation process fix
|
|
* Size and position fixes
|
|
* Print fixes in Parameters
|
|
|
|
## 2020-02-18
|
|
* Both SiPMs can be enabled or disabled
|
|
* Added an option to change between a box and tube scintillator (only box tested yet)
|
|
* Added new parameters
|
|
* Cleaned up the detector construction
|
|
* Small changes according to the new parameters
|
|
|
|
## 2020-02-06
|
|
* SiPMAnalisys' and SiPMParameters' GetInstance functions are returning a static reference instead of pointer
|
|
* G4Mutex replaced with std::mutex
|
|
* Input config file and output data file name can be changed with the GetInstance functions on the first call
|