Hans Wenzel with input from Bill Seligman and Gianluca Petrillo


LArG4: is an Art producer module that:
- Initializes Geant4 physics and detector geometry making use of tools provided by nutools (G4Base).
- Accepts sim::MCTruth objects from the MC branch of the Event.
- Passes the primary particles to the Geant4 simulation to calculate the detector response.
- allows to define simple auxiliary detectors with limitted functionality (besides LAr TPC's). Examples are wire chambers in the beam line in case of LArIAT or scintillator cosmic ray counters.

As the name indicates, LArG4 is specifically written to simulate the response of single phase liquid Argon (liquid nobel gas) detectors. The ultimate product of LArG4 is the simulation:
a) of the charge distribution of electrons arriving at (passing) the wires (collection and induction).
b) photons hitting the photon detectors.
Once this is done the Wiresim module calculates the electronic response, digitizes the signal et. but this is beyond the scope of the LArG4 module.

The simulation goes beyond the simulation provided by Geant4. To perform the simulation correctly:
- charged particles have to be propagated through the liquid medium with a step size that is matched to the readout wire pitch. Otherwise the ionization response doesn't come out right. Currently this is enforced by using a fine grained (0.3 mm^3) voxelized readout geometry for charged particles. The reason for using voxels, as opposed to setting a stepping limit, was to allow us to model saturation effects in LAr ionization in regions where there might be a large number of particles passing through a single tiny volume. In the original LArG4 code, the total ionization within each voxel was summed for all particles passing through it, then was written out separately. The intention was that a subsequent LArSoft module would convert that voxel's energy into the electron clusters and drift them to the wires. When LArSoft was converted to ART, that code was dropped and the current code was put in place that treats each particle in a voxel independently, each with its own set of electron clusters. In this scenario (similar to the way saturation would be done in a step limiter) saturation can still be done at a particle by particle level but cumulative effects of many particles depositing charge in a tiny volume are lost.
- one has to take into account that there are two distinct competing processes with which a charged particle can pass energy to the medium.
a) ionizing the medium which produces electron/ion pairs. The electrons are then transported to the read out planes. During the transport effects like diffusion, recombination (lifetime), saturation (Birks) have to be simulated. The slow moving ions can accumulate (depending on rate ...) and lead to space charge effects distorting the electric field.
b) excitation of Ar/Xe atoms which then deexcitate by emitting prompt photons (which in case of Ar are in the vacuum UV range). In a full simulation these photons are traced until they are either absorbed, lost or are detected at a photo detector. For this optical process (refraction, reflection, Rayleigh scattering, absorption and eventual wave length shifting) have to be simulated correctly (provided by Geant 4). Hereby data like refraction index, reflectivity at the different surfaces, Rayleigh scattering length etc. have to be measured separately and are required inputs to the full simulation. Alternatively a fast photon simulation uses look up tables (obtained using full simulation and ray tracing of the photons) to decide which photons will ultimately result in signals at he photo detectors.
Currently there are two implementations to split between the two mechanisms in LArG4, one of them making use of NEST (

One consequences of reading out the signal in the liquid medium is that there is no charge amplification like there would be in a gaseous medium. This has consequences on the thresholds and sensitivity for detecting particles and ultimately the physics that can be done with the device. To mitigate this problem one can use a dual phase chamber where the electrons are extracted from the liquid into the gaseous medium which then provides amplification.

At the moment LArG4 is limited to single phase chambers where the read out wires and field planes are immersed in the liquid.
To incorporate a Dual phase liquid argon TPC one needs to transport the electrons to the surface and then needs to deal with the extraction of electrons
on the boundary between liquid and gaseous Ar into the gaseous medium and then the propagation and amplification of these electrons.


1. Getting to know the current code and maintain it
1.1 go over the current simulation, learn how to run it. Look at the persistent objects that are written out. Provide a module that looks at e.g. the dE/dx of
muons after all effects (e.g. charge/ionization division etc. ) are taken into account.
1.2 make sure that all the reference physics list provided by geant 4 can be selected and used. (e.g. make sure that all the necessary data files available which are required by some of the physics models)
1.3 make sure that it works with latest versions of Geant 4
1.4 check the persistent object for completeness (inclusion of geant 4 sub processes, is the optical photon info sufficient?, what processes not triggering
the stacking action are worth tracking?)
1.5 make sure that code works with future versions of Geant 4

2. improve on the current code
2.1 investigate if simple step limiter can replace voxels to match to wire pitch.
2.1.1 provide alternative code using step limiter
2.1.2 provide and run test suite that:
a) profiles the code (CPU, memory...).
b) checks that the physics is ok. (see also 3.1)
2.2 proper handling of saturation effects (Birks).
2.3 use new Geant4 interface to access optical photon processes (scintillation/Cerenkov)
2.4 add info on sub processes to persistent info.

3 Provide a physics validation suite to validate physics relevant to liquid Ar (noble) TPC’s, provide guidance about what physicslist to use,
add data used for validation to DoSSiEER (Geant 4 validation database)
3.1 dE/dx by diffent particles (stopping power, bragg curve .....)
3.2 Cross sections (K+/-,p+/-, p ..).
3.3 em shower shapes, e g separation, energy resolution (combine dE/dx and scintillation).
3.4 mu+ mu- separation.
3.5 interactions, pi+ pi- separation, hadronic energy resolution.

4. provide scripts to provide proper input of optical properties (Rayleigh scattering length, refraction index, absorption length) to Geant4. Usually in the literature this values are given in different forms ( e.g. as parameters of the sellmeier function in case of the refraction index) and most of the time the properties are given as a function of wavelength. Geant4 on the other side requires histograms where the value is given as a function of the optical photon energy. This is true for the C++ API used be LArG4 and the gdml description which also allows to pass optical properties. This can have various consequences e.g. if the input histogram is too coarse it can lead to unphysical steps for some of the physical observables regarding optical photons. (Could Geant4 provide a mechanism to accept functions?)

5. Replace LarG4 by more general module (artg4tk) → liquid Argon would be just a special sensitive detector?

6. The current LArG4 module performs many operations beyond the usual Geant4 tasks. It might make sense to take the propagation of the electron clusters to the wires and the photons to the PMTs out of LArG4 and transfer this tasks to a subsequent digitization module that analysis the hits produced in the Geant 4 step. This might also facilitate the use of different simulation engines (FLUKA, GeanV) since all they have to is to inject the well defined hit classes into the event stream. It also might it easier to implement dual phase read outs


  • by Nov 5
    • complete task 1.1- 1.4
    • start collecting the code for 3 into git..