Skip to content

A2-Collaboration/A2Geant4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A2Geant4

A2 Geant4 simulation

Table of contents

Release notes

0.3.0

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

0.2.0

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

0.1.0

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

pre-0.1.0

  • 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

Installation

Dependencies

  • Geant4 10.2/10.3/10.4/10.5/10.6/10.7
  • ROOT 5 or 6
  • CMake 3.3
  • Optional: Qt 4 or 5
  • Optional: Pluto 6 (only with ROOT 6, $PLUTOSYS needs to be set)

Installation

Installation of Geant4

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. Modern versions of ROOT require at least C++-14. In such cases, you need to tell the compiler to use C++-14 standards here as well, by adding -DCMAKE_CXX_STANDARD=14 to the cmake line. 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.

Method 1: Getting the git master branch

cd /some/directory
git clone https://github.com/A2-Collaboration/A2Geant4.git
cd A2Geant4
mkdir build
cd build
cmake ..
make -j

Method 2: Install a release

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

Quick start

Interactive GUI mode

build/A2Geant4 --gui

Batch-mode

build/A2Geant4 --mac=macros/your_macro.mac --det=macros/DetectorSetup.mac --if=input.root --of=output.root

Known issues

  • 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

Simulation commands

Physics

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

Generator

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

Event-saver

Command Meaning
/A2/event/setOutputFile ouput.root set the tracked-event output file
/A2/event/storePrimaries false disable storage of primary particle indices

Detector setup commands

Crystal Ball

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))

TAPS

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)

PID

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)

MWPC

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)

Cherenkov

Command Meaning
/A2/det/useCherenkov 0 use Cherenkov detector (0=off, 1=on)

TOF-walls

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

Pizza detector

Command Meaning
/A2/det/usePizza 0 use the Pizza detector (0=off, 1=on)
/A2/det/setPizzaZ 162 cm distance target-Pizza detector

Cryogenic Targets

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

Solid Targets

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/targetMaterial G4_Li Lithium
/A2/det/targetMaterial G4_GRAPHITE Graphite
/A2/det/targetMaterial G4_Ca Calcium
/A2/det/targetMaterial G4_Pb Lead

Polarized Targets

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)

General Target Options

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

About

A2 Geant4 simulation

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 49.5%
  • C 25.7%
  • Fortran 23.7%
  • CMake 1.1%