Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Coulomb scattering applicabiliity and discrete model selection #1391

Open
amandalund opened this issue Sep 5, 2024 · 0 comments
Open
Labels
physics Particles, processes, and stepping algorithms

Comments

@amandalund
Copy link
Contributor

When trying to run our app with Coulomb scattering enabled, there are some issues which stem from the model/process energy limits:

  • The Coulomb scattering model cross section energy limits are set using G4VEmModel::MinPrimaryEnergy and are material dependent. (The lower bounds are also quite high: order tens of MeV, but still as far as I’ve seen below the 100 MeV MSC energy limit. It looks like the physics list for single Coulomb scattering by default uses a different model that is valid down to 10 eV.) This should hopefully not be a problem when we use Wentzel VI MSC with SS where the model limits are set to 100 MeV, but if we do want to run in SS mode we won't have the correct model limits untili we add material-dependent applicability (Refactor physics tables for correct material-dependent bounds #907).
  • The model limits are also different from the limits for the Coulomb process cross section. Unless the MSC energy limit is set for the process/model, the process grid bounds extend below the model bounds, which means even with the correct model limits we could sample the process but have no applicable model. Again, this should only be a problem with SS.
  • Finally, the Coulomb scattering process has the "start from null" flag set to false when building the lambda table. This means the first cross section value will be nonzero. Geant4 and Celeritas extrapolate cross sections outside the grid, so the process cross section will be nonzero for energies below the first grid point. As a result, even with consistent model and process energy limits (e.g. when we use MSC with SS above 100 MeV), with our current discrete model selection method it’s still possible to sample the CS process and have no applicable model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
physics Particles, processes, and stepping algorithms
Projects
None yet
Development

No branches or pull requests

1 participant