A2 Geant4 simulation
September 23, 2019
- support for GiBUU event-files
- using Pluto library for Pluto reader
- storing primary particle IDs for PID/Veto hits
- fixed some building issues
February 12, 2019
- generalized interface for input event-files
- support for Pluto event-files
- added tracked particles to metadata
- added new class for generic and specific solid targets (neutron skin)
- support for target shifts (S. Wagner)
- support for PID rotations
- support for Geant4 10.5
August 17, 2018
- fixed bug related to compiler optimizations for Geant4 >= 10.3 (S. Gardner)
- G4ExtrudedSolid-based CB-crystal implementation for Geant4 >= 10.4 (S. Gardner)
- informative metadata in output file
- nicer tracking progress information
- better support for different Geant4 releases
- storage of primary particle IDs for CB/TAPS hits
- PID III (S. Kay)
- Cherenkov detector (F. Afzal)
- support for xz-compressed magnetic field maps
- Pizza detector
- support for cryogenic He-3 target
- possibility to disable MWPC hit storage
- Geant4 10.2/10.3/10.4/10.5
- ROOT 5 or 6
- CMake 3.3
- Optional: Qt 4 or 5
- Optional: Pluto 6 (only with ROOT 6, $PLUTOSYS needs to be set)
Download the source tarball from https://geant4.web.cern.ch and extract it in a temporary directory:
cd /tmp
wget https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.04.p02.tar.gz
tar xvfz geant4.10.04.p02.tar.gz
Create a build directory (not inside the source directory) and run cmake. Set CMAKE_INSTALL_PREFIX to the final installation location and GEANT4_USE_QT to ON if you want to use the graphical user interface. Set GEANT4_INSTALL_DATA to ON so the large data packages will be downloaded automatically. Set N to the number of CPU cores to speed up the compilation process:
cd /tmp
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/Geant4.10.04.02 -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON /tmp/geant4.10.04.p02
make -jN
make install
Geant4 should now be installed in /opt/Geant4.10.04.02. Source the configuration script (geant4.sh for bash, geant4.csh for C shell) in your shell config file to set all the environment variables:
source /opt/Geant4.10.04.02/bin/geant4.sh
The temporary source and build directories can now be deleted. More details can be found in the official documentation.
cd /some/directory
git clone https://github.com/A2-Collaboration/A2Geant4.git
cd A2Geant4
mkdir build
cd build
cmake ..
make -j
Download a release, unpack and compile it:
cd /some/directory
wget https://github.com/A2-Collaboration/A2Geant4/archive/v0.1.0.tar.gz
tar xvfz v0.1.0.tar.gz
cd A2Geant4-0.1.0
mkdir build
cd build
cmake ..
make -j
build/A2Geant4 --gui
build/A2Geant4 --mac=macros/your_macro.mac --det=macros/DetectorSetup.mac --if=input.root --of=output.root
- storage of primary particles only works if tracked particles are manually specified
- particle auto-tracking for mkin-files uses PDG stable attribute for now so many particles are not tracked
- Pluto: no primary vertex yet, more testing needed
Command | Meaning |
---|---|
/A2/physics/Physics QGSP_BERT |
select physics list |
/A2/physics/ListPhysics |
show available physics lists |
/A2/physics/SetRegion CB |
select region for tracking cut (CB, TAPS, TAPSV, PID, MWPC, Pizza) |
/A2/physics/RegionCut 0.1 mm |
set tracking cut for selected region |
/A2/physics/CutGamma 0.1 mm |
set tracking cut for photons |
/A2/physics/CutEl 0.1 mm |
set tracking cut for electrons |
/A2/physics/CutPos 0.1 mm |
set tracking cut for positrons |
/A2/physics/CutProt 0.1 mm |
set tracking cut for protons |
/A2/physics/CutsAll 0.1 mm |
set the same tracking cut for photons, electrons, positrons and protons |
Command | Meaning |
---|---|
/A2/generator/Seed 3243434 |
set the seed of the random number generator |
/A2/generator/NToBeTracked 3 |
set the number of particles to be tracked |
/A2/generator/Track 1 |
set the index of a particle to be tracked |
/A2/generator/InputFile input.root |
set the event input file (sets mode to 2) |
/A2/generator/Mode 1 |
select generator mode (0=G4 CLI generator, 1=phase-space, 2=file input, 3=overlap debug) |
/A2/generator/SetTMin 200 MeV |
minimum kinetic energy for a particle in the phase-space generator |
/A2/generator/SetTMax 450 MeV |
maximum kinetic energy for a particle in the phase-space generator |
/A2/generator/SetThetaMin 0 deg |
minimum polar angle for a particle in the phase-space generator |
/A2/generator/SetThetaMax 120 deg |
maximum polar angle for a particle in the phase-space generator |
/A2/generator/SetBeamEnergy 0.2 GeV |
energy of incoming beam (overwrites beam energy in event file) |
/A2/generator/SetBeamXSigma 10 mm |
x-sigma of incoming beam |
/A2/generator/SetBeamYSigma 10 mm |
y-sigma of incoming beam |
/A2/generator/SetBeamDiameter 10 mm |
beam-spot diameter on target |
/A2/generator/SetTargetZ0 0 mm |
target z-position |
/A2/generator/SetTargetThick 0.4 mm |
target length |
/A2/generator/SetTargetRadius 0.5 cm |
target radius |
/A2/generator/SetSplitTheta 5 deg |
theta split-angle for overlap generator |
Command | Meaning |
---|---|
/A2/event/setOutputFile ouput.root |
set the tracked-event output file |
/A2/event/storePrimaries false |
disable storage of primary particle indices |
Command | Meaning |
---|---|
/A2/det/useCB 1 |
use CB (0=off, 1=on) |
/A2/det/setHemiGap 0.4 0.4 -1 cm |
upper air gap, lower air gap, geometry (>0: Prakhov, <0: old) |
/A2/det/setCBCrystGeo extr |
CB crystal geometry (trap=G4Trap, extr=G4ExtrudedSolid (default for Geant4 >= 10.4)) |
Command | Meaning |
---|---|
/A2/det/useTAPS 1 |
use TAPS (0=off, 1=on) |
/A2/det/setTAPSFile data/taps07.dat |
location of TAPS geometry file (taps07.dat, taps.dat) |
/A2/det/setTAPSZ 146.35 cm |
distance target-TAPS |
/A2/det/setTAPSN 384 |
number of TAPS crystals (384, 510) |
/A2/det/setTAPSPbWO4Rings 2 |
number of PbWO4 rings (1, 2) |
Command | Meaning |
---|---|
/A2/det/usePID 2 |
use PID (0=off, 1=PID I, 2=PID II, 3=PID III) |
/A2/det/setPIDZ 0. cm |
PID z-shift |
/A2/det/setPIDRotation 10 deg |
PID rotation (0=old orientation, otherwise rotation with respect to element 0 @ 0 deg) |
Command | Meaning |
---|---|
/A2/det/useMWPC 2 |
use MWPC (0=off, 1=without anode wires, 2=with anode wires, 10/20: without/with wires but no readout) |
Command | Meaning |
---|---|
/A2/det/useCherenkov 0 |
use Cherenkov detector (0=off, 1=on) |
Command | Meaning |
---|---|
/A2/det/useTOF 0 |
use TOF-walls (0=off, 1=on) |
/A2/det/setTOFFile data/TOF.par |
location of TOF-walls geometry file |
Command | Meaning |
---|---|
/A2/det/usePizza 0 |
use the Pizza detector (0=off, 1=on) |
/A2/det/setPizzaZ 162 cm |
distance target-Pizza detector |
Command | Meaning |
---|---|
/A2/det/useTarget Cryo |
standard hydrogen target |
/A2/det/useTarget Cryo2 |
narrower hydrogen target |
/A2/det/useTarget CryoHe3 |
He3/He3 target |
/A2/det/targetMaterial G4_lH2 |
hydrogen |
/A2/det/targetMaterial A2_lD2 |
deuterium |
/A2/det/targetMaterial A2_lHe3 |
He-3 |
/A2/det/targetMaterial A2_lHe4 |
He-4 |
Command | Meaning |
---|---|
/A2/det/useTarget Solid |
solid target (pre-2007 experiments) |
/A2/det/useTarget Solid_Generic |
generic solid target |
/A2/det/useTarget Solid_Oct_18 |
solid target for October 2018 experiment |
/A2/det/useTarget Solid_Jan_19 |
solid target for January 2019 experiment |
/A2/det/targetMaterial G4_Li |
Lithium |
/A2/det/targetMaterial G4_GRAPHITE |
Graphite |
/A2/det/targetMaterial G4_Ca |
Calcium |
/A2/det/targetMaterial G4_Pb |
Lead |
Command | Meaning |
---|---|
/A2/det/useTarget Polarized |
solid target |
/A2/det/targetMaterial A2_HeButanol |
Butanol/Helium mix |
/A2/det/targetMaterial A2_HeDButanol |
D-Butanol/Helium mix |
/A2/det/targetMagneticCoils Solenoidal |
longitudinally polarized target |
/A2/det/targetMagneticCoils Saddle |
transversely polarized target |
/A2/det/setTargetMagneticFieldMap map.dat.xz |
magnetic field map (data/wouter_field_map.dat.xz, data/field_map_jul_13_pos.dat.xz) |
Command | Meaning |
---|---|
/A2/det/setTargetLength 2 cm |
set target length (not supported by all targets) |
/A2/det/setTargetRadius 2 cm |
set target radius (not supported by all targets) |
/A2/det/setTargetZ 0. cm |
target z-shift |