We are trying to make use of physics-list production cuts to reduce the number of short steps and low-energy secondaries in our simulation (we are interested in net energy deposit, not tracking low-energy ionization electrons or X-rays).
I am seeing unexpected differences in validation jobs we’re using to determine useful cut values. The validation jobs consist of a spherical source of single tracks, aimed inward at a 78 mm R x 25 mm H germanium crystal. I count the total number of energy deposits (steps with GetTotalEnergyDeposit() > 0.) in the crystal, as a function of the primary track energy.
I ran two sets of jobs, one with FTFP_BERT, and one with Shielding_EMZ (EM option4), each set consisting of incident gammas, electrons, or neutrons with a flat energy range from 1 to 300 keV. For each job, we set all the particle cuts to the same value, from 0.01 to 2.00 mm, as follows:
thePL->SetCutValue(cutLength, "gamma");
thePL->SetCutValue(cutLength, "e-");
thePL->SetCutValue(cutLength, "e+");
thePL->SetCutValue(1e-9*mm, "proton"); // See all nuclear recoils
G4EmParameters::GetInstance()->SetApplyCuts(true);
The incident gammas behave exactly as I’d expect, as shown in the two plots below, for Shielding_EMZ and FTFP_BERT, respectively. You can even see the energy thresholds where the cut value kicks in for secondaries (red, green, blue, and yellow, below).
In both cases, the uppermost points in black are for no production cuts at all (SetApplyCuts(false)
), and the large error bars reflect that there are tails out to very high numbers of hits (well over 100 in a single event). I don’t fully understand the differences between Shielding_EMZ vs. FTFP_BERT in this case, but I guess they’re due to EM_option4 vs. EMStandard?
Electrons and neutrons both show quite different results, and this is where my main problem lies. Here are the same plots for incident electron primaries:
Notice that all of the different production cut runs overlay one another: there is no reduction in the number of hits, and no threshold effect. There’s no apparent difference between the no-cut job and any of the finite cuts, even for cuts as large as 2 mm. If an incident gamma can show differences of an order of magnitude in the number of hits, why don’t electrons show the same?
The neutron plots look similar to the electron plots, though with an average of just two hits per event, and very long tails up to over 200 hits in a small number of outliers. Again, I don’t understand how the production cuts can have such a strong effect on incident gamms, but not on other primaries.
I’m hoping one of the EM experts can help me to understand either what’s going on, or maybe what I’m doing wrong in configuring these jobs.