About low energy electromagnetic interaction

Dear Geant4 experts,

Hi, I’m new to geant4 simulation and having a problem of setting a physics list.

I’m using 0~100keV(mean energy: 44keV) low-energy gamma for my simulation.
I’ll fire on the pixelated silicon detector.
I previously used FTFP_BERT and I think it doesn’t fit so well on my simulation.
So now I’m making my own “physicslist.cc” and thinking about which physics list I should use.

I tested G4EmLivermorePhysics, G4LowEPPhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4, G4EmStandardPhysics.
Some are quite nice, but I didn’t quite like it.

So, I checked the source codes on
“geant4-v11.2.2/source/physics_lists/constructors/electromagnetic/src”.

I found that they have the lowest limit of about 100eV.
But I also wanted under 100eV photon, so I changed the source code and built the project again.

128   param->SetMinEnergy(0*CLHEP::eV);
129   param->SetLowestElectronEnergy(0*CLHEP::eV);

After changing the source code like that, I run my project again.
I feel the result improves very very very little, and maybe it’s just a statistical error.

So the thing that I really want to ask you is, if Is it okay to change the limit value of the source code at my disposal.

Actually, I also tested G4EmDNAPhysics, because it has a low limit of 10eV, but I don’t think it is the right purpose.

If changing the limit of the source code at my disposal is a bad idea, please tell me how to deal with low energy under the fixed limit.

It is also welcome to recommend new ideas or physics lists.

Thank you so much for helping me and have a nice day.

My understanding of the 100 eV limit is because at that point the major sources and interactions are atomic physics scale and there is also a runaway problem with the number of particles you would be following at that point.

There are two things that come to mind here. One is that such low energies are likely the result of atomic physics processes. These are better handled with G4EmOptions i.e.

G4EmParameters* emOptions = G4EmParameters::Instance(); 
emOptions->SetDeexActiveRegion("MyRegion", true, true, true); // deexc., auger, pixe

Where “MyRegion” would be your G4Region which could be whatever volumes you want to use.

The second thing is production cuts. Range/production cuts are how Geant4 handles energy limits for physics processes and it is a key idea to understand. The default is 10 microns, which probably corresponds to an energy higher than 100 eV for your materials.

1 Like