View on GitHub

GEARS

Geant4 Example Application with Rich features and Small footprints

Download this project as a .zip file Download this project as a tar.gz file

home examples alpha beta gamma

Terminology

  1. physics model: what happens in a certain energy range
  2. physics process: model + cross section (how often it happens)
  3. physics list: a list of processes for common particles
  4. modular lists: lists of processes that can be used as building blocks to construct a more complex list
  5. pre-packaged lists: official modular lists shipped with Geant4
  6. reference lists: a subset of the pre-packaged lists that are well-maintained and tested
  7. factory: a Geant4 class that can be used to call pre-packaged lists by their names

How to choose a physics list

GEARS uses G4PhysListFactory.cc to allow the user to select one from the pre-packaged lists by its name:

# select a pre-packaged physics list. For example,
# LBE: low background experiment
# LIV: EM model based on Livermore data
/physics_lists/select LBE_LIV
# initialize physics based on the list
/run/initialize
# dump the lists on screen
/run/beamOn

The available names are listed in G4PhysListFactory.cc. The naming scheme is introduced on page 24 in this tutorial. A guidance on how to choose a proper physics list is also available in the tutorial.

Physics processes

Major categories of processes provided in Geant4 include:

A unique process id is assigned to each process in a GEARS output.

Run /process/list after /run/initialize, you will get something like this:

     Transportation,              Decay,   RadioactiveDecay,                msc
              hIoni,            ionIoni,             hBrems,          hPairProd
        CoulombScat,              eIoni,              eBrem,            annihil
               phot,              compt,               conv,             muIoni
            muBrems,         muPairProd,         hadElastic,   neutronInelastic
           nCapture,           nFission,    protonInelastic,       pi+Inelastic
       pi-Inelastic,     kaon+Inelastic,     kaon-Inelastic,    kaon0LInelastic
    kaon0SInelastic,    lambdaInelastic,anti-lambdaInelastic,   sigma-Inelastic
anti_sigma-Inelastic,    sigma+Inelastic,anti_sigma+Inelastic,     xi-Inelastic
  anti_xi-Inelastic,       xi0Inelastic,  anti_xi0Inelastic,    omega-Inelastic
anti_omega-Inelastic,anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic
anti_tritonInelastic,  anti_He3Inelastic,anti_alphaInelastic

Now you can use, for example, /process/inactivate nCapture to disable neutron capture process in your simulation. And you can use, for example, /process/setVerbose 20 RadioactiveDecay to change the verbosity of the radioactive decay process.

Optical processes

Optical processes can be enabled after a reference list is chosen:

/physics_lists/select QGSC_BERT_EMV
# cmd below becomes available only when the cmd above is used
/physics_lists/factory/addOptical
# must be run after the cmds above
/run/initialize

/process/list Electromagnetic
  phot,              compt,               conv,                msc
  eIoni,              eBrem,        CoulombScat,            annihil
  muIoni,            muBrems,         muPairProd,              hIoni
  hBrems,          hPairProd,            ionIoni,           Cerenkov
  Scintillation

/process/list Optical
  OpAbsorption,   OpRayleigh,            OpMieHG,         OpBoundary
  OpWLS

Individual optical processes can be toggled by the following commands:

/process/optical/processActivation Cerenkov true/false
/process/optical/processActivation Scintillation true/false
/process/optical/processActivation OpAbsorption true/false
/process/optical/processActivation OpRayleigh true/false
/process/optical/processActivation OpMieHG true/false
/process/optical/processActivation OpBoundary true/false
/process/optical/processActivation OpWLS true/false

Radioactive decay processes

Radioactive decay processes can be enabled after a reference list is chosen:

/physics_lists/select QGSC_BERT_EMV
# cmd below becomes available only when the cmd above is used
/physics_lists/factory/addRadioactiveDecay
# must be run after the cmds above
/run/initialize

/process/list Decay
  Decay 	RadioactiveDecay

Detailed control of radioactive decay is provided by the /grdm/ command, for example,

/grdm/deselectVolume chamber # disabled radioactive decay in volume "chamber"
/grdm/nucleusLimits 1 80 # enabled radioactive decay only when z in [1, 80]