How to get 100% energy containment in a detector

Hi all,

I am currently working on a GEANT4 simulation of a hadronic calorimeter.
I started from the basic example B4c and I adapted the geometry to my needs. However I am having trouble with shower containment studies, since I realized I am not able to reach 100% of energy containment and I do not understand why.

Therefore, I went back to study the original example to be sure I did not introduce some errors.

Original example: examples/basic/B4/B4c · beb8e5d1d7b92db24ea2d9f9ca27a93e2b312604 · geant4 / geant4 · GitLab

The geometry is
10 layers of 10 cm XY size
10 mm Pb for the absorber
5 mm liquid Argon for the active layer

The source is a gun shooting electrons at 50 MeV.
Then, I run the code with 1000 events.

I looked at the distribution of the deposited energy, which I attached, both in absorber and active layer, and I have two questions:

  1. why is there a fraction of events for which the deposited energy is lower than 50 MeV? Is it due to the particles escaping the detector? I tried to include in the account also their kinetic energy, but I still can not reach 50 MeV (but maybe I am doing it wrong). Is it something related to the physics list parameters that should be tuned?

  2. Why is not the maximum of the deposited energy 50 MeV, but a little bit more? Is that due to the electron mass?

Besides, I tried to change the electron gun into a pion gun of 500 MeV and increased the number of layers to 100. Then, I run 1000 events and looked at the same distribution of the deposited energy and to me it seems that the situation is even worst. Does also the physics list play a role in this case?

Thank you very much for your time and I hope that somebody can help me!

I would guess that there is a physical process allowing energy to leave the detector, weather it be electrons or x-rays leaving the detector.

As for it being slightly higher than 50 MeV, is it actually higher than 50? Or is it just the histogram plot binned in that way? (I.e. the bins are split into 200 bins but the range of values is 10-50, so the bins are not split into 0.25 MeV sections. If the values are actually higher than 50 by 0.511 MeV then it would be due to the electron mass

1 Like

example B4 has few clones : TestEm3, Hadr05.
I choose Hadr05 because I have nothing to do : energy leakage is collected and printed.

Here, a macro and its printout. As you have already noticed, energy conservation is not precise.
I noticed that there are few hadronic interactions : photonNuclear, hadElastic, neutronInelastic.
To forbid them, it is enough to inactivate photonNuclear process. Then, only electromagnetic processes occur and energy conservation is perfect.

ps. you can use the macro interactively, event per event.

anna.mac.txt (620 Bytes)
anna.out.txt (2.8 KB)

Thank you for your answer.

Does it mean that if these processes occur (for example for the hadronic showers) than energy cannot be conserved? I mean, there is no way to retrieve that energy?

In this particular case, maybe it is like that, because there are no events where the deposited energy is higher than 50 MeV.

However I tried also with 500 MeV pions in the same geometry and in this case there are events where the energy is higher than 500 MeV. I attached the plot.

It is well known that many hadronic processes, eg. those based on data libraries, cannot conserve energy, at least at the level of individual process. The energy is conserved " on average ".
You can check this feature with Hadr03